The AST operators are the most efficient manner: localVariableDeclaration : LOCAL^ variableDeclarationList ;
variableDeclarationList : variableDcl ( ','! variableDcl )* ; Or use rewrites: localVariableDeclaration : LOCAL variableDeclarationList -> ^(LOCAL variableDeclarationList) ; variableDeclarationList : variableDcl ( ',' variableDcl )* -> variableDcl+ ; -----Original Message----- From: antlr-interest-boun...@antlr.org [mailto:antlr-interest-boun...@antlr.org] On Behalf Of Graham Mer Sent: Tuesday, April 05, 2011 4:40 PM To: antlr-interest@antlr.org Subject: [antlr-interest] AST cardinality from called rules Hello list, The following rule generates the AST that I want: localVariableDeclaration : LOCAL variableDcl ( ',' variableDcl )* -> ^(LOCAL variableDcl)+ ; But how do I generate an equivalent AST if the variableDcl list is not in the localVariableDeclaration rule, as in the following fragment? localVariableDeclaration : LOCAL variableDeclarationList ; variableDeclarationList : variableDcl ( ',' variableDcl )* ; I want to produce a set of ^(LOCAL variableDcl) subtrees, but I want to reuse the variableDeclarationList from other rules, so I'd rather not inline it. Thanks! List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.