JFlex
Class CharClasses

java.lang.Object
  extended by JFlex.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(java.util.Vector intervallVec)
          Returns an array that contains the character class codes of all characters in the specified set of input characters.
 CharClassInterval[] getIntervals()
          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(java.util.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(char singleChar, boolean caseless)
          Creates a new character class for the single character singleChar.
 void makeClass(IntCharSet set, boolean caseless)
          Updates the current partition, so that the specified set of characters gets a new character class.
 void makeClass(java.lang.String str, boolean caseless)
          Creates a new character class for each character of the specified String.
 void makeClass(java.util.Vector v, boolean caseless)
          Updates the current partition, so that the specified set of characters gets a new character class.
 void makeClassNot(java.util.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 largest Unicode value of the current input character set.
 java.lang.String toString()
          Return a string representation of the char classes stored in this class.
 java.lang.String toString(int theClass)
          Return a string representation of one char class
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

maxChar

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

See Also:
Constant Field Values
Constructor Detail

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 Detail

getMaxCharCode

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


setMaxCharCode

public void setMaxCharCode(int charCode)
Sets the largest Unicode value of the current input character set.

Parameters:
charCode - the largest character code, used for the scanner (i.e. %7bit, %8bit, %16bit etc.)

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

getClassCode

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


dump

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


toString

public java.lang.String toString(int theClass)
Return a string representation of one char class

Parameters:
theClass - the index of the class to

toString

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

Overrides:
toString in class java.lang.Object

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

makeClass

public void makeClass(java.lang.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(java.util.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 intervals in the Vector.
caseless - if true upper/lower/title case are considered equivalent

makeClassNot

public void makeClassNot(java.util.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 intervals in the Vector.
caseless - if true upper/lower/title case are considered equivalent

getClassCodes

public int[] getClassCodes(java.util.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 Intervals, the set of characters to get the class codes for
Returns:
an array with the class codes for intervallVec

getNotClassCodes

public int[] getNotClassCodes(java.util.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 Intervals, 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

check

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


getIntervals

public CharClassInterval[] getIntervals()
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.