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