Property | Type | Description | |
---|---|---|---|
runcrawl | int[] | ||
runcrawlpos | int | ||
runmatch | |||
runregex | Regex | ||
runstack | int[] | ||
runstackpos | int | ||
runtext | string | ||
runtextbeg | int | ||
runtextend | int | ||
runtextpos | int | ||
runtextstart | int | ||
runtrack | int[] | ||
runtrackcount | int | ||
runtrackpos | int |
Method | Description | |
---|---|---|
Capture ( int capnum, int start, int end ) : void |
Called by Go() to capture a subexpression. Note that the capnum used here has already been mapped to a non-sparse index (by the code generator RegexWriter).
|
|
CharInClass ( char ch, string charClass ) : bool | ||
CharInSet ( char ch, string set, string category ) : bool | ||
CheckTimeout ( ) : void | ||
Crawl ( int i ) : void |
Save a number on the longjump unrolling stack
|
|
Crawlpos ( ) : int |
Get the height of the stack
|
|
DoubleCrawl ( ) : void |
Increases the size of the longjump unrolling stack.
|
|
DoubleStack ( ) : void |
Called by the implementation of Go() to increase the size of the grouping stack.
|
|
DoubleTrack ( ) : void |
Called by the implementation of Go() to increase the size of the backtracking stack.
|
|
EnsureStorage ( ) : void |
Called by the implementation of Go() to increase the size of storage
|
|
FindFirstChar ( ) : bool |
The responsibility of FindFirstChar() is to advance runtextpos until it is at the next position which is a candidate for the beginning of a successful match.
|
|
Go ( ) : void |
The responsibility of Go() is to run the regular expression at runtextpos and call Capture() on all the captured subexpressions, then to leave runtextpos at the ending position. It should leave runtextpos where it started if there was no match.
|
|
InitTrackCount ( ) : void |
InitTrackCount must initialize the runtrackcount field; this is used to know how large the initial runtrack and runstack arrays must be.
|
|
IsBoundary ( int index, int startpos, int endpos ) : bool |
Called by the implementation of Go() to decide whether the pos at the specified index is a boundary or not. It's just not worth emitting inline code for this logic.
|
|
IsECMABoundary ( int index, int startpos, int endpos ) : bool | ||
IsMatched ( int cap ) : bool |
Call out to runmatch to get around visibility issues
|
|
MatchIndex ( int cap ) : int |
Call out to runmatch to get around visibility issues
|
|
MatchLength ( int cap ) : int |
Call out to runmatch to get around visibility issues
|
|
Popcrawl ( ) : int |
Remove a number from the longjump unrolling stack
|
|
RegexRunner ( ) : System | ||
Scan ( Regex regex, string text, int textbeg, int textend, int textstart, int prevlen, bool quick ) : |
Scans the string to find the first match. Uses the Match object both to feed text in and as a place to store matches that come out. All the action is in the abstract Go() method defined by subclasses. Our responsibility is to load up the class members (as done here) before calling Go. The optimizer can compute a set of candidate starting characters, and we could use a separate method Skip() that will quickly scan past any characters that we know can't match.
|
|
Scan ( Regex regex, string text, int textbeg, int textend, int textstart, int prevlen, bool quick, System.TimeSpan timeout ) : |
||
TransferCapture ( int capnum, int uncapnum, int start, int end ) : void |
Called by Go() to capture a subexpression. Note that the capnum used here has already been mapped to a non-sparse index (by the code generator RegexWriter).
|
|
Uncapture ( ) : void |
Method | Description | |
---|---|---|
DoCheckTimeout ( ) : void | ||
DumpState ( ) : void |
Dump the current state
|
|
InitMatch ( ) : void |
Initializes all the data members that are used by Go()
|
|
StackDescription ( int a, int index ) : string | ||
StartTimeoutWatch ( ) : void | ||
TextposDescription ( ) : string | ||
TidyMatch ( bool quick ) : |
Put match in its canonical form before returning it.
|
protected Capture ( int capnum, int start, int end ) : void | ||
capnum | int | |
start | int | |
end | int | |
return | void |
protected static CharInClass ( char ch, string charClass ) : bool | ||
ch | char | |
charClass | string | |
return | bool |
protected static CharInSet ( char ch, string set, string category ) : bool | ||
ch | char | |
set | string | |
category | string | |
return | bool |
protected IsBoundary ( int index, int startpos, int endpos ) : bool | ||
index | int | |
startpos | int | |
endpos | int | |
return | bool |
protected IsECMABoundary ( int index, int startpos, int endpos ) : bool | ||
index | int | |
startpos | int | |
endpos | int | |
return | bool |
protected Scan ( Regex regex, string text, int textbeg, int textend, int textstart, int prevlen, bool quick ) : |
||
regex | Regex | |
text | string | |
textbeg | int | |
textend | int | |
textstart | int | |
prevlen | int | |
quick | bool | |
return |
protected Scan ( Regex regex, string text, int textbeg, int textend, int textstart, int prevlen, bool quick, System.TimeSpan timeout ) : |
||
regex | Regex | |
text | string | |
textbeg | int | |
textend | int | |
textstart | int | |
prevlen | int | |
quick | bool | |
timeout | System.TimeSpan | |
return |
protected TransferCapture ( int capnum, int uncapnum, int start, int end ) : void | ||
capnum | int | |
uncapnum | int | |
start | int | |
end | int | |
return | void |