git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1903 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
		
			
				
	
	
		
			103 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| :- object(character,
 | |
| 	implements(characterp),
 | |
| 	extends(atom)).
 | |
| 
 | |
| 	:- info([
 | |
| 		version is 1.0,
 | |
| 		author is 'Paulo Moura',
 | |
| 		date is 2000/7/24,
 | |
| 		comment is 'Character predicates.']).
 | |
| 
 | |
| 	is_alpha('_').
 | |
| 	is_alpha(Char) :-
 | |
| 		is_letter(Char).
 | |
| 
 | |
| 	is_letter(Char) :-
 | |
| 		is_lower_case(Char).
 | |
| 	is_letter(Char) :-
 | |
| 		is_upper_case(Char).
 | |
| 
 | |
| 	is_alphanumeric(Char) :-
 | |
| 		is_alpha(Char).
 | |
| 	is_alphanumeric(Char) :-
 | |
| 		is_dec_digit(Char).
 | |
| 
 | |
| 	is_bin_digit(0).
 | |
| 	is_bin_digit(1).
 | |
| 
 | |
| 	is_octal_digit(Digit) :-
 | |
| 		Digit @>= 0,
 | |
| 		Digit @=< 7.
 | |
| 
 | |
| 	is_dec_digit(Digit) :-
 | |
| 		Digit @>= 0,
 | |
| 		Digit @=< 9.
 | |
| 
 | |
| 	is_hex_digit(Digit) :-
 | |
| 		Digit @>= 0,
 | |
| 		Digit @=< 9.
 | |
| 	is_hex_digit(Digit) :-
 | |
| 		Digit @>= 'A',
 | |
| 		Digit @=< 'F'.
 | |
| 	is_hex_digit(Digit) :-
 | |
| 		Digit @>= a,
 | |
| 		Digit @=< f.
 | |
| 
 | |
| 	is_lower_case(Char) :-
 | |
| 		Char @>= a,
 | |
| 		Char @=< z.
 | |
| 
 | |
| 	is_upper_case(Char) :-
 | |
| 		Char @>= 'A',
 | |
| 		Char @=< 'Z'.
 | |
| 
 | |
| 	is_vowel(a).
 | |
| 	is_vowel(e).
 | |
| 	is_vowel(i).
 | |
| 	is_vowel(o).
 | |
| 	is_vowel(u).
 | |
| 	is_vowel('A').
 | |
| 	is_vowel('E').
 | |
| 	is_vowel('I').
 | |
| 	is_vowel('O').
 | |
| 	is_vowel('U').
 | |
| 
 | |
| 	is_layout(' ').
 | |
| 
 | |
| 	lower_upper(a, 'A').
 | |
| 	lower_upper(b, 'B').
 | |
| 	lower_upper(c, 'C').
 | |
| 	lower_upper(d, 'D').
 | |
| 	lower_upper(e, 'E').
 | |
| 	lower_upper(f, 'F').
 | |
| 	lower_upper(g, 'G').
 | |
| 	lower_upper(h, 'H').
 | |
| 	lower_upper(i, 'I').
 | |
| 	lower_upper(j, 'J').
 | |
| 	lower_upper(k, 'K').
 | |
| 	lower_upper(l, 'L').
 | |
| 	lower_upper(m, 'M').
 | |
| 	lower_upper(n, 'N').
 | |
| 	lower_upper(o, 'O').
 | |
| 	lower_upper(p, 'P').
 | |
| 	lower_upper(q, 'Q').
 | |
| 	lower_upper(r, 'R').
 | |
| 	lower_upper(s, 'S').
 | |
| 	lower_upper(t, 'T').
 | |
| 	lower_upper(u, 'U').
 | |
| 	lower_upper(v, 'V').
 | |
| 	lower_upper(w, 'W').
 | |
| 	lower_upper(x, 'X').
 | |
| 	lower_upper(y, 'Y').
 | |
| 	lower_upper(z, 'Z').
 | |
| 	lower_upper(Char, Char) :-
 | |
| 		\+ (Char @>= a, Char @=< z),
 | |
| 		\+ (Char @>= 'A', Char @=< 'Z').
 | |
| 
 | |
| 	valid(Character) :-
 | |
| 		atom(Character),
 | |
| 		atom_length(Character, 1).
 | |
| 
 | |
| :- end_object.
 |