RegexRunner Class

Definition

Base class for source-generated regex extensibility (and the old CompileToAssembly extensibility). It's not intended to be used by anything else.

This API supports the product infrastructure and is not intended to be used directly from your code.

public ref class RegexRunner abstract
public abstract class RegexRunner
type RegexRunner = class
Public MustInherit Class RegexRunner
Inheritance
RegexRunner

Remarks

Provides the driver code that calls the subclass's Scan method for either scanning or direct execution. Also maintains memory allocation for the backtracking stack, the grouping stack and the longjump crawlstack, and provides methods to push new subpattern match results into (or remove backtracked results from) the Match instance.

Constructors

Name Description
RegexRunner()

This API supports the product infrastructure and is not intended to be used directly from your code.

Initializes a new instance of the RegexRunner class.

Fields

Name Description
runcrawl

This API supports the product infrastructure and is not intended to be used directly from your code.

Crawl stack

runcrawlpos

This API supports the product infrastructure and is not intended to be used directly from your code.

Crawl stack position

runmatch

This API supports the product infrastructure and is not intended to be used directly from your code.

Result object

runregex

This API supports the product infrastructure and is not intended to be used directly from your code.

Regex object

runstack

This API supports the product infrastructure and is not intended to be used directly from your code.

Utility stack

runstackpos

This API supports the product infrastructure and is not intended to be used directly from your code.

Utility stack position

runtext

This API supports the product infrastructure and is not intended to be used directly from your code.

Text to search. May be null if the input was supplied as a span.

runtextbeg

This API supports the product infrastructure and is not intended to be used directly from your code.

Index of the first character to search

runtextend

This API supports the product infrastructure and is not intended to be used directly from your code.

Index just past the last character to search

runtextpos

This API supports the product infrastructure and is not intended to be used directly from your code.

Current position in text

runtextstart

This API supports the product infrastructure and is not intended to be used directly from your code.

Index of the starting character for the search.

runtrack

This API supports the product infrastructure and is not intended to be used directly from your code.

Backtracking stack

runtrackcount

This API supports the product infrastructure and is not intended to be used directly from your code.

Count of states that may do backtracking

runtrackpos

This API supports the product infrastructure and is not intended to be used directly from your code.

Backtracking stack position

Methods

Name Description
Capture(Int32, Int32, Int32)

This API supports the product infrastructure and is not intended to be used directly from your code.

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, String)

This API supports the product infrastructure and is not intended to be used directly from your code.

Determines whether the specified character matches the given character class string.

CharInSet(Char, String, String)

This API supports the product infrastructure and is not intended to be used directly from your code.

Obsolete.

Determines whether the specified character is in the given character set and category.

CheckTimeout()

This API supports the product infrastructure and is not intended to be used directly from your code.

Checks whether the operation has timed out, and throws RegexMatchTimeoutException if it has.

Crawl(Int32)

This API supports the product infrastructure and is not intended to be used directly from your code.

Save a number on the longjump unrolling stack

Crawlpos()

This API supports the product infrastructure and is not intended to be used directly from your code.

Get the height of the stack

DoubleCrawl()

This API supports the product infrastructure and is not intended to be used directly from your code.

Increases the size of the longjump unrolling stack.

DoubleStack()

This API supports the product infrastructure and is not intended to be used directly from your code.

Called by the implementation of Go() to increase the size of the grouping stack.

DoubleTrack()

This API supports the product infrastructure and is not intended to be used directly from your code.

Called by the implementation of Go() to increase the size of the backtracking stack.

EnsureStorage()

This API supports the product infrastructure and is not intended to be used directly from your code.

Called by the implementation of Go() to increase the size of storage

Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
FindFirstChar()

This API supports the product infrastructure and is not intended to be used directly from your code.

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.

GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
Go()

This API supports the product infrastructure and is not intended to be used directly from your code.

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()

This API supports the product infrastructure and is not intended to be used directly from your code.

InitTrackCount must initialize the runtrackcount field; this is used to know how large the initial runtrack and runstack arrays must be.

IsBoundary(Int32, Int32, Int32)

This API supports the product infrastructure and is not intended to be used directly from your code.

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(Int32, Int32, Int32)

This API supports the product infrastructure and is not intended to be used directly from your code.

Determines whether the position at the specified index is an ECMA-compatible word boundary.

IsMatched(Int32)

This API supports the product infrastructure and is not intended to be used directly from your code.

Call out to runmatch to get around visibility issues

MatchIndex(Int32)

This API supports the product infrastructure and is not intended to be used directly from your code.

Call out to runmatch to get around visibility issues

MatchLength(Int32)

This API supports the product infrastructure and is not intended to be used directly from your code.

Call out to runmatch to get around visibility issues

MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
Popcrawl()

This API supports the product infrastructure and is not intended to be used directly from your code.

Remove a number from the longjump unrolling stack

Scan(ReadOnlySpan<Char>)

Used by a Regex object to scan the input text looking for the next match.

Scan(Regex, String, Int32, Int32, Int32, Int32, Boolean, TimeSpan)

This API supports the product infrastructure and is not intended to be used directly from your code.

Obsolete.

This method's body is only kept since it is a protected member that could be called by someone outside the assembly.

Scan(Regex, String, Int32, Int32, Int32, Int32, Boolean)

This API supports the product infrastructure and is not intended to be used directly from your code.

Obsolete.

Used by a Regex object to scan the input text.

ToString()

Returns a string that represents the current object.

(Inherited from Object)
TransferCapture(Int32, Int32, Int32, Int32)

This API supports the product infrastructure and is not intended to be used directly from your code.

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()

This API supports the product infrastructure and is not intended to be used directly from your code.

Called by Go() to revert the last capture.

Applies to