diff options
Diffstat (limited to 'runtime/CSharp3/Sources/Antlr3.Runtime.Test/Composition/Reduce.g3')
-rw-r--r-- | runtime/CSharp3/Sources/Antlr3.Runtime.Test/Composition/Reduce.g3 | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/runtime/CSharp3/Sources/Antlr3.Runtime.Test/Composition/Reduce.g3 b/runtime/CSharp3/Sources/Antlr3.Runtime.Test/Composition/Reduce.g3 deleted file mode 100644 index db61e42..0000000 --- a/runtime/CSharp3/Sources/Antlr3.Runtime.Test/Composition/Reduce.g3 +++ /dev/null @@ -1,20 +0,0 @@ -tree grammar Reduce; - -options -{ - tokenVocab=VecMath; - ASTLabelType=CommonTree; - output=AST; - filter=true; - language=CSharp3; -} - -@namespace{Antlr3.Runtime.Test.Composition} - -/** Rewrite: x+x to be 2*x, 2*x to be x<<1, x<<n<<m to be x<<(n+m) */ -bottomup - : ^(PLUS i=INT j=INT {$i.int==$j.int}?) -> ^(MULT["*"] INT["2"] $j) - | ^(MULT x=INT {$x.int==2}? y=.) -> ^(SHIFT["<<"] $y INT["1"]) - | ^(SHIFT ^(SHIFT e=. n=INT) m=INT) - -> ^(SHIFT["<<"] $e INT[($n.int+$m.int).ToString()]) - ; |