From: Carlos Date: 2004-02-28T23:00:15+09:00 Subject: Re: [RACC] Multiple entry points? >>program: PROGRAM name '{' statements '}' { ... } >> ; >> >>statements: statement { ... } >> | statements statement { ... } >> ; >> >>statement: ... >> >>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!