Package jflex.core
Class RegExp
- java.lang.Object
-
- jflex.core.RegExp
-
-
Constructor Summary
Constructors Constructor Description RegExp(int type)Create a new regular expression of the specified type.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static RegExpanyChar()Returns a regexp that matches any character:[^]static RegExp1checkPrimClass(RegExp r)Confirms that the parameter is a RegExp1 of type sym.PRIMCLASS.booleanisCharClass()Find out if this regexp is a char class or equivalent to one.voidmakeCCLs(CharClasses c, boolean caseless)Make character class partitions based on the classes mentioned in this regexp.RegExpnormalise(Macros m)Normalise the regular expression to eliminate macro use (expand them), and compound character class expression (compute their content).static IntCharSetperformClassOp(int op, IntCharSet l, IntCharSet r, RegExp ctxt)Performs the given set operation on the twoIntCharSetparameters.Stringprint(String tab)Returns a String-representation of this regular expression with the specified indentation.RegExpresolveTilde()Recursively convert tilde (upto) expressions into negation and star.RegExprev()Creates a new regexp that matches the reverse text of this one.intsize(Macros macros)The approximate number of NFA states this expression will need (only works correctly after macro expansion and without negation)StringtoString()StringtypeName()String representation of the type of this regular expression.
-
-
-
Method Detail
-
print
public String print(String tab)
Returns a String-representation of this regular expression with the specified indentation.- Parameters:
tab- a String that should contain only space characters and that is inserted in front of standard String-representation pf this object.- Returns:
- a
Stringobject.
-
typeName
public String typeName()
String representation of the type of this regular expression.
-
isCharClass
public boolean isCharClass()
Find out if this regexp is a char class or equivalent to one.- Returns:
- true if the regexp is equivalent to a char class.
-
size
public int size(Macros macros)
The approximate number of NFA states this expression will need (only works correctly after macro expansion and without negation)- Parameters:
macros- macro table for expansion- Returns:
- a int.
-
resolveTilde
public final RegExp resolveTilde()
Recursively convert tilde (upto) expressions into negation and star.- Returns:
- new RegExp equivalent to the current one, but without upto expressions.
-
anyChar
public static RegExp anyChar()
Returns a regexp that matches any character:[^]- Returns:
- the regexp for
[^]
-
checkPrimClass
public static RegExp1 checkPrimClass(RegExp r)
Confirms that the parameter is a RegExp1 of type sym.PRIMCLASS.- Parameters:
r- the RegExp to check- Returns:
- r cast to RegExp1
- Throws:
CharClassException- if r is not a RegExp1 or of type sym.PRIMCLASS.
-
performClassOp
public static IntCharSet performClassOp(int op, IntCharSet l, IntCharSet r, RegExp ctxt)
Performs the given set operation on the twoIntCharSetparameters.- Parameters:
op- the operation to perform (as @{link sym} constant)l- the left operator of the expressionr- the right operator of the expressionctxt- the regular expression containing the provided operator- Returns:
- a new
IntCharSet - Throws:
RegExpException- forctxtif the operator is not supported
-
normalise
public final RegExp normalise(Macros m)
Normalise the regular expression to eliminate macro use (expand them), and compound character class expression (compute their content).- Returns:
- a regexp that contains only
IntCharSetchar classes and nosym.MACROUSE.
-
makeCCLs
public final void makeCCLs(CharClasses c, boolean caseless)
Make character class partitions based on the classes mentioned in this regexp.Assumption: regexp is normalised.
-
rev
public final RegExp rev()
Creates a new regexp that matches the reverse text of this one.- Returns:
- the reverse regexp
-
-