AjTalk.Tests.Compiler.SimpleCompilerTests.CompileWhileTrue C# (CSharp) Method

CompileWhileTrue() private method

private CompileWhileTrue ( ) : void
return void
        public void CompileWhileTrue()
        {
            Block block = this.compiler.CompileBlock(":arg | [arg < 3] whileTrue: [arg := arg + 1]");
            Assert.IsNotNull(block);
            Assert.AreEqual(13, block.Bytecodes.Length);
            var decompiler = new BlockDecompiler(block);
            var steps = decompiler.Decompile();
            Assert.IsNotNull(steps);
            Assert.AreEqual(7, steps.Count);
            Assert.AreEqual("GetBlock { GetArgument arg; GetConstant 3; Send < 1 }", steps[0]);
            Assert.AreEqual("Value", steps[1]);
            Assert.AreEqual("JumpIfFalse 13", steps[2]);
            Assert.AreEqual("GetBlock { GetArgument arg; GetConstant 1; Send + 1; SetArgument arg }", steps[3]);
            Assert.AreEqual("Value", steps[4]);
            Assert.AreEqual("Pop", steps[5]);
            Assert.AreEqual("Jump 0", steps[6]);
        }
SimpleCompilerTests