public final void funcdef() throws RecognitionException {
		try {
			// Python.g:96:9: ( ( decorators )? 'def' NAME parameters COLON suite )
			// Python.g:96:11: ( decorators )? 'def' NAME parameters COLON suite
			{
			// Python.g:96:11: ( decorators )?
			int alt9=2;
			int LA9_0 = input.LA(1);
			if ( (LA9_0==AT) ) {
				alt9=1;
			}
			switch (alt9) {
				case 1 :
					// Python.g:96:11: decorators
					{
					pushFollow(FOLLOW_decorators_in_funcdef233);
					decorators();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}

			match(input,75,FOLLOW_75_in_funcdef236); if (state.failed) return;
			match(input,NAME,FOLLOW_NAME_in_funcdef238); if (state.failed) return;
			pushFollow(FOLLOW_parameters_in_funcdef240);
			parameters();
			state._fsp--;
			if (state.failed) return;
			match(input,COLON,FOLLOW_COLON_in_funcdef242); if (state.failed) return;
			pushFollow(FOLLOW_suite_in_funcdef244);
			suite();
			state._fsp--;
			if (state.failed) return;
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}