Package net.sf.saxon.regex
Class OpSequence
- java.lang.Object
-
- net.sf.saxon.regex.Operation
-
- net.sf.saxon.regex.OpSequence
-
public class OpSequence extends Operation
A sequence of multiple pieces in a regular expression
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.sf.saxon.regex.Operation
Operation.ForceProgressIterator
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<Operation>
operations
-
Fields inherited from class net.sf.saxon.regex.Operation
MATCHES_ZLS_ANYWHERE, MATCHES_ZLS_AT_END, MATCHES_ZLS_AT_START, MATCHES_ZLS_NEVER
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
containsCapturingExpressions()
Ask whether the expression contains any capturing sub-expressionsjava.lang.String
display()
Display the operation as a regular expression, possibly in abbreviated formCharacterClass
getInitialCharacterClass(boolean caseBlind)
Get a CharacterClass identifying the set of characters that can appear as the first character of a non-empty string that matches this term.int
getMatchLength()
Get the length of the matches returned by this operation if they are fixed-lengthint
getMaxLoopingDepth()
Get the maximum depth of looping within this operationint
getMinimumMatchLength()
Get the minimum length of the matches returned by this operationjava.util.List<Operation>
getOperations()
IntIterator
iterateMatches(REMatcher matcher, int position)
Get an iterator returning all the matches for this operationint
matchesEmptyString()
Ask whether the regular expression is known, after static analysis, to match a zero-length stringOperation
optimize(REProgram program, REFlags flags)
Optimize the operation
-
-
-
Field Detail
-
operations
protected final java.util.List<Operation> operations
-
-
Method Detail
-
getOperations
public java.util.List<Operation> getOperations()
-
getMatchLength
public int getMatchLength()
Description copied from class:Operation
Get the length of the matches returned by this operation if they are fixed-length- Overrides:
getMatchLength
in classOperation
- Returns:
- the length of the matches, or -1 if the length is variable
-
getMinimumMatchLength
public int getMinimumMatchLength()
Description copied from class:Operation
Get the minimum length of the matches returned by this operation- Overrides:
getMinimumMatchLength
in classOperation
- Returns:
- the length of the shortest string that will match the operation
-
matchesEmptyString
public int matchesEmptyString()
Description copied from class:Operation
Ask whether the regular expression is known, after static analysis, to match a zero-length string- Specified by:
matchesEmptyString
in classOperation
- Returns:
- a value indicating whether the regex is statically known to match
a zero-length string. Specifically:
- returns
Operation.MATCHES_ZLS_AT_START
if the expression is statically known to match a zero-length string at the start of the supplied input; - returns
Operation.MATCHES_ZLS_AT_END
if it is statically known to return a zero-length string at the end of the supplied input; - returns
Operation.MATCHES_ZLS_ANYWHERE
if it is statically known to match a zero-length string anywhere in the input. - returns
Operation.MATCHES_ZLS_NEVER
if it is statically known that the regex will never match a zero length string.
- returns
-
containsCapturingExpressions
public boolean containsCapturingExpressions()
Description copied from class:Operation
Ask whether the expression contains any capturing sub-expressions- Overrides:
containsCapturingExpressions
in classOperation
- Returns:
- true if the expression contains any capturing sub-expressions (but not if it is a capturing expression itself, unless it contains nested capturing expressions)
-
getInitialCharacterClass
public CharacterClass getInitialCharacterClass(boolean caseBlind)
Description copied from class:Operation
Get a CharacterClass identifying the set of characters that can appear as the first character of a non-empty string that matches this term. This is allowed to be an over-estimate (that is, the returned Character class must match every character that can legitimately appear at the start of the matched string, but it can also match other characters).- Overrides:
getInitialCharacterClass
in classOperation
- Parameters:
caseBlind
- true if case-blind matching is in force ("i" flag)
-
getMaxLoopingDepth
public int getMaxLoopingDepth()
Get the maximum depth of looping within this operation- Overrides:
getMaxLoopingDepth
in classOperation
- Returns:
- the maximum number of nested iterations
-
display
public java.lang.String display()
Display the operation as a regular expression, possibly in abbreviated form
-
optimize
public Operation optimize(REProgram program, REFlags flags)
Description copied from class:Operation
Optimize the operation
-
iterateMatches
public IntIterator iterateMatches(REMatcher matcher, int position)
Description copied from class:Operation
Get an iterator returning all the matches for this operation- Specified by:
iterateMatches
in classOperation
- Parameters:
matcher
- supplies the context for the matching; may be updated with information about captured groupsposition
- the start position to seek a match- Returns:
- an iterator returning the endpoints of all matches starting at the supplied position
-
-