public void PushChildren(SyntaxNode node, Func <SyntaxNode, bool> descendIntoChildren) { if (descendIntoChildren == null || descendIntoChildren(node)) { nodeStack.PushChildren(node); discriminatorStack.Push(Which.Node); } }
public TwoEnumeratorListStack(SyntaxNode startingNode, Func <SyntaxNode, bool> descendIntoChildren) { _nodeStack = new ChildSyntaxListEnumeratorStack(startingNode, descendIntoChildren); _triviaStack = new TriviaListEnumeratorStack(); if (_nodeStack.IsNotEmpty) { _discriminatorStack = ArrayBuilder <Which> .GetInstance(); _discriminatorStack.Push(Which.Node); } else { _discriminatorStack = null; } }
public void PushToken(ref SyntaxNodeOrToken value) { tokenStack.Push(value); discriminatorStack.Push(Which.Token); }