public final void dotted_name() throws RecognitionException {
		try {
			// Python.g:235:13: ( NAME ( DOT NAME )* )
			// Python.g:235:15: NAME ( DOT NAME )*
			{
			match(input,NAME,FOLLOW_NAME_in_dotted_name1717); if (state.failed) return;
			// Python.g:235:20: ( DOT NAME )*
			loop47:
			while (true) {
				int alt47=2;
				int LA47_0 = input.LA(1);
				if ( (LA47_0==DOT) ) {
					alt47=1;
				}

				switch (alt47) {
				case 1 :
					// Python.g:235:21: DOT NAME
					{
					match(input,DOT,FOLLOW_DOT_in_dotted_name1720); if (state.failed) return;
					match(input,NAME,FOLLOW_NAME_in_dotted_name1722); if (state.failed) return;
					}
					break;

				default :
					break loop47;
				}
			}

			}

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