public final void argument() throws RecognitionException {
		try {
			// Python.g:416:10: ( test ( ( ASSIGN test ) | gen_for )? )
			// Python.g:416:12: test ( ( ASSIGN test ) | gen_for )?
			{
			pushFollow(FOLLOW_test_in_argument3710);
			test();
			state._fsp--;
			if (state.failed) return;
			// Python.g:416:17: ( ( ASSIGN test ) | gen_for )?
			int alt119=3;
			int LA119_0 = input.LA(1);
			if ( (LA119_0==ASSIGN) ) {
				alt119=1;
			}
			else if ( (LA119_0==82) ) {
				alt119=2;
			}
			switch (alt119) {
				case 1 :
					// Python.g:416:19: ( ASSIGN test )
					{
					// Python.g:416:19: ( ASSIGN test )
					// Python.g:416:20: ASSIGN test
					{
					match(input,ASSIGN,FOLLOW_ASSIGN_in_argument3715); if (state.failed) return;
					pushFollow(FOLLOW_test_in_argument3717);
					test();
					state._fsp--;
					if (state.failed) return;
					}

					}
					break;
				case 2 :
					// Python.g:416:35: gen_for
					{
					pushFollow(FOLLOW_gen_for_in_argument3722);
					gen_for();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}

			}

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