Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }