public final class TRegexBacktrackingNFAExecutorLocals extends TRegexExecutorLocals
TRegexBacktrackingNFAExecutorNode. One stack frame represents
a snapshot of the backtracker's state. The backtracker state consists of:
sp sp+1 sp+2 sp+2+ncg sp+2+ncg+nq sp+2+ncg+nq+nzwq sp+2+ncg+nq+nzwq+nzwqcg | | | | | | | v v v v v v v ----------------------------------------------------------------------------------------------------------------------------------- |index|nfa_state|capture_groups|quantifiers_counts|zero_width_quantifier_indices|zero_width_quantifier_CG|recursive_capture_groups| ----------------------------------------------------------------------------------------------------------------------------------- frame size: 2 + n_capture_groups*2 [+ 1 last_group] + n_quantifiers + n_zero_width_quantifiers + zero_width_quantifier_CG_length + n_recursive_capture_groups
| Modifier and Type | Method and Description |
|---|---|
void |
apply(PureNFATransition t,
int index) |
boolean |
canPop() |
boolean |
canPopResult() |
protected void |
clearCaptureGroups() |
protected void |
clearQuantifierCounts() |
protected void |
clearRecursiveCaptureGroups() |
static TRegexBacktrackingNFAExecutorLocals |
create(com.oracle.truffle.api.strings.TruffleString input,
int fromIndex,
int index,
int maxIndex,
int nCaptureGroups,
int nQuantifiers,
int nZeroWidthQuantifiers,
int[] zeroWidthTermEnclosedCGLow,
int[] zeroWidthQuantifierCGOffsets,
boolean allocateStackFrameBuffer,
int maxNTransitions,
boolean trackLastGroup,
boolean dontOverwriteLastGroup,
boolean recursiveBackrefs) |
TRegexBacktrackingNFAExecutorLocals |
createSubNFALocals(boolean newDontOverwriteLastGroup) |
TRegexBacktrackingNFAExecutorLocals |
createSubNFALocals(PureNFATransition t,
boolean newDontOverwriteLastGroup) |
void |
dupFrame() |
void |
dupFrame(int n) |
int |
getCaptureGroupBoundary(int boundary) |
int |
getCaptureGroupEnd(int groupNumber) |
int |
getCaptureGroupStart(int groupNumber) |
int |
getLastInitialStateIndex() |
int |
getLastInnerLiteralIndex() |
int |
getPc() |
int |
getQuantifierCount(Token.Quantifier q) |
int |
getRecursiveCaptureGroupStart(int groupNumber) |
int[] |
getStackFrameBuffer() |
long[] |
getTransitionBitSet() |
int |
getZeroWidthQuantifierGuardIndex(Token.Quantifier q) |
void |
incQuantifierCount(Token.Quantifier q) |
boolean |
isResultUnmodifiedByZeroWidthQuantifier(Token.Quantifier q) |
void |
overwriteCaptureGroups(int[] captureGroups) |
int |
pop() |
int[] |
popResult() |
void |
printStack(int curPc) |
void |
push() |
void |
pushFrame(int[] frame) |
void |
pushResult()
Marks that a result was pushed at the current stack frame.
|
void |
pushResult(PureNFATransition t,
int index) |
void |
readFrame(int[] to) |
void |
resetQuantifierCount(Token.Quantifier q) |
void |
resetToInitialState() |
void |
restoreIndex() |
void |
saveIndex(int index) |
void |
saveRecursiveBackrefGroupStart(int groupNumber) |
void |
setCaptureGroupBoundary(int boundary,
int index) |
void |
setLastGroup(int newLastGroup) |
void |
setLastInitialStateIndex(int i) |
void |
setLastInnerLiteralIndex(int i) |
int |
setPc(int pc) |
void |
setQuantifierCount(Token.Quantifier q,
int count) |
void |
setResult()
Copies the current capture group boundaries to the result array.
|
void |
setZeroWidthQuantifierGuardIndex(Token.Quantifier q) |
void |
setZeroWidthQuantifierResults(Token.Quantifier q) |
void |
writeFrame(int[] from) |
getFromIndex, getIndex, getInput, getMaxIndex, getNextIndex, incLoopCount, setIndex, setNextIndexpublic static TRegexBacktrackingNFAExecutorLocals create(com.oracle.truffle.api.strings.TruffleString input, int fromIndex, int index, int maxIndex, int nCaptureGroups, int nQuantifiers, int nZeroWidthQuantifiers, int[] zeroWidthTermEnclosedCGLow, int[] zeroWidthQuantifierCGOffsets, boolean allocateStackFrameBuffer, int maxNTransitions, boolean trackLastGroup, boolean dontOverwriteLastGroup, boolean recursiveBackrefs)
public TRegexBacktrackingNFAExecutorLocals createSubNFALocals(boolean newDontOverwriteLastGroup)
public TRegexBacktrackingNFAExecutorLocals createSubNFALocals(PureNFATransition t, boolean newDontOverwriteLastGroup)
public void apply(PureNFATransition t, int index)
public void resetToInitialState()
protected void clearCaptureGroups()
protected void clearRecursiveCaptureGroups()
protected void clearQuantifierCounts()
public void push()
public void pushFrame(int[] frame)
public void readFrame(int[] to)
public void writeFrame(int[] from)
public void dupFrame()
public void dupFrame(int n)
public void pushResult(PureNFATransition t, int index)
public void pushResult()
public void setResult()
public boolean canPopResult()
public int[] popResult()
public boolean canPop()
public int pop()
public void saveIndex(int index)
public void restoreIndex()
public int getPc()
public int setPc(int pc)
public int getCaptureGroupBoundary(int boundary)
public void setCaptureGroupBoundary(int boundary,
int index)
public int getCaptureGroupStart(int groupNumber)
public int getCaptureGroupEnd(int groupNumber)
public int getRecursiveCaptureGroupStart(int groupNumber)
public void saveRecursiveBackrefGroupStart(int groupNumber)
public void overwriteCaptureGroups(int[] captureGroups)
public void setLastGroup(int newLastGroup)
public int getQuantifierCount(Token.Quantifier q)
public void setQuantifierCount(Token.Quantifier q, int count)
public void resetQuantifierCount(Token.Quantifier q)
public void incQuantifierCount(Token.Quantifier q)
public int getZeroWidthQuantifierGuardIndex(Token.Quantifier q)
public void setZeroWidthQuantifierGuardIndex(Token.Quantifier q)
public boolean isResultUnmodifiedByZeroWidthQuantifier(Token.Quantifier q)
public void setZeroWidthQuantifierResults(Token.Quantifier q)
public long[] getTransitionBitSet()
public int getLastInnerLiteralIndex()
public void setLastInnerLiteralIndex(int i)
public int getLastInitialStateIndex()
public void setLastInitialStateIndex(int i)
public int[] getStackFrameBuffer()
public void printStack(int curPc)