private PreFixExpression create()
        {
            Operator          o = (Operator)items.Pop().Token;
            NumericExpression f;
            NumericExpression s;

            if (items.Peek().IsValue)
            {
                f = new NumericExpression(items.Pop().Value);
            }
            else
            {
                f = create();
            }

            if (items.Peek().IsValue)
            {
                s = new NumericExpression(items.Pop().Value);
            }
            else
            {
                s = create();
            }

            PreFixExpression p = new PreFixExpression(o, f, s);

            return(p);
        }
        public PreFixExpression(Stack <Item> list)
        {
            this.items = list;
            PreFixExpression temp = create();

            this.Operator = temp.Operator;
            this.First    = temp.First;
            this.Second   = temp.Second;
        }
 private PreFixExpression(Operator op, NumericExpression first, NumericExpression second)
 {
     this.Operator = op;
     this.First    = first;
     this.Second   = second;
 }