public final Consume_until_endContext consume_until_end() throws RecognitionException {
		Consume_until_endContext _localctx = new Consume_until_endContext(_ctx, getState());
		enterRule(_localctx, 40, RULE_consume_until_end);
		int _la;
		try {
			int _alt;
			enterOuterAlt(_localctx, 1);
			{
			setState(321);
			_errHandler.sync(this);
			_alt = getInterpreter().adaptivePredict(_input,33,_ctx);
			while ( _alt!=2 && _alt!=-1 ) {
				if ( _alt==1 ) {
					{
					setState(319);
					switch (_input.LA(1)) {
					case STRING_G:
					case STRING_Q:
					case STRING_D:
					case WS:
					case COMMENT:
					case LINE_COMMENT:
					case EQ:
					case LP:
					case RP:
					case SQ:
					case CO:
					case QO:
					case US:
					case AT:
					case DA:
					case HA:
					case SL:
					case ST:
					case DQ:
					case GR:
					case CL:
					case DO:
					case SP:
					case CA:
					case VB:
					case PL:
					case CONFLICT_START:
					case CONFLICT_END:
					case CONFLICT:
					case ACTION:
					case ADD:
					case ALTER:
					case AS:
					case ASC:
					case AUTO_INC:
					case BIGINT:
					case BINARY:
					case BIT:
					case BTREE:
					case CASCADE:
					case CHARACTER:
					case CHAR:
					case CHECK:
					case COLLATE:
					case COL_FORMAT:
					case COMMIT:
					case CONSTRAINT:
					case CREATE:
					case DATABASE:
					case DECIMAL:
					case DEFAULT:
					case DEFERRABLE:
					case DELETE:
					case DESC:
					case DISK:
					case DOUBLE:
					case DROP:
					case DYNAMIC:
					case ENUM:
					case EXISTS:
					case FIXED:
					case FOREIGN:
					case FULLTEXT:
					case FUNCTION:
					case HASH:
					case IF:
					case IGNORE:
					case INDEX:
					case INSERT:
					case INTEGER:
					case INTO:
					case IS:
					case KEY:
					case KEY_BSIZE:
					case MEMORY:
					case NO:
					case NOT:
					case NULL:
					case NUMERIC:
					case ON:
					case OR:
					case PRECISION:
					case PROCEDURE:
					case PRIMARY:
					case PURGE:
					case REAL:
					case REFERENCES:
					case REPLACE:
					case RESTRICT:
					case SCHEMA:
					case SET:
					case SIGNED:
					case SMALLINT:
					case SPATIAL:
					case STORAGE:
					case TABLE:
					case TEMPORARY:
					case TRIGGER:
					case UNIQUE:
					case UNSIGNED:
					case UPDATE:
					case USE:
					case USING:
					case VALUES:
					case VARBINARY:
					case VARCHAR:
					case VIEW:
					case WHERE:
					case YEAR:
					case ZEROFILL:
					case INT:
					case ID:
					case OTHER:
						{
						setState(316);
						_la = _input.LA(1);
						if ( _la <= 0 || (_la==END) ) {
						_errHandler.recoverInline(this);
						}
						consume();
						}
						break;
					case END:
						{
						setState(317); match(END);
						setState(318);
						_la = _input.LA(1);
						if ( _la <= 0 || (_la==SQ) ) {
						_errHandler.recoverInline(this);
						}
						consume();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					} 
				}
				setState(323);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,33,_ctx);
			}
			setState(324); match(END);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}