Package org.joni
Class StackMachine
- java.lang.Object
-
- org.jcodings.IntHolder
-
- org.joni.Matcher
-
- org.joni.StackMachine
-
- All Implemented Interfaces:
StackType
- Direct Known Subclasses:
ByteCodeMachine
abstract class StackMachine extends Matcher implements StackType
-
-
Field Summary
Fields Modifier and Type Field Description protected static intINVALID_INDEXprotected intmemEndStkprotected intmemStartStkprotected int[]repeatStkprotected StackEntry[]stack(package private) static java.lang.ThreadLocal<java.lang.ref.WeakReference<StackEntry[]>>stacksprivate static intSTATE_CHECK_BUFF_MALLOC_THRESHOLD_SIZEprotected byte[]stateCheckBuff(package private) intstateCheckBuffSizeprotected intstk-
Fields inherited from class org.joni.Matcher
bytes, enc, end, FAILED, high, INTERRUPTED, low, msaBegin, msaBestLen, msaBestS, msaEnd, msaOptions, msaRegion, msaStart, regex, str
-
Fields inherited from interface org.joni.constants.StackType
ALT, CALL_FRAME, INVALID_STACK_INDEX, LOOK_BEHIND_NOT, MASK_MEM_END_OR_MARK, MASK_POP_USED, MASK_TO_VOID_TARGET, MEM_END, MEM_END_MARK, MEM_START, NULL_CHECK_END, NULL_CHECK_START, POS, POS_NOT, REPEAT, REPEAT_INC, RETURN, STATE_CHECK_MARK, STOP_BT, VOID
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedStackMachine(Regex regex, byte[] bytes, int p, int end)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static StackEntry[]allocateStack()private voiddoubleStack()protected StackEntryensure1()private static StackEntry[]fetchStack()protected intgetMemStart(int mnum)protected intgetRepeat(int id)protected voidinit()protected intnullCheck(int id, int s)protected intnullCheckMemSt(int id, int s)protected intnullCheckMemStRec(int id, int s)protected intnullCheckRec(int id, int s)protected StackEntrypop()private StackEntrypopDefault()private StackEntrypopFree()private StackEntrypopMemStart()protected voidpopOne()protected voidpopTilLookBehindNot()protected voidpopTilPosNot()protected intposEnd()private voidpush(int type, int pat, int s, int prev)protected voidpushAlt(int pat, int s, int prev)protected voidpushAltWithStateCheck(int pat, int s, int sprev, int snum)protected voidpushCallFrame(int pat)protected voidpushEnsured(int type, int pat)protected voidpushLookBehindNot(int pat, int s, int sprev)protected voidpushMemEnd(int mnum, int s)protected voidpushMemEndMark(int mnum)protected voidpushMemStart(int mnum, int s)protected voidpushNullCheckEnd(int cnum)protected voidpushNullCheckStart(int cnum, int s)protected voidpushPos(int s, int prev)protected voidpushPosNot(int pat, int s, int prev)protected voidpushRepeat(int id, int pat)protected voidpushRepeatInc(int sindex)protected voidpushReturn()protected voidpushStateCheck(int s, int snum)protected voidpushStopBT()protected voidpushType(int type)protected intsreturn()protected voidstateCheckBuffClear()protected voidstateCheckBuffInit(int strLength, int offset, int stateNum)private voidstateCheckMark()private intstateCheckPos(int s, int snum)protected booleanstateCheckVal(int s, int snum)protected voidstopBtEnd()-
Methods inherited from class org.joni.Matcher
getBegin, getEagerRegion, getEnd, getRegion, match, matchAt, matchInterruptible, msaInit, search, searchInterruptible
-
-
-
-
Field Detail
-
INVALID_INDEX
protected static final int INVALID_INDEX
- See Also:
- Constant Field Values
-
stack
protected StackEntry[] stack
-
stk
protected int stk
-
repeatStk
protected final int[] repeatStk
-
memStartStk
protected final int memStartStk
-
memEndStk
protected final int memEndStk
-
stateCheckBuff
protected byte[] stateCheckBuff
-
stateCheckBuffSize
int stateCheckBuffSize
-
stacks
static final java.lang.ThreadLocal<java.lang.ref.WeakReference<StackEntry[]>> stacks
-
STATE_CHECK_BUFF_MALLOC_THRESHOLD_SIZE
private static final int STATE_CHECK_BUFF_MALLOC_THRESHOLD_SIZE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
StackMachine
protected StackMachine(Regex regex, byte[] bytes, int p, int end)
-
-
Method Detail
-
allocateStack
private static StackEntry[] allocateStack()
-
doubleStack
private void doubleStack()
-
fetchStack
private static StackEntry[] fetchStack()
-
init
protected final void init()
-
ensure1
protected final StackEntry ensure1()
-
pushType
protected final void pushType(int type)
-
stateCheckPos
private int stateCheckPos(int s, int snum)
-
stateCheckVal
protected final boolean stateCheckVal(int s, int snum)
-
stateCheckMark
private void stateCheckMark()
-
stateCheckBuffInit
protected final void stateCheckBuffInit(int strLength, int offset, int stateNum)- Specified by:
stateCheckBuffInitin classMatcher
-
stateCheckBuffClear
protected final void stateCheckBuffClear()
- Specified by:
stateCheckBuffClearin classMatcher
-
push
private void push(int type, int pat, int s, int prev)
-
pushEnsured
protected final void pushEnsured(int type, int pat)
-
pushAltWithStateCheck
protected final void pushAltWithStateCheck(int pat, int s, int sprev, int snum)
-
pushStateCheck
protected final void pushStateCheck(int s, int snum)
-
pushAlt
protected final void pushAlt(int pat, int s, int prev)
-
pushPos
protected final void pushPos(int s, int prev)
-
pushPosNot
protected final void pushPosNot(int pat, int s, int prev)
-
pushStopBT
protected final void pushStopBT()
-
pushLookBehindNot
protected final void pushLookBehindNot(int pat, int s, int sprev)
-
pushRepeat
protected final void pushRepeat(int id, int pat)
-
pushRepeatInc
protected final void pushRepeatInc(int sindex)
-
pushMemStart
protected final void pushMemStart(int mnum, int s)
-
pushMemEnd
protected final void pushMemEnd(int mnum, int s)
-
pushMemEndMark
protected final void pushMemEndMark(int mnum)
-
getMemStart
protected final int getMemStart(int mnum)
-
pushNullCheckStart
protected final void pushNullCheckStart(int cnum, int s)
-
pushNullCheckEnd
protected final void pushNullCheckEnd(int cnum)
-
pushCallFrame
protected final void pushCallFrame(int pat)
-
pushReturn
protected final void pushReturn()
-
popOne
protected final void popOne()
-
pop
protected final StackEntry pop()
-
popFree
private StackEntry popFree()
-
popMemStart
private StackEntry popMemStart()
-
popDefault
private StackEntry popDefault()
-
popTilPosNot
protected final void popTilPosNot()
-
popTilLookBehindNot
protected final void popTilLookBehindNot()
-
posEnd
protected final int posEnd()
-
stopBtEnd
protected final void stopBtEnd()
-
nullCheck
protected final int nullCheck(int id, int s)
-
nullCheckRec
protected final int nullCheckRec(int id, int s)
-
nullCheckMemSt
protected final int nullCheckMemSt(int id, int s)
-
nullCheckMemStRec
protected final int nullCheckMemStRec(int id, int s)
-
getRepeat
protected final int getRepeat(int id)
-
sreturn
protected final int sreturn()
-
-