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); }
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); } }