Esempio n. 1
0
File: Parser.cs Progetto: tomoki/Umi
 public Node Parse(Lexer lexer)
 {
     ShowDebugMessage("Parse Called");
     //Lexerをセット
     lex = lexer;
     //最初のトークンを読み込む
     GetToken();
     //プログラムをパースしはじめる
     return ParseProgram();
 }
Esempio n. 2
0
File: Parser.cs Progetto: tomoki/Umi
 //すべてパース、実行する。
 //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;
 }