[antlr-interest] enums in v4 ANTLR Java code generation considered useless

Terence Parr parrt at cs.usfca.edu
Tue May 18 13:42:32 PDT 2010

 A lot of you have wondered why I'd don't use enum types for token types in the generated Java-based parsers:

enum TokenType { ID(3), INT(4) };

I gave it my best shot but once again I found that enums just don't seem to work for me. For example, without inheritance how can I define the match method?

void match(TokenType t) {....}

Unfortunately this is in the superclass not the generated class so TokenType is not yet defined. Without inheritance, I have to use match(int). That means that there's no point in using the enum.

But, you say, I should be using generics on the parser to pass in the token type enum type. Fair enough, And I'll try once I tried to generic'ize the v3 runtime for v4. We've had some discussion of this on the dev list.


More information about the antlr-interest mailing list