Exemplo n.º 1
0
        internal ActivationRecordBuilder BuildActivationRecord()
        {
            ActivationRecordBuilder activationRecordBuilder = new ActivationRecordBuilder();

            this.AcceptInternal((ParseTreeVisitor)activationRecordBuilder, true);
            return(activationRecordBuilder);
        }
Exemplo n.º 2
0
        internal ScriptBlockNode(
            ParameterDeclarationNode parameterDeclaration,
            ParseTreeNode body,
            bool isFilter,
            List <AttributeNode> attributes,
            List <Token> helpComments,
            List <List <Token> > parameterComments)
        {
            this._parameterDeclarationNode = parameterDeclaration;
            if (isFilter)
            {
                this._process = body;
            }
            else
            {
                this._end = body;
            }
            this._isFilter          = isFilter;
            this._attributes        = attributes;
            this._helpComments      = helpComments;
            this._parameterComments = parameterComments;
            ActivationRecordBuilder activationRecordBuilder = this.BuildActivationRecord();

            this._pipelineSlots         = activationRecordBuilder.PipelineSlots;
            this._variableSlots         = activationRecordBuilder.VariableSlots;
            this.ValidAttributeArgument = true;
        }
Exemplo n.º 3
0
        internal object Execute(ParseTreeNode ptn, Array input)
        {
            object obj = (object)AutomationNull.Value;
            ActivationRecordBuilder activationRecordBuilder = new ActivationRecordBuilder();

            ptn.Accept((ParseTreeVisitor)activationRecordBuilder);
            ActivationRecord activationRecord = this._context.EngineSessionState.CurrentActivationRecord;

            try
            {
                this._context.EngineSessionState.CurrentActivationRecord = new ActivationRecord(activationRecordBuilder.PipelineSlots, activationRecordBuilder.VariableSlots, this._context.EngineSessionState.CurrentScope);
                obj = ptn.Execute(input, this._context);
            }
            catch (FlowControlException ex)
            {
            }
            finally
            {
                this._context.EngineSessionState.CurrentActivationRecord = activationRecord;
            }
            return(obj);
        }
Exemplo n.º 4
0
        internal ExceptionHandlerNode(
            Token token,
            ExceptionTypeList exceptionTypeList,
            ParseTreeNode body,
            bool isCatchBlock)
        {
            this.NodeToken       = token;
            this._exceptionTypes = exceptionTypeList;
            this._isCatchBlock   = isCatchBlock;
            this._body           = body;
            ActivationRecordBuilder activationRecordBuilder = new ActivationRecordBuilder();

            if (this._body != null)
            {
                this._body.Accept((ParseTreeVisitor)activationRecordBuilder);
                this._pipelineSlots = activationRecordBuilder.PipelineSlots;
                this._variableSlots = activationRecordBuilder.VariableSlots;
            }
            else
            {
                this._pipelineSlots = 0;
                this._variableSlots = 0;
            }
        }
Exemplo n.º 5
0
        internal ScriptBlockNode(
            ParameterDeclarationNode parameterDeclaration,
            ParseTreeNode begin,
            ParseTreeNode process,
            ParseTreeNode end,
            ParseTreeNode dynamicParams,
            List <AttributeNode> attributes,
            List <Token> helpComments,
            List <List <Token> > parameterComments)
        {
            this._parameterDeclarationNode = parameterDeclaration;
            this._begin             = begin;
            this._process           = process;
            this._end               = end;
            this._dynamicParams     = dynamicParams;
            this._attributes        = attributes;
            this._helpComments      = helpComments;
            this._parameterComments = parameterComments;
            ActivationRecordBuilder activationRecordBuilder = this.BuildActivationRecord();

            this._pipelineSlots         = activationRecordBuilder.PipelineSlots;
            this._variableSlots         = activationRecordBuilder.VariableSlots;
            this.ValidAttributeArgument = true;
        }