OmniSciDB  a667adc9c8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
parser_wnd_pregen.h
Go to the documentation of this file.
1 #ifndef YY_Parser_h_included
2 #define YY_Parser_h_included
3 
4 /* before anything */
5 #ifdef c_plusplus
6 #ifndef __cplusplus
7 #define __cplusplus
8 #endif
9 #endif
10 #ifdef __cplusplus
11 #ifndef YY_USE_CLASS
12 #define YY_USE_CLASS
13 #endif
14 #else
15 #endif
16 #include <stdio.h>
17 
18 #define YY_Parser_CLASS SQLParser
19 #define YY_Parser_LVAL yylval
20 #define YY_Parser_CONSTRUCTOR_INIT : lexer(yylval)
21 #define YY_Parser_MEMBERS \
22  virtual ~SQLParser() {} \
23  int parse(const std::string& inputStrOrig, \
24  std::list<std::unique_ptr<Stmt>>& parseTrees, \
25  std::string& lastParsed) { \
26  auto inputStr = boost::algorithm::trim_right_copy_if( \
27  inputStrOrig, boost::is_any_of(";") || boost::is_space()) + \
28  ";"; \
29  boost::regex create_view_expr{ \
30  R"(CREATE\s+VIEW\s+(IF\s+NOT\s+EXISTS\s+)?([A-Za-z_][A-Za-z0-9\$_]*)\s+AS\s+(.*);?)", \
31  boost::regex::extended | boost::regex::icase}; \
32  std::lock_guard<std::mutex> lock(mutex_); \
33  boost::smatch what; \
34  const auto trimmed_input = boost::algorithm::trim_copy(inputStr); \
35  if (boost::regex_match( \
36  trimmed_input.cbegin(), trimmed_input.cend(), what, create_view_expr)) { \
37  const bool if_not_exists = what[1].length() > 0; \
38  const auto view_name = what[2].str(); \
39  const auto select_query = what[3].str(); \
40  parseTrees.emplace_back( \
41  new CreateViewStmt(view_name, select_query, if_not_exists)); \
42  return 0; \
43  } \
44  std::istringstream ss(inputStr); \
45  lexer.switch_streams(&ss, 0); \
46  yyparse(parseTrees); \
47  lastParsed = lexer.YYText(); \
48  if (!errors_.empty()) { \
49  throw std::runtime_error(errors_[0]); \
50  } \
51  return yynerrs; \
52  } \
53  \
54  private: \
55  SQLLexer lexer; \
56  std::mutex mutex_; \
57  std::vector<std::string> errors_;
58 #define YY_Parser_LEX_BODY \
59  { return lexer.yylex(); }
60 #define YY_Parser_ERROR_BODY \
61  {} /*{ std::cerr << "Syntax error on line " << lexer.lineno() << ". Last word parsed: \
62  " << lexer.YYText() << std::endl; } */
63 
64 #include <boost/algorithm/string/predicate.hpp>
65 #include <boost/algorithm/string/trim.hpp>
66 #include <boost/regex.hpp>
67 #include <cstdlib>
68 #include <fstream>
69 #include <iostream>
70 #include <list>
71 #include <mutex>
72 #include <sstream>
73 #include <stdexcept>
74 #include <string>
75 #include <utility>
76 #include "Parser/FlexLexer.h"
77 #include "ParserNode.h"
78 #include "ReservedKeywords.h"
79 #include "TrackedPtr.h"
80 
81 #ifdef DELETE
82 #undef DELETE
83 #endif
84 
85 #ifdef IN
86 #undef IN
87 #endif
88 
89 using namespace Parser;
90 #define YY_Parser_PARSE_PARAM std::list<std::unique_ptr<Stmt>>& parseTrees
91 
92 typedef union {
93  bool boolval;
94  int64_t intval;
95  float floatval;
96  double doubleval;
97  TrackedPtr<std::string>* stringval;
98  SQLOps opval;
99  SQLQualifier qualval;
100  TrackedListPtr<Node>* listval;
101  TrackedListPtr<std::string>* slistval;
102  TrackedPtr<Node>* nodeval;
104 #define YY_Parser_STYPE yy_Parser_stype
105 
106 class SQLLexer : public yyFlexLexer {
107  public:
108  SQLLexer(YY_Parser_STYPE& lval) : yylval(lval){};
110  std::vector<std::unique_ptr<TrackedPtr<std::string>>> parsed_str_tokens_{};
111  std::vector<std::unique_ptr<TrackedListPtr<std::string>>> parsed_str_list_tokens_{};
112  std::vector<std::unique_ptr<TrackedPtr<Node>>> parsed_node_tokens_{};
113  std::vector<std::unique_ptr<TrackedListPtr<Node>>> parsed_node_list_tokens_{};
114 };
115 
116 /* %{ and %header{ and %union, during decl */
117 #ifndef YY_Parser_COMPATIBILITY
118 #ifndef YY_USE_CLASS
119 #define YY_Parser_COMPATIBILITY 1
120 #else
121 #define YY_Parser_COMPATIBILITY 0
122 #endif
123 #endif
124 
125 #if YY_Parser_COMPATIBILITY != 0
126 /* backward compatibility */
127 #ifdef YYLTYPE
128 #ifndef YY_Parser_LTYPE
129 #define YY_Parser_LTYPE YYLTYPE
130 /* WARNING obsolete !!! user defined YYLTYPE not reported into generated header */
131 /* use %define LTYPE */
132 #endif
133 #endif
134 #ifdef YYSTYPE
135 #ifndef YY_Parser_STYPE
136 #define YY_Parser_STYPE YYSTYPE
137 /* WARNING obsolete !!! user defined YYSTYPE not reported into generated header */
138 /* use %define STYPE */
139 #endif
140 #endif
141 #ifdef YYDEBUG
142 #ifndef YY_Parser_DEBUG
143 #define YY_Parser_DEBUG YYDEBUG
144 /* WARNING obsolete !!! user defined YYDEBUG not reported into generated header */
145 /* use %define DEBUG */
146 #endif
147 #endif
148 #ifdef YY_Parser_STYPE
149 #ifndef yystype
150 #define yystype YY_Parser_STYPE
151 #endif
152 #endif
153 /* use goto to be compatible */
154 #ifndef YY_Parser_USE_GOTO
155 #define YY_Parser_USE_GOTO 1
156 #endif
157 #endif
158 
159 /* use no goto to be clean in C++ */
160 #ifndef YY_Parser_USE_GOTO
161 #define YY_Parser_USE_GOTO 0
162 #endif
163 
164 #ifndef YY_Parser_PURE
165 
166 /* YY_Parser_PURE */
167 #endif
168 
169 /* prefix */
170 #ifndef YY_Parser_DEBUG
171 
172 /* YY_Parser_DEBUG */
173 #endif
174 #ifndef YY_Parser_LSP_NEEDED
175 
176 /* YY_Parser_LSP_NEEDED*/
177 #endif
178 /* DEFAULT LTYPE*/
179 #ifdef YY_Parser_LSP_NEEDED
180 #ifndef YY_Parser_LTYPE
181 typedef struct yyltype {
182  int timestamp;
183  int first_line;
184  int first_column;
185  int last_line;
186  int last_column;
187  char* text;
188 } yyltype;
189 
190 #define YY_Parser_LTYPE yyltype
191 #endif
192 #endif
193 /* DEFAULT STYPE*/
194 #ifndef YY_Parser_STYPE
195 #define YY_Parser_STYPE int
196 #endif
197 /* DEFAULT MISCELANEOUS */
198 #ifndef YY_Parser_PARSE
199 #define YY_Parser_PARSE yyparse
200 #endif
201 #ifndef YY_Parser_LEX
202 #define YY_Parser_LEX yylex
203 #endif
204 #ifndef YY_Parser_LVAL
205 #define YY_Parser_LVAL yylval
206 #endif
207 #ifndef YY_Parser_LLOC
208 #define YY_Parser_LLOC yylloc
209 #endif
210 #ifndef YY_Parser_CHAR
211 #define YY_Parser_CHAR yychar
212 #endif
213 #ifndef YY_Parser_NERRS
214 #define YY_Parser_NERRS yynerrs
215 #endif
216 #ifndef YY_Parser_DEBUG_FLAG
217 #define YY_Parser_DEBUG_FLAG yydebug
218 #endif
219 #ifndef YY_Parser_ERROR
220 #define YY_Parser_ERROR yyerror
221 #endif
222 
223 #ifndef YY_Parser_PARSE_PARAM
224 #ifndef __STDC__
225 #ifndef __cplusplus
226 #ifndef YY_USE_CLASS
227 #define YY_Parser_PARSE_PARAM
228 #ifndef YY_Parser_PARSE_PARAM_DEF
229 #define YY_Parser_PARSE_PARAM_DEF
230 #endif
231 #endif
232 #endif
233 #endif
234 #ifndef YY_Parser_PARSE_PARAM
235 #define YY_Parser_PARSE_PARAM void
236 #endif
237 #endif
238 
239 /* TOKEN C */
240 #ifndef YY_USE_CLASS
241 
242 #ifndef YY_Parser_PURE
244 #endif
245 
246 #define NAME 258
247 #define DASHEDNAME 259
248 #define EMAIL 260
249 #define STRING 261
250 #define FWDSTR 262
251 #define SELECTSTRING 263
252 #define QUOTED_IDENTIFIER 264
253 #define INTNUM 265
254 #define FIXEDNUM 266
255 #define OR 267
256 #define AND 268
257 #define NOT 269
258 #define EQUAL 270
259 #define COMPARISON 271
260 #define UMINUS 272
261 #define ADD 273
262 #define ALL 274
263 #define ALTER 275
264 #define AMMSC 276
265 #define ANY 277
266 #define ARCHIVE 278
267 #define ARRAY 279
268 #define AS 280
269 #define ASC 281
270 #define AUTHORIZATION 282
271 #define BETWEEN 283
272 #define BIGINT 284
273 #define BOOLEAN 285
274 #define BY 286
275 #define CASE 287
276 #define CAST 288
277 #define CHAR_LENGTH 289
278 #define CHARACTER 290
279 #define CHECK 291
280 #define CLOSE 292
281 #define CLUSTER 293
282 #define COLUMN 294
283 #define COMMIT 295
284 #define CONTINUE 296
285 #define COPY 297
286 #define CREATE 298
287 #define CURRENT 299
288 #define CURSOR 300
289 #define DATABASE 301
290 #define DATAFRAME 302
291 #define DATE 303
292 #define DATETIME 304
293 #define DATE_TRUNC 305
294 #define DECIMAL 306
295 #define DECLARE 307
296 #define DEFAULT 308
297 #define DELETE 309
298 #define DESC 310
299 #define DICTIONARY 311
300 #define DISTINCT 312
301 #define DOUBLE 313
302 #define DROP 314
303 #define DUMP 315
304 #define ELSE 316
305 #define END 317
306 #define EXISTS 318
307 #define EXTRACT 319
308 #define FETCH 320
309 #define FIRST 321
310 #define FLOAT 322
311 #define FOR 323
312 #define FOREIGN 324
313 #define FOUND 325
314 #define FROM 326
315 #define GEOGRAPHY 327
316 #define GEOMETRY 328
317 #define GRANT 329
318 #define GROUP 330
319 #define HAVING 331
320 #define IF 332
321 #define ILIKE 333
322 #define IN 334
323 #define INSERT 335
324 #define INTEGER 336
325 #define INTO 337
326 #define IS 338
327 #define LANGUAGE 339
328 #define LAST 340
329 #define LENGTH 341
330 #define LIKE 342
331 #define LIMIT 343
332 #define LINESTRING 344
333 #define MOD 345
334 #define MULTIPOLYGON 346
335 #define NOW 347
336 #define NULLX 348
337 #define NUMERIC 349
338 #define OF 350
339 #define OFFSET 351
340 #define ON 352
341 #define OPEN 353
342 #define OPTIMIZE 354
343 #define OPTIMIZED 355
344 #define OPTION 356
345 #define ORDER 357
346 #define PARAMETER 358
347 #define POINT 359
348 #define POLYGON 360
349 #define PRECISION 361
350 #define PRIMARY 362
351 #define PRIVILEGES 363
352 #define PROCEDURE 364
353 #define SERVER 365
354 #define SMALLINT 366
355 #define SOME 367
356 #define TABLE 368
357 #define TEMPORARY 369
358 #define TEXT 370
359 #define THEN 371
360 #define TIME 372
361 #define TIMESTAMP 373
362 #define TINYINT 374
363 #define TO 375
364 #define TRUNCATE 376
365 #define UNION 377
366 #define PUBLIC 378
367 #define REAL 379
368 #define REFERENCES 380
369 #define RENAME 381
370 #define RESTORE 382
371 #define REVOKE 383
372 #define ROLE 384
373 #define ROLLBACK 385
374 #define SCHEMA 386
375 #define SELECT 387
376 #define SET 388
377 #define SHARD 389
378 #define SHARED 390
379 #define SHOW 391
380 #define UNIQUE 392
381 #define UPDATE 393
382 #define USER 394
383 #define VALIDATE 395
384 #define VALUES 396
385 #define VIEW 397
386 #define WHEN 398
387 #define WHENEVER 399
388 #define WHERE 400
389 #define WITH 401
390 #define WORK 402
391 #define EDIT 403
392 #define ACCESS 404
393 #define DASHBOARD 405
394 #define SQL 406
395 #define EDITOR 407
396 
397 /* #defines token */
398 /* after #define tokens, before const tokens S5*/
399 #else
400 #ifndef YY_Parser_CLASS
401 #define YY_Parser_CLASS Parser
402 #endif
403 
404 #ifndef YY_Parser_INHERIT
405 #define YY_Parser_INHERIT
406 #endif
407 #ifndef YY_Parser_MEMBERS
408 #define YY_Parser_MEMBERS
409 #endif
410 #ifndef YY_Parser_LEX_BODY
411 #define YY_Parser_LEX_BODY
412 #endif
413 #ifndef YY_Parser_ERROR_BODY
414 #define YY_Parser_ERROR_BODY
415 #endif
416 #ifndef YY_Parser_CONSTRUCTOR_PARAM
417 #define YY_Parser_CONSTRUCTOR_PARAM
418 #endif
419 /* choose between enum and const */
420 #ifndef YY_Parser_USE_CONST_TOKEN
421 #define YY_Parser_USE_CONST_TOKEN 0
422 /* yes enum is more compatible with flex, */
423 /* so by default we use it */
424 #endif
425 #if YY_Parser_USE_CONST_TOKEN != 0
426 #ifndef YY_Parser_ENUM_TOKEN
427 #define YY_Parser_ENUM_TOKEN yy_Parser_enum_token
428 #endif
429 #endif
430 
431 class YY_Parser_CLASS YY_Parser_INHERIT {
432  public:
433 #if YY_Parser_USE_CONST_TOKEN != 0
434  /* static const int token ... */
435 
436  static const int NAME;
437  static const int DASHEDNAME;
438  static const int EMAIL;
439  static const int STRING;
440  static const int FWDSTR;
441  static const int SELECTSTRING;
442  static const int QUOTED_IDENTIFIER;
443  static const int INTNUM;
444  static const int FIXEDNUM;
445  static const int OR;
446  static const int AND;
447  static const int NOT;
448  static const int EQUAL;
449  static const int COMPARISON;
450  static const int UMINUS;
451  static const int ADD;
452  static const int ALL;
453  static const int ALTER;
454  static const int AMMSC;
455  static const int ANY;
456  static const int ARCHIVE;
457  static const int ARRAY;
458  static const int AS;
459  static const int ASC;
460  static const int AUTHORIZATION;
461  static const int BETWEEN;
462  static const int BIGINT;
463  static const int BOOLEAN;
464  static const int BY;
465  static const int CASE;
466  static const int CAST;
467  static const int CHAR_LENGTH;
468  static const int CHARACTER;
469  static const int CHECK;
470  static const int CLOSE;
471  static const int CLUSTER;
472  static const int COLUMN;
473  static const int COMMIT;
474  static const int CONTINUE;
475  static const int COPY;
476  static const int CREATE;
477  static const int CURRENT;
478  static const int CURSOR;
479  static const int DATABASE;
480  static const int DATAFRAME;
481  static const int DATE;
482  static const int DATETIME;
483  static const int DATE_TRUNC;
484  static const int DECIMAL;
485  static const int DECLARE;
486  static const int DEFAULT;
487  static const int DELETE;
488  static const int DESC;
489  static const int DICTIONARY;
490  static const int DISTINCT;
491  static const int DOUBLE;
492  static const int DROP;
493  static const int DUMP;
494  static const int ELSE;
495  static const int END;
496  static const int EXISTS;
497  static const int EXTRACT;
498  static const int FETCH;
499  static const int FIRST;
500  static const int FLOAT;
501  static const int FOR;
502  static const int FOREIGN;
503  static const int FOUND;
504  static const int FROM;
505  static const int GEOGRAPHY;
506  static const int GEOMETRY;
507  static const int GRANT;
508  static const int GROUP;
509  static const int HAVING;
510  static const int IF;
511  static const int ILIKE;
512  static const int IN;
513  static const int INSERT;
514  static const int INTEGER;
515  static const int INTO;
516  static const int IS;
517  static const int LANGUAGE;
518  static const int LAST;
519  static const int LENGTH;
520  static const int LIKE;
521  static const int LIMIT;
522  static const int LINESTRING;
523  static const int MOD;
524  static const int MULTIPOLYGON;
525  static const int NOW;
526  static const int NULLX;
527  static const int NUMERIC;
528  static const int OF;
529  static const int OFFSET;
530  static const int ON;
531  static const int OPEN;
532  static const int OPTIMIZE;
533  static const int OPTIMIZED;
534  static const int OPTION;
535  static const int ORDER;
536  static const int PARAMETER;
537  static const int POINT;
538  static const int POLYGON;
539  static const int PRECISION;
540  static const int PRIMARY;
541  static const int PRIVILEGES;
542  static const int PROCEDURE;
543  static const int SERVER;
544  static const int SMALLINT;
545  static const int SOME;
546  static const int TABLE;
547  static const int TEMPORARY;
548  static const int TEXT;
549  static const int THEN;
550  static const int TIME;
551  static const int TIMESTAMP;
552  static const int TINYINT;
553  static const int TO;
554  static const int TRUNCATE;
555  static const int UNION;
556  static const int PUBLIC;
557  static const int REAL;
558  static const int REFERENCES;
559  static const int RENAME;
560  static const int RESTORE;
561  static const int REVOKE;
562  static const int ROLE;
563  static const int ROLLBACK;
564  static const int SCHEMA;
565  static const int SELECT;
566  static const int SET;
567  static const int SHARD;
568  static const int SHARED;
569  static const int SHOW;
570  static const int UNIQUE;
571  static const int UPDATE;
572  static const int USER;
573  static const int VALIDATE;
574  static const int VALUES;
575  static const int VIEW;
576  static const int WHEN;
577  static const int WHENEVER;
578  static const int WHERE;
579  static const int WITH;
580  static const int WORK;
581  static const int EDIT;
582  static const int ACCESS;
583  static const int DASHBOARD;
584  static const int SQL;
585  static const int EDITOR;
586 
587  /* decl const */
588 #else
589  enum YY_Parser_ENUM_TOKEN {
590  YY_Parser_NULL_TOKEN = 0
591 
592  ,
593  NAME = 258,
594  DASHEDNAME = 259,
595  EMAIL = 260,
596  STRING = 261,
597  FWDSTR = 262,
598  SELECTSTRING = 263,
599  QUOTED_IDENTIFIER = 264,
600  INTNUM = 265,
601  FIXEDNUM = 266,
602  OR = 267,
603  AND = 268,
604  NOT = 269,
605  EQUAL = 270,
606  COMPARISON = 271,
607  UMINUS = 272,
608  ADD = 273,
609  ALL = 274,
610  ALTER = 275,
611  AMMSC = 276,
612  ANY = 277,
613  ARCHIVE = 278,
614  ARRAY = 279,
615  AS = 280,
616  ASC = 281,
617  AUTHORIZATION = 282,
618  BETWEEN = 283,
619  BIGINT = 284,
620  BOOLEAN = 285,
621  BY = 286,
622  CASE = 287,
623  CAST = 288,
624  CHAR_LENGTH = 289,
625  CHARACTER = 290,
626  CHECK = 291,
627  CLOSE = 292,
628  CLUSTER = 293,
629  COLUMN = 294,
630  COMMIT = 295,
631  CONTINUE = 296,
632  COPY = 297,
633  CREATE = 298,
634  CURRENT = 299,
635  CURSOR = 300,
636  DATABASE = 301,
637  DATAFRAME = 302,
638  DATE = 303,
639  DATETIME = 304,
640  DATE_TRUNC = 305,
641  DECIMAL = 306,
642  DECLARE = 307,
643  DEFAULT = 308,
644  DELETE = 309,
645  DESC = 310,
646  DICTIONARY = 311,
647  DISTINCT = 312,
648  DOUBLE = 313,
649  DROP = 314,
650  DUMP = 315,
651  ELSE = 316,
652  END = 317,
653  EXISTS = 318,
654  EXTRACT = 319,
655  FETCH = 320,
656  FIRST = 321,
657  FLOAT = 322,
658  FOR = 323,
659  FOREIGN = 324,
660  FOUND = 325,
661  FROM = 326,
662  GEOGRAPHY = 327,
663  GEOMETRY = 328,
664  GRANT = 329,
665  GROUP = 330,
666  HAVING = 331,
667  IF = 332,
668  ILIKE = 333,
669  IN = 334,
670  INSERT = 335,
671  INTEGER = 336,
672  INTO = 337,
673  IS = 338,
674  LANGUAGE = 339,
675  LAST = 340,
676  LENGTH = 341,
677  LIKE = 342,
678  LIMIT = 343,
679  LINESTRING = 344,
680  MOD = 345,
681  MULTIPOLYGON = 346,
682  NOW = 347,
683  NULLX = 348,
684  NUMERIC = 349,
685  OF = 350,
686  OFFSET = 351,
687  ON = 352,
688  OPEN = 353,
689  OPTIMIZE = 354,
690  OPTIMIZED = 355,
691  OPTION = 356,
692  ORDER = 357,
693  PARAMETER = 358,
694  POINT = 359,
695  POLYGON = 360,
696  PRECISION = 361,
697  PRIMARY = 362,
698  PRIVILEGES = 363,
699  PROCEDURE = 364,
700  SERVER = 365,
701  SMALLINT = 366,
702  SOME = 367,
703  TABLE = 368,
704  TEMPORARY = 369,
705  TEXT = 370,
706  THEN = 371,
707  TIME = 372,
708  TIMESTAMP = 373,
709  TINYINT = 374,
710  TO = 375,
711  TRUNCATE = 376,
712  UNION = 377,
713  PUBLIC = 378,
714  REAL = 379,
715  REFERENCES = 380,
716  RENAME = 381,
717  RESTORE = 382,
718  REVOKE = 383,
719  ROLE = 384,
720  ROLLBACK = 385,
721  SCHEMA = 386,
722  SELECT = 387,
723  SET = 388,
724  SHARD = 389,
725  SHARED = 390,
726  SHOW = 391,
727  UNIQUE = 392,
728  UPDATE = 393,
729  USER = 394,
730  VALIDATE = 395,
731  VALUES = 396,
732  VIEW = 397,
733  WHEN = 398,
734  WHENEVER = 399,
735  WHERE = 400,
736  WITH = 401,
737  WORK = 402,
738  EDIT = 403,
739  ACCESS = 404,
740  DASHBOARD = 405,
741  SQL = 406,
742  EDITOR = 407
743 
744  /* enum token */
745  }; /* end of enum declaration */
746 #endif
747  public:
749  virtual void YY_Parser_ERROR(const char* msg) YY_Parser_ERROR_BODY;
750 #ifdef YY_Parser_PURE
751 #ifdef YY_Parser_LSP_NEEDED
753  YY_Parser_LTYPE* YY_Parser_LLOC) YY_Parser_LEX_BODY;
754 #else
755  virtual int YY_Parser_LEX(YY_Parser_STYPE* YY_Parser_LVAL) YY_Parser_LEX_BODY;
756 #endif
757 #else
758  virtual int YY_Parser_LEX() YY_Parser_LEX_BODY;
760 #ifdef YY_Parser_LSP_NEEDED
761  YY_Parser_LTYPE YY_Parser_LLOC;
762 #endif
763  int YY_Parser_NERRS;
764  int YY_Parser_CHAR;
765 #endif
766 #if YY_Parser_DEBUG != 0
767  public:
768  int YY_Parser_DEBUG_FLAG; /* nonzero means print parse trace */
769 #endif
770  public:
771  YY_Parser_CLASS(YY_Parser_CONSTRUCTOR_PARAM);
772 
773  public:
775 };
776 /* other declare folow */
777 #endif
778 
779 #if YY_Parser_COMPATIBILITY != 0
780 /* backward compatibility */
781 #ifndef YYSTYPE
782 #define YYSTYPE YY_Parser_STYPE
783 #endif
784 
785 #ifndef YYLTYPE
786 #define YYLTYPE YY_Parser_LTYPE
787 #endif
788 #ifndef YYDEBUG
789 #ifdef YY_Parser_DEBUG
790 #define YYDEBUG YY_Parser_DEBUG
791 #endif
792 #endif
793 
794 #endif
795 /* END */
796 
797 #endif
#define STRING
#define OR
#define TO
#define AMMSC
#define LINESTRING
#define FOREIGN
#define DASHEDNAME
#define WHERE
#define DUMP
#define EDITOR
#define NOT
#define AND
#define PUBLIC
#define ON
#define CURRENT
#define OPEN
#define EQUAL
#define EXTRACT
#define WHENEVER
#define DESC
#define GEOMETRY
#define BY
#define parsed_str_tokens_
#define YY_Parser_ERROR_BODY
#define FETCH
#define MOD
#define CHECK
SQLQualifier
Definition: sqldefs.h:69
#define USER
#define INTO
#define NUMERIC
#define SQL
#define SMALLINT
SQLOps
Definition: sqldefs.h:29
#define AS
#define BOOLEAN
#define REAL
#define LIMIT
#define DOUBLE
#define yylval
#define SELECTSTRING
#define THEN
#define BIGINT
#define QUOTED_IDENTIFIER
#define YY_Parser_LVAL
#define COLUMN
#define ELSE
#define DASHBOARD
#define FWDSTR
#define NAME
#define ALL
#define SHARED
#define DISTINCT
#define GRANT
#define DATE
#define UMINUS
#define VIEW
#define SHARD
#define DELETE
#define OPTION
#define RENAME
#define YY_Parser_STYPE
#define GROUP
#define FROM
#define MULTIPOLYGON
#define POINT
#define LANGUAGE
#define FIRST
#define ROLLBACK
#define SCHEMA
#define DROP
#define UNION
#define ASC
Classes representing a parse tree.
#define YY_Parser_ERROR
#define CASE
#define PRIMARY
#define YY_Parser_CHAR
#define WHEN
#define DECLARE
#define LIKE
#define EMAIL
#define ORDER
#define TIME
#define DATE_TRUNC
#define SHOW
#define TINYINT
#define HAVING
#define ALTER
#define YY_Parser_CLASS
#define UNIQUE
#define CREATE
#define IN
#define YY_Parser_MEMBERS
#define INSERT
#define LAST
#define SOME
#define FIXEDNUM
#define NOW
#define CURSOR
#define CHAR_LENGTH
#define INTNUM
#define RESTORE
#define CLOSE
#define TEXT
#define OF
#define END
#define AUTHORIZATION
#define INTEGER
#define SET
#define YY_Parser_LLOC
SQLLexer(YY_Parser_STYPE &lval)
#define DATAFRAME
#define OPTIMIZE
#define OPTIMIZED
#define UPDATE
#define TEMPORARY
#define TIMESTAMP
#define DATETIME
#define PRECISION
#define DATABASE
#define CHARACTER
#define DEFAULT
#define COPY
#define WITH
#define ROLE
#define REVOKE
#define COMPARISON
#define SERVER
#define YY_Parser_PARSE_PARAM
#define ARCHIVE
#define SELECT
#define YY_Parser_LEX_BODY
#define ILIKE
#define DECIMAL
#define DICTIONARY
#define ACCESS
#define GEOGRAPHY
#define CAST
#define IF
#define POLYGON
#define ADD
#define CLUSTER
#define VALUES
#define IS
#define NULLX
#define YY_Parser_DEBUG_FLAG
#define FOR
#define WORK
#define TABLE
#define FLOAT
#define TRUNCATE
#define ANY
#define COMMIT
#define EXISTS
#define VALIDATE
#define PROCEDURE
#define PARAMETER
#define LENGTH
#define OFFSET
#define YY_Parser_LEX
#define REFERENCES
#define CONTINUE
#define PRIVILEGES
#define FOUND
#define EDIT
#define ARRAY
#define YY_Parser_NERRS
#define YY_Parser_PARSE
#define BETWEEN