public IDisposable PushArguments(VarDefinitionStmt[] arguments, Value[] values) { var scopePopper = PushScope(); try { for (var i = 0; i < arguments.Length; i++) { _scope.DefineIdentifier(arguments[i].Name.Name, values[i]); } } catch (Exception) { scopePopper.Dispose(); throw; } return scopePopper; }
public Value(Value value) { _value = value._value; _type = value._type; }
private Identifier(bool unused) : this() { _isDefined = false; _value = null; }
public Identifier(Value value) { _value = value; _isDefined = true; }
public void DefineIdentifier(string name, Value value) { _scope.DefineIdentifier(name, value); }
public void DefineIdentifier(string name, Value value) { if (_values.ContainsKey(name)) throw new IdentifierAlreadyDefinedException(name); _values.Add(name, new Identifier(value)); }