public string Visit(CIL_IOPrint node) { var code_result = ""; code_result += $"\t lw $t0, {context_function[node.Obj]}\n"; code_result += $"\t addiu $a0, $t0 , 8\n"; code_result += $"\t li $v0, 4\n"; code_result += $"\t syscall\n"; return(code_result); }
public string Visit(CIL_IOPrint node) { string solve = ""; int idx = variableaddr.Peek()[node.Obj]; idx = mem.GetValue(idx); PrintObject(idx); int len = mem.GetValue(idx++); idx++; for (int i = 0; i < len - 2; i++) { int x = mem.GetValue(idx + i); char c = (char)x; if (c == '\\') { x = mem.GetValue(idx + ++i); c = (char)x; if (c == 'n') { solve += '\n'; } if (c == 'b') { solve += '\b'; } if (c == 't') { solve += '\t'; } if (c == 'r') { solve += '\r'; } } else { solve += c; } } io.print(solve); return(""); }