示例#1
0
        // <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();
        }