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.