// <Syntax> ::= <statement> { <Statement> } . private void ParseSyntax() { ParseAction(); _astBuilder.BeginSyntax(_scanner.CurrentToken); ParseStatement(); var statementStartTokens = new[] { TokenKind.Identifier, TokenKind.Action }; while (statementStartTokens.Contains(_scanner.CurrentToken.TokenKind)) { ParseStatement(); } ParseAction(); _astBuilder.EndSyntax(); }