/// <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(); } }
/// <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); }