std.regex.internal.thompson
Types 3
structThread(DataIndex)
structThreadList(DataIndex)
Fields
Thread!DataIndex * tipMethods
void insertFront(Thread!DataIndex * t)void insertBack(Thread!DataIndex * t)bool empty() @propertyThreadRange opSlice()Nested Templates
ThreadRangeclassThompsonMatcher(Char, StreamType = Input!Char): : Matcher!Char if (is(Char : dchar))
Fields
Thread!DataIndex * freelistThreadList!DataIndex clistDataIndex[] mergeGroup!DataIndex[] backrefedRegex!Char reStream sdchar frontDataIndex indexDataIndex genCountersize_t[size_t] subCountersOpFunc[] opCacheTrueOpFunc[] opCacheFalseOpBackFunc[] opCacheBackTrueOpBackFunc[] opCacheBackFalsesize_t threadSizesize_t _refCountint matchedbool exhausted__traits(hasMember, Stream, "search") kickeduint RestartPcMethods
size_t getThreadSize(const ref Regex!Char re)size_t initialMemory(const ref Regex!Char re)bool atStart(){ @propertybool atEnd(){ @propertybool next()void initExternalMemory(void[] memory)auto fwdMatcher()(size_t lo, size_t hi, uint nGroup, size_t counter)auto bwdMatcher()(size_t lo, size_t hi, uint nGroup, size_t counter)int matchOneShot(Group!DataIndex[] matches, uint startPc = 0)void prepareFreeList(size_t size, ref void[] memory)void recycle(ref ThreadList!DataIndex list)Thread!DataIndex * createStart(DataIndex index, uint pc = 0)Constructors
this(ThompsonMatcher matcher, size_t lo, size_t hi, uint nGroup, Stream stream)this(BackMatcher matcher, size_t lo, size_t hi, uint nGroup, Stream stream)Nested Templates
StateTemplates 2
tmplThompsonOps(E, S, bool withInput: true)
Functions
bool op(IR code: IR.End)(E e, S * state)
bool op(IR code: IR.Wordboundary)(E e, S * state)
bool op(IR code: IR.Notwordboundary)(E e, S * state)
bool op(IR code: IR.Bof)(E e, S * state)
bool op(IR code: IR.Bol)(E e, S * state)
bool op(IR code: IR.Eof)(E e, S * state)
bool op(IR code: IR.Eol)(E e, S * state)
bool op(IR code: IR.InfiniteStart)(E e, S * state)
bool op(IR code: IR.InfiniteBloomStart)(E e, S * state)
bool op(IR code: IR.InfiniteQStart)(E e, S * state)
bool op(IR code: IR.RepeatStart)(E e, S * state)
bool op(IR code: IR.RepeatQStart)(E e, S * state)
bool op(IR code)(E e, S * state) if (code == IR.RepeatEnd || code == IR.RepeatQEnd)
bool op(IR code)(E e, S * state) if (code == IR.InfiniteEnd || code == IR.InfiniteQEnd)
bool op(IR code)(E e, S * state) if (code == IR.InfiniteBloomEnd)
bool op(IR code: IR.OrEnd)(E e, S * state)
bool op(IR code: IR.OrStart)(E e, S * state)
bool op(IR code: IR.GotoEndOr)(E e, S * state)
bool op(IR code: IR.GroupStart)(E e, S * state)
bool op(IR code: IR.GroupEnd)(E e, S * state)
bool op(IR code: IR.Backref)(E e, S * state)
bool op(IR code)(E e, S * state) if (code == IR.LookbehindStart || code == IR.NeglookbehindStart)
bool op(IR code)(E e, S * state) if (code == IR.LookaheadStart || code == IR.NeglookaheadStart)
bool op(IR code)(E e, S * state) if (code == IR.LookaheadEnd || code == IR.NeglookaheadEnd ||
code == IR.LookbehindEnd || code == IR.NeglookbehindEnd)
bool op(IR code: IR.Nop)(E e, S * state)
bool op(IR code: IR.OrChar)(E e, S * state)
bool op(IR code: IR.Char)(E e, S * state)
bool op(IR code: IR.Any)(E e, S * state)
bool op(IR code: IR.CodepointSet)(E e, S * state)
tmplThompsonOps(E, S, bool withInput: false)