public override List <string> Generate() { var lines = new List <string>() { read_op1, read_op2 }; switch (_operator) { case "+": lines.Add(WMIPS.add("$a0", "$a0", "$a1")); break; case "-": lines.Add(WMIPS.sub("$a0", "$a0", "$a1")); break; case "*": lines.Add(WMIPS.mult("$a0", "$a1")); lines.Add(WMIPS.mflo("$a0")); break; case "/": lines.Add(WMIPS.div("$a0", "$a1")); lines.Add(WMIPS.mflo("$a0")); break; case "<": lines.Add(WMIPS.sge("$a0", "$a0", "$a1")); lines.Add(WMIPS.li("$a1", 1)); lines.Add(WMIPS.sub("$a0", "$a1", "$a0")); break; case "<=": lines.Add(WMIPS.sle("$a0", "$a0", "$a1")); break; case "=": lines.Add(WMIPS.seq("$a0", "$a0", "$a1")); break; case "=:=": break; case "inherit": lines.Add(WMIPS.move("$v1", "$ra")); lines.Add(WMIPS.jal("_inherit")); lines.Add(WMIPS.move("$ra", "$v1")); lines.Add(WMIPS.move("$a0", "$v0")); break; } lines.Add(save_res); return(lines); }