public string Visit(CIL_ExpUn node) { string solve = ""; int val; if (int.TryParse(node.Expr, out val)) { solve += $"\t li $t0, {val}\n"; } if (node.Op == "~") { solve += $"\t neg $t1, $t0\n"; } else if (node.Op.ToLower() == "not") { solve += $"\t not $t1, $t0\n"; } else { throw new Exception($"{node.Op} Not Found Operator"); } solve += $"\t sw $t1 {context_function[node.Result]}\n"; return(solve); }
public string Visit(CIL_ExpUn node) { int value = GetValueFromId(node.Expr); if (node.Op == "~") { value = ~value; } if (node.Op == "not") { value = (value != 0) ? 0 : 1; } int dir = variableaddr.Peek()[node.Result]; mem.SetValue(dir, value); return(""); }