Example #1
0
        public void AmbiguityGrammarErrorTest()
        {
            CompilationErrorManager em = new CompilationErrorManager();

            AmbiguityParser parser = new AmbiguityParser(em);

            const string input = "a<b>>c;";

            var result = parser.Parse(input);

            var r = result.First() as AmbiguityStatementNode;

            Assert.IsNotNull(r);
            Assert.AreEqual(1, em.Errors.Count);
        }
Example #2
0
        public void AmbiguityGrammarAggregationTest()
        {
            CompilationErrorManager em = new CompilationErrorManager();

            AmbiguityParser parser = new AmbiguityParser(em);

            const string input = "a<b>c;a<b>c;a<b>c;a<b>c;a<b>c;";

            var result = parser.Parse(input);
            var resarr = result.ToArray();

            Assert.AreEqual(5, resarr.Length);

            foreach (var r in resarr)
            {
                var ambStat = r as AmbiguityStatementNode;

                Assert.IsNotNull(ambStat);

                VarDeclStatementNode vardecl = ambStat.s1 as VarDeclStatementNode;
                if (vardecl == null)
                {
                    vardecl = ambStat.s2 as VarDeclStatementNode;
                }

                Assert.IsNotNull(vardecl);

                ExpressionStatementNode expstat = ambStat.s1 as ExpressionStatementNode;
                if (expstat == null)
                {
                    expstat = ambStat.s2 as ExpressionStatementNode;
                }

                Assert.IsNotNull(expstat);
            }
        }