Package net.sf.saxon.regex
Class OpRepeat
- java.lang.Object
-
- net.sf.saxon.regex.Operation
-
- net.sf.saxon.regex.OpRepeat
-
- Direct Known Subclasses:
OpGreedyFixed
,OpReluctantFixed
,OpUnambiguousRepeat
public class OpRepeat extends Operation
Handle a repetition (with possible min and max) where the size of the repeated unit is variable.
-
-
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 int
max
protected int
min
protected Operation
op
-
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 operationIntIterator
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
-
op
protected Operation op
-
min
protected int min
-
max
protected int max
-
-
Method Detail
-
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)
-
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
-
getMaxLoopingDepth
public int getMaxLoopingDepth()
Get the maximum depth of looping within this operation- Overrides:
getMaxLoopingDepth
in classOperation
- Returns:
- the maximum number of nested iterations
-
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
-
-