1 /* A Bison parser, made by GNU Bison 3.3.2. */ 2 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, 6 Inc. 7 8 This program is free software: you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation, either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20 21 /* As a special exception, you may create a larger work that contains 22 part or all of the Bison parser skeleton and distribute that work 23 under terms of your choice, so long as that work isn't itself a 24 parser generator using the skeleton or a modified version thereof 25 as a parser skeleton. Alternatively, if you modify or redistribute 26 the parser skeleton itself, you may (at your option) remove this 27 special exception, which will cause the skeleton and the resulting 28 Bison output files to be licensed under the GNU General Public 29 License without this special exception. 30 31 This special exception was added by the Free Software Foundation in 32 version 2.2 of Bison. */ 33 34 /* Undocumented macros, especially those whose name start with YY_, 35 are private implementation details. Do not rely on them. */ 36 37 #ifndef YY_BASE_YY_GRAM_H_INCLUDED 38 # define YY_BASE_YY_GRAM_H_INCLUDED 39 /* Debug traces. */ 40 #ifndef YYDEBUG 41 # define YYDEBUG 0 42 #endif 43 #if YYDEBUG 44 extern int base_yydebug; 45 #endif 46 47 /* Token type. */ 48 #ifndef YYTOKENTYPE 49 # define YYTOKENTYPE 50 enum yytokentype 51 { 52 IDENT = 258, 53 FCONST = 259, 54 SCONST = 260, 55 BCONST = 261, 56 XCONST = 262, 57 Op = 263, 58 ICONST = 264, 59 PARAM = 265, 60 TYPECAST = 266, 61 DOT_DOT = 267, 62 COLON_EQUALS = 268, 63 EQUALS_GREATER = 269, 64 LESS_EQUALS = 270, 65 GREATER_EQUALS = 271, 66 NOT_EQUALS = 272, 67 ABORT_P = 273, 68 ABSOLUTE_P = 274, 69 ACCESS = 275, 70 ACTION = 276, 71 ADD_P = 277, 72 ADMIN = 278, 73 AFTER = 279, 74 AGGREGATE = 280, 75 ALL = 281, 76 ALSO = 282, 77 ALTER = 283, 78 ALWAYS = 284, 79 ANALYSE = 285, 80 ANALYZE = 286, 81 AND = 287, 82 ANY = 288, 83 ARRAY = 289, 84 AS = 290, 85 ASC = 291, 86 ASSERTION = 292, 87 ASSIGNMENT = 293, 88 ASYMMETRIC = 294, 89 AT = 295, 90 ATTRIBUTE = 296, 91 AUTHORIZATION = 297, 92 BACKWARD = 298, 93 BEFORE = 299, 94 BEGIN_P = 300, 95 BETWEEN = 301, 96 BIGINT = 302, 97 BINARY = 303, 98 BIT = 304, 99 BOOLEAN_P = 305, 100 BOTH = 306, 101 BY = 307, 102 CACHE = 308, 103 CALLED = 309, 104 CASCADE = 310, 105 CASCADED = 311, 106 CASE = 312, 107 CAST = 313, 108 CATALOG_P = 314, 109 CHAIN = 315, 110 CHAR_P = 316, 111 CHARACTER = 317, 112 CHARACTERISTICS = 318, 113 CHECK = 319, 114 CHECKPOINT = 320, 115 CLASS = 321, 116 CLOSE = 322, 117 CLUSTER = 323, 118 COALESCE = 324, 119 COLLATE = 325, 120 COLLATION = 326, 121 COLUMN = 327, 122 COMMENT = 328, 123 COMMENTS = 329, 124 COMMIT = 330, 125 COMMITTED = 331, 126 CONCURRENTLY = 332, 127 CONFIGURATION = 333, 128 CONFLICT = 334, 129 CONNECTION = 335, 130 CONSTRAINT = 336, 131 CONSTRAINTS = 337, 132 CONTENT_P = 338, 133 CONTINUE_P = 339, 134 CONVERSION_P = 340, 135 COPY = 341, 136 COST = 342, 137 CREATE = 343, 138 CROSS = 344, 139 CSV = 345, 140 CUBE = 346, 141 CURRENT_P = 347, 142 CURRENT_CATALOG = 348, 143 CURRENT_DATE = 349, 144 CURRENT_ROLE = 350, 145 CURRENT_SCHEMA = 351, 146 CURRENT_TIME = 352, 147 CURRENT_TIMESTAMP = 353, 148 CURRENT_USER = 354, 149 CURSOR = 355, 150 CYCLE = 356, 151 DATA_P = 357, 152 DATABASE = 358, 153 DAY_P = 359, 154 DEALLOCATE = 360, 155 DEC = 361, 156 DECIMAL_P = 362, 157 DECLARE = 363, 158 DEFAULT = 364, 159 DEFAULTS = 365, 160 DEFERRABLE = 366, 161 DEFERRED = 367, 162 DEFINER = 368, 163 DELETE_P = 369, 164 DELIMITER = 370, 165 DELIMITERS = 371, 166 DEPENDS = 372, 167 DESC = 373, 168 DICTIONARY = 374, 169 DISABLE_P = 375, 170 DISCARD = 376, 171 DISTINCT = 377, 172 DO = 378, 173 DOCUMENT_P = 379, 174 DOMAIN_P = 380, 175 DOUBLE_P = 381, 176 DROP = 382, 177 EACH = 383, 178 ELSE = 384, 179 ENABLE_P = 385, 180 ENCODING = 386, 181 ENCRYPTED = 387, 182 END_P = 388, 183 ENUM_P = 389, 184 ESCAPE = 390, 185 EVENT = 391, 186 EXCEPT = 392, 187 EXCLUDE = 393, 188 EXCLUDING = 394, 189 EXCLUSIVE = 395, 190 EXECUTE = 396, 191 EXISTS = 397, 192 EXPLAIN = 398, 193 EXTENSION = 399, 194 EXTERNAL = 400, 195 EXTRACT = 401, 196 FALSE_P = 402, 197 FAMILY = 403, 198 FETCH = 404, 199 FILTER = 405, 200 FIRST_P = 406, 201 FLOAT_P = 407, 202 FOLLOWING = 408, 203 FOR = 409, 204 FORCE = 410, 205 FOREIGN = 411, 206 FORWARD = 412, 207 FREEZE = 413, 208 FROM = 414, 209 FULL = 415, 210 FUNCTION = 416, 211 FUNCTIONS = 417, 212 GLOBAL = 418, 213 GRANT = 419, 214 GRANTED = 420, 215 GREATEST = 421, 216 GROUP_P = 422, 217 GROUPING = 423, 218 HANDLER = 424, 219 HAVING = 425, 220 HEADER_P = 426, 221 HOLD = 427, 222 HOUR_P = 428, 223 IDENTITY_P = 429, 224 IF_P = 430, 225 ILIKE = 431, 226 IMMEDIATE = 432, 227 IMMUTABLE = 433, 228 IMPLICIT_P = 434, 229 IMPORT_P = 435, 230 IN_P = 436, 231 INCLUDING = 437, 232 INCREMENT = 438, 233 INDEX = 439, 234 INDEXES = 440, 235 INHERIT = 441, 236 INHERITS = 442, 237 INITIALLY = 443, 238 INLINE_P = 444, 239 INNER_P = 445, 240 INOUT = 446, 241 INPUT_P = 447, 242 INSENSITIVE = 448, 243 INSERT = 449, 244 INSTEAD = 450, 245 INT_P = 451, 246 INTEGER = 452, 247 INTERSECT = 453, 248 INTERVAL = 454, 249 INTO = 455, 250 INVOKER = 456, 251 IS = 457, 252 ISNULL = 458, 253 ISOLATION = 459, 254 JOIN = 460, 255 KEY = 461, 256 LABEL = 462, 257 LANGUAGE = 463, 258 LARGE_P = 464, 259 LAST_P = 465, 260 LATERAL_P = 466, 261 LEADING = 467, 262 LEAKPROOF = 468, 263 LEAST = 469, 264 LEFT = 470, 265 LEVEL = 471, 266 LIKE = 472, 267 LIMIT = 473, 268 LISTEN = 474, 269 LOAD = 475, 270 LOCAL = 476, 271 LOCALTIME = 477, 272 LOCALTIMESTAMP = 478, 273 LOCATION = 479, 274 LOCK_P = 480, 275 LOCKED = 481, 276 LOGGED = 482, 277 MAPPING = 483, 278 MATCH = 484, 279 MATERIALIZED = 485, 280 MAXVALUE = 486, 281 METHOD = 487, 282 MINUTE_P = 488, 283 MINVALUE = 489, 284 MODE = 490, 285 MONTH_P = 491, 286 MOVE = 492, 287 NAME_P = 493, 288 NAMES = 494, 289 NATIONAL = 495, 290 NATURAL = 496, 291 NCHAR = 497, 292 NEXT = 498, 293 NO = 499, 294 NONE = 500, 295 NOT = 501, 296 NOTHING = 502, 297 NOTIFY = 503, 298 NOTNULL = 504, 299 NOWAIT = 505, 300 NULL_P = 506, 301 NULLIF = 507, 302 NULLS_P = 508, 303 NUMERIC = 509, 304 OBJECT_P = 510, 305 OF = 511, 306 OFF = 512, 307 OFFSET = 513, 308 OIDS = 514, 309 ON = 515, 310 ONLY = 516, 311 OPERATOR = 517, 312 OPTION = 518, 313 OPTIONS = 519, 314 OR = 520, 315 ORDER = 521, 316 ORDINALITY = 522, 317 OUT_P = 523, 318 OUTER_P = 524, 319 OVER = 525, 320 OVERLAPS = 526, 321 OVERLAY = 527, 322 OWNED = 528, 323 OWNER = 529, 324 PARALLEL = 530, 325 PARSER = 531, 326 PARTIAL = 532, 327 PARTITION = 533, 328 PASSING = 534, 329 PASSWORD = 535, 330 PLACING = 536, 331 PLANS = 537, 332 POLICY = 538, 333 POSITION = 539, 334 PRECEDING = 540, 335 PRECISION = 541, 336 PRESERVE = 542, 337 PREPARE = 543, 338 PREPARED = 544, 339 PRIMARY = 545, 340 PRIOR = 546, 341 PRIVILEGES = 547, 342 PROCEDURAL = 548, 343 PROCEDURE = 549, 344 PROGRAM = 550, 345 QUOTE = 551, 346 RANGE = 552, 347 READ = 553, 348 REAL = 554, 349 REASSIGN = 555, 350 RECHECK = 556, 351 RECURSIVE = 557, 352 REF = 558, 353 REFERENCES = 559, 354 REFRESH = 560, 355 REINDEX = 561, 356 RELATIVE_P = 562, 357 RELEASE = 563, 358 RENAME = 564, 359 REPEATABLE = 565, 360 REPLACE = 566, 361 REPLICA = 567, 362 RESET = 568, 363 RESTART = 569, 364 RESTRICT = 570, 365 RETURNING = 571, 366 RETURNS = 572, 367 REVOKE = 573, 368 RIGHT = 574, 369 ROLE = 575, 370 ROLLBACK = 576, 371 ROLLUP = 577, 372 ROW = 578, 373 ROWS = 579, 374 RULE = 580, 375 SAVEPOINT = 581, 376 SCHEMA = 582, 377 SCROLL = 583, 378 SEARCH = 584, 379 SECOND_P = 585, 380 SECURITY = 586, 381 SELECT = 587, 382 SEQUENCE = 588, 383 SEQUENCES = 589, 384 SERIALIZABLE = 590, 385 SERVER = 591, 386 SESSION = 592, 387 SESSION_USER = 593, 388 SET = 594, 389 SETS = 595, 390 SETOF = 596, 391 SHARE = 597, 392 SHOW = 598, 393 SIMILAR = 599, 394 SIMPLE = 600, 395 SKIP = 601, 396 SMALLINT = 602, 397 SNAPSHOT = 603, 398 SOME = 604, 399 SQL_P = 605, 400 STABLE = 606, 401 STANDALONE_P = 607, 402 START = 608, 403 STATEMENT = 609, 404 STATISTICS = 610, 405 STDIN = 611, 406 STDOUT = 612, 407 STORAGE = 613, 408 STRICT_P = 614, 409 STRIP_P = 615, 410 SUBSTRING = 616, 411 SYMMETRIC = 617, 412 SYSID = 618, 413 SYSTEM_P = 619, 414 TABLE = 620, 415 TABLES = 621, 416 TABLESAMPLE = 622, 417 TABLESPACE = 623, 418 TEMP = 624, 419 TEMPLATE = 625, 420 TEMPORARY = 626, 421 TEXT_P = 627, 422 THEN = 628, 423 TIME = 629, 424 TIMESTAMP = 630, 425 TO = 631, 426 TRAILING = 632, 427 TRANSACTION = 633, 428 TRANSFORM = 634, 429 TREAT = 635, 430 TRIGGER = 636, 431 TRIM = 637, 432 TRUE_P = 638, 433 TRUNCATE = 639, 434 TRUSTED = 640, 435 TYPE_P = 641, 436 TYPES_P = 642, 437 UNBOUNDED = 643, 438 UNCOMMITTED = 644, 439 UNENCRYPTED = 645, 440 UNION = 646, 441 UNIQUE = 647, 442 UNKNOWN = 648, 443 UNLISTEN = 649, 444 UNLOGGED = 650, 445 UNTIL = 651, 446 UPDATE = 652, 447 USER = 653, 448 USING = 654, 449 VACUUM = 655, 450 VALID = 656, 451 VALIDATE = 657, 452 VALIDATOR = 658, 453 VALUE_P = 659, 454 VALUES = 660, 455 VARCHAR = 661, 456 VARIADIC = 662, 457 VARYING = 663, 458 VERBOSE = 664, 459 VERSION_P = 665, 460 VIEW = 666, 461 VIEWS = 667, 462 VOLATILE = 668, 463 WHEN = 669, 464 WHERE = 670, 465 WHITESPACE_P = 671, 466 WINDOW = 672, 467 WITH = 673, 468 WITHIN = 674, 469 WITHOUT = 675, 470 WORK = 676, 471 WRAPPER = 677, 472 WRITE = 678, 473 XML_P = 679, 474 XMLATTRIBUTES = 680, 475 XMLCONCAT = 681, 476 XMLELEMENT = 682, 477 XMLEXISTS = 683, 478 XMLFOREST = 684, 479 XMLPARSE = 685, 480 XMLPI = 686, 481 XMLROOT = 687, 482 XMLSERIALIZE = 688, 483 YEAR_P = 689, 484 YES_P = 690, 485 ZONE = 691, 486 NOT_LA = 692, 487 NULLS_LA = 693, 488 WITH_LA = 694, 489 POSTFIXOP = 695, 490 UMINUS = 696 491 }; 492 #endif 493 494 /* Value type. */ 495 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 496 497 union YYSTYPE 498 { 499 #line 192 "gram.y" /* yacc.c:1921 */ 500 501 core_YYSTYPE core_yystype; 502 /* these fields must match core_YYSTYPE: */ 503 int ival; 504 char *str; 505 const char *keyword; 506 507 char chr; 508 bool boolean; 509 JoinType jtype; 510 DropBehavior dbehavior; 511 OnCommitAction oncommit; 512 List *list; 513 Node *node; 514 Value *value; 515 ObjectType objtype; 516 TypeName *typnam; 517 FunctionParameter *fun_param; 518 FunctionParameterMode fun_param_mode; 519 FuncWithArgs *funwithargs; 520 DefElem *defelt; 521 SortBy *sortby; 522 WindowDef *windef; 523 JoinExpr *jexpr; 524 IndexElem *ielem; 525 Alias *alias; 526 RangeVar *range; 527 IntoClause *into; 528 WithClause *with; 529 InferClause *infer; 530 OnConflictClause *onconflict; 531 A_Indices *aind; 532 ResTarget *target; 533 struct PrivTarget *privtarget; 534 AccessPriv *accesspriv; 535 struct ImportQual *importqual; 536 InsertStmt *istmt; 537 VariableSetStmt *vsetstmt; 538 539 #line 540 "gram.h" /* yacc.c:1921 */ 540 }; 541 542 typedef union YYSTYPE YYSTYPE; 543 # define YYSTYPE_IS_TRIVIAL 1 544 # define YYSTYPE_IS_DECLARED 1 545 #endif 546 547 /* Location type. */ 548 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED 549 typedef struct YYLTYPE YYLTYPE; 550 struct YYLTYPE 551 { 552 int first_line; 553 int first_column; 554 int last_line; 555 int last_column; 556 }; 557 # define YYLTYPE_IS_DECLARED 1 558 # define YYLTYPE_IS_TRIVIAL 1 559 #endif 560 561 562 563 int base_yyparse (core_yyscan_t yyscanner); 564 565 #endif /* !YY_BASE_YY_GRAM_H_INCLUDED */ 566