[antlr-interest] enums in v4 ANTLR Java code generation considered useless
Terence Parr
parrt at cs.usfca.edu
Tue May 18 13:52:29 PDT 2010
hi Edgar :)
Don't i have to pass objects around then instead of ints with extra method calls etc...?
void match(TokenType t) {
int ttype = t.getType();
}
no autoboxing etc...
match(GeneratedTokenType.ID);
Also i need Parser.GeneratedTokenType.ID in outside code. pretty ugly.
I guess i don't see enum advantages for token types and they cause confusion. "enum GeneratedTokenType implements TokenType" vs "int", in other words.
Ter
On May 18, 2010, at 1:47 PM, Edgar Espina wrote:
> 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
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
More information about the antlr-interest
mailing list