public CGILInvocationExpressionOperation(int indent, VisitorCLRCodeGeneration <T> visitor,
                                          T codeGenerator, InvocationExpression node,
                                          InheritedAttributes inheritedAttributes, InheritedAttributes objInv, object objArgs)
 {
     this.indent              = indent;
     this.visitor             = visitor;
     this.codeGenerator       = codeGenerator;
     this.node                = node;
     this.inheritedAttributes = inheritedAttributes; // ia simple alias for briefing
     this.objInv              = objInv;
     this.objArgs             = objArgs;
 }
コード例 #2
0
        public CGILMethodInvocationOperation(int indent, VisitorCLRCodeGeneration <T> visitor,
                                             T codeGenerator, InvocationExpression node,
                                             InheritedAttributes inheritedAttributes, object objArgs, InheritedAttributes objInv)
        {
            this.indent                  = indent;
            this.codeGenerator           = codeGenerator;
            this.visitor                 = visitor;
            this.node                    = node;
            this.inheritedAttributes     = inheritedAttributes;
            this.objArgs                 = objArgs;
            this.objInv                  = objInv;
            this.endLabel                = this.codeGenerator.NewLabel + "_END_LABEL";
            this.nonValidObjectsLabel    = this.codeGenerator.NewLabel + "_NON_VALID_OBJECT_CALLS";
            this.reflectionLabel         = this.codeGenerator.NewLabel + "_REFLECTION_CALLS";
            this.areThereNonValidObjects = false;
            this.hasTypeVariable         = false;
            this.firstTime               = true;
            FieldAccessExpression fieldAccessExpression = node.Identifier as FieldAccessExpression;

            this.nonValidObjectsList = (List <TypeExpression>)fieldAccessExpression.Expression.ExpressionType.AcceptOperation(new CGPlainTypeExpressionOperation(), null);
        }