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