Hi Graham Does this give you what you want ?
localVariableDeclaration : LOCAL! variableDeclarationList ; variableDeclarationList : variableDcl ( ',' variableDcl )* -> ^(LOCAL variableDcl)+ ; If you also use the variableDeclarationList rule for non-local declarations you could give it a parameter... localVariableDeclaration : LOCAL! variableDeclarationList[LOCAL] ; variableDeclarationList[int type] : variableDcl ( ',' variableDcl )* -> {type == LOCAL}? ^(LOCAL variableDcl)+ -> ^(OTHER variableDcl)+ ; Michael On 6 April 2011 07:39, Graham Mer <gd.an...@gmail.com> wrote: > 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.