/
githubmirror
/
PowerShell
Обзор
Документация
Войти
/
githubmirror
/
PowerShell
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/System.Management.Automation/engine/interpreter/StackOperations.cs
113 строк
3 KB
Dongbo Wang
Revert some of the interpolated string changes (#19018)
25 янв 2023, 20:46
Не верифицирован
25 янв 2023, 20:46
b195088
Код
Авторство
О чём код?
/* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Apache License, Version 2.0. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Apache License, Version 2.0, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Apache License, Version 2.0. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Collections.Generic; using System.Globalization; namespace System.Management.Automation.Interpreter { internal sealed class LoadObjectInstruction : Instruction { private readonly object _value; internal LoadObjectInstruction(object value) { _value = value; } public override int ProducedStack { get { return 1; } } public override int Run(InterpretedFrame frame) { frame.Data[frame.StackIndex++] = _value; return +1; } public override string ToString() { return "LoadObject(" + (_value ?? "null") + ")"; } } internal sealed class LoadCachedObjectInstruction : Instruction { private readonly uint _index; internal LoadCachedObjectInstruction(uint index) { _index = index; } public override int ProducedStack { get { return 1; } } public override int Run(InterpretedFrame frame) { frame.Data[frame.StackIndex++] = frame.Interpreter._objects[_index]; return +1; } public override string ToDebugString(int instructionIndex, object cookie, Func<int, int> labelIndexer, IList<object> objects) { return string.Format(CultureInfo.InvariantCulture, "LoadCached({0}: {1})", _index, objects[(int)_index]); } public override string ToString() { return "LoadCached(" + _index + ")"; } } internal sealed class PopInstruction : Instruction { internal static readonly PopInstruction Instance = new PopInstruction(); private PopInstruction() { } public override int ConsumedStack { get { return 1; } } public override int Run(InterpretedFrame frame) { frame.Pop(); return +1; } public override string ToString() { return "Pop()"; } } internal sealed class DupInstruction : Instruction { internal static readonly DupInstruction Instance = new DupInstruction(); private DupInstruction() { } public override int ConsumedStack { get { return 0; } } public override int ProducedStack { get { return 1; } } public override int Run(InterpretedFrame frame) { frame.Data[frame.StackIndex++] = frame.Peek(); return +1; } public override string ToString() { return "Dup()"; } } }