public final void with_stmt() throws RecognitionException {
		try {
			// Python.g:274:10: ( 'with' test ( with_var )? COLON suite )
			// Python.g:274:12: 'with' test ( with_var )? COLON suite
			{
			match(input,96,FOLLOW_96_in_with_stmt2191); if (state.failed) return;
			pushFollow(FOLLOW_test_in_with_stmt2193);
			test();
			state._fsp--;
			if (state.failed) return;
			// Python.g:274:24: ( with_var )?
			int alt61=2;
			int LA61_0 = input.LA(1);
			if ( (LA61_0==NAME||LA61_0==70) ) {
				alt61=1;
			}
			switch (alt61) {
				case 1 :
					// Python.g:274:25: with_var
					{
					pushFollow(FOLLOW_with_var_in_with_stmt2196);
					with_var();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}

			match(input,COLON,FOLLOW_COLON_in_with_stmt2200); if (state.failed) return;
			pushFollow(FOLLOW_suite_in_with_stmt2202);
			suite();
			state._fsp--;
			if (state.failed) return;
			}

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