public void Execute(ExecutionEnvironment env)
 {
     if (env.PopNumber() == 1)
     {
         env.SetEnumerator(_trueBlock.GetEnumerator());
     }
     else
     {
         env.SetEnumerator(_falseBlock.GetEnumerator());
     }
 }
							stackVariable103.set_Item(stackVariable107, new VariableDefinition(String.Concat("exception_", V_4.ToString()), Utilities.GetCorlibTypeReference(Type.GetTypeFromHandle(// 
							// Current member / type: System.Void Telerik.JustDecompiler.Decompiler.DefineUseAnalysis.StackUsageAnalysis::AnalyzeStackUsage()
							// Exception in: System.Void AnalyzeStackUsage()
							// Specified method is not supported.
							// 
							// mailto: [email protected]


		private void ComputeStackUsage(InstructionBlock block)
		{
			V_0 = new List<int>(this.blockToInitialStackMap[block.get_Index()]);
			V_1 = block.GetEnumerator();
			try
			{
				while (V_1.MoveNext())
				{
					V_2 = V_1.get_Current();
					if (V_2.get_OpCode().get_Code() != 36)
					{
						V_3 = this.GetPopDelta(V_0.get_Count(), V_2);
						V_4 = this.GetPushDelta(V_2);
						V_5 = new List<int>();
						V_7 = 0;
						while ((long)V_7 < (ulong)V_3)
						{
							V_8 = V_0.get_Count() - 1;
							V_5.Add(V_0.get_Item(V_8));
							V_0.RemoveAt(V_8);
							V_7 = V_7 + 1;
						}
						if (V_4 > 0)
						{
							dummyVar0 = this.stackVariableInstructionsSet.Add(V_2.get_Offset());
						}
						V_9 = 0;
						while ((long)V_9 < (ulong)V_4)
						{
							V_0.Add(V_2.get_Offset());
							V_9 = V_9 + 1;
						}
						this.instructionOffsetToUsedInstructionsMap.set_Item(V_2.get_Offset(), new Stack<int>(V_5));
					}
					else
					{
						if (V_0.get_Count() == 0)
						{
							throw new Exception("Invalid evaluation stack");
						}
						V_0.Add(V_0.get_Item(V_0.get_Count() - 1));
					}
				}
			}
			finally
			{
				if (V_1 != null)
				{
					V_1.Dispose();
				}
			}
			this.blockToExitStackMap[block.get_Index()] = V_0.ToArray();
			return;
		}
        public void Compile(System.IO.Stream commands)
        {
            _currentBlock = _entryBlock;

            var lexer     = new Lexer(commands);
            var cmdReader = new CommandReader(lexer, this);

            cmdReader.GetCommandList();

            var exEnv = new ExecutionEnvironment(_entryBlock.GetEnumerator());

            exEnv.Execute();
            Output = exEnv.Output;
        }
 public void Execute(ExecutionEnvironment env) => env.SetEnumerator(_targetBlock.GetEnumerator());