package IC.Hierarchy; import IC.Error.*; import IC.Semantic.*; import IC.SymbolTable.*; import IC.LowIR.*; /** *
Title:
*Description:
*Copyright: Copyright (c) 2003
*Company:
* @author unascribed * @version 1.0 */ public class Equal extends BinopExpr{ public Equal(Node e1, Node e2) { super(e1, e2); } public Var translate() { Var b = e1.translate(); Var c = e2.translate(); Var a = new Var(LIR.getNextName(), tableRef); tableRef.put(a.name, new TableEntry(a.name, "temp var", null)); LIR.irList.add(new Binop(a, Operators.EQUAL, b, c)); return a; } public void print() { fprintln(nodenum + ": " + "Equal(N" + getNum(e1) + ",N" + getNum(e2) + ");"); if (String.valueOf(e1) != "null") e1.print(); if (String.valueOf(e2) != "null") e2.print(); } public Object accept(Visitor v, SymTable st) throws SemanticError { return (v.visit(this, st)); } }