[antlr-interest] Augmenting AST with additional info
krishsub at microsoft.com
Thu Aug 2 02:28:59 PDT 2012
The METHOD_DECL node gives me the TokenStartIndex and TokenStopIndex as integers (I'm using C#; I don't know if Java is different).
How would one translate the int to the actual token efficiently (e.g. as a lookup?) in order to get the token's line number and offset?
From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-bounces at antlr.org] On Behalf Of Jim Idle
Sent: Thursday, August 2, 2012 12:25 AM
To: antlr-interest at antlr.org
Subject: Re: [antlr-interest] Augmenting AST with additional info
The METHOD_DECL node will give you the first and last token, then you can get the line number and offset of the last token.
> -----Original Message-----
> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of Krishnan Subramanian
> Sent: Wednesday, August 01, 2012 2:13 PM
> To: antlr-interest at antlr.org
> Subject: [antlr-interest] Augmenting AST with additional info
> Hi all,
> I have some information that needs to be augmented to an AST and I
> cannot figure out how to go about it.
> It is maybe best to illustrate via an example:
> Assuming I have a grammar where a method & its method body are
> declared and the AST as follows:
> : return_type type_name OPEN_PARENS
> formal_parameter_list? CLOSE_PARENS LEFT_BRACE method_body RIGHT_BRACE
> -> ^(METHOD_DECL return_type type_name
> formal_parameter_list? method_body)
> Problem description
> In my AST, for METHOD_DECL (a token), I need to add some information
> that tells me the location where the method has ended . That is, the
> line number and column of RIGHT_BRACE.
> Given that I eliminate RIGHT_BRACE from my AST, is there any mechanism
> to augment METHOD_DECL with (say) the line number and column number
> information for RIGHT_BRACE?
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
More information about the antlr-interest