示例#1
0
        public void TestGrammarWithConflicts4_DoesntHaveErrors()
        {
            var grammar = new ConflictResolutionTestGrammar4();
            var parser  = new Parser(grammar);

            Assert.IsTrue(parser.Language.Errors.Count == 0);
        }
示例#2
0
        public void TestGrammarWithConflicts4_CanParseFieldList()
        {
            var grammar = new ConflictResolutionTestGrammar4();
            var parser  = new Parser(grammar);
            var sample  = FieldListSample;
            var tree    = parser.Parse(sample);

            Assert.IsNotNull(tree);
            Assert.IsFalse(tree.HasErrors());

            Assert.IsNotNull(tree.Root);
            var term = tree.Root.Term as NonTerminal;

            Assert.IsNotNull(term);
            Assert.AreEqual("StatementList", term.Name);

            Assert.AreEqual(2, tree.Root.ChildNodes.Count);
            var nodes = tree.Root.ChildNodes.Select(t => t.FirstChild).ToArray();

            Assert.AreEqual("fieldDef", nodes[0].Term.Name);
            Assert.AreEqual("fieldDef", nodes[1].Term.Name);
        }