コード例 #1
0
        public void TestArrayInit()
        {
            Parser p = new Parser();
            var text = @"
            class Program:
            private int[10] a
            private int i
            public static int Main():
            a = {21, 21, 21, 21, 2}

            ";
            var res = p.Parse(text);
            Assert.IsTrue(res);

            var testVisitor = new TestAstValidVisitor();
            res = testVisitor.TestTree(p.GetRootNode());
            Assert.IsTrue(res);
        }
コード例 #2
0
        public void TestAssignment()
        {
            Parser p = new Parser();
            var text = @"
            class Program:
            private int temp
            private int i
            private bool c
            public static int Main():
            i = 0
            c = false
            temp = i
            return temp

            ";
            var res = p.Parse(text);
            Assert.IsTrue(res);

            var testVisitor = new TestAstValidVisitor();
            res = testVisitor.TestTree(p.GetRootNode());
            Assert.IsTrue(res);
        }
コード例 #3
0
        public void TestComparison()
        {
            Parser p = new Parser();
            var text = @"
            class Program:
            private int temp
            private bool test

            public static int Main():
            while (temp < 5):
            Console.WriteInt(10)
            return 0

            ";
            var res = p.Parse(text);
            Assert.IsTrue(res);

            var testVisitor = new TestAstValidVisitor();
            res = testVisitor.TestTree(p.GetRootNode());
            Assert.IsTrue(res);
        }
コード例 #4
0
        public void TestStringFunc()
        {
            Parser p = new Parser();
            var text = @"
            class Program:
            private string s

            public static int Main(string arg):
            Main(""hello, world!"")
            return 0

            ";
            var res = p.Parse(text);
            Assert.IsTrue(res);

            var testVisitor = new TestAstValidVisitor();
            res = testVisitor.TestTree(p.GetRootNode());
            Assert.IsTrue(res);
        }
コード例 #5
0
        public void TestMustWorkTest()
        {
            Parser p = new Parser();
            var text = @"
            class Program:
            private int temp

            public static int Main():
            if ( true) :
            Console.WriteInt(temp)
            return 0

            ";
            var res = p.Parse(text);
            Assert.IsTrue(res);

            var testVisitor = new TestAstValidVisitor();
            res = testVisitor.TestTree(p.GetRootNode());
            Assert.IsTrue(res);
        }
コード例 #6
0
        public void TestMath()
        {
            Parser p = new Parser();
            var text = @"
            class Program:
            private int a
            private int i
            public static int Main():
            a = 0
            i = 1 + a
            return i
            ";
            var res = p.Parse(text);
            Assert.IsTrue(res);

            var testVisitor = new TestAstValidVisitor();
            res = testVisitor.TestTree(p.GetRootNode());
            Assert.IsTrue(res);
        }
コード例 #7
0
        public void TestFunctions()
        {
            Parser p = new Parser();
            var text = @"
            class Program:
            private int a
            public static int Main():
            a = foo(2)
            return a
            private int foo(int i):
            return i

            ";
            var res = p.Parse(text);
            Assert.IsTrue(res);

            var testVisitor = new TestAstValidVisitor();
            res = testVisitor.TestTree(p.GetRootNode());
            Assert.IsTrue(res);
        }
コード例 #8
0
        public void TestConditions()
        {
            Parser p = new Parser();
            var text = @"
            class Program:
            private int a
            private int i
            public static int Main():
            if (true && false):
            if (false && !true && true):
                if (false && !true && true):
                    if(!true && true || false ):
                        if(!true && Console.ReadBool() || false):
                            return c
            ";
            var res = p.Parse(text);
            Assert.IsTrue(res);

            var testVisitor = new TestAstValidVisitor();
            res = testVisitor.TestTree(p.GetRootNode());
            Assert.IsTrue(res);
        }