[antlr-interest] empty rule catches unthrown RecognitionException

Trevor John Thompson tijet at mac.com
Fri Jul 1 15:10:19 PDT 2011


I have a grammar in which i wish to create an imaginary AST node, and then have an action treat that node. The most straightforward expression i have devised is:
grammar Empty;
options {output=AST;}
tokens {Imaginary;}
@members {void treat(Object t){}}

parse: empty EOF! {treat($empty.tree);};
empty: ->^(Imaginary);

However, the generated EmptyParser.java fails to compile because empty() catches RecognitionException, which is never thrown.

I am working around this by:
empty: ->^(Imaginary)|Imaginary;
which works because the imaginary token can never be produced by the lexer.

Is there some other way i should be going about this?
--
Trevor John Thompson    (425) 246-4023
net: tijet at me.com
Quidquid Latine scriptum sit, altum videtur.



More information about the antlr-interest mailing list