[antlr-interest] Simple (should be) lexer Q
Bryan Ewbank
ewbank at gmail.com
Fri Jun 10 17:57:59 PDT 2005
A shot in the dark: remove the third alternative and replace the "+"
with "*" in the second one. This results in:
NAME:
( CAPWORD (WS CAPWORD)* COMMA WS CAPWORD )
=> CAPWORD (WS CAPWORD)* COMMA WS CAPWORD
| ( CAPWORD (WS CAPWORD)* )
=> CAPWORD (WS CAPWORD)*
;
Or perhaps, simply :-)
NAME:
CAPWORD ( WS CAPWORD )* ( COMMA WS CAPWORD )?
;
You might need to make the loops greedy, but this should work.
On 6/10/05, Gerald B. Rosenberg <gbr at newtechlaw.com> wrote:
> NAME:
> ( CAPWORD (WS CAPWORD)* COMMA WS CAPWORD )
> => CAPWORD (WS CAPWORD)* COMMA WS CAPWORD
> | ( CAPWORD (WS CAPWORD)+ )
> => CAPWORD (WS CAPWORD)+
> | CAPWORD
> ;
More information about the antlr-interest
mailing list