and I want to parse a single statement. How I can tell the parser to
start at ‘statement’ and return?
Use dummy token.
targets: PARSE_PROGRAM program /* PARSE_PROGRAM is a dummy token /
> PARSE_STATEMENT statement / PARSE_STATEMENT is a dummy token */
;
program: …
statement: …
When you want to parse “program”, a lexer returns PARSE_PROGRAM at first.
When you want to parse “statement”, a lexer returns PARSE_STATEMENT at first.
and I want to parse a single statement. How I can tell the parser to
start at ‘statement’ and return?
Use dummy token.
targets: PARSE_PROGRAM program /* PARSE_PROGRAM is a dummy token /
> PARSE_STATEMENT statement / PARSE_STATEMENT is a dummy token */
;
program: …
statement: …
When you want to parse “program”, a lexer returns PARSE_PROGRAM at first.
When you want to parse “statement”, a lexer returns PARSE_STATEMENT at first.
A simple and clever solution! Thank you very much!