tree grammar Simplify; options { tokenVocab=VecMath; ASTLabelType=CommonTree; output=AST; language=CSharp3; filter=true; //rewrite=true; } @namespace{Antlr3.Runtime.Test.Composition} topdown : ^( MULT INT ^(VEC (e+=.)+) ) -> ^(VEC ^(MULT INT $e)+) ; bottomup : ^(MULT a=. b=INT {$b.int==0}?) -> $b // x*0 -> 0 ;