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 int
INVALID_INDEX
protected int
memEndStk
protected int
memStartStk
protected int[]
repeatStk
protected StackEntry[]
stack
(package private) static java.lang.ThreadLocal<java.lang.ref.WeakReference<StackEntry[]>>
stacks
private static int
STATE_CHECK_BUFF_MALLOC_THRESHOLD_SIZE
protected byte[]
stateCheckBuff
(package private) int
stateCheckBuffSize
protected int
stk
-
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 protected
StackMachine(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 void
doubleStack()
protected StackEntry
ensure1()
private static StackEntry[]
fetchStack()
protected int
getMemStart(int mnum)
protected int
getRepeat(int id)
protected void
init()
protected int
nullCheck(int id, int s)
protected int
nullCheckMemSt(int id, int s)
protected int
nullCheckMemStRec(int id, int s)
protected int
nullCheckRec(int id, int s)
protected StackEntry
pop()
private StackEntry
popDefault()
private StackEntry
popFree()
private StackEntry
popMemStart()
protected void
popOne()
protected void
popTilLookBehindNot()
protected void
popTilPosNot()
protected int
posEnd()
private void
push(int type, int pat, int s, int prev)
protected void
pushAlt(int pat, int s, int prev)
protected void
pushAltWithStateCheck(int pat, int s, int sprev, int snum)
protected void
pushCallFrame(int pat)
protected void
pushEnsured(int type, int pat)
protected void
pushLookBehindNot(int pat, int s, int sprev)
protected void
pushMemEnd(int mnum, int s)
protected void
pushMemEndMark(int mnum)
protected void
pushMemStart(int mnum, int s)
protected void
pushNullCheckEnd(int cnum)
protected void
pushNullCheckStart(int cnum, int s)
protected void
pushPos(int s, int prev)
protected void
pushPosNot(int pat, int s, int prev)
protected void
pushRepeat(int id, int pat)
protected void
pushRepeatInc(int sindex)
protected void
pushReturn()
protected void
pushStateCheck(int s, int snum)
protected void
pushStopBT()
protected void
pushType(int type)
protected int
sreturn()
protected void
stateCheckBuffClear()
protected void
stateCheckBuffInit(int strLength, int offset, int stateNum)
private void
stateCheckMark()
private int
stateCheckPos(int s, int snum)
protected boolean
stateCheckVal(int s, int snum)
protected void
stopBtEnd()
-
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:
stateCheckBuffInit
in classMatcher
-
stateCheckBuffClear
protected final void stateCheckBuffClear()
- Specified by:
stateCheckBuffClear
in 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()
-
-