public void IO(Symbol <int> ptr) { int addr = ptr.Value; switch (addr) { case 6: if (StandardAPI.input == null) { throw new InterpreterError("IO", "Input not supported"); } mini.SetAddress(addr, new Symbol <string>(Tokens.STR, StandardAPI.input())); break; case 7: if (StandardAPI.output == null) { throw new InterpreterError("IO", "Output not supported"); } var output = mini.GetRegister(addr); if (output.Type == Tokens.STR) { StandardAPI.output(((Symbol <string>)output).Value); } else { StandardAPI.output(output.ToString()); } mini.SetRegister(addr, new Symbol <string>(Tokens.STR, "")); break; default: throw new InterpreterError("IO", "Not io register"); } }