generator -- Import Statements (: import java.util.LinkedList; import comp.codegen.Reg; import comp.ast.Node; :) declarations -- General Declarations (: public LinkedList instrList = new LinkedList(); :) operators -- Operators (our Node Kinds) CONST(:E_CONST:), ADD(:E_ADD:), SUB(:E_SUB:), MULT(:E_MULT:) rules -- Production Rules reg <: String s, out String o :> = (: bla :) MULT m1 (: bla :) ( (: bla :) reg <: String s, out String bla:> r1 (: bla :), (: bla :) reg <: String s, out String bla:> r2 (: bla :), (: bla :) ADD a1 (: bla :) ( (: bla :) reg <: String s, out String bla:> r3 (: bla :), (: bla :) reg <: String s, out String bla:> r4 (: bla :), (: bla :) SUB s1 (: bla :) ( (: bla :) reg <: String s, out String bla:> r5 (: bla :), (: bla :) reg <: String s, out String bla:> r6 (: bla :), (: bla :) reg <: String s, out String bla:> r7 (: bla :) ) (: bla :), (: bla :) reg <: String s, out String bla:> r8 (: bla :), (: bla :) ADD a2 (: bla :) ( (: bla :) reg <: String s, out String bla:> r9 (: bla :), (: bla :) reg <: String s, out String bla:> r10 (: bla :), (: bla :) reg <: String s, out String bla:> r11 (: bla :), (: bla :) reg <: String s, out String bla:> r12 (: bla :), ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>)))) ) (: bla :) ) (: bla :), (: bla :) reg <: String s, out String bla:> r13 (: bla :) ) (: bla :) [ reg <: String x, out String hugo :> ] (: ... :) : 2 | MULT (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>) : 1 | MULT (ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, SUB (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>))), ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, SUB (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>)))), ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, SUB (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, SUB (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>)))))))))), ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, SUB (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>))))))) : 1 | ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>) : 1 | SUB (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, ADD (reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>, reg <: String x, out String hugo :>)) : 1 . end