public static DaisyAst Parse(string code) { var llstream = new LookAheadStream <Token>(new Lexer(code.ToStream()).Lex()); var parser = new DaisyParser(llstream); return(parser.Parse()); }
public void ItDiesOnIllegalStatements(string code) { var llstream = new LookAheadStream<Token>(new Lexer(code.ToStream()).Lex()); var parser = new DaisyParser(llstream); try { parser.Parse(); } catch (Exception) { //throw; return; } Assert.Fail("Expected " + code + " to not parse"); }
public static DaisyAst Parse(string code) { var llstream = new LookAheadStream<Token>(new Lexer(code.ToStream()).Lex()); var parser = new DaisyParser(llstream); return parser.Parse(); }
public void ItParsesLanguages(string code, string expectedTree) { var llstream = new LookAheadStream<Token>(new Lexer(code.ToStream()).Lex()); var parser = new DaisyParser(llstream); var tree = parser.Parse(); Assert.IsNotNull(tree); var actualTree = DaisyAstPrinter.Print(tree.Root); if(expectedTree != actualTree) { Console.WriteLine(expectedTree); Console.WriteLine("----------------"); Console.WriteLine(actualTree); } Assert.AreEqual(expectedTree, actualTree); }