예제 #1
0
 /// <summary>
 /// Removes the definition of a variable from the current scope.
 /// </summary>
 /// <param name="name">The variable name.</param>
 public void UndefineVariable(string name)
 {
     if (_variables != null)
     {
         _variables.Remove(name);
     }
     else if (_variable.Key != null && _variable.Key.Name == name)
     {
         _variable = new VariableDefinitionPair();
     }
 }
예제 #2
0
        /// <summary>
        /// Assigns the value to a variable for the current scope.
        /// </summary>
        /// <param name="variable">The variable.</param>
        /// <param name="value">The value.</param>
        public void DefineVariable(VariableDefinitionExpression variable, ExpressionBase value)
        {
            if (_variables == null)
            {
                if (_variable.Key == null)
                {
                    _variable = new VariableDefinitionPair(variable, value);
                    return;
                }

                _variables = new Dictionary <string, VariableDefinitionPair>();
                _variables.Add(_variable.Key.Name, _variable);
                _variable = new VariableDefinitionPair();
            }

            _variables[variable.Name] = new VariableDefinitionPair(variable, value);
        }