protected override void OnRegistration(StackEx<SpanSyntaxNode> stack) { if (parentStack.Count > 1) { var neighbor = parentStack.TopNode.Next; while (neighbor.Value is PartialWhitespaceExpression.WhitespaceExpression && neighbor.Next != null) neighbor = neighbor.Next; if (neighbor != null && neighbor.Value != null) { parentStack.Pop (); exp = neighbor.Value as TerminalSpan; neighbor.Value = this; } } }
protected override void OnRegistration(StackEx<SpanSyntaxNode> stack) { if (stack.Count > 1) { var neighbor = stack.TopNode.Next; int whitespace_count = 0; while (neighbor.Value is PartialWhitespaceExpression.WhitespaceExpression && neighbor.Next != null) { whitespace_count++; neighbor = neighbor.Next; } if (neighbor != null && (exp = neighbor.Value as TerminalSpan) != null) { parentStack.Pop (); for (var i = 0; i < whitespace_count; i++) parentStack.Pop (); neighbor.Value = this; } } }
public SubTerminal(TerminalSpan node) { this.node = node; }