[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