PageRenderTime 76ms CodeModel.GetById 40ms RepoModel.GetById 0ms app.codeStats 0ms

/server/src/mysql/mysql-5.0.54/sql/sql_yacc.cc

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