public final FunctionTypeDec parametersDecl() throws RecognitionException {
        FunctionTypeDec dec = null;


        try {
            // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclTypedAST.g:288:8: ( ^( PDECS ( parameterDecl[dec] )+ ) )
            // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclTypedAST.g:289:8: ^( PDECS ( parameterDecl[dec] )+ )
            {
            dec = new FunctionTypeDec();

            match(input,PDECS,FOLLOW_PDECS_in_parametersDecl471); 

            match(input, Token.DOWN, null); 
            // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclTypedAST.g:290:16: ( parameterDecl[dec] )+
            int cnt8=0;
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( (LA8_0==39||LA8_0==41||LA8_0==43) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // C:\\Users\\pc\\Desktop\\IPL\\ew\\JPocl\\JPoclTypedAST.g:290:16: parameterDecl[dec]
            	    {
            	    pushFollow(FOLLOW_parameterDecl_in_parametersDecl473);
            	    parameterDecl(dec);

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    if ( cnt8 >= 1 ) break loop8;
                        EarlyExitException eee =
                            new EarlyExitException(8, input);
                        throw eee;
                }
                cnt8++;
            } while (true);


            match(input, Token.UP, null); 


            }

        }

        catch (RecognitionException re) {
        	reportError(re);
        }

        finally {
        	// do for sure before leaving
        }
        return dec;
    }