[antlr-interest] Tracking Character Position in antlr3

Edson Tirelli tirelli at post.com
Fri Jan 19 09:22:00 PST 2007


   Thanks for the quick answer Terence.

   I will go with the casts then.

   []s
   Edson

Terence Parr wrote:

>
> On Jan 19, 2007, at 7:43 AM, Edson Tirelli wrote:
>
>>
>>    Hello All,
>>
>>    I think this is probably a recurring frequent question, but the  
>> answers I was able to find, both in the FAQ( http://www.jguru.com/ 
>> faq/view.jsp?EID=550800 ) and the list archives seems to refer to  
>> antlr 2.x version. So, here we go again:
>>
>>    We have a parser generated by antlr 3. We also have an IDE built  
>> over eclipse. We have a requirement from the IDE guys that the  
>> parser must provide location within the source files as character  
>> position from the beggining of the file, instead of line/columns.
>>    Looking through antlr source code, it seems that CommonToken has  
>> this information encoded as "start" and "stop" indexes and you can  
>> get them through methods: getStartIndex() and getStopIndex(). I  
>> developed some unit tests (hardcoding class casts from Token to  
>> CommonToken) and these attributes are consistent throughout the  
>> parsing.
>>
>>    So, my questions:
>>
>> 1) Is there any reason for these methods to not be exposed in the  
>> Token interface? In other words, can they be exposed in the Token  
>> interface implemented by CommonToken? This would avoid the nasty  
>> class casts...
>
>
> A minimal token doesn't need those...can just answer getText.
>
> I can see your need though.
>
>> 2) If not, do you see any reason for me to not do the casts and get  
>> the info from the CommonToken class?
>
>
> That is ok.
>
>> 3) Is there any other better alternative way of doing it?
>
>
> Not at the moment...we could extend Token, but it's getting complex.
>
> Ter
>


-- 
 Edson Tirelli
 Software Engineer - JBoss Rules Core Developer
 Office: +55 11 3124-6000
 Mobile: +55 11 9218-4151
 JBoss, a division of Red Hat @ www.jboss.com




More information about the antlr-interest mailing list