[antlr-interest] rule parameter question

Bart Kiers bkiers at gmail.com
Thu Jun 30 05:42:53 PDT 2011


Hi Mark,

I presume you didn't see my answer on Stackoverflow:
http://stackoverflow.com/questions/6529359/how-to-pass-commontree-parameter-to-an-antlr-rule
?

If you did, is there anything that wasn't clear?

Regards,

Bart.


On Thu, Jun 30, 2011 at 2:26 PM, Mark Truluck <mark.truluck at cogiton.com>wrote:

> Hello,
>
> I am trying to do what I think is a simple parameter passing to a rule in
> Antlr 3.3:
>
> -----------
> grammar rule_params;
>
>
> options
> {
>    output = AST;
> }
>
> rule_params
>    :   outer;
>
>
> outer:  outer_id '[' inner[$outer_id.tree] ']';
>
> inner[CommonTree parent]    :   inner_id '['  ']';
>
>
> outer_id    : '#'! ID;
>
> inner_id    : '$'! ID ;
>
>
> ID   :  ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z' | '0'..'9' | '_' )* ;
>
> ---------
>
> However the inner[CommonTree parent] generates the following:
>
> *** inner4=inner((outer_id2!=null?((Object)outer_id2.tree):null));
>
>
> Resulting in this error:
>
> *** The method inner(CommonTree) in the type rule_paramsParser is not
> applicable for the arguments (Object)
>
>
> As best I can tell, this is the exact same as the example in the Antrl
> book:
>
>
> classDefinition[CommonTree mod]
>
> (Kindle Location 3993) - sorry I don't know the page number but it is
>  in the middle of the book in chapter 9, section labeled "Creating Nodes
>  with Arbitrary Actions".
>
> Thanks for any help.
>
>
>
> Mark Truluck
> COGITON, Inc.
>
>
>
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>


More information about the antlr-interest mailing list