[antlr-interest] ANTLRv3.g problem

Terence Parr parrt at cs.usfca.edu
Tue Mar 11 11:10:19 PDT 2008


Hi Kenneth,

  please ignore that grammar... is just something I am playing with in  
preparation for removing the dependency on version 2.
Ter
On Mar 11, 2008, at 10:59 AM, Kenneth Domino wrote:

> FYI, there seems to be a problem with the grammar ANTLRv3.g
> (http://fisheye2.cenqua.com/browse/antlr-examples/java/ANTLR/ANTLRv3.g?r=4288 
> )
> on the following legal input (use ANTLRWorks to see the bogus
> token created for the action):
>
> grammar xx;
> a : { bar("}"); } ;
> I debugged the program and it appears that the problem
> is related to nesting strings in actions. The relevant rules are:
>
> fragment
> NESTED_ACTION :
>  '{'
>  ( options {greedy=false; k=3;}
>  : NESTED_ACTION
>  | SL_COMMENT
>  | ML_COMMENT
>  | ACTION_STRING_LITERAL
>  | ACTION_CHAR_LITERAL
>  | .
>  )*
>  '}'
>  {$channel = DEFAULT_TOKEN_CHANNEL;}
>    ;
>
> fragment
> ACTION_STRING_LITERAL
>  : '"' (ACTION_ESC|~('\\'|'"'))+ '"'
>  ;
>
> It seems that the lexer should jump into an
> automaton to recognizing strings once finding a double
> quote, but it doesn't.
> Instead, after seeing the first double quote, it does a
> LA for a "}", like it wants to match the DOT alternative.
> Also, it seems that the ACTION_STRING_LITERAL
> is not totally correct because of the closure ("+").
> This would seem to preclude an empty string (e.g., "").
>
> The rules are slightly different than
> what is found in "antlr.g" in org/antlr/tool/, which is used
> by the ANTLR tool, but not that different.  So, I'm wondering
> if there is a problem with the DFA construction.
>
> I found this problem while using the
> ANTLRv3.g grammar for a pretty printer, which is now
> starting to work pretty well!
>
> Say, is there a switch in ANTLR to dump all the states and
> transitions so I can figure this out?
>
> Ken Domino
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20080311/830dc98c/attachment.html 


More information about the antlr-interest mailing list