Exemple #1
0
        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");
            }
        }