/// <summary> /// Pushes the parameters of a new declaration site into a new scope in the symbol table. /// </summary> /// <param name="parameters">Parameters of the declaration site.</param> protected override void Push(IEnumerable <ParameterExpression> parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } _symbolTable.Push(); foreach (var parameter in parameters) { _symbolTable.Add(parameter, GetState(parameter)); } }
private void PushCore(IEnumerable <KeyValuePair <ParameterExpression, TState> > scope) { _symbolTable.Push(); foreach (var entry in scope) { _symbolTable.Add(entry.Key, entry.Value); } }