void CheckCrucialRegisters() { float R0 = MetaSymbol.Cast <float>(Tokens.NUM, symbolTable[0]).Value; switch ((int)R0) { case 1: // continue return; case 2: StandardAPI.output(line); return; case 0: // exit ready = false; instance = null; return; case -1: default: // throw error ready = false; throw new InterpreterError("Error: (-1) abrupt shutdown"); } }
static void Main(string[] args) { Interpreter.Init(registers: 32); var mini = Interpreter.Instance; StandardAPI.output = Console.WriteLine; // change output method StandardAPI.input = Console.ReadLine; // change input method Bootloader.CreateReference(); FileAPI.CreateReference(); StandardAPI.Load(mini); while (mini.Ready) { if (mini.IsLabelDefinition) { Console.Write(">> "); } else { Console.Write("\n> "); } mini.Run(Console.ReadLine()); mini.ResetLineNum(); } Console.WriteLine("bye"); }
public void Debug(Symbol <string> flag) { switch (flag.Value) { case "parser": mini.debugParser = !mini.debugParser; break; case "preprocessor": mini.debugPreprocessor = !mini.debugPreprocessor; break; case "all": mini.debugParser = true; mini.debugPreprocessor = true; break; case "none": mini.debugParser = false; mini.debugPreprocessor = false; break; default: StandardAPI.output("Unknown flag " + flag.Value); break; } }
public void Peek(Symbol <int> start, Symbol <int> end) { for (int i = start.Value; i < end.Value; i++) { StandardAPI.output(mini.FormatAddress(i)); } }
public void Help(Symbol <int> ptr) { var instruction = mini.GetAddress <Instruction>(ptr.Value, Tokens.LBL); StandardAPI.output("\n" + instruction + "\n"); foreach (string line in instruction.Value.Documentation) { StandardAPI.output(" " + line); } }
public static void Main(string[] args) { Interpreter.Init(registers: 32); var mini = Interpreter.Instance; Bootloader.CreateReference(); StandardAPI.Load(mini); while (mini.Ready) { Console.Write("> ") gelii.Run(Console.ReadLine()); } }
public void Peek(Symbol <float> batchSize) { var block = new StringBuilder(); for (int i = 0; i < mini.TableSize(); i++) { block.AppendLine(mini.FormatAddress(i)); if (i % batchSize.Value == 0) { StandardAPI.output(block); block.Length = 0; } } StandardAPI.output(block); }
void Start() { StandardAPI.output = Debug.Log; StandardAPI.input = null; Interpreter.debugOut = Debug.Log; Interpreter.errorOut = Debug.LogError; Interpreter.Init(32); mini = Interpreter.Instance; Bootloader.CreateReference(); FileAPI.CreateReference(); StandardAPI.Load(mini); game.AddAll(mini); go.Init(mini, transform, prefabs); go.AddAll(); for (int i = 0; i < transform.childCount; i++) { go.AddTranform(transform.GetChild(i)); } }
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"); } }
public void Peek() { StandardAPI.output(mini); }
public void SayHello(Symbol <string> name) { StandardAPI.output("Hello {0}", name.Value); }