Exemple #1
0
        //
        //
        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);
        }
Exemple #2
0
 //
 void ParseLine()
 {
     while (CurrentToken != null)
     {
         Token       tok    = CurrentToken;
         TokenAction action = CurrentDialect.GetAction(tok);
         action(tok);
     }
 }