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 | | | | | | v v v v v v ---------------------------------------------------------------------------------------------------------- |index|nfa_state|capture_groups|quantifiers_counts|zero_width_quantifier_indices|zero_width_quantifier_CG| ---------------------------------------------------------------------------------------------------------- frame size: 2 + n_capture_groups*2 [+ 1 last_group] + n_quantifiers + n_zero_width_quantifiers + zero_width_quantifier_CG_length
| Constructor and Description |
|---|
TRegexBacktrackingNFAExecutorLocals(Object 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) |
getFromIndex, getIndex, getInput, getMaxIndex, getNextIndex, incLoopCount, setIndex, setNextIndexpublic TRegexBacktrackingNFAExecutorLocals(Object 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)
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 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 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)