/* public AssignmentNode(object value)
        {
            this.value = value;
        }
        */

        public AssignmentNode(VariableTable variables, Node arg1, Node arg2)
        {
            this.variables = variables;
            this.arg1 = arg1;
            this.arg2 = arg2;
        }
 /// <summary>
 /// Creates a Node containing the specified Operator and argument.
 /// This will automatically mark this Node as a TYPE_EXPRESSION
 /// </summary>
 /// <param name="parser"></param>
 /// <param name="op">the string representing an operator</param>
 /// <param name="arg1">the argument to the specified operator</param>
 internal OperatorNode(Operator op, Node arg1)
 {
     _arg1 = arg1;
     _operator = op;
 }
        //public ExpressionParser(GetVarTypeDelegate getVarTypeDelegate, GetVarValueDelegate getVarValueDelegate) : this()
        //{
        //    _GetVarTypeDelegate = getVarTypeDelegate;
        //    _GetVarValueDelegate = getVarValueDelegate;
        //}

        public void ParseExpression(string expression)
        {
            this.expression = expression;
            _Tree = ParseNodeTree(expression);
        }
 /// <summary>
 /// Creates a Node containing the specified Operator and arguments.
 /// This will automatically mark this Node as a TYPE_EXPRESSION
 /// </summary>
 /// <param name="parser"></param>
 /// <param name="op">the string representing an operator</param>
 /// <param name="arg1">the first argument to the specified operator</param>
 /// <param name="arg2">the second argument to the specified operator</param>
 internal OperatorNode(Operator op, Node arg1, Node arg2)
 {
     _arg1 = arg1;
     _arg2 = arg2;
     _operator = op;
 }