Table of Contents

Struct ListMatch

Namespace
ICSharpCode.Decompiler.IL.Patterns
Assembly
ICSharpCode.Decompiler.dll

Data holder for a single list matching operation.

public struct ListMatch
Inherited Members

Remarks

Notes on backtracking: PerformMatch() may save backtracking-savepoints to the ListMatch instance. Each backtracking-savepoints is a Stack{int} with instructions of how to restore the saved state. When a savepoint is created by a PerformMatch() call, that call may be nested in several other PerformMatch() calls that operate on the same list. When leaving those calls (whether with a successful match or not), the outer PerformMatch() calls may push additional state onto all of the added backtracking-savepoints. When the overall list match fails but savepoints exists, the most recently added savepoint is restored by calling PerformMatch() with listMatch.restoreStack set to that savepoint. Each PerformMatch() call must pop its state from that stack before recursively calling its child patterns.