[antlr-interest] Tracking Character Position in antlr3
Terence Parr
parrt at cs.usfca.edu
Fri Jan 19 08:16:10 PST 2007
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
More information about the antlr-interest
mailing list