Execute() private method

private Execute ( Processor processor ) : bool
processor Processor
return bool
Ejemplo n.º 1
0
        //
        //  Execution part of processor
        //
        internal void Execute()
        {
            Debug.Assert(this.actionStack != null);

            while (this.execResult == ExecResult.Continue)
            {
                ActionFrame frame = (ActionFrame)this.actionStack.Peek();

                if (frame == null)
                {
                    Debug.Assert(this.builder != null);
                    this.builder.TheEnd();
                    ExecutionResult = ExecResult.Done;
                    break;
                }

                // Execute the action which was on the top of the stack
                if (frame.Execute(this))
                {
                    this.actionStack.Pop();
                }
            }

            if (this.execResult == ExecResult.Interrupt)
            {
                this.execResult = ExecResult.Continue;
            }
        }