[antlr-interest] Java1.5 grammar and enum as identifier and not as a keyword

David Ewing dewing at apple.com
Mon Jun 27 10:16:13 PDT 2005


You might be able to call JavaLexer.enableEnum(false) from an action  
when you enter the recognition of a method, and call  
JavaLexer.enableEnum(true) when leaving. A hack, but perhaps a useful  
one. :)

Dave

On Jun 26, 2005, at 3:13 PM, Jörg Rech wrote:

> Michael Studman schrieb:
>
>
>> If you're not in a position to be able to change the source code  
>> you're parsing and you can guarantee "enum" is not used as a  
>> keyword  then you can call JavaLexer.enableEnum(false) on the  
>> lexer before you pass it into the recogniser.
>>
>
> If you mean by "guarantee enum is not used" that I can decide  
> wether the class is either 1.4 or 1.5 I fear that this is not  
> possible. The only way I currently see is to have two different  
> pipelines with lexer, filter, and parser for 1.4 and 1.5 and then  
> parse the class first with 1.5 and if errors occur use the 1.4  
> pipeline.
> I haven't tried it yet but it seems feasible (and ugly :-( )
>
> Thanks for your idea,
> Joerg.
>
>
>> Akhilesh Mritunjai wrote:
>>
>>
>>> Hi
>>>
>>> I encountered similar problem, and since we were
>>> transitioning to 1.5, we decided to clean up the code.
>>> Fortunately, for java 1.4, it can be done using a
>>> simple find/replace. sed -i 's/\<enum\>/_enum/' takes
>>> care of it :-)
>>>
>>>
>
> -- 
> Joerg Rech
> Computer Scientist        Web:   http://www.joerg-rech.de
> Tel.: (+49|0) 631/10653   email: joerg.rech at gmail.com
>
>



More information about the antlr-interest mailing list