[antlr-interest] syntax predicate strange behavior

Ilia Kantor ilia at obnovlenie.ru
Tue May 1 01:39:12 PDT 2007


Yeah, Gavin, actually, your variant is same and causes same problems.

It should be corrected with predicate to compile:

( (LCURL) => LCURL command_arguments? RCURL)? -> ^(USER_COMMAND command_arguments?);




> At 19:53 1/05/2007, David Holroyd wrote:
>  >> By the way, this works fine:
>  >>
>  >> command_user_body
>  >> options {backtrack=true;}:	
>  >> 	LCURL command_arguments? RCURL -> ^(USER_COMMAND
>  >command_arguments?) |					
>  >> 	-> USER_COMMAND
>  >> ;
>  >
>  >With backtracking (which I admit I don't wholly understand yet) 
> I
>  >guess if it fails on the first alt, it will back-off to the 
> second,
>  >empty alternative?
> 
> Speaking of which, since (I think) USER_COMMAND and 
> ^(USER_COMMAND) are equivalent, wouldn't the above be identical to 
> this (ignoring the backtracking for the moment):
> 
> command_user_body:
>    (LCURL command_arguments? RCURL)? -> ^(USER_COMMAND 
> command_arguments?);
> 
> (I could be wrong.)
> 
> 




More information about the antlr-interest mailing list