...
And now, let's distribute scalar-vector multiplies. 4*[1,2]
-> [4*1,4*2]
.
Code Block |
---|
tree grammar Simplify; options { tokenVocab=VecMath; // use tokens from VecMath.g ASTLabelType=CommonTree; // we're using CommonTree nodes output=AST; // build ASTs from input AST filter=true; // tree pattern matching, rewrited mode } topdown : ^('*' INT ^(VEC (e+=.)+)) -> ^(VEC ^('*' INT $e)+) ; bottomup : ^('*' a=. b=INT {$b.int==0}?) -> $b // x*0 -> 0 ; |
...