[antlr-interest] Newbie questions: How to traverse the AST ...

Gavin Lambert antlr at mirality.co.nz
Mon Jan 1 11:37:25 PST 2007


At 13:59 1/01/2007, Agnisys wrote:
 >NEWLINE :('\r''\n')=> '\r''\n' //DOS
 >     | '\n'                  //UNIX
 >     { newline(); }
 >     ;

FYI, that definition is incorrect -- it's only going to call the 
newline() function if it encounters UNIX-style line breaks, not 
DOS-style line breaks.

You need to enclose the alt-block in an additional set of 
parentheses, so that the action follows a single term, not an 
alt.  Or put the same action on both alts.

Alternatively, you can probably get away with writing it as a 
single alt, like so:
   '\r'? '\n'



More information about the antlr-interest mailing list