JFlex

Class CharClasses


public class CharClasses
extends java.lang.Object

Field Summary

static char
maxChar
the largest character that can be used in char classes

Constructor Summary

CharClasses(int maxCharCode)
Constructs a new CharClass object that provides space for classes of characters from 0 to maxCharCode.

Method Summary

void
check()
Check consistency of the stored classes [debug].
void
dump()
Dump charclasses to the dump output stream
int
getClassCode(char letter)
Returns the code of the character class the specified character belongs to.
int[]
getClassCodes(Vector intervallVec)
Returns an array that contains the character class codes of all characters in the specified set of input characters.
CharClassInterval[]
getIntervalls()
Returns an array of all CharClassIntervalls in this char class collection.
char
getMaxCharCode()
Returns the greatest Unicode value of the current input character set.
int[]
getNotClassCodes(Vector intervallVec)
Returns an array that contains the character class codes of all characters that are not in the specified set of input characters.
int
getNumClasses()
Returns the current number of character classes.
void
makeClass(IntCharSet set, boolean caseless)
Updates the current partition, so that the specified set of characters gets a new character class.
void
makeClass(String str, boolean caseless)
Creates a new character class for each character of the specified String.
void
makeClass(Vector v, boolean caseless)
Updates the current partition, so that the specified set of characters gets a new character class.
void
makeClass(char singleChar, boolean caseless)
Creates a new character class for the single character singleChar.
void
makeClassNot(Vector v, boolean caseless)
Updates the current partition, so that the set of all characters not contained in the specified set of characters gets a new character class.
void
setMaxCharCode(int charCode)
Sets the larges Unicode value of the current input character set.
String
toString()
Return a string representation of the char classes stored in this class.
String
toString(int theClass)
Return a string representation of one char class

Field Details

maxChar

public static final char maxChar
the largest character that can be used in char classes
Field Value:
'\uffff'

Constructor Details

CharClasses

public CharClasses(int maxCharCode)
Constructs a new CharClass object that provides space for classes of characters from 0 to maxCharCode. Initially all characters are in class 0.
Parameters:
maxCharCode - the last character code to be considered. (127 for 7bit Lexers, 255 for 8bit Lexers and 0xFFFF for Unicode Lexers).

Method Details

check

public void check()
Check consistency of the stored classes [debug]. all classes must be disjoint, checks if all characters have a class assigned.

dump

public void dump()
Dump charclasses to the dump output stream

getClassCode

public int getClassCode(char letter)
Returns the code of the character class the specified character belongs to.

getClassCodes

public int[] getClassCodes(Vector intervallVec)
Returns an array that contains the character class codes of all characters in the specified set of input characters.
Parameters:
intervallVec - a Vector of Intervalls, the set of characters to get the class codes for
Returns:
an array with the class codes for intervallVec

getIntervalls

public CharClassInterval[] getIntervalls()
Returns an array of all CharClassIntervalls in this char class collection. The array is ordered by char code, i.e. result[i+1].start = result[i].end+1 Each CharClassInterval contains the number of the char class it belongs to.

getMaxCharCode

public char getMaxCharCode()
Returns the greatest Unicode value of the current input character set.

getNotClassCodes

public int[] getNotClassCodes(Vector intervallVec)
Returns an array that contains the character class codes of all characters that are not in the specified set of input characters.
Parameters:
intervallVec - a Vector of Intervalls, the complement of the set of characters to get the class codes for
Returns:
an array with the class codes for the complement of intervallVec

getNumClasses

public int getNumClasses()
Returns the current number of character classes.

makeClass

public void makeClass(IntCharSet set,
                      boolean caseless)
Updates the current partition, so that the specified set of characters gets a new character class. Characters that are elements of set are not in the same equivalence class with characters that are not elements of set.
Parameters:
set - the set of characters to distinguish from the rest
caseless - if true upper/lower/title case are considered equivalent

makeClass

public void makeClass(String str,
                      boolean caseless)
Creates a new character class for each character of the specified String.
Parameters:
caseless - if true upper/lower/title case are considered equivalent

makeClass

public void makeClass(Vector v,
                      boolean caseless)
Updates the current partition, so that the specified set of characters gets a new character class. Characters that are elements of the set v are not in the same equivalence class with characters that are not elements of the set v.
Parameters:
v - a Vector of Interval objects. This Vector represents a set of characters. The set of characters is the union of all intervalls in the Vector.
caseless - if true upper/lower/title case are considered equivalent

makeClass

public void makeClass(char singleChar,
                      boolean caseless)
Creates a new character class for the single character singleChar.
Parameters:
caseless - if true upper/lower/title case are considered equivalent

makeClassNot

public void makeClassNot(Vector v,
                         boolean caseless)
Updates the current partition, so that the set of all characters not contained in the specified set of characters gets a new character class. Characters that are elements of the set v are not in the same equivalence class with characters that are not elements of the set v. This method is equivalent to makeClass(v)
Parameters:
v - a Vector of Interval objects. This Vector represents a set of characters. The set of characters is the union of all intervalls in the Vector.
caseless - if true upper/lower/title case are considered equivalent

setMaxCharCode

public void setMaxCharCode(int charCode)
Sets the larges Unicode value of the current input character set.
Parameters:
charCode - the largest character code, used for the scanner (i.e. %7bit, %8bit, %16bit etc.)

toString

public String toString()
Return a string representation of the char classes stored in this class. Enumerates the classes by index.

toString

public String toString(int theClass)
Return a string representation of one char class
Parameters:
theClass - the index of the class to