Package net.sf.saxon.regex
Class RECompiler
- java.lang.Object
-
- net.sf.saxon.regex.RECompiler
-
public class RECompiler extends java.lang.Object
A regular expression compiler class. This class compiles a pattern string into a regular expression program interpretable by the RE evaluator class. The 'recompile' command line tool uses this compiler to pre-compile regular expressions for use with RE. For a description of the syntax accepted by RECompiler and what you can do with regular expressions, see the documentation for the RE matcher class.- See Also:
REMatcher
-
-
Constructor Summary
Constructors Constructor Description RECompiler()
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description REProgram
compile(UnicodeString pattern)
Compiles a regular expression pattern into a program runnable by the pattern matcher class 'RE'.java.util.List<java.lang.String>
getWarnings()
On completion of compilation, get any warnings that were generatedstatic CharacterClass
makeComplement(CharacterClass p1)
Make the complement of an IntPredicate (matches if p1 does not match)static CharacterClass
makeDifference(CharacterClass p1, CharacterClass p2)
Make the difference of two IntPredicates (matches if p1 matches and p2 does not match)static CharacterClass
makeUnion(CharacterClass p1, CharacterClass p2)
Make the union of two IntPredicates (matches if p1 matches or p2 matches)static boolean
noAmbiguity(Operation op0, Operation op1, boolean caseBlind, boolean reluctant)
Determine that there is no ambiguity between two branches, that is, if one of them matches then the other cannot possibly match.void
setFlags(REFlags flags)
Set the regular expression flags to be used
-
-
-
Method Detail
-
setFlags
public void setFlags(REFlags flags)
Set the regular expression flags to be used- Parameters:
flags
- the regular expression flags
-
getWarnings
public java.util.List<java.lang.String> getWarnings()
On completion of compilation, get any warnings that were generated- Returns:
- the list of warning messages
-
makeUnion
public static CharacterClass makeUnion(CharacterClass p1, CharacterClass p2)
Make the union of two IntPredicates (matches if p1 matches or p2 matches)- Parameters:
p1
- the firstp2
- the second- Returns:
- the result
-
makeDifference
public static CharacterClass makeDifference(CharacterClass p1, CharacterClass p2)
Make the difference of two IntPredicates (matches if p1 matches and p2 does not match)- Parameters:
p1
- the firstp2
- the second- Returns:
- the result
-
makeComplement
public static CharacterClass makeComplement(CharacterClass p1)
Make the complement of an IntPredicate (matches if p1 does not match)- Parameters:
p1
- the operand- Returns:
- the result
-
compile
public REProgram compile(UnicodeString pattern) throws RESyntaxException
Compiles a regular expression pattern into a program runnable by the pattern matcher class 'RE'.- Parameters:
pattern
- Regular expression pattern to compile (see RECompiler class for details).- Returns:
- A compiled regular expression program.
- Throws:
RESyntaxException
- Thrown if the regular expression has invalid syntax.- See Also:
RECompiler
,REMatcher
-
noAmbiguity
public static boolean noAmbiguity(Operation op0, Operation op1, boolean caseBlind, boolean reluctant)
Determine that there is no ambiguity between two branches, that is, if one of them matches then the other cannot possibly match. (This is for optimization, so it does not have to detect all cases; but if it returns true, then the result must be dependable.)- Parameters:
op0
- the first branchop1
- the second branchcaseBlind
- true if the "i" flag is in forcereluctant
- true if the first branch is a repeat branch with a reluctant quantifier- Returns:
- true if it can be established that there is no input sequence that will match both instructions
-
-