public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var a = arguments.Get <object>(0); var b = arguments.Get <object>(1); return(new object[] { a.Equals(b) ? 1 : 0 }); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var a = arguments.Get <double>(0); var b = arguments.Get <double>(1); return(new object[] { a - b }); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var probability = arguments.Get <double>(0); var randNumber = random.NextDouble(); return(new object[] { randNumber <= probability ? 1 : 0 }); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var sleepTime = arguments.Get <double>(0); Thread.Sleep((int)(sleepTime * 1000)); return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { foreach (var value in runtime.Stack.PopAll()) { Console.WriteLine(value.ToString()); } return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var key = arguments.Get <object>(0); var value = arguments.Get <object>(1); runtime.Register[key] = value; return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { int valueIndex = arguments.Get <int>(0); var value = runtime.Stack.PeekAt(valueIndex); runtime.Stack.Push(value); return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var index = arguments.Get <int>(0); var temp = runtime.Stack[index]; runtime.Stack[index] = runtime.Stack[index + 1]; runtime.Stack[index + 1] = temp; return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { int count = arguments.Get <int>(0); var copy = new object[count]; for (int i = 0; i < count; i++) { copy[count - 1 - i] = runtime.Stack[i]; } return(copy); }
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 str = arguments.Get <string>(0); var matches = formatRegex.Matches(str); var formatPatterns = new SortedList <int, string>(); var formatArguments = new object[matches.Count]; foreach (Match match in matches) { var pattern = match.Groups[1].Value; int index; if (pattern.StartsWith(PeekPattern)) { index = int.Parse(pattern.Substring(1)); } else { index = int.Parse(pattern); } if (!formatPatterns.ContainsKey(index)) { formatPatterns.Add(index, pattern); } } for (int i = formatPatterns.Count - 1; i >= 0; i--) { var pattern = formatPatterns[i]; var peek = pattern.StartsWith(PeekPattern); int index = int.Parse(peek ? pattern.Substring(1) : pattern); formatArguments[index] = peek ? runtime.Stack[index] : runtime.Stack.PopAt(index); } str = formatRegex.Replace(str, "{$2}"); var formatted = string.Format(str, formatArguments); return(new object[] { formatted }); }
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); }
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 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 key = arguments.Get <object>(0); return(new[] { runtime.Register[key] }); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { return(new object[] { arguments.Get <double>(0) * arguments.Get <double>(1) }); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { runtime.Stack.Pop(); return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { return(new object[] { (int)Convert.ChangeType(runtime.Stack.Peek(), typeof(int)) }); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { Console.Clear(); return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { Console.Write(arguments.Get <string>(0)); return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { Console.WriteLine(runtime.Stack.Peek()); return(null); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { var arg = arguments.Get <int>(0); return(new object[] { -arg }); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) { return(new object[] { runtime.Stack.Count }); }
public override object[] Execute(Arguments arguments, LynxRuntime runtime) => new[] { Console.ReadLine() };