public override ParseNode_Base NextAfterChild(ParseNode_Base child, SyntaxTreeBuilder pSyntaxTreeBuilder) { var SyntaxRule_Cur = pSyntaxTreeBuilder.SyntaxRule_Cur; if (SyntaxRule_Cur == null) { return(null); } var res = SyntaxRule_Cur.ParseNode != null?SyntaxRule_Cur.ParseNode.NextAfterChild(this, pSyntaxTreeBuilder) : null; if (pSyntaxTreeBuilder.Seeking) { return(res); } if (contextualKeyword && SyntaxRule_Cur.NumValidNodes == 1) { var token = SyntaxRule_Cur.LeafAt(0).token; token.tokenKind = LexerToken.Kind.ContextualKeyword; } if (SyntaxRule_Cur.Semantics != SemanticFlags.None) { pSyntaxTreeBuilder.OnSemanticNodeClose(SyntaxRule_Cur); } return(res); }