PageRenderTime 34ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/release/src/router/mysql/sql/sql_yacc.cc

https://gitlab.com/envieidoc/advancedtomato2
C++ | 2026 lines | 1576 code | 147 blank | 303 comment | 63 complexity | 16ba914dd18e8248b9922a8079e0f85d MD5 | raw file
  1. /* A Bison parser, made by GNU Bison 2.4.1. */
  2. /* Skeleton implementation for Bison's Yacc-like parsers in C
  3. Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
  4. Free Software Foundation, Inc.
  5. This program is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program. If not, see <http://www.gnu.org/licenses/>. */
  15. /* As a special exception, you may create a larger work that contains
  16. part or all of the Bison parser skeleton and distribute that work
  17. under terms of your choice, so long as that work isn't itself a
  18. parser generator using the skeleton or a modified version thereof
  19. as a parser skeleton. Alternatively, if you modify or redistribute
  20. the parser skeleton itself, you may (at your option) remove this
  21. special exception, which will cause the skeleton and the resulting
  22. Bison output files to be licensed under the GNU General Public
  23. License without this special exception.
  24. This special exception was added by the Free Software Foundation in
  25. version 2.2 of Bison. */
  26. /* C LALR(1) parser skeleton written by Richard Stallman, by
  27. simplifying the original so-called "semantic" parser. */
  28. /* All symbols defined below should begin with yy or YY, to avoid
  29. infringing on user name space. This should be done even for local
  30. variables, as they might otherwise be expanded by user macros.
  31. There are some unavoidable exceptions within include files to
  32. define necessary library symbols; they are noted "INFRINGES ON
  33. USER NAME SPACE" below. */
  34. /* Identify Bison output. */
  35. #define YYBISON 1
  36. /* Bison version. */
  37. #define YYBISON_VERSION "2.4.1"
  38. /* Skeleton name. */
  39. #define YYSKELETON_NAME "yacc.c"
  40. /* Pure parsers. */
  41. #define YYPURE 1
  42. /* Push parsers. */
  43. #define YYPUSH 0
  44. /* Pull parsers. */
  45. #define YYPULL 1
  46. /* Using locations. */
  47. #define YYLSP_NEEDED 0
  48. /* Substitute the variable and function names. */
  49. #define yyparse MYSQLparse
  50. #define yylex MYSQLlex
  51. #define yyerror MYSQLerror
  52. #define yylval MYSQLlval
  53. #define yychar MYSQLchar
  54. #define yydebug MYSQLdebug
  55. #define yynerrs MYSQLnerrs
  56. /* Copy the first part of user declarations. */
  57. /* Line 189 of yacc.c */
  58. #line 25 "sql_yacc.yy"
  59. /* thd is passed as an argument to yyparse(), and subsequently to yylex().
  60. ** The type will be void*, so it must be cast to (THD*) when used.
  61. ** Use the YYTHD macro for this.
  62. */
  63. #define YYPARSE_PARAM yythd
  64. #define YYLEX_PARAM yythd
  65. #define YYTHD ((THD *)yythd)
  66. #define YYLIP (& YYTHD->m_parser_state->m_lip)
  67. #define MYSQL_YACC
  68. #define YYINITDEPTH 100
  69. #define YYMAXDEPTH 3200 /* Because of 64K stack */
  70. #define Lex (YYTHD->lex)
  71. #define Select Lex->current_select
  72. #include "mysql_priv.h"
  73. #include "slave.h"
  74. #include "lex_symbol.h"
  75. #include "item_create.h"
  76. #include "sp_head.h"
  77. #include "sp_pcontext.h"
  78. #include "sp_rcontext.h"
  79. #include "sp.h"
  80. #include "event_parse_data.h"
  81. #include <myisam.h>
  82. #include <myisammrg.h>
  83. /* this is to get the bison compilation windows warnings out */
  84. #ifdef _MSC_VER
  85. /* warning C4065: switch statement contains 'default' but no 'case' labels */
  86. #pragma warning (disable : 4065)
  87. #endif
  88. int yylex(void *yylval, void *yythd);
  89. const LEX_STRING null_lex_str= {0,0};
  90. #define yyoverflow(A,B,C,D,E,F) \
  91. { \
  92. ulong val= *(F); \
  93. if (my_yyoverflow((B), (D), &val)) \
  94. { \
  95. yyerror((char*) (A)); \
  96. return 2; \
  97. } \
  98. else \
  99. { \
  100. *(F)= (YYSIZE_T)val; \
  101. } \
  102. }
  103. #define MYSQL_YYABORT \
  104. do \
  105. { \
  106. LEX::cleanup_lex_after_parse_error(YYTHD);\
  107. YYABORT; \
  108. } while (0)
  109. #define MYSQL_YYABORT_UNLESS(A) \
  110. if (!(A)) \
  111. { \
  112. my_parse_error(ER(ER_SYNTAX_ERROR));\
  113. MYSQL_YYABORT; \
  114. }
  115. /*
  116. Work around for broken code generated by bison 1.875.
  117. The code generated by bison 1.875a and later, bison 2.1 and bison 2.2 is ok.
  118. With bison 1.875 however, the generated code contains:
  119. <pre>
  120. yyerrlab1:
  121. #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
  122. __attribute__ ((__unused__))
  123. #endif
  124. </pre>
  125. This usage of __attribute__ is illegal, so we remove it.
  126. See the following references for details:
  127. http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00014.html
  128. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14273
  129. */
  130. #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
  131. #undef __attribute__
  132. #define __attribute__(X)
  133. #endif
  134. #ifndef DBUG_OFF
  135. #define YYDEBUG 1
  136. #else
  137. #define YYDEBUG 0
  138. #endif
  139. /**
  140. @brief Push an error message into MySQL error stack with line
  141. and position information.
  142. This function provides semantic action implementers with a way
  143. to push the famous "You have a syntax error near..." error
  144. message into the error stack, which is normally produced only if
  145. a parse error is discovered internally by the Bison generated
  146. parser.
  147. */
  148. void my_parse_error(const char *s)
  149. {
  150. THD *thd= current_thd;
  151. Lex_input_stream *lip= & thd->m_parser_state->m_lip;
  152. const char *yytext= lip->get_tok_start();
  153. /* Push an error into the error stack */
  154. my_printf_error(ER_PARSE_ERROR, ER(ER_PARSE_ERROR), MYF(0), s,
  155. (yytext ? yytext : ""),
  156. lip->yylineno);
  157. }
  158. /**
  159. @brief Bison callback to report a syntax/OOM error
  160. This function is invoked by the bison-generated parser
  161. when a syntax error, a parse error or an out-of-memory
  162. condition occurs. This function is not invoked when the
  163. parser is requested to abort by semantic action code
  164. by means of YYABORT or YYACCEPT macros. This is why these
  165. macros should not be used (use MYSQL_YYABORT/MYSQL_YYACCEPT
  166. instead).
  167. The parser will abort immediately after invoking this callback.
  168. This function is not for use in semantic actions and is internal to
  169. the parser, as it performs some pre-return cleanup.
  170. In semantic actions, please use my_parse_error or my_error to
  171. push an error into the error stack and MYSQL_YYABORT
  172. to abort from the parser.
  173. */
  174. void MYSQLerror(const char *s)
  175. {
  176. THD *thd= current_thd;
  177. /*
  178. Restore the original LEX if it was replaced when parsing
  179. a stored procedure. We must ensure that a parsing error
  180. does not leave any side effects in the THD.
  181. */
  182. LEX::cleanup_lex_after_parse_error(thd);
  183. /* "parse error" changed into "syntax error" between bison 1.75 and 1.875 */
  184. if (strcmp(s,"parse error") == 0 || strcmp(s,"syntax error") == 0)
  185. s= ER(ER_SYNTAX_ERROR);
  186. my_parse_error(s);
  187. }
  188. #ifndef DBUG_OFF
  189. void turn_parser_debug_on()
  190. {
  191. /*
  192. MYSQLdebug is in sql/sql_yacc.cc, in bison generated code.
  193. Turning this option on is **VERY** verbose, and should be
  194. used when investigating a syntax error problem only.
  195. The syntax to run with bison traces is as follows :
  196. - Starting a server manually :
  197. mysqld --debug="d,parser_debug" ...
  198. - Running a test :
  199. mysql-test-run.pl --mysqld="--debug=d,parser_debug" ...
  200. The result will be in the process stderr (var/log/master.err)
  201. */
  202. extern int yydebug;
  203. yydebug= 1;
  204. }
  205. #endif
  206. static bool is_native_function(THD *thd, const LEX_STRING *name)
  207. {
  208. if (find_native_function_builder(thd, *name))
  209. return true;
  210. if (is_lex_native_function(name))
  211. return true;
  212. return false;
  213. }
  214. /**
  215. Helper action for a case statement (entering the CASE).
  216. This helper is used for both 'simple' and 'searched' cases.
  217. This helper, with the other case_stmt_action_..., is executed when
  218. the following SQL code is parsed:
  219. <pre>
  220. CREATE PROCEDURE proc_19194_simple(i int)
  221. BEGIN
  222. DECLARE str CHAR(10);
  223. CASE i
  224. WHEN 1 THEN SET str="1";
  225. WHEN 2 THEN SET str="2";
  226. WHEN 3 THEN SET str="3";
  227. ELSE SET str="unknown";
  228. END CASE;
  229. SELECT str;
  230. END
  231. </pre>
  232. The actions are used to generate the following code:
  233. <pre>
  234. SHOW PROCEDURE CODE proc_19194_simple;
  235. Pos Instruction
  236. 0 set str@1 NULL
  237. 1 set_case_expr (12) 0 i@0
  238. 2 jump_if_not 5(12) (case_expr@0 = 1)
  239. 3 set str@1 _latin1'1'
  240. 4 jump 12
  241. 5 jump_if_not 8(12) (case_expr@0 = 2)
  242. 6 set str@1 _latin1'2'
  243. 7 jump 12
  244. 8 jump_if_not 11(12) (case_expr@0 = 3)
  245. 9 set str@1 _latin1'3'
  246. 10 jump 12
  247. 11 set str@1 _latin1'unknown'
  248. 12 stmt 0 "SELECT str"
  249. </pre>
  250. @param lex the parser lex context
  251. */
  252. void case_stmt_action_case(LEX *lex)
  253. {
  254. lex->sphead->new_cont_backpatch(NULL);
  255. /*
  256. BACKPATCH: Creating target label for the jump to
  257. "case_stmt_action_end_case"
  258. (Instruction 12 in the example)
  259. */
  260. lex->spcont->push_label((char *)"", lex->sphead->instructions());
  261. }
  262. /**
  263. Helper action for a case expression statement (the expr in 'CASE expr').
  264. This helper is used for 'searched' cases only.
  265. @param lex the parser lex context
  266. @param expr the parsed expression
  267. @return 0 on success
  268. */
  269. int case_stmt_action_expr(LEX *lex, Item* expr)
  270. {
  271. sp_head *sp= lex->sphead;
  272. sp_pcontext *parsing_ctx= lex->spcont;
  273. int case_expr_id= parsing_ctx->register_case_expr();
  274. sp_instr_set_case_expr *i;
  275. if (parsing_ctx->push_case_expr_id(case_expr_id))
  276. return 1;
  277. i= new sp_instr_set_case_expr(sp->instructions(),
  278. parsing_ctx, case_expr_id, expr, lex);
  279. sp->add_cont_backpatch(i);
  280. return sp->add_instr(i);
  281. }
  282. /**
  283. Helper action for a case when condition.
  284. This helper is used for both 'simple' and 'searched' cases.
  285. @param lex the parser lex context
  286. @param when the parsed expression for the WHEN clause
  287. @param simple true for simple cases, false for searched cases
  288. */
  289. int case_stmt_action_when(LEX *lex, Item *when, bool simple)
  290. {
  291. sp_head *sp= lex->sphead;
  292. sp_pcontext *ctx= lex->spcont;
  293. uint ip= sp->instructions();
  294. sp_instr_jump_if_not *i;
  295. Item_case_expr *var;
  296. Item *expr;
  297. if (simple)
  298. {
  299. var= new Item_case_expr(ctx->get_current_case_expr_id());
  300. #ifndef DBUG_OFF
  301. if (var)
  302. {
  303. var->m_sp= sp;
  304. }
  305. #endif
  306. expr= new Item_func_eq(var, when);
  307. i= new sp_instr_jump_if_not(ip, ctx, expr, lex);
  308. }
  309. else
  310. i= new sp_instr_jump_if_not(ip, ctx, when, lex);
  311. /*
  312. BACKPATCH: Registering forward jump from
  313. "case_stmt_action_when" to "case_stmt_action_then"
  314. (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  315. */
  316. return !test(i) ||
  317. sp->push_backpatch(i, ctx->push_label((char *)"", 0)) ||
  318. sp->add_cont_backpatch(i) ||
  319. sp->add_instr(i);
  320. }
  321. /**
  322. Helper action for a case then statements.
  323. This helper is used for both 'simple' and 'searched' cases.
  324. @param lex the parser lex context
  325. */
  326. int case_stmt_action_then(LEX *lex)
  327. {
  328. sp_head *sp= lex->sphead;
  329. sp_pcontext *ctx= lex->spcont;
  330. uint ip= sp->instructions();
  331. sp_instr_jump *i = new sp_instr_jump(ip, ctx);
  332. if (!test(i) || sp->add_instr(i))
  333. return 1;
  334. /*
  335. BACKPATCH: Resolving forward jump from
  336. "case_stmt_action_when" to "case_stmt_action_then"
  337. (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  338. */
  339. sp->backpatch(ctx->pop_label());
  340. /*
  341. BACKPATCH: Registering forward jump from
  342. "case_stmt_action_then" to "case_stmt_action_end_case"
  343. (jump from instruction 4 to 12, 7 to 12 ... in the example)
  344. */
  345. return sp->push_backpatch(i, ctx->last_label());
  346. }
  347. /**
  348. Helper action for an end case.
  349. This helper is used for both 'simple' and 'searched' cases.
  350. @param lex the parser lex context
  351. @param simple true for simple cases, false for searched cases
  352. */
  353. void case_stmt_action_end_case(LEX *lex, bool simple)
  354. {
  355. /*
  356. BACKPATCH: Resolving forward jump from
  357. "case_stmt_action_then" to "case_stmt_action_end_case"
  358. (jump from instruction 4 to 12, 7 to 12 ... in the example)
  359. */
  360. lex->sphead->backpatch(lex->spcont->pop_label());
  361. if (simple)
  362. lex->spcont->pop_case_expr_id();
  363. lex->sphead->do_cont_backpatch();
  364. }
  365. static bool
  366. find_sys_var_null_base(THD *thd, struct sys_var_with_base *tmp)
  367. {
  368. tmp->var= find_sys_var(thd, tmp->base_name.str, tmp->base_name.length);
  369. if (tmp->var == NULL)
  370. my_error(ER_UNKNOWN_SYSTEM_VARIABLE, MYF(0), tmp->base_name.str);
  371. else
  372. tmp->base_name= null_lex_str;
  373. return thd->is_error();
  374. }
  375. /**
  376. Helper action for a SET statement.
  377. Used to push a system variable into the assignment list.
  378. @param thd the current thread
  379. @param tmp the system variable with base name
  380. @param var_type the scope of the variable
  381. @param val the value being assigned to the variable
  382. @return TRUE if error, FALSE otherwise.
  383. */
  384. static bool
  385. set_system_variable(THD *thd, struct sys_var_with_base *tmp,
  386. enum enum_var_type var_type, Item *val)
  387. {
  388. set_var *var;
  389. LEX *lex= thd->lex;
  390. /* No AUTOCOMMIT from a stored function or trigger. */
  391. if (lex->spcont && tmp->var == &sys_autocommit)
  392. lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
  393. if (! (var= new set_var(var_type, tmp->var, &tmp->base_name, val)))
  394. return TRUE;
  395. return lex->var_list.push_back(var);
  396. }
  397. /**
  398. Helper action for a SET statement.
  399. Used to push a SP local variable into the assignment list.
  400. @param thd the current thread
  401. @param var_type the SP local variable
  402. @param val the value being assigned to the variable
  403. @return TRUE if error, FALSE otherwise.
  404. */
  405. static bool
  406. set_local_variable(THD *thd, sp_variable_t *spv, Item *val)
  407. {
  408. Item *it;
  409. LEX *lex= thd->lex;
  410. sp_instr_set *sp_set;
  411. if (val)
  412. it= val;
  413. else if (spv->dflt)
  414. it= spv->dflt;
  415. else
  416. {
  417. it= new (thd->mem_root) Item_null();
  418. if (it == NULL)
  419. return TRUE;
  420. }
  421. sp_set= new sp_instr_set(lex->sphead->instructions(), lex->spcont,
  422. spv->offset, it, spv->type, lex, TRUE);
  423. return (sp_set == NULL || lex->sphead->add_instr(sp_set));
  424. }
  425. /**
  426. Helper action for a SET statement.
  427. Used to SET a field of NEW row.
  428. @param thd the current thread
  429. @param name the field name
  430. @param val the value being assigned to the row
  431. @return TRUE if error, FALSE otherwise.
  432. */
  433. static bool
  434. set_trigger_new_row(THD *thd, LEX_STRING *name, Item *val)
  435. {
  436. LEX *lex= thd->lex;
  437. Item_trigger_field *trg_fld;
  438. sp_instr_set_trigger_field *sp_fld;
  439. /* QQ: Shouldn't this be field's default value ? */
  440. if (! val)
  441. val= new Item_null();
  442. DBUG_ASSERT(lex->trg_chistics.action_time == TRG_ACTION_BEFORE &&
  443. (lex->trg_chistics.event == TRG_EVENT_INSERT ||
  444. lex->trg_chistics.event == TRG_EVENT_UPDATE));
  445. trg_fld= new (thd->mem_root)
  446. Item_trigger_field(lex->current_context(),
  447. Item_trigger_field::NEW_ROW,
  448. name->str, UPDATE_ACL, FALSE);
  449. if (trg_fld == NULL)
  450. return TRUE;
  451. sp_fld= new sp_instr_set_trigger_field(lex->sphead->instructions(),
  452. lex->spcont, trg_fld, val, lex);
  453. if (sp_fld == NULL)
  454. return TRUE;
  455. /*
  456. Let us add this item to list of all Item_trigger_field
  457. objects in trigger.
  458. */
  459. lex->trg_table_fields.link_in_list(trg_fld, &trg_fld->next_trg_field);
  460. return lex->sphead->add_instr(sp_fld);
  461. }
  462. /**
  463. Helper to resolve the SQL:2003 Syntax exception 1) in <in predicate>.
  464. See SQL:2003, Part 2, section 8.4 <in predicate>, Note 184, page 383.
  465. This function returns the proper item for the SQL expression
  466. <code>left [NOT] IN ( expr )</code>
  467. @param thd the current thread
  468. @param left the in predicand
  469. @param equal true for IN predicates, false for NOT IN predicates
  470. @param expr first and only expression of the in value list
  471. @return an expression representing the IN predicate.
  472. */
  473. Item* handle_sql2003_note184_exception(THD *thd, Item* left, bool equal,
  474. Item *expr)
  475. {
  476. /*
  477. Relevant references for this issue:
  478. - SQL:2003, Part 2, section 8.4 <in predicate>, page 383,
  479. - SQL:2003, Part 2, section 7.2 <row value expression>, page 296,
  480. - SQL:2003, Part 2, section 6.3 <value expression primary>, page 174,
  481. - SQL:2003, Part 2, section 7.15 <subquery>, page 370,
  482. - SQL:2003 Feature F561, "Full value expressions".
  483. The exception in SQL:2003 Note 184 means:
  484. Item_singlerow_subselect, which corresponds to a <scalar subquery>,
  485. should be re-interpreted as an Item_in_subselect, which corresponds
  486. to a <table subquery> when used inside an <in predicate>.
  487. Our reading of Note 184 is reccursive, so that all:
  488. - IN (( <subquery> ))
  489. - IN ((( <subquery> )))
  490. - IN '('^N <subquery> ')'^N
  491. - etc
  492. should be interpreted as a <table subquery>, no matter how deep in the
  493. expression the <subquery> is.
  494. */
  495. Item *result;
  496. DBUG_ENTER("handle_sql2003_note184_exception");
  497. if (expr->type() == Item::SUBSELECT_ITEM)
  498. {
  499. Item_subselect *expr2 = (Item_subselect*) expr;
  500. if (expr2->substype() == Item_subselect::SINGLEROW_SUBS)
  501. {
  502. Item_singlerow_subselect *expr3 = (Item_singlerow_subselect*) expr2;
  503. st_select_lex *subselect;
  504. /*
  505. Implement the mandated change, by altering the semantic tree:
  506. left IN Item_singlerow_subselect(subselect)
  507. is modified to
  508. left IN (subselect)
  509. which is represented as
  510. Item_in_subselect(left, subselect)
  511. */
  512. subselect= expr3->invalidate_and_restore_select_lex();
  513. result= new (thd->mem_root) Item_in_subselect(left, subselect);
  514. if (! equal)
  515. result = negate_expression(thd, result);
  516. DBUG_RETURN(result);
  517. }
  518. }
  519. if (equal)
  520. result= new (thd->mem_root) Item_func_eq(left, expr);
  521. else
  522. result= new (thd->mem_root) Item_func_ne(left, expr);
  523. DBUG_RETURN(result);
  524. }
  525. static bool add_create_index_prepare (LEX *lex, Table_ident *table)
  526. {
  527. lex->sql_command= SQLCOM_CREATE_INDEX;
  528. if (!lex->current_select->add_table_to_list(lex->thd, table, NULL,
  529. TL_OPTION_UPDATING))
  530. return TRUE;
  531. lex->alter_info.reset();
  532. lex->alter_info.flags= ALTER_ADD_INDEX;
  533. lex->col_list.empty();
  534. lex->change= NullS;
  535. return FALSE;
  536. }
  537. static bool add_create_index (LEX *lex, Key::Keytype type, const char *name,
  538. KEY_CREATE_INFO *info= NULL, bool generated= 0)
  539. {
  540. Key *key;
  541. key= new Key(type, name, info ? info : &lex->key_create_info, generated,
  542. lex->col_list);
  543. if (key == NULL)
  544. return TRUE;
  545. lex->alter_info.key_list.push_back(key);
  546. lex->col_list.empty();
  547. return FALSE;
  548. }
  549. /* Line 189 of yacc.c */
  550. #line 688 "sql_yacc.cc"
  551. /* Enabling traces. */
  552. #ifndef YYDEBUG
  553. # define YYDEBUG 0
  554. #endif
  555. /* Enabling verbose error messages. */
  556. #ifdef YYERROR_VERBOSE
  557. # undef YYERROR_VERBOSE
  558. # define YYERROR_VERBOSE 1
  559. #else
  560. # define YYERROR_VERBOSE 0
  561. #endif
  562. /* Enabling the token table. */
  563. #ifndef YYTOKEN_TABLE
  564. # define YYTOKEN_TABLE 0
  565. #endif
  566. /* Tokens. */
  567. #ifndef YYTOKENTYPE
  568. # define YYTOKENTYPE
  569. /* Put the tokens into the symbol table, so that GDB and other debuggers
  570. know about them. */
  571. enum yytokentype {
  572. ABORT_SYM = 258,
  573. ACCESSIBLE_SYM = 259,
  574. ACTION = 260,
  575. ADD = 261,
  576. ADDDATE_SYM = 262,
  577. AFTER_SYM = 263,
  578. AGAINST = 264,
  579. AGGREGATE_SYM = 265,
  580. ALGORITHM_SYM = 266,
  581. ALL = 267,
  582. ALTER = 268,
  583. ANALYZE_SYM = 269,
  584. AND_AND_SYM = 270,
  585. AND_SYM = 271,
  586. ANY_SYM = 272,
  587. AS = 273,
  588. ASC = 274,
  589. ASCII_SYM = 275,
  590. ASENSITIVE_SYM = 276,
  591. AT_SYM = 277,
  592. AUTHORS_SYM = 278,
  593. AUTOEXTEND_SIZE_SYM = 279,
  594. AUTO_INC = 280,
  595. AVG_ROW_LENGTH = 281,
  596. AVG_SYM = 282,
  597. BACKUP_SYM = 283,
  598. BEFORE_SYM = 284,
  599. BEGIN_SYM = 285,
  600. BETWEEN_SYM = 286,
  601. BIGINT = 287,
  602. BINARY = 288,
  603. BINLOG_SYM = 289,
  604. BIN_NUM = 290,
  605. BIT_AND = 291,
  606. BIT_OR = 292,
  607. BIT_SYM = 293,
  608. BIT_XOR = 294,
  609. BLOB_SYM = 295,
  610. BLOCK_SYM = 296,
  611. BOOLEAN_SYM = 297,
  612. BOOL_SYM = 298,
  613. BOTH = 299,
  614. BTREE_SYM = 300,
  615. BY = 301,
  616. BYTE_SYM = 302,
  617. CACHE_SYM = 303,
  618. CALL_SYM = 304,
  619. CASCADE = 305,
  620. CASCADED = 306,
  621. CASE_SYM = 307,
  622. CAST_SYM = 308,
  623. CHAIN_SYM = 309,
  624. CHANGE = 310,
  625. CHANGED = 311,
  626. CHARSET = 312,
  627. CHAR_SYM = 313,
  628. CHECKSUM_SYM = 314,
  629. CHECK_SYM = 315,
  630. CIPHER_SYM = 316,
  631. CLIENT_SYM = 317,
  632. CLOSE_SYM = 318,
  633. COALESCE = 319,
  634. CODE_SYM = 320,
  635. COLLATE_SYM = 321,
  636. COLLATION_SYM = 322,
  637. COLUMNS = 323,
  638. COLUMN_SYM = 324,
  639. COMMENT_SYM = 325,
  640. COMMITTED_SYM = 326,
  641. COMMIT_SYM = 327,
  642. COMPACT_SYM = 328,
  643. COMPLETION_SYM = 329,
  644. COMPRESSED_SYM = 330,
  645. CONCURRENT = 331,
  646. CONDITION_SYM = 332,
  647. CONNECTION_SYM = 333,
  648. CONSISTENT_SYM = 334,
  649. CONSTRAINT = 335,
  650. CONTAINS_SYM = 336,
  651. CONTEXT_SYM = 337,
  652. CONTINUE_SYM = 338,
  653. CONTRIBUTORS_SYM = 339,
  654. CONVERT_SYM = 340,
  655. COUNT_SYM = 341,
  656. CPU_SYM = 342,
  657. CREATE = 343,
  658. CROSS = 344,
  659. CUBE_SYM = 345,
  660. CURDATE = 346,
  661. CURRENT_USER = 347,
  662. CURSOR_SYM = 348,
  663. CURTIME = 349,
  664. DATABASE = 350,
  665. DATABASES = 351,
  666. DATAFILE_SYM = 352,
  667. DATA_SYM = 353,
  668. DATETIME = 354,
  669. DATE_ADD_INTERVAL = 355,
  670. DATE_SUB_INTERVAL = 356,
  671. DATE_SYM = 357,
  672. DAY_HOUR_SYM = 358,
  673. DAY_MICROSECOND_SYM = 359,
  674. DAY_MINUTE_SYM = 360,
  675. DAY_SECOND_SYM = 361,
  676. DAY_SYM = 362,
  677. DEALLOCATE_SYM = 363,
  678. DECIMAL_NUM = 364,
  679. DECIMAL_SYM = 365,
  680. DECLARE_SYM = 366,
  681. DEFAULT = 367,
  682. DEFINER_SYM = 368,
  683. DELAYED_SYM = 369,
  684. DELAY_KEY_WRITE_SYM = 370,
  685. DELETE_SYM = 371,
  686. DESC = 372,
  687. DESCRIBE = 373,
  688. DES_KEY_FILE = 374,
  689. DETERMINISTIC_SYM = 375,
  690. DIRECTORY_SYM = 376,
  691. DISABLE_SYM = 377,
  692. DISCARD = 378,
  693. DISK_SYM = 379,
  694. DISTINCT = 380,
  695. DIV_SYM = 381,
  696. DOUBLE_SYM = 382,
  697. DO_SYM = 383,
  698. DROP = 384,
  699. DUAL_SYM = 385,
  700. DUMPFILE = 386,
  701. DUPLICATE_SYM = 387,
  702. DYNAMIC_SYM = 388,
  703. EACH_SYM = 389,
  704. ELSE = 390,
  705. ELSEIF_SYM = 391,
  706. ENABLE_SYM = 392,
  707. ENCLOSED = 393,
  708. END = 394,
  709. ENDS_SYM = 395,
  710. END_OF_INPUT = 396,
  711. ENGINES_SYM = 397,
  712. ENGINE_SYM = 398,
  713. ENUM = 399,
  714. EQ = 400,
  715. EQUAL_SYM = 401,
  716. ERRORS = 402,
  717. ESCAPED = 403,
  718. ESCAPE_SYM = 404,
  719. EVENTS_SYM = 405,
  720. EVENT_SYM = 406,
  721. EVERY_SYM = 407,
  722. EXECUTE_SYM = 408,
  723. EXISTS = 409,
  724. EXIT_SYM = 410,
  725. EXPANSION_SYM = 411,
  726. EXTENDED_SYM = 412,
  727. EXTENT_SIZE_SYM = 413,
  728. EXTRACT_SYM = 414,
  729. FALSE_SYM = 415,
  730. FAST_SYM = 416,
  731. FAULTS_SYM = 417,
  732. FETCH_SYM = 418,
  733. FILE_SYM = 419,
  734. FIRST_SYM = 420,
  735. FIXED_SYM = 421,
  736. FLOAT_NUM = 422,
  737. FLOAT_SYM = 423,
  738. FLUSH_SYM = 424,
  739. FORCE_SYM = 425,
  740. FOREIGN = 426,
  741. FOR_SYM = 427,
  742. FOUND_SYM = 428,
  743. FRAC_SECOND_SYM = 429,
  744. FROM = 430,
  745. FULL = 431,
  746. FULLTEXT_SYM = 432,
  747. FUNCTION_SYM = 433,
  748. GE = 434,
  749. GEOMETRYCOLLECTION = 435,
  750. GEOMETRY_SYM = 436,
  751. GET_FORMAT = 437,
  752. GLOBAL_SYM = 438,
  753. GRANT = 439,
  754. GRANTS = 440,
  755. GROUP_SYM = 441,
  756. GROUP_CONCAT_SYM = 442,
  757. GT_SYM = 443,
  758. HANDLER_SYM = 444,
  759. HASH_SYM = 445,
  760. HAVING = 446,
  761. HELP_SYM = 447,
  762. HEX_NUM = 448,
  763. HIGH_PRIORITY = 449,
  764. HOST_SYM = 450,
  765. HOSTS_SYM = 451,
  766. HOUR_MICROSECOND_SYM = 452,
  767. HOUR_MINUTE_SYM = 453,
  768. HOUR_SECOND_SYM = 454,
  769. HOUR_SYM = 455,
  770. IDENT = 456,
  771. IDENTIFIED_SYM = 457,
  772. IDENT_QUOTED = 458,
  773. IF = 459,
  774. IGNORE_SYM = 460,
  775. IMPORT = 461,
  776. INDEXES = 462,
  777. INDEX_SYM = 463,
  778. INFILE = 464,
  779. INITIAL_SIZE_SYM = 465,
  780. INNER_SYM = 466,
  781. INNOBASE_SYM = 467,
  782. INOUT_SYM = 468,
  783. INSENSITIVE_SYM = 469,
  784. INSERT = 470,
  785. INSERT_METHOD = 471,
  786. INSTALL_SYM = 472,
  787. INTERVAL_SYM = 473,
  788. INTO = 474,
  789. INT_SYM = 475,
  790. INVOKER_SYM = 476,
  791. IN_SYM = 477,
  792. IO_SYM = 478,
  793. IPC_SYM = 479,
  794. IS = 480,
  795. ISOLATION = 481,
  796. ISSUER_SYM = 482,
  797. ITERATE_SYM = 483,
  798. JOIN_SYM = 484,
  799. KEYS = 485,
  800. KEY_BLOCK_SIZE = 486,
  801. KEY_SYM = 487,
  802. KILL_SYM = 488,
  803. LANGUAGE_SYM = 489,
  804. LAST_SYM = 490,
  805. LE = 491,
  806. LEADING = 492,
  807. LEAVES = 493,
  808. LEAVE_SYM = 494,
  809. LEFT = 495,
  810. LESS_SYM = 496,
  811. LEVEL_SYM = 497,
  812. LEX_HOSTNAME = 498,
  813. LIKE = 499,
  814. LIMIT = 500,
  815. LINEAR_SYM = 501,
  816. LINES = 502,
  817. LINESTRING = 503,
  818. LIST_SYM = 504,
  819. LOAD = 505,
  820. LOCAL_SYM = 506,
  821. LOCATOR_SYM = 507,
  822. LOCKS_SYM = 508,
  823. LOCK_SYM = 509,
  824. LOGFILE_SYM = 510,
  825. LOGS_SYM = 511,
  826. LONGBLOB = 512,
  827. LONGTEXT = 513,
  828. LONG_NUM = 514,
  829. LONG_SYM = 515,
  830. LOOP_SYM = 516,
  831. LOW_PRIORITY = 517,
  832. LT = 518,
  833. MASTER_CONNECT_RETRY_SYM = 519,
  834. MASTER_HOST_SYM = 520,
  835. MASTER_LOG_FILE_SYM = 521,
  836. MASTER_LOG_POS_SYM = 522,
  837. MASTER_PASSWORD_SYM = 523,
  838. MASTER_PORT_SYM = 524,
  839. MASTER_SERVER_ID_SYM = 525,
  840. MASTER_SSL_CAPATH_SYM = 526,
  841. MASTER_SSL_CA_SYM = 527,
  842. MASTER_SSL_CERT_SYM = 528,
  843. MASTER_SSL_CIPHER_SYM = 529,
  844. MASTER_SSL_KEY_SYM = 530,
  845. MASTER_SSL_SYM = 531,
  846. MASTER_SSL_VERIFY_SERVER_CERT_SYM = 532,
  847. MASTER_SYM = 533,
  848. MASTER_USER_SYM = 534,
  849. MATCH = 535,
  850. MAX_CONNECTIONS_PER_HOUR = 536,
  851. MAX_QUERIES_PER_HOUR = 537,
  852. MAX_ROWS = 538,
  853. MAX_SIZE_SYM = 539,
  854. MAX_SYM = 540,
  855. MAX_UPDATES_PER_HOUR = 541,
  856. MAX_USER_CONNECTIONS_SYM = 542,
  857. MAX_VALUE_SYM = 543,
  858. MEDIUMBLOB = 544,
  859. MEDIUMINT = 545,
  860. MEDIUMTEXT = 546,
  861. MEDIUM_SYM = 547,
  862. MEMORY_SYM = 548,
  863. MERGE_SYM = 549,
  864. MICROSECOND_SYM = 550,
  865. MIGRATE_SYM = 551,
  866. MINUTE_MICROSECOND_SYM = 552,
  867. MINUTE_SECOND_SYM = 553,
  868. MINUTE_SYM = 554,
  869. MIN_ROWS = 555,
  870. MIN_SYM = 556,
  871. MODE_SYM = 557,
  872. MODIFIES_SYM = 558,
  873. MODIFY_SYM = 559,
  874. MOD_SYM = 560,
  875. MONTH_SYM = 561,
  876. MULTILINESTRING = 562,
  877. MULTIPOINT = 563,
  878. MULTIPOLYGON = 564,
  879. MUTEX_SYM = 565,
  880. NAMES_SYM = 566,
  881. NAME_SYM = 567,
  882. NATIONAL_SYM = 568,
  883. NATURAL = 569,
  884. NCHAR_STRING = 570,
  885. NCHAR_SYM = 571,
  886. NDBCLUSTER_SYM = 572,
  887. NE = 573,
  888. NEG = 574,
  889. NEW_SYM = 575,
  890. NEXT_SYM = 576,
  891. NODEGROUP_SYM = 577,
  892. NONE_SYM = 578,
  893. NOT2_SYM = 579,
  894. NOT_SYM = 580,
  895. NOW_SYM = 581,
  896. NO_SYM = 582,
  897. NO_WAIT_SYM = 583,
  898. NO_WRITE_TO_BINLOG = 584,
  899. NULL_SYM = 585,
  900. NUM = 586,
  901. NUMERIC_SYM = 587,
  902. NVARCHAR_SYM = 588,
  903. OFFSET_SYM = 589,
  904. OLD_PASSWORD = 590,
  905. ON = 591,
  906. ONE_SHOT_SYM = 592,
  907. ONE_SYM = 593,
  908. OPEN_SYM = 594,
  909. OPTIMIZE = 595,
  910. OPTIONS_SYM = 596,
  911. OPTION = 597,
  912. OPTIONALLY = 598,
  913. OR2_SYM = 599,
  914. ORDER_SYM = 600,
  915. OR_OR_SYM = 601,
  916. OR_SYM = 602,
  917. OUTER = 603,
  918. OUTFILE = 604,
  919. OUT_SYM = 605,
  920. OWNER_SYM = 606,
  921. PACK_KEYS_SYM = 607,
  922. PAGE_SYM = 608,
  923. PARAM_MARKER = 609,
  924. PARSER_SYM = 610,
  925. PARTIAL = 611,
  926. PARTITIONING_SYM = 612,
  927. PARTITIONS_SYM = 613,
  928. PARTITION_SYM = 614,
  929. PASSWORD = 615,
  930. PHASE_SYM = 616,
  931. PLUGINS_SYM = 617,
  932. PLUGIN_SYM = 618,
  933. POINT_SYM = 619,
  934. POLYGON = 620,
  935. PORT_SYM = 621,
  936. POSITION_SYM = 622,
  937. PRECISION = 623,
  938. PREPARE_SYM = 624,
  939. PRESERVE_SYM = 625,
  940. PREV_SYM = 626,
  941. PRIMARY_SYM = 627,
  942. PRIVILEGES = 628,
  943. PROCEDURE = 629,
  944. PROCESS = 630,
  945. PROCESSLIST_SYM = 631,
  946. PROFILE_SYM = 632,
  947. PROFILES_SYM = 633,
  948. PURGE = 634,
  949. QUARTER_SYM = 635,
  950. QUERY_SYM = 636,
  951. QUICK = 637,
  952. RANGE_SYM = 638,
  953. READS_SYM = 639,
  954. READ_ONLY_SYM = 640,
  955. READ_SYM = 641,
  956. READ_WRITE_SYM = 642,
  957. REAL = 643,
  958. REBUILD_SYM = 644,
  959. RECOVER_SYM = 645,
  960. REDOFILE_SYM = 646,
  961. REDO_BUFFER_SIZE_SYM = 647,
  962. REDUNDANT_SYM = 648,
  963. REFERENCES = 649,
  964. REGEXP = 650,
  965. RELAY_LOG_FILE_SYM = 651,
  966. RELAY_LOG_POS_SYM = 652,
  967. RELAY_THREAD = 653,
  968. RELEASE_SYM = 654,
  969. RELOAD = 655,
  970. REMOVE_SYM = 656,
  971. RENAME = 657,
  972. REORGANIZE_SYM = 658,
  973. REPAIR = 659,
  974. REPEATABLE_SYM = 660,
  975. REPEAT_SYM = 661,
  976. REPLACE = 662,
  977. REPLICATION = 663,
  978. REQUIRE_SYM = 664,
  979. RESET_SYM = 665,
  980. RESOURCES = 666,
  981. RESTORE_SYM = 667,
  982. RESTRICT = 668,
  983. RESUME_SYM = 669,
  984. RETURNS_SYM = 670,
  985. RETURN_SYM = 671,
  986. REVOKE = 672,
  987. RIGHT = 673,
  988. ROLLBACK_SYM = 674,
  989. ROLLUP_SYM = 675,
  990. ROUTINE_SYM = 676,
  991. ROWS_SYM = 677,
  992. ROW_FORMAT_SYM = 678,
  993. ROW_SYM = 679,
  994. RTREE_SYM = 680,
  995. SAVEPOINT_SYM = 681,
  996. SCHEDULE_SYM = 682,
  997. SECOND_MICROSECOND_SYM = 683,
  998. SECOND_SYM = 684,
  999. SECURITY_SYM = 685,
  1000. SELECT_SYM = 686,
  1001. SENSITIVE_SYM = 687,
  1002. SEPARATOR_SYM = 688,
  1003. SERIALIZABLE_SYM = 689,
  1004. SERIAL_SYM = 690,
  1005. SESSION_SYM = 691,
  1006. SERVER_SYM = 692,
  1007. SERVER_OPTIONS = 693,
  1008. SET = 694,
  1009. SET_VAR = 695,
  1010. SHARE_SYM = 696,
  1011. SHIFT_LEFT = 697,
  1012. SHIFT_RIGHT = 698,
  1013. SHOW = 699,
  1014. SHUTDOWN = 700,
  1015. SIGNED_SYM = 701,
  1016. SIMPLE_SYM = 702,
  1017. SLAVE = 703,
  1018. SMALLINT = 704,
  1019. SNAPSHOT_SYM = 705,
  1020. SOCKET_SYM = 706,
  1021. SONAME_SYM = 707,
  1022. SOUNDS_SYM = 708,
  1023. SOURCE_SYM = 709,
  1024. SPATIAL_SYM = 710,
  1025. SPECIFIC_SYM = 711,
  1026. SQLEXCEPTION_SYM = 712,
  1027. SQLSTATE_SYM = 713,
  1028. SQLWARNING_SYM = 714,
  1029. SQL_BIG_RESULT = 715,
  1030. SQL_BUFFER_RESULT = 716,
  1031. SQL_CACHE_SYM = 717,
  1032. SQL_CALC_FOUND_ROWS = 718,
  1033. SQL_NO_CACHE_SYM = 719,
  1034. SQL_SMALL_RESULT = 720,
  1035. SQL_SYM = 721,
  1036. SQL_THREAD = 722,
  1037. SSL_SYM = 723,
  1038. STARTING = 724,
  1039. STARTS_SYM = 725,
  1040. START_SYM = 726,
  1041. STATUS_SYM = 727,
  1042. STDDEV_SAMP_SYM = 728,
  1043. STD_SYM = 729,
  1044. STOP_SYM = 730,
  1045. STORAGE_SYM = 731,
  1046. STRAIGHT_JOIN = 732,
  1047. STRING_SYM = 733,
  1048. SUBDATE_SYM = 734,
  1049. SUBJECT_SYM = 735,
  1050. SUBPARTITIONS_SYM = 736,
  1051. SUBPARTITION_SYM = 737,
  1052. SUBSTRING = 738,
  1053. SUM_SYM = 739,
  1054. SUPER_SYM = 740,
  1055. SUSPEND_SYM = 741,
  1056. SWAPS_SYM = 742,
  1057. SWITCHES_SYM = 743,
  1058. SYSDATE = 744,
  1059. TABLES = 745,
  1060. TABLESPACE = 746,
  1061. TABLE_REF_PRIORITY = 747,
  1062. TABLE_SYM = 748,
  1063. TABLE_CHECKSUM_SYM = 749,
  1064. TEMPORARY = 750,
  1065. TEMPTABLE_SYM = 751,
  1066. TERMINATED = 752,
  1067. TEXT_STRING = 753,
  1068. TEXT_SYM = 754,
  1069. THAN_SYM = 755,
  1070. THEN_SYM = 756,
  1071. TIMESTAMP = 757,
  1072. TIMESTAMP_ADD = 758,
  1073. TIMESTAMP_DIFF = 759,
  1074. TIME_SYM = 760,
  1075. TINYBLOB = 761,
  1076. TINYINT = 762,
  1077. TINYTEXT = 763,
  1078. TO_SYM = 764,
  1079. TRAILING = 765,
  1080. TRANSACTION_SYM = 766,
  1081. TRIGGERS_SYM = 767,
  1082. TRIGGER_SYM = 768,
  1083. TRIM = 769,
  1084. TRUE_SYM = 770,
  1085. TRUNCATE_SYM = 771,
  1086. TYPES_SYM = 772,
  1087. TYPE_SYM = 773,
  1088. UDF_RETURNS_SYM = 774,
  1089. ULONGLONG_NUM = 775,
  1090. UNCOMMITTED_SYM = 776,
  1091. UNDEFINED_SYM = 777,
  1092. UNDERSCORE_CHARSET = 778,
  1093. UNDOFILE_SYM = 779,
  1094. UNDO_BUFFER_SIZE_SYM = 780,
  1095. UNDO_SYM = 781,
  1096. UNICODE_SYM = 782,
  1097. UNINSTALL_SYM = 783,
  1098. UNION_SYM = 784,
  1099. UNIQUE_SYM = 785,
  1100. UNKNOWN_SYM = 786,
  1101. UNLOCK_SYM = 787,
  1102. UNSIGNED = 788,
  1103. UNTIL_SYM = 789,
  1104. UPDATE_SYM = 790,
  1105. UPGRADE_SYM = 791,
  1106. USAGE = 792,
  1107. USER = 793,
  1108. USE_FRM = 794,
  1109. USE_SYM = 795,
  1110. USING = 796,
  1111. UTC_DATE_SYM = 797,
  1112. UTC_TIMESTAMP_SYM = 798,
  1113. UTC_TIME_SYM = 799,
  1114. VALUES = 800,
  1115. VALUE_SYM = 801,
  1116. VARBINARY = 802,
  1117. VARCHAR = 803,
  1118. VARIABLES = 804,
  1119. VARIANCE_SYM = 805,
  1120. VARYING = 806,
  1121. VAR_SAMP_SYM = 807,
  1122. VIEW_SYM = 808,
  1123. WAIT_SYM = 809,
  1124. WARNINGS = 810,
  1125. WEEK_SYM = 811,
  1126. WHEN_SYM = 812,
  1127. WHERE = 813,
  1128. WHILE_SYM = 814,
  1129. WITH = 815,
  1130. WORK_SYM = 816,
  1131. WRAPPER_SYM = 817,
  1132. WRITE_SYM = 818,
  1133. X509_SYM = 819,
  1134. XA_SYM = 820,
  1135. XOR = 821,
  1136. YEAR_MONTH_SYM = 822,
  1137. YEAR_SYM = 823,
  1138. ZEROFILL = 824
  1139. };
  1140. #endif
  1141. /* Tokens. */
  1142. #define ABORT_SYM 258
  1143. #define ACCESSIBLE_SYM 259
  1144. #define ACTION 260
  1145. #define ADD 261
  1146. #define ADDDATE_SYM 262
  1147. #define AFTER_SYM 263
  1148. #define AGAINST 264
  1149. #define AGGREGATE_SYM 265
  1150. #define ALGORITHM_SYM 266
  1151. #define ALL 267
  1152. #define ALTER 268
  1153. #define ANALYZE_SYM 269
  1154. #define AND_AND_SYM 270
  1155. #define AND_SYM 271
  1156. #define ANY_SYM 272
  1157. #define AS 273
  1158. #define ASC 274
  1159. #define ASCII_SYM 275
  1160. #define ASENSITIVE_SYM 276
  1161. #define AT_SYM 277
  1162. #define AUTHORS_SYM 278
  1163. #define AUTOEXTEND_SIZE_SYM 279
  1164. #define AUTO_INC 280
  1165. #define AVG_ROW_LENGTH 281
  1166. #define AVG_SYM 282
  1167. #define BACKUP_SYM 283
  1168. #define BEFORE_SYM 284
  1169. #define BEGIN_SYM 285
  1170. #define BETWEEN_SYM 286
  1171. #define BIGINT 287
  1172. #define BINARY 288
  1173. #define BINLOG_SYM 289
  1174. #define BIN_NUM 290
  1175. #define BIT_AND 291
  1176. #define BIT_OR 292
  1177. #define BIT_SYM 293
  1178. #define BIT_XOR 294
  1179. #define BLOB_SYM 295
  1180. #define BLOCK_SYM 296
  1181. #define BOOLEAN_SYM 297
  1182. #define BOOL_SYM 298
  1183. #define BOTH 299
  1184. #define BTREE_SYM 300
  1185. #define BY 301
  1186. #define BYTE_SYM 302
  1187. #define CACHE_SYM 303
  1188. #define CALL_SYM 304
  1189. #define CASCADE 305
  1190. #define CASCADED 306
  1191. #define CASE_SYM 307
  1192. #define CAST_SYM 308
  1193. #define CHAIN_SYM 309
  1194. #define CHANGE 310
  1195. #define CHANGED 311
  1196. #define CHARSET 312
  1197. #define CHAR_SYM 313
  1198. #define CHECKSUM_SYM 314
  1199. #define CHECK_SYM 315
  1200. #define CIPHER_SYM 316
  1201. #define CLIENT_SYM 317
  1202. #define CLOSE_SYM 318
  1203. #define COALESCE 319
  1204. #define CODE_SYM 320
  1205. #define COLLATE_SYM 321
  1206. #define COLLATION_SYM 322
  1207. #define COLUMNS 323
  1208. #define COLUMN_SYM 324
  1209. #define COMMENT_SYM 325
  1210. #define COMMITTED_SYM 326
  1211. #define COMMIT_SYM 327
  1212. #define COMPACT_SYM 328
  1213. #define COMPLETION_SYM 329
  1214. #define COMPRESSED_SYM 330
  1215. #define CONCURRENT 331
  1216. #define CONDITION_SYM 332
  1217. #define CONNECTION_SYM 333
  1218. #define CONSISTENT_SYM 334
  1219. #define CONSTRAINT 335
  1220. #define CONTAINS_SYM 336
  1221. #define CONTEXT_SYM 337
  1222. #define CONTINUE_SYM 338
  1223. #define CONTRIBUTORS_SYM 339
  1224. #define CONVERT_SYM 340
  1225. #define COUNT_SYM 341
  1226. #define CPU_SYM 342
  1227. #define CREATE 343
  1228. #define CROSS 344
  1229. #define CUBE_SYM 345
  1230. #define CURDATE 346
  1231. #define CURRENT_USER 347
  1232. #define CURSOR_SYM 348
  1233. #define CURTIME 349
  1234. #define DATABASE 350
  1235. #define DATABASES 351
  1236. #define DATAFILE_SYM 352
  1237. #define DATA_SYM 353
  1238. #define DATETIME 354
  1239. #define DATE_ADD_INTERVAL 355
  1240. #define DATE_SUB_INTERVAL 356
  1241. #define DATE_SYM 357
  1242. #define DAY_HOUR_SYM 358
  1243. #define DAY_MICROSECOND_SYM 359
  1244. #define DAY_MINUTE_SYM 360
  1245. #define DAY_SECOND_SYM 361
  1246. #define DAY_SYM 362
  1247. #define DEALLOCATE_SYM 363
  1248. #define DECIMAL_NUM 364
  1249. #define DECIMAL_SYM 365
  1250. #define DECLARE_SYM 366
  1251. #define DEFAULT 367
  1252. #define DEFINER_SYM 368
  1253. #define DELAYED_SYM 369
  1254. #define DELAY_KEY_WRITE_SYM 370
  1255. #define DELETE_SYM 371
  1256. #define DESC 372
  1257. #define DESCRIBE 373
  1258. #define DES_KEY_FILE 374
  1259. #define DETERMINISTIC_SYM 375
  1260. #define DIRECTORY_SYM 376
  1261. #define DISABLE_SYM 377
  1262. #define DISCARD 378
  1263. #define DISK_SYM 379
  1264. #define DISTINCT 380
  1265. #define DIV_SYM 381
  1266. #define DOUBLE_SYM 382
  1267. #define DO_SYM 383
  1268. #define DROP 384
  1269. #define DUAL_SYM 385
  1270. #define DUMPFILE 386
  1271. #define DUPLICATE_SYM 387
  1272. #define DYNAMIC_SYM 388
  1273. #define EACH_SYM 389
  1274. #define ELSE 390
  1275. #define ELSEIF_SYM 391
  1276. #define ENABLE_SYM 392
  1277. #define ENCLOSED 393
  1278. #define END 394
  1279. #define ENDS_SYM 395
  1280. #define END_OF_INPUT 396
  1281. #define ENGINES_SYM 397
  1282. #define ENGINE_SYM 398
  1283. #define ENUM 399
  1284. #define EQ 400
  1285. #define EQUAL_SYM 401
  1286. #define ERRORS 402
  1287. #define ESCAPED 403
  1288. #define ESCAPE_SYM 404
  1289. #define EVENTS_SYM 405
  1290. #define EVENT_SYM 406
  1291. #define EVERY_SYM 407
  1292. #define EXECUTE_SYM 408
  1293. #define EXISTS 409
  1294. #define EXIT_SYM 410
  1295. #define EXPANSION_SYM 411
  1296. #define EXTENDED_SYM 412
  1297. #define EXTENT_SIZE_SYM 413
  1298. #define EXTRACT_SYM 414
  1299. #define FALSE_SYM 415
  1300. #define FAST_SYM 416
  1301. #define FAULTS_SYM 417
  1302. #define FETCH_SYM 418
  1303. #define FILE_SYM 419
  1304. #define FIRST_SYM 420
  1305. #define FIXED_SYM 421
  1306. #define FLOAT_NUM 422
  1307. #define FLOAT_SYM 423
  1308. #define FLUSH_SYM 424
  1309. #define FORCE_SYM 425
  1310. #define FOREIGN 426
  1311. #define FOR_SYM 427
  1312. #define FOUND_SYM 428
  1313. #define FRAC_SECOND_SYM 429
  1314. #define FROM 430
  1315. #define FULL 431
  1316. #define FULLTEXT_SYM 432
  1317. #define FUNCTION_SYM 433
  1318. #define GE 434
  1319. #define GEOMETRYCOLLECTION 435
  1320. #define GEOMETRY_SYM 436
  1321. #define GET_FORMAT 437
  1322. #define GLOBAL_SYM 438
  1323. #define GRANT 439
  1324. #define GRANTS 440
  1325. #define GROUP_SYM 441
  1326. #define GROUP_CONCAT_SYM 442
  1327. #define GT_SYM 443
  1328. #define HANDLER_SYM 444
  1329. #define HASH_SYM 445
  1330. #define HAVING 446
  1331. #define HELP_SYM 447
  1332. #define HEX_NUM 448
  1333. #define HIGH_PRIORITY 449
  1334. #define HOST_SYM 450
  1335. #define HOSTS_SYM 451
  1336. #define HOUR_MICROSECOND_SYM 452
  1337. #define HOUR_MINUTE_SYM 453
  1338. #define HOUR_SECOND_SYM 454
  1339. #define HOUR_SYM 455
  1340. #define IDENT 456
  1341. #define IDENTIFIED_SYM 457
  1342. #define IDENT_QUOTED 458
  1343. #define IF 459
  1344. #define IGNORE_SYM 460
  1345. #define IMPORT 461
  1346. #define INDEXES 462
  1347. #define INDEX_SYM 463
  1348. #define INFILE 464
  1349. #define INITIAL_SIZE_SYM 465
  1350. #define INNER_SYM 466
  1351. #define INNOBASE_SYM 467
  1352. #define INOUT_SYM 468
  1353. #define INSENSITIVE_SYM 469
  1354. #define INSERT 470
  1355. #define INSERT_METHOD 471
  1356. #define INSTALL_SYM 472
  1357. #define INTERVAL_SYM 473
  1358. #define INTO 474
  1359. #define INT_SYM 475
  1360. #define INVOKER_SYM 476
  1361. #define IN_SYM 477
  1362. #define IO_SYM 478
  1363. #define IPC_SYM 479
  1364. #define IS 480
  1365. #define ISOLATION 481
  1366. #define ISSUER_SYM 482
  1367. #define ITERATE_SYM 483
  1368. #define JOIN_SYM 484
  1369. #define KEYS 485
  1370. #define KEY_BLOCK_SIZE 486
  1371. #define KEY_SYM 487
  1372. #define KILL_SYM 488
  1373. #define LANGUAGE_SYM 489
  1374. #define LAST_SYM 490
  1375. #define LE 491
  1376. #define LEADING 492
  1377. #define LEAVES 493
  1378. #define LEAVE_SYM 494
  1379. #define LEFT 495
  1380. #define LESS_SYM 496
  1381. #define LEVEL_SYM 497
  1382. #define LEX_HOSTNAME 498
  1383. #define LIKE 499
  1384. #define LIMIT 500
  1385. #define LINEAR_SYM 501
  1386. #define LINES 502
  1387. #define LINESTRING 503
  1388. #define LIST_SYM 504
  1389. #define LOAD 505
  1390. #define LOCAL_SYM 506
  1391. #define LOCATOR_SYM 507
  1392. #define LOCKS_SYM 508
  1393. #define LOCK_SYM 509
  1394. #define LOGFILE_SYM 510
  1395. #define LOGS_SYM 511
  1396. #define LONGBLOB 512
  1397. #define LONGTEXT 513
  1398. #define LONG_NUM 514
  1399. #define LONG_SYM 515
  1400. #define LOOP_SYM 516
  1401. #define LOW_PRIORITY 517
  1402. #define LT 518
  1403. #define MASTER_CONNECT_RETRY_SYM 519
  1404. #define MASTER_HOST_SYM 520
  1405. #define MASTER_LOG_FILE_SYM 521
  1406. #define MASTER_LOG_POS_SYM 522
  1407. #define MASTER_PASSWORD_SYM 523
  1408. #define MASTER_PORT_SYM 524
  1409. #define MASTER_SERVER_ID_SYM 525
  1410. #define MASTER_SSL_CAPATH_SYM 526
  1411. #define MASTER_SSL_CA_SYM 527
  1412. #define MASTER_SSL_CERT_SYM 528
  1413. #define MASTER_SSL_CIPHER_SYM 529
  1414. #define MASTER_SSL_KEY_SYM 530
  1415. #define MASTER_SSL_SYM 531
  1416. #define MASTER_SSL_VERIFY_SERVER_CERT_SYM 532
  1417. #define MASTER_SYM 533
  1418. #define MASTER_USER_SYM 534
  1419. #define MATCH 535
  1420. #define MAX_CONNECTIONS_PER_HOUR 536
  1421. #define MAX_QUERIES_PER_HOUR 537
  1422. #define MAX_ROWS 538
  1423. #define MAX_SIZE_SYM 539
  1424. #define MAX_SYM 540
  1425. #define MAX_UPDATES_PER_HOUR 541
  1426. #define MAX_USER_CONNECTIONS_SYM 542
  1427. #define MAX_VALUE_SYM 543
  1428. #define MEDIUMBLOB 544
  1429. #define MEDIUMINT 545
  1430. #define MEDIUMTEXT 546
  1431. #define MEDIUM_SYM 547
  1432. #define MEMORY_SYM 548
  1433. #define MERGE_SYM 549
  1434. #define MICROSECOND_SYM 550
  1435. #define MIGRATE_SYM 551
  1436. #define MINUTE_MICROSECOND_SYM 552
  1437. #define MINUTE_SECOND_SYM 553
  1438. #define MINUTE_SYM 554
  1439. #define MIN_ROWS 555
  1440. #define MIN_SYM 556
  1441. #define MODE_SYM 557
  1442. #define MODIFIES_SYM 558
  1443. #define MODIFY_SYM 559
  1444. #define MOD_SYM 560
  1445. #define MONTH_SYM 561
  1446. #define MULTILINESTRING 562
  1447. #define MULTIPOINT 563
  1448. #define MULTIPOLYGON 564
  1449. #define MUTEX_SYM 565
  1450. #define NAMES_SYM 566
  1451. #define NAME_SYM 567
  1452. #define NATIONAL_SYM 568
  1453. #define NATURAL 569
  1454. #define NCHAR_STRING 570
  1455. #define NCHAR_SYM 571
  1456. #define NDBCLUSTER_SYM 572
  1457. #define NE 573
  1458. #define NEG 574
  1459. #define NEW_SYM 575
  1460. #define NEXT_SYM 576
  1461. #define NODEGROUP_SYM 577
  1462. #define NONE_SYM 578
  1463. #define NOT2_SYM 579
  1464. #define NOT_SYM 580
  1465. #define NOW_SYM 581
  1466. #define NO_SYM 582
  1467. #define NO_WAIT_SYM 583
  1468. #define NO_WRITE_TO_BINLOG 584
  1469. #define NULL_SYM 585
  1470. #define NUM 586
  1471. #define NUMERIC_SYM 587
  1472. #define NVARCHAR_SYM 588
  1473. #define OFFSET_SYM 589
  1474. #define OLD_PASSWORD 590
  1475. #define ON 591
  1476. #define ONE_SHOT_SYM 592
  1477. #define ONE_SYM 593
  1478. #define OPEN_SYM 594
  1479. #define OPTIMIZE 595
  1480. #define OPTIONS_SYM 596
  1481. #define OPTION 597
  1482. #define OPTIONALLY 598
  1483. #define OR2_SYM 599
  1484. #define ORDER_SYM 600
  1485. #define OR_OR_SYM 601
  1486. #define OR_SYM 602
  1487. #define OUTER 603
  1488. #define OUTFILE 604
  1489. #define OUT_SYM 605
  1490. #define OWNER_SYM 606
  1491. #define PACK_KEYS_SYM 607
  1492. #define PAGE_SYM 608
  1493. #define PARAM_MARKER 609
  1494. #define PARSER_SYM 610
  1495. #define PARTIAL 611
  1496. #define PARTITIONING_SYM 612
  1497. #define PARTITIONS_SYM 613
  1498. #define PARTITION_SYM 614
  1499. #define PASSWORD 615
  1500. #define PHASE_SYM 616
  1501. #define PLUGINS_SYM 617
  1502. #define PLUGIN_SYM 618
  1503. #define POINT_SYM 619
  1504. #define POLYGON 620
  1505. #define PORT_SYM 621
  1506. #define POSITION_SYM 622
  1507. #define PRECISION 623
  1508. #define PREPARE_SYM 624
  1509. #define PRESERVE_SYM 625
  1510. #define PREV_SYM 626
  1511. #define PRIMARY_SYM 627
  1512. #define PRIVILEGES 628
  1513. #define PROCEDURE 629
  1514. #define PROCESS 630
  1515. #define PROCESSLIST_SYM 631
  1516. #define PROFILE_SYM 632
  1517. #define PROFILES_SYM 633
  1518. #define PURGE 634
  1519. #define QUARTER_SYM 635
  1520. #define QUERY_SYM 636
  1521. #define QUICK 637
  1522. #define RANGE_SYM 638
  1523. #define READS_SYM 639
  1524. #define READ_ONLY_SYM 640
  1525. #define READ_SYM 641
  1526. #define READ_WRITE_SYM 642
  1527. #define REAL 643
  1528. #define REBUILD_SYM 644
  1529. #define RECOVER_SYM 645
  1530. #define REDOFILE_SYM 646
  1531. #define REDO_BUFFER_SIZE_SYM 647
  1532. #define REDUNDANT_SYM 648
  1533. #define REFERENCES 649
  1534. #define REGEXP 650
  1535. #define RELAY_LOG_FILE_SYM 651
  1536. #define RELAY_LOG_POS_SYM 652
  1537. #define RELAY_THREAD 653
  1538. #define RELEASE_SYM 654
  1539. #define RELOAD 655
  1540. #define REMOVE_SYM 656
  1541. #define RENAME 657
  1542. #define REORGANIZE_SYM 658
  1543. #define REPAIR 659
  1544. #define REPEATABLE_SYM 660
  1545. #define REPEAT_SYM 661
  1546. #define REPLACE 662
  1547. #define REPLICATION 663
  1548. #define REQUIRE_SYM 664
  1549. #define RESET_SYM 665
  1550. #define RESOURCES 666
  1551. #define RESTORE_SYM 667
  1552. #define RESTRICT 668
  1553. #define RESUME_SYM 669
  1554. #define RETURNS_SYM 670
  1555. #define RETURN_SYM 671
  1556. #define REVOKE 672
  1557. #define RIGHT 673
  1558. #define ROLLBACK_SYM 674
  1559. #define ROLLUP_SYM 675
  1560. #define ROUTINE_SYM 676
  1561. #define ROWS_SYM 677
  1562. #define ROW_FORMAT_SYM 678
  1563. #define ROW_SYM 679
  1564. #define RTREE_SYM 680
  1565. #define SAVEPOINT_SYM 681
  1566. #define SCHEDULE_SYM 682
  1567. #define SECOND_MICROSECOND_SYM 683
  1568. #define SECOND_SYM 684
  1569. #define SECURITY_SYM 685
  1570. #define SELECT_SYM 686
  1571. #define SENSITIVE_SYM 687
  1572. #define SEPARATOR_SYM 688
  1573. #define SERIALIZABLE_SYM 689
  1574. #define SERIAL_SYM 690
  1575. #define SESSION_SYM 691
  1576. #define SERVER_SYM 692
  1577. #define SERVER_OPTIONS 693
  1578. #define SET 694
  1579. #define SET_VAR 695
  1580. #define SHARE_SYM 696
  1581. #define SHIFT_LEFT 697
  1582. #define SHIFT_RIGHT 698
  1583. #define SHOW 699
  1584. #define SHUTDOWN 700
  1585. #define SIGNED_SYM 701
  1586. #define SIMPLE_SYM 702
  1587. #define SLAVE 703
  1588. #define SMALLINT 704
  1589. #define SNAPSHOT_SYM 705
  1590. #define SOCKET_SYM 706
  1591. #define SONAME_SYM 707
  1592. #define SOUNDS_SYM 708
  1593. #define SOURCE_SYM 709
  1594. #define SPATIAL_SYM 710
  1595. #define SPECIFIC_SYM 711
  1596. #define SQLEXCEPTION_SYM 712
  1597. #define SQLSTATE_SYM 713
  1598. #define SQLWARNING_SYM 714
  1599. #define SQL_BIG_RESULT 715
  1600. #define SQL_BUFFER_RESULT 716
  1601. #define SQL_CACHE_SYM 717
  1602. #define SQL_CALC_FOUND_ROWS 718
  1603. #define SQL_NO_CACHE_SYM 719
  1604. #define SQL_SMALL_RESULT 720
  1605. #define SQL_SYM 721
  1606. #define SQL_THREAD 722
  1607. #define SSL_SYM 723
  1608. #define STARTING 724
  1609. #define STARTS_SYM 725
  1610. #define START_SYM 726
  1611. #define STATUS_SYM 727
  1612. #define STDDEV_SAMP_SYM 728
  1613. #define STD_SYM 729
  1614. #define STOP_SYM 730
  1615. #define STORAGE_SYM 731
  1616. #define STRAIGHT_JOIN 732
  1617. #define STRING_SYM 733
  1618. #define SUBDATE_SYM 734
  1619. #define SUBJECT_SYM 735
  1620. #define SUBPARTITIONS_SYM 736
  1621. #define SUBPARTITION_SYM 737
  1622. #define SUBSTRING 738
  1623. #define SUM_SYM 739
  1624. #define SUPER_SYM 740
  1625. #define SUSPEND_SYM 741
  1626. #define SWAPS_SYM 742
  1627. #define SWITCHES_SYM 743
  1628. #define SYSDATE 744
  1629. #define TABLES 745
  1630. #define TABLESPACE 746
  1631. #define TABLE_REF_PRIORITY 747
  1632. #define TABLE_SYM 748
  1633. #define TABLE_CHECKSUM_SYM 749
  1634. #define TEMPORARY 750
  1635. #define TEMPTABLE_SYM 751
  1636. #define TERMINATED 752
  1637. #define TEXT_STRING 753
  1638. #define TEXT_SYM 754
  1639. #define THAN_SYM 755
  1640. #define THEN_SYM 756
  1641. #define TIMESTAMP 757
  1642. #define TIMESTAMP_ADD 758
  1643. #define TIMESTAMP_DIFF 759
  1644. #define TIME_SYM 760
  1645. #define TINYBLOB 761
  1646. #define TINYINT 762
  1647. #define TINYTEXT 763
  1648. #define TO_SYM 764
  1649. #define TRAILING 765
  1650. #define TRANSACTION_SYM 766
  1651. #define TRIGGERS_SYM 767
  1652. #define TRIGGER_SYM 768
  1653. #define TRIM 769
  1654. #define TRUE_SYM 770
  1655. #define TRUNCATE_SYM 771
  1656. #define TYPES_SYM 772
  1657. #define TYPE_SYM 773
  1658. #define UDF_RETURNS_SYM 774
  1659. #define ULONGLONG_NUM 775
  1660. #define UNCOMMITTED_SYM 776
  1661. #define UNDEFINED_SYM 777
  1662. #define UNDERSCORE_CHARSET 778
  1663. #define UNDOFILE_SYM 779
  1664. #define UNDO_BUFFER_SIZE_SYM 780
  1665. #define UNDO_SYM 781
  1666. #define UNICODE_SYM 782
  1667. #define UNINSTALL_SYM 783
  1668. #define UNION_SYM 784
  1669. #define UNIQUE_SYM 785
  1670. #define UNKNOWN_SYM 786
  1671. #define UNLOCK_SYM 787
  1672. #define UNSIGNED 788
  1673. #define UNTIL_SYM 789
  1674. #define UPDATE_SYM 790
  1675. #define UPGRADE_SYM 791
  1676. #define USAGE 792
  1677. #define USER 793
  1678. #define USE_FRM 794
  1679. #define USE_SYM 795
  1680. #define USING 796
  1681. #define UTC_DATE_SYM 797
  1682. #define UTC_TIMESTAMP_SYM 798
  1683. #define UTC_TIME_SYM 799
  1684. #define VALUES 800
  1685. #define VALUE_SYM 801
  1686. #define VARBINARY 802
  1687. #define VARCHAR 803
  1688. #define VARIABLES 804
  1689. #define VARIANCE_SYM 805
  1690. #define VARYING 806
  1691. #define VAR_SAMP_SYM 807
  1692. #define VIEW_SYM 808
  1693. #define WAIT_SYM 809
  1694. #define WARNINGS 810
  1695. #define WEEK_SYM 811
  1696. #define WHEN_SYM 812
  1697. #define WHERE 813
  1698. #define WHILE_SYM 814
  1699. #define WITH 815
  1700. #define WORK_SYM 816
  1701. #define WRAPPER_SYM 817
  1702. #define WRITE_SYM 818
  1703. #define X509_SYM 819
  1704. #define XA_SYM 820
  1705. #define XOR 821
  1706. #define YEAR_MONTH_SYM 822
  1707. #define YEAR_SYM 823
  1708. #define ZEROFILL 824
  1709. #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
  1710. typedef union YYSTYPE
  1711. {
  1712. /* Line 214 of yacc.c */
  1713. #line 630 "sql_yacc.yy"
  1714. int num;
  1715. ulong ulong_num;
  1716. ulonglong ulonglong_number;
  1717. longlong longlong_number;
  1718. LEX_STRING lex_str;
  1719. LEX_STRING *lex_str_ptr;
  1720. LEX_SYMBOL symbol;
  1721. Table_ident *table;
  1722. char *simple_string;
  1723. Item *item;
  1724. Item_num *item_num;
  1725. List<Item> *item_list;
  1726. List<String> *string_list;
  1727. String *string;
  1728. Key_part_spec *key_part;
  1729. TABLE_LIST *table_list;
  1730. udf_func *udf;
  1731. LEX_USER *lex_user;
  1732. struct sys_var_with_base variable;
  1733. enum enum_var_type var_type;
  1734. Key::Keytype key_type;
  1735. enum ha_key_alg key_alg;
  1736. handlerton *db_type;
  1737. enum row_type row_type;
  1738. enum ha_rkey_function ha_rkey_mode;
  1739. enum enum_tx_isolation tx_isolation;
  1740. enum Cast_target cast_type;
  1741. enum Item_udftype udf_type;
  1742. CHARSET_INFO *charset;
  1743. thr_lock_type lock_type;
  1744. interval_type interval, interval_time_st;
  1745. timestamp_type date_time_type;
  1746. st_select_lex *select_lex;
  1747. chooser_compare_func_creator boolfunc2creator;
  1748. struct sp_cond_type *spcondtype;
  1749. struct { int vars, conds, hndlrs, curs; } spblock;
  1750. sp_name *spname;
  1751. struct st_lex *lex;
  1752. sp_head *sphead;
  1753. struct p_elem_val *p_elem_value;
  1754. enum index_hint_type index_hint;
  1755. /* Line 214 of yacc.c */
  1756. #line 1908 "sql_yacc.cc"
  1757. } YYSTYPE;
  1758. # define YYSTYPE_IS_TRIVIAL 1
  1759. # define yystype YYSTYPE /* obsolescent; will be withdrawn */
  1760. # define YYSTYPE_IS_DECLARED 1
  1761. #endif
  1762. /* Copy the second part of user declarations. */
  1763. /* Line 264 of yacc.c */
  1764. #line 674 "sql_yacc.yy"
  1765. bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
  1766. /* Line 264 of yacc.c */
  1767. #line 1925 "sql_yacc.cc"
  1768. #ifdef short
  1769. # undef short
  1770. #endif
  1771. #ifdef YYTYPE_UINT8
  1772. typedef YYTYPE_UINT8 yytype_uint8;
  1773. #else
  1774. typedef unsigned char yytype_uint8;
  1775. #endif
  1776. #ifdef YYTYPE_INT8
  1777. typedef YYTYPE_INT8 yytype_int8;
  1778. #elif (defined __STDC__ || defined __C99__FUNC__ \
  1779. || defined __cplusplus || defined _MSC_VER)
  1780. typedef signed char yytype_int8;
  1781. #else
  1782. typedef short int yytype_int8;
  1783. #endif
  1784. #ifdef YYTYPE_UINT16
  1785. typedef YYTYPE_UINT16 yytype_uint16;
  1786. #else
  1787. typedef unsigned short int yytype_uint16;
  1788. #endif
  1789. #ifdef YYTYPE_INT16
  1790. typedef YYTYPE_INT16 yytype_int16;
  1791. #else
  1792. typedef short int yytype_int16;
  1793. #endif
  1794. #ifndef YYSIZE_T
  1795. # ifdef __SIZE_TYPE__
  1796. # define YYSIZE_T __SIZE_TYPE__
  1797. # elif defined size_t
  1798. # define YYSIZE_T size_t
  1799. # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
  1800. || defined __cplusplus || defined _MSC_VER)
  1801. # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
  1802. # define YYSIZE_T size_t
  1803. # else
  1804. # define YYSIZE_T unsigned int
  1805. # endif
  1806. #endif
  1807. #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
  1808. #ifndef YY_
  1809. # if YYENABLE_NLS
  1810. # if ENABLE_NLS
  1811. # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
  1812. # define YY_(msgid) dgettext ("bison-runtime", msgid)
  1813. # endif
  1814. # endif
  1815. # ifndef YY_
  1816. # define YY_(msgid) msgid
  1817. # endif
  1818. #endif
  1819. /* Suppress unused-variable warnings by "using" E. */
  1820. #if ! defined lint || defined __GNUC__
  1821. # define YYUSE(e) ((void) (e))
  1822. #else
  1823. # define YYUSE(e) /* empty */
  1824. #endif
  1825. /* Identity function, used to suppress warnings about constant conditions. */
  1826. #ifndef lint
  1827. # define YYID(n) (n)
  1828. #else
  1829. #if (defined __STDC__ || defined __C99__FUNC__ \
  1830. || defined __cplusplus || defined _MSC_VER)
  1831. static int
  1832. YYID (int yyi)
  1833. #else
  1834. static int
  1835. YYID (yyi)
  1836. int yyi;
  1837. #endif
  1838. {
  1839. return yyi;
  1840. }
  1841. #endif
  1842. #if ! defined yyoverflow || YYERROR_VERBOSE
  1843. /* The parser invokes alloca or malloc; define the necessary symbols. */
  1844. # ifdef YYSTACK_USE_ALLOCA
  1845. # if YYSTACK_USE_ALLOCA
  1846. # ifdef __GNUC__
  1847. # define YYSTACK_ALLOC __builtin_alloca
  1848. # elif defined __BUILTIN_VA_ARG_INCR
  1849. # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
  1850. # elif defined _AIX
  1851. # define YYSTACK_ALLOC __alloca
  1852. # elif defined _MSC_VER
  1853. # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
  1854. # define alloca _alloca
  1855. # else
  1856. #