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

Edgar Espina espina.edgar at gmail.com
Tue May 18 13:47:41 PDT 2010


Hi,

 TokenType can be an interface. Then your generated tokens can implemented
this interface.

enum GeneratedTokenType implements TokenType {
 ID(3);
}

Thanks,
edgar

On Tue, May 18, 2010 at 5:42 PM, Terence Parr <parrt at cs.usfca.edu> wrote:

>  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.
>
> Ter
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>



-- 
edgar


More information about the antlr-interest mailing list