Exemplo n.º 1
0
 public void DeclareParameters(INodeWithParameters method, IParameter[] parameters, int parameterIndexDelta)
 {
     for (int i = 0; i < parameters.Length; ++i)
     {
         IParameter p      = parameters[i];
         int        pIndex = parameterIndexDelta + i;
         method.Parameters.Add(
             CreateParameterDeclaration(pIndex,
                                        string.IsNullOrEmpty(p.Name) ? "arg" + pIndex : p.Name,
                                        p.Type,
                                        p.IsByRef));
     }
 }
Exemplo n.º 2
0
        void CheckExplicitParametersType(TypeMember node)
        {
            INodeWithParameters @params = node as INodeWithParameters;

            if (null == @params)
            {
                return;
            }

            foreach (ParameterDeclaration p in @params.Parameters)
            {
                if (null == p.Type)
                {
                    Warnings.Add(CompilerWarningFactory.VisibleMemberDoesNotDeclareTypeExplicitely(node, p.Name));
                }
            }
        }
Exemplo n.º 3
0
 public void BindParameterDeclarations(bool isStatic, INodeWithParameters node)
 {
     // arg0 is the this pointer when member is not static
     int delta = isStatic ? 0 : 1;
     ParameterDeclarationCollection parameters = node.Parameters;
     for (int i=0; i<parameters.Count; ++i)
     {
         ParameterDeclaration parameter = parameters[i];
         if (null == parameter.Type)
         {
             if (parameter.IsParamArray)
             {
                 parameter.Type = CreateTypeReference(TypeSystemServices.ObjectArrayType);
             }
             else
             {
                 parameter.Type = CreateTypeReference(TypeSystemServices.ObjectType);
             }
         }
         parameter.Entity = new InternalParameter(parameter, i + delta);
     }
 }
Exemplo n.º 4
0
        public void BindParameterDeclarations(bool isStatic, INodeWithParameters node)
        {
            // arg0 is the this pointer when member is not static
            int delta = isStatic ? 0 : 1;
            ParameterDeclarationCollection parameters = node.Parameters;

            for (int i = 0; i < parameters.Count; ++i)
            {
                ParameterDeclaration parameter = parameters[i];
                if (null == parameter.Type)
                {
                    if (parameter.IsParamArray)
                    {
                        parameter.Type = CreateTypeReference(TypeSystemServices.ObjectArrayType);
                    }
                    else
                    {
                        parameter.Type = CreateTypeReference(TypeSystemServices.ObjectType);
                    }
                }
                parameter.Entity = new InternalParameter(parameter, i + delta);
            }
        }
Exemplo n.º 5
0
 public void BindParameterDeclarations(bool isStatic, INodeWithParameters node)
 {
     // arg0 is the this pointer when member is not static
     int delta = isStatic ? 0 : 1;
     ParameterDeclarationCollection parameters = node.Parameters;
     int last = parameters.Count - 1;
     for (int i=0; i<parameters.Count; ++i)
     {
         ParameterDeclaration parameter = parameters[i];
         if (null == parameter.Type)
         {
             if (last == i && parameters.VariableNumber)
             {
                 parameter.Type = CreateTypeReference(_tss.ObjectArrayType);
             }
             else
             {
                 parameter.Type = CreateTypeReference(_tss.ObjectType);
             }
         }
         parameter.Entity = new InternalParameter(parameter, i + delta);
     }
 }
Exemplo n.º 6
0
        public void BindParameterDeclarations(bool isStatic, INodeWithParameters node)
        {
            // arg0 is the this pointer when member is not static
            int delta = isStatic ? 0 : 1;
            ParameterDeclarationCollection parameters = node.Parameters;
            int last = parameters.Count - 1;

            for (int i = 0; i < parameters.Count; ++i)
            {
                ParameterDeclaration parameter = parameters[i];
                if (null == parameter.Type)
                {
                    if (last == i && parameters.VariableNumber)
                    {
                        parameter.Type = CreateTypeReference(_tss.ObjectArrayType);
                    }
                    else
                    {
                        parameter.Type = CreateTypeReference(_tss.ObjectType);
                    }
                }
                parameter.Entity = new InternalParameter(parameter, i + delta);
            }
        }
Exemplo n.º 7
0
 public void DeclareParameters(INodeWithParameters method, IParameter[] parameters, int parameterIndexDelta)
 {
     for (int i=0; i < parameters.Length; ++i)
     {
         IParameter p = parameters[i];
         int pIndex = parameterIndexDelta + i;
         method.Parameters.Add(
             CreateParameterDeclaration(pIndex,
                 string.IsNullOrEmpty(p.Name) ? "arg"+pIndex : p.Name,
                 p.Type,
                 p.IsByRef));
     }
 }
Exemplo n.º 8
0
 public void DeclareParameters(INodeWithParameters method, IParameter[] parameters)
 {
     DeclareParameters(method, parameters, 0);
 }
Exemplo n.º 9
0
 public void DeclareParameters(INodeWithParameters method, IParameter[] parameters)
 {
     DeclareParameters(method, parameters, 0);
 }
Exemplo n.º 10
0
 public void parameter_declaration_list(INodeWithParameters m)
 {
     try
     {
         this.parameter_declaration(m);
         while (this.LA(1) == 0x43)
         {
             this.match(0x43);
             this.parameter_declaration(m);
         }
     }
     catch (RecognitionException exception)
     {
         if (base.inputState.guessing != 0)
         {
             throw;
         }
         this.reportError(exception);
         this.recover(exception, tokenSet_39_);
     }
 }
Exemplo n.º 11
0
        public void parameter_declaration(INodeWithParameters m)
        {
            try
            {
                TypeReference reference;
                switch (this.LA(1))
                {
                    case 0x63:
                        this.attributes();
                        break;

                    case 12:
                    case 0x10:
                    case 0x21:
                    case 0x3b:
                        break;

                    default:
                        throw new NoViableAltException(this.LT(1), this.getFilename());
                }
                IToken token = this.identifier();
                switch (this.LA(1))
                {
                    case 0x42:
                        this.match(0x42);
                        reference = this.type_reference();
                        break;

                    case 0x40:
                    case 0x43:
                        break;

                    default:
                        throw new NoViableAltException(this.LT(1), this.getFilename());
                }
                if (base.inputState.guessing == 0)
                {
                    ParameterDeclaration declaration;
                    ParameterDeclaration declaration1 = declaration = new ParameterDeclaration(ToLexicalInfo(token));
                    declaration.set_Name(token.getText());
                    declaration.set_Type(reference);
                    ParameterDeclaration node = declaration;
                    m.get_Parameters().Add(node);
                    this.FlushAttributes(node);
                }
            }
            catch (RecognitionException exception)
            {
                if (base.inputState.guessing != 0)
                {
                    throw;
                }
                this.reportError(exception);
                this.recover(exception, tokenSet_18_);
            }
        }