AjTalk.Tests.Compilers.Vm.BytecodeCompilerTests.CompileSimpleArithmeticWithParenthesis C# (CSharp) Метод

CompileSimpleArithmeticWithParenthesis() приватный Метод

private CompileSimpleArithmeticWithParenthesis ( ) : void
Результат void
        public void CompileSimpleArithmeticWithParenthesis()
        {
            ModelParser parser = new ModelParser("1 * (2 + 3)");
            IExpression expr = parser.ParseExpression();
            this.compiler.CompileExpression(expr);
            Assert.IsNotNull(this.block);
            Assert.AreEqual(5, this.block.NoConstants);
            Assert.AreEqual(0, this.block.NoLocals);
            Assert.IsNotNull(this.block.ByteCodes);
            Assert.AreEqual(12, this.block.ByteCodes.Length);
            Assert.AreEqual(0, this.block.Arity);
            BlockDecompiler decompiler = new BlockDecompiler(this.block);
            var program = decompiler.Decompile();
            Assert.IsNotNull(program);
            Assert.AreEqual(5, program.Count);
            Assert.AreEqual("GetConstant 1", program[0]);
            Assert.AreEqual("GetConstant 2", program[1]);
            Assert.AreEqual("GetConstant 3", program[2]);
            Assert.AreEqual("Send + 1", program[3]);
            Assert.AreEqual("Send * 1", program[4]);
        }