public Node Parse(Lexer lexer) { ShowDebugMessage("Parse Called"); //Lexerをセット lex = lexer; //最初のトークンを読み込む GetToken(); //プログラムをパースしはじめる return ParseProgram(); }
//すべてパース、実行する。 //TODO:ここは分離したほうがいい。 public Node ParseAll(Lexer lexer) { lex = lexer; GetToken(); Node result = null; try{ while(tokenType != TokenType.EOF){ Node node = ParseProgram(); if(node != null){ result = node.eval(); } } }catch (Exception e){ Console.Error.WriteLine(e.Message); } return result; }