next up previous contents index
Next: Representing text in strings Up: Built-in predicates Previous: Analysing and constructing atoms   Contents   Index

Classifying characters

SWI-Prolog offers two comprehensive predicates for classifying characters and character-codes. These predicates are defined as built-in predicates to exploit the C-character classification's handling of locale (handling of local character-sets). These predicates are fast, logical and deterministic if applicable.

In addition, there is the library ctype providing compatibility to some other Prolog systems. The predicates of this library are defined in terms of code_type2.

char_type2?Char, ?Type Tests or generates alternative Types or Chars. The character-types are inspired by the standard C <ctype.h> primitives.

alnum Char is a letter (upper- or lowercase) or digit. alpha Char is a letter (upper- or lowercase). csym Char is a letter (upper- or lowercase), digit or the underscore (_). These are valid C- and Prolog symbol characters. csymf Char is a letter (upper- or lowercase) or the underscore (_). These are valid first characters for C- and Prolog symbols ascii Char is a 7-bits ASCII character (0..127). white Char is a space or tab. E.i. white space inside a line. cntrl Char is an ASCII control-character (0..31). digit Char is a digit. digitWeigth Char is a digit with value Weigth. I.e. char_type(X, digit(6) yields X = '6'. Useful for parsing numbers. xdigitWeigth Char is a haxe-decimal digit with value Weigth. I.e. char_type(a, xdigit(X) yields X = '10'. Useful for parsing numbers. graph Char produces a visible mark on a page when printed. Note that the space is not included! lower Char is a lower-case letter. lowerUpper Char is a lower-case version of Upper. Only true if Char is lowercase and Upper uppercase. to_lowerUpper Char is a lower-case version of Upper. For non-letters, or letter without case, Char and Lower are the same. upper Char is an upper-case letter. upperLower Char is an upper-case version of Lower. Only true if Char is uppercase and Lower lowercase. to_upperLower Char is an upper-case version of Lower. For non-letters, or letter without case, Char and Lower are the same. punct Char is a punctuation character. This is a graph character that is not a letter or digit. space Char is some form of layout character (tab, vertical-tab, newline, etc.). end_of_file Char is -1. end_of_line Char ends a line (ASCII: 10..13). newline Char is a the newline character (10). period Char counts as the end of a sentence (.,!,?). quote Char is a quote-character (", ', `). parenClose Char is an open-parenthesis and Close is the corresponding close-parenthesis.

code_type2?Code, ?Type As char_type2, but uses character-codes rather than one-character atoms. Please note that both predicates are as flexible as possible. They handle either representation if the argument is instantiated and only will instantiate with an integer code or one-character atom depending of the version used. See also the prolog-flag double_quotes, atom_chars2 and atom_codes2.


next up previous contents index
Next: Representing text in strings Up: Built-in predicates Previous: Analysing and constructing atoms   Contents   Index
Dr. Richard Botting 2001-12-12