public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var condition = arguments.Get <int>(0) == 1; if (condition) { runtime.ExecuteSubroutine(";"); runtime.SkipSubroutine(";"); } else { runtime.SkipSubroutine(";"); runtime.ExecuteSubroutine(";"); } return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var iterations = arguments.Get <int>(0); var pos = runtime.Tokens.Position; for (int i = 0; i < iterations; i++) { runtime.Tokens.Position = pos; runtime.ExecuteSubroutine(";"); } return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var condition = arguments.Get <int>(0); var pos = runtime.Tokens.Position; while (condition != 0) { runtime.Tokens.Position = pos; runtime.ExecuteSubroutine(";"); condition = (int)Convert.ChangeType(runtime.Stack.Pop(), typeof(int)); } return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var iterations = (int)Convert.ChangeType(runtime.Stack.Peek(), typeof(int)); var pos = runtime.Tokens.Position; for (int i = 0; i < iterations; i++) { runtime.Tokens.Position = pos; runtime.Stack.Push(i); runtime.ExecuteSubroutine(";"); } return(null); }