[antlr-interest] transforming AST's in place when generated
Mark Wright
markwright at internode.on.net
Fri Feb 22 16:32:26 PST 2008
Hello Carter,
The idea is to pass the int type_id AST as a paramater to the
init_declarator_list, and the init_declarator_list passes it as a
parameter to the init_declarator, something like:
declaration
: storage_class_specifier? type_id init_declarator_list[$storage_class_specifier.tree, $type_id.tree] ';'
-> init_declarator_list
;
init_declarator_list[CommonTree scs, CommonTree ti]
: init_declarator[$scs, $ti] (',' init_declarator[$scs, $ti])*
-> init_declarator+
;
init_declarator[CommonTree scs, CommonTree ti]
: function_declarator
-> {(scs == null)}? ^(FUNCTION_DECLARATION {$ti} function_declarator)
-> {(scs != null)}? ^(FUNCTION_DECLARATION {$scs} {$ti} function_declarator)
->
| declarator initializer?
-> {(scs == null)}? ^(DD {$ti} declarator initializer?)
-> {(scs != null)}? ^(DD {$scs} {$ti} declarator initializer?)
->
;
etc.
Regards, Mark
--
More information about the antlr-interest
mailing list