// // public Expression Eval(List <Token> ops) { foreach (var op in ops) { CurrentDialect.GetAction(op)(op); } //Console.ReadKey(); //Console.WriteLine(); if (ExprStack.Count == 0) { return(null); } //else #if DEBUG_EXPRESSION_PARSING Debug.WriteLine("EvalStack Dump"); Debug.WriteLine("----------------"); foreach (var op in ExprStack) { Debug.Write(op.ToString()); Debug.Write("\t\t\t"); Debug.Write(op.NodeKind); Debug.Write(" : "); Debug.WriteLine(op.NodeKind); } Debug.WriteLine(""); #endif Expression expr = ExprStack.Pop(); return(expr); }
// void ParseLine() { while (CurrentToken != null) { Token tok = CurrentToken; TokenAction action = CurrentDialect.GetAction(tok); action(tok); } }