YugabyteDB (2.13.1.0-b60, 21121d69985fbf76aa6958d8f04a9bfa936293b5)

Coverage Report

Created: 2022-03-22 16:43

/Users/deen/code/yugabyte-db/build/debugcov-clang-dynamic-arm64-ninja/postgres_build/src/backend/bootstrap/bootscanner.c
Line
Count
Source (jump to first uncovered line)
1
#line 1 "bootscanner.c"
2
3
#line 3 "bootscanner.c"
4
5
#define  YY_INT_ALIGNED short int
6
7
/* A lexical scanner generated by flex */
8
9
#define yy_create_buffer boot_yy_create_buffer
10
#define yy_delete_buffer boot_yy_delete_buffer
11
#define yy_flex_debug boot_yy_flex_debug
12
#define yy_init_buffer boot_yy_init_buffer
13
#define yy_flush_buffer boot_yy_flush_buffer
14
#define yy_load_buffer_state boot_yy_load_buffer_state
15
#define yy_switch_to_buffer boot_yy_switch_to_buffer
16
#define yyin boot_yyin
17
#define yyleng boot_yyleng
18
#define yylex boot_yylex
19
#define yylineno boot_yylineno
20
#define yyout boot_yyout
21
#define yyrestart boot_yyrestart
22
#define yytext boot_yytext
23
#define yywrap boot_yywrap
24
#define yyalloc boot_yyalloc
25
#define yyrealloc boot_yyrealloc
26
#define yyfree boot_yyfree
27
28
#define FLEX_SCANNER
29
#define YY_FLEX_MAJOR_VERSION 2
30
#define YY_FLEX_MINOR_VERSION 6
31
#define YY_FLEX_SUBMINOR_VERSION 3
32
#if YY_FLEX_SUBMINOR_VERSION > 0
33
#define FLEX_BETA
34
#endif
35
36
    #define yy_create_buffer boot_yy_create_buffer
37
38
    #define yy_delete_buffer boot_yy_delete_buffer
39
40
    #define yy_scan_buffer boot_yy_scan_buffer
41
42
    #define yy_scan_string boot_yy_scan_string
43
44
    #define yy_scan_bytes boot_yy_scan_bytes
45
46
    #define yy_init_buffer boot_yy_init_buffer
47
48
    #define yy_flush_buffer boot_yy_flush_buffer
49
50
    #define yy_load_buffer_state boot_yy_load_buffer_state
51
52
    #define yy_switch_to_buffer boot_yy_switch_to_buffer
53
54
    #define yypush_buffer_state boot_yypush_buffer_state
55
56
    #define yypop_buffer_state boot_yypop_buffer_state
57
58
    #define yyensure_buffer_stack boot_yyensure_buffer_stack
59
60
    #define yylex boot_yylex
61
62
    #define yyrestart boot_yyrestart
63
64
    #define yylex_init boot_yylex_init
65
66
    #define yylex_init_extra boot_yylex_init_extra
67
68
    #define yylex_destroy boot_yylex_destroy
69
70
    #define yyget_debug boot_yyget_debug
71
72
    #define yyset_debug boot_yyset_debug
73
74
    #define yyget_extra boot_yyget_extra
75
76
    #define yyset_extra boot_yyset_extra
77
78
    #define yyget_in boot_yyget_in
79
80
    #define yyset_in boot_yyset_in
81
82
    #define yyget_out boot_yyget_out
83
84
    #define yyset_out boot_yyset_out
85
86
    #define yyget_leng boot_yyget_leng
87
88
    #define yyget_text boot_yyget_text
89
90
    #define yyget_lineno boot_yyget_lineno
91
92
    #define yyset_lineno boot_yyset_lineno
93
94
    #define yywrap boot_yywrap
95
96
    #define yyalloc boot_yyalloc
97
98
    #define yyrealloc boot_yyrealloc
99
100
    #define yyfree boot_yyfree
101
102
226k
    #define yytext boot_yytext
103
104
    #define yyleng boot_yyleng
105
106
    #define yyin boot_yyin
107
108
    #define yyout boot_yyout
109
110
    #define yy_flex_debug boot_yy_flex_debug
111
112
    #define yylineno boot_yylineno
113
114
/* First, we deal with  platform-specific or compiler-specific issues. */
115
116
/* begin standard C headers. */
117
#include <stdio.h>
118
#include <string.h>
119
#include <errno.h>
120
#include <stdlib.h>
121
122
/* end standard C headers. */
123
124
/* flex integer type definitions */
125
126
#ifndef FLEXINT_H
127
#define FLEXINT_H
128
129
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
130
131
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
132
133
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
134
 * if you want the limit (max/min) macros for int types. 
135
 */
136
#ifndef __STDC_LIMIT_MACROS
137
#define __STDC_LIMIT_MACROS 1
138
#endif
139
140
#include <inttypes.h>
141
typedef int8_t flex_int8_t;
142
typedef uint8_t flex_uint8_t;
143
typedef int16_t flex_int16_t;
144
typedef uint16_t flex_uint16_t;
145
typedef int32_t flex_int32_t;
146
typedef uint32_t flex_uint32_t;
147
#else
148
typedef signed char flex_int8_t;
149
typedef short int flex_int16_t;
150
typedef int flex_int32_t;
151
typedef unsigned char flex_uint8_t; 
152
typedef unsigned short int flex_uint16_t;
153
typedef unsigned int flex_uint32_t;
154
155
/* Limits of integral types. */
156
#ifndef INT8_MIN
157
#define INT8_MIN               (-128)
158
#endif
159
#ifndef INT16_MIN
160
#define INT16_MIN              (-32767-1)
161
#endif
162
#ifndef INT32_MIN
163
#define INT32_MIN              (-2147483647-1)
164
#endif
165
#ifndef INT8_MAX
166
#define INT8_MAX               (127)
167
#endif
168
#ifndef INT16_MAX
169
#define INT16_MAX              (32767)
170
#endif
171
#ifndef INT32_MAX
172
#define INT32_MAX              (2147483647)
173
#endif
174
#ifndef UINT8_MAX
175
#define UINT8_MAX              (255U)
176
#endif
177
#ifndef UINT16_MAX
178
#define UINT16_MAX             (65535U)
179
#endif
180
#ifndef UINT32_MAX
181
#define UINT32_MAX             (4294967295U)
182
#endif
183
184
#endif /* ! C99 */
185
186
#endif /* ! FLEXINT_H */
187
188
/* TODO: this is always defined, so inline it */
189
#define yyconst const
190
191
#if defined(__GNUC__) && __GNUC__ >= 3
192
#define yynoreturn __attribute__((__noreturn__))
193
#else
194
#define yynoreturn
195
#endif
196
197
/* Returned upon end-of-file. */
198
2.00k
#define YY_NULL 0
199
200
/* Promotes a possibly negative, possibly signed char to an
201
 *   integer in range [0..255] for use as an array index.
202
 */
203
1.96M
#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
204
205
/* Enter a start condition.  This macro really ought to take a parameter,
206
 * but we do it the disgusting crufty way forced on us by the ()-less
207
 * definition of BEGIN.
208
 */
209
#define BEGIN (yy_start) = 1 + 2 *
210
/* Translate the current start state into a value that can be later handed
211
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
212
 * compatibility.
213
 */
214
#define YY_START (((yy_start) - 1) / 2)
215
#define YYSTATE YY_START
216
/* Action number for EOF rule of a given start state. */
217
4.00k
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
218
/* Special action meaning "start processing a new file". */
219
0
#define YY_NEW_FILE boot_yyrestart(boot_yyin  )
220
12.3k
#define YY_END_OF_BUFFER_CHAR 0
221
222
/* Size of default input buffer. */
223
#ifndef YY_BUF_SIZE
224
#ifdef __ia64__
225
/* On IA-64, the buffer size is 16k, not 8k.
226
 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
227
 * Ditto for the __ia64__ case accordingly.
228
 */
229
#define YY_BUF_SIZE 32768
230
#else
231
2.00k
#define YY_BUF_SIZE 16384
232
#endif /* __ia64__ */
233
#endif
234
235
/* The state buf must be large enough to hold one state per character in the main buffer.
236
 */
237
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
238
239
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
240
#define YY_TYPEDEF_YY_BUFFER_STATE
241
typedef struct yy_buffer_state *YY_BUFFER_STATE;
242
#endif
243
244
#ifndef YY_TYPEDEF_YY_SIZE_T
245
#define YY_TYPEDEF_YY_SIZE_T
246
typedef size_t yy_size_t;
247
#endif
248
249
extern int boot_yyleng;
250
251
extern FILE *boot_yyin, *boot_yyout;
252
253
332
#define EOB_ACT_CONTINUE_SCAN 0
254
4.00k
#define EOB_ACT_END_OF_FILE 1
255
4
#define EOB_ACT_LAST_MATCH 2
256
    
257
    #define YY_LESS_LINENO(n)
258
    #define YY_LINENO_REWIND_TO(ptr)
259
    
260
/* Return all but the first "n" matched characters back to the input stream. */
261
#define yyless(n) \
262
  do \
263
    { \
264
    /* Undo effects of setting up boot_yytext. */ \
265
        int yyless_macro_arg = (n); \
266
        YY_LESS_LINENO(yyless_macro_arg);\
267
    *yy_cp = (yy_hold_char); \
268
    YY_RESTORE_YY_MORE_OFFSET \
269
    (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
270
    YY_DO_BEFORE_ACTION; /* set up boot_yytext again */ \
271
    } \
272
  while ( 0 )
273
#define unput(c) yyunput( c, (yytext_ptr)  )
274
275
#ifndef YY_STRUCT_YY_BUFFER_STATE
276
#define YY_STRUCT_YY_BUFFER_STATE
277
struct yy_buffer_state
278
  {
279
  FILE *yy_input_file;
280
281
  char *yy_ch_buf;    /* input buffer */
282
  char *yy_buf_pos;   /* current position in input buffer */
283
284
  /* Size of input buffer in bytes, not including room for EOB
285
   * characters.
286
   */
287
  int yy_buf_size;
288
289
  /* Number of characters read into yy_ch_buf, not including EOB
290
   * characters.
291
   */
292
  int yy_n_chars;
293
294
  /* Whether we "own" the buffer - i.e., we know we created it,
295
   * and can realloc() it to grow it, and should free() it to
296
   * delete it.
297
   */
298
  int yy_is_our_buffer;
299
300
  /* Whether this is an "interactive" input source; if so, and
301
   * if we're using stdio for input, then we want to use getc()
302
   * instead of fread(), to make sure we stop fetching input after
303
   * each newline.
304
   */
305
  int yy_is_interactive;
306
307
  /* Whether we're considered to be at the beginning of a line.
308
   * If so, '^' rules will be active on the next match, otherwise
309
   * not.
310
   */
311
  int yy_at_bol;
312
313
    int yy_bs_lineno; /**< The line count. */
314
    int yy_bs_column; /**< The column count. */
315
316
  /* Whether to try to fill the input buffer when we reach the
317
   * end of it.
318
   */
319
  int yy_fill_buffer;
320
321
  int yy_buffer_status;
322
323
6.17k
#define YY_BUFFER_NEW 0
324
2.00k
#define YY_BUFFER_NORMAL 1
325
  /* When an EOF's been seen but there's still some text to process
326
   * then we mark the buffer as YY_EOF_PENDING, to indicate that we
327
   * shouldn't try reading from the input source any more.  We might
328
   * still have a bunch of tokens to match, though, because of
329
   * possible backing-up.
330
   *
331
   * When we actually see the EOF, we change the status to "new"
332
   * (via boot_yyrestart()), so that the user can continue scanning by
333
   * just pointing boot_yyin at a new input file.
334
   */
335
2.17k
#define YY_BUFFER_EOF_PENDING 2
336
337
  };
338
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
339
340
/* Stack of input buffers. */
341
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
342
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
343
static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
344
345
/* We provide macros for accessing buffer states in case in the
346
 * future we want to put the buffer states in a more general
347
 * "scanner state".
348
 *
349
 * Returns the top of the stack, or NULL.
350
 */
351
14.0k
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
352
14.0k
                          ? 
(yy_buffer_stack)[(yy_buffer_stack_top)]12.0k
\
353
14.0k
                          : NULL)
354
/* Same as previous macro, but useful when we know that the buffer stack is not
355
 * NULL or when we need an lvalue. For internal use only.
356
 */
357
1.29M
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
358
359
/* yy_hold_char holds the character lost when boot_yytext is formed. */
360
static char yy_hold_char;
361
static int yy_n_chars;    /* number of characters read into yy_ch_buf */
362
int boot_yyleng;
363
364
/* Points to current character in buffer. */
365
static char *yy_c_buf_p = NULL;
366
static int yy_init = 0;   /* whether we need to initialize */
367
static int yy_start = 0;  /* start state number */
368
369
/* Flag which is used to allow boot_yywrap()'s to do buffer switches
370
 * instead of setting up a fresh boot_yyin.  A bit of a hack ...
371
 */
372
static int yy_did_buffer_switch_on_eof;
373
374
void boot_yyrestart ( FILE *input_file  );
375
void boot_yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
376
YY_BUFFER_STATE boot_yy_create_buffer ( FILE *file, int size  );
377
void boot_yy_delete_buffer ( YY_BUFFER_STATE b  );
378
void boot_yy_flush_buffer ( YY_BUFFER_STATE b  );
379
void boot_yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
380
void boot_yypop_buffer_state ( void );
381
382
static void boot_yyensure_buffer_stack ( void );
383
static void boot_yy_load_buffer_state ( void );
384
static void boot_yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
385
#define YY_FLUSH_BUFFER boot_yy_flush_buffer(YY_CURRENT_BUFFER )
386
387
YY_BUFFER_STATE boot_yy_scan_buffer ( char *base, yy_size_t size  );
388
YY_BUFFER_STATE boot_yy_scan_string ( const char *yy_str  );
389
YY_BUFFER_STATE boot_yy_scan_bytes ( const char *bytes, int len  );
390
391
void *boot_yyalloc ( yy_size_t  );
392
void *boot_yyrealloc ( void *, yy_size_t  );
393
void boot_yyfree ( void *  );
394
395
#define yy_new_buffer boot_yy_create_buffer
396
#define yy_set_interactive(is_interactive) \
397
  { \
398
  if ( ! YY_CURRENT_BUFFER ){ \
399
        boot_yyensure_buffer_stack (); \
400
    YY_CURRENT_BUFFER_LVALUE =    \
401
            boot_yy_create_buffer(boot_yyin,YY_BUF_SIZE ); \
402
  } \
403
  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
404
  }
405
#define yy_set_bol(at_bol) \
406
  { \
407
  if ( ! YY_CURRENT_BUFFER ){\
408
        boot_yyensure_buffer_stack (); \
409
    YY_CURRENT_BUFFER_LVALUE =    \
410
            boot_yy_create_buffer(boot_yyin,YY_BUF_SIZE ); \
411
  } \
412
  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
413
  }
414
620k
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
415
416
/* Begin user sect3 */
417
418
2.00k
#define boot_yywrap() (/*CONSTCOND*/1)
419
#define YY_SKIP_YYWRAP
420
typedef flex_uint8_t YY_CHAR;
421
422
FILE *boot_yyin = NULL, *boot_yyout = NULL;
423
424
typedef int yy_state_type;
425
426
extern int boot_yylineno;
427
int boot_yylineno = 1;
428
429
extern char *boot_yytext;
430
#ifdef yytext_ptr
431
#undef yytext_ptr
432
#endif
433
637k
#define yytext_ptr boot_yytext
434
435
static yy_state_type yy_get_previous_state ( void );
436
static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
437
static int yy_get_next_buffer ( void );
438
static void yynoreturn yy_fatal_error ( const char* msg  );
439
440
/* Done after the current pattern has been matched and before the
441
 * corresponding action - sets up boot_yytext.
442
 */
443
#define YY_DO_BEFORE_ACTION \
444
620k
  (yytext_ptr) = yy_bp; \
445
620k
  boot_yyleng = (int) (yy_cp - yy_bp); \
446
620k
  (yy_hold_char) = *yy_cp; \
447
620k
  *yy_cp = '\0'; \
448
620k
  (yy_c_buf_p) = yy_cp;
449
#define YY_NUM_RULES 35
450
6.17k
#define YY_END_OF_BUFFER 36
451
/* This struct is not used in this scanner,
452
   but its presence is necessary. */
453
struct yy_trans_info
454
  {
455
  flex_int32_t yy_verify;
456
  flex_int32_t yy_nxt;
457
  };
458
static const flex_int16_t yy_accept[188] =
459
    {   0,
460
        0,    0,   36,   34,   16,   15,   34,   13,   14,   11,
461
       32,   12,   32,   32,   32,   32,   32,   32,   32,   32,
462
       32,   32,   32,   32,   32,   32,   32,   32,   17,    0,
463
       33,   32,   32,   32,   32,   32,   32,   32,   32,   32,
464
       32,   32,   32,   25,   32,   32,   32,   32,   32,   32,
465
       32,   32,   32,   17,   32,   29,   32,    4,   32,   32,
466
       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
467
       32,   32,   32,   32,   32,   32,   30,   32,   32,   32,
468
       32,   32,   32,   32,   32,   32,    1,   32,   32,   32,
469
       32,   32,   32,   32,   32,   32,   28,   32,   32,   20,
470
471
        2,   32,   32,   24,   32,   32,   32,   32,   32,   27,
472
       32,   26,   32,   32,   32,   10,   32,    3,   32,   32,
473
        9,   32,   32,   32,   22,   32,   32,   32,   32,   18,
474
       21,   23,   32,   32,   32,   32,   32,   32,   32,   32,
475
       32,   32,   32,    5,   32,   32,   32,   32,   32,   32,
476
       32,   32,   32,   19,    8,   32,   32,   32,   32,    7,
477
       32,   32,   32,   32,   32,    6,   32,   32,   32,   32,
478
       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
479
       32,   32,   32,   32,   32,   31,    0
480
    } ;
481
482
static const YY_CHAR yy_ec[256] =
483
    {   0,
484
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
485
        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
486
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
487
        1,    2,    1,    4,    5,    1,    1,    1,    1,    6,
488
        7,    1,    1,    8,    9,    1,    1,    9,    9,    9,
489
        9,    9,    9,    9,    9,    9,    9,    1,    1,    1,
490
       10,    1,    1,    1,    9,    9,   11,   12,   13,   14,
491
        9,    9,   15,    9,    9,   16,    9,   17,   18,    9,
492
        9,   19,    9,   20,   21,    9,    9,    9,    9,    9,
493
        1,    1,    1,    1,   22,    1,   23,   24,   25,   26,
494
495
       27,   28,   29,   30,   31,    9,   32,   33,   34,   35,
496
       36,   37,   38,   39,   40,   41,   42,    9,   43,   44,
497
       45,    9,    1,    1,    1,    1,    1,    1,    1,    1,
498
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
499
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
500
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
501
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
502
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
503
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
504
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
505
506
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
507
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
508
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
509
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
510
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
511
        1,    1,    1,    1,    1
512
    } ;
513
514
static const YY_CHAR yy_meta[46] =
515
    {   0,
516
        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
517
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
518
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
519
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
520
        3,    3,    3,    3,    3
521
    } ;
522
523
static const flex_int16_t yy_base[191] =
524
    {   0,
525
        0,  203,  207,  209,  209,  209,  202,  209,  209,  209,
526
        0,  209,  187,   28,  189,  168,   11,   15,  175,  166,
527
       15,  161,  163,  168,  161,   16,  165,  171,    0,  190,
528
      209,    0,  174,  172,  175,  178,  147,  152,  156,  150,
529
      158,  159,   29,    0,  156,  151,  138,  157,  156,  147,
530
      146,  135,  153,    0,  163,    0,  157,    0,  139,  130,
531
      137,  129,  145,  134,   30,  139,  130,  130,  122,  123,
532
      121,  122,  124,  128,   33,  144,    0,  123,  115,  128,
533
      126,  111,  128,  106,  124,  109,    0,  124,  101,  118,
534
      103,  101,  113,  105,  110,  112,    0,  116,   96,    0,
535
536
        0,  109,   96,    0,  107,   92,   93,   94,  104,    0,
537
      102,    0,   86,  100,  101,    0,   86,    0,   97,   83,
538
        0,   77,   94,   98,    0,   78,   93,   84,   93,    0,
539
        0,    0,   93,   75,   91,   80,   88,   73,   73,   81,
540
       71,   84,   66,    0,   73,   70,   71,   70,   73,   73,
541
       75,   71,   68,    0,    0,   54,   54,   71,   61,    0,
542
       60,   54,   54,   53,   56,    0,   45,   59,   60,   61,
543
       51,   41,   58,   56,   45,   38,   49,   51,   42,   22,
544
       44,   39,   28,   28,   35,    0,  209,   69,   57,   72
545
    } ;
546
547
static const flex_int16_t yy_def[191] =
548
    {   0,
549
      187,    1,  187,  187,  187,  187,  188,  187,  187,  187,
550
      189,  187,  189,  189,  189,  189,  189,  189,  189,  189,
551
      189,  189,  189,  189,  189,  189,  189,  189,  190,  188,
552
      187,  189,  189,  189,  189,  189,  189,  189,  189,  189,
553
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
554
      189,  189,  189,  190,  189,  189,  189,  189,  189,  189,
555
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
556
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
557
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
558
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
559
560
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
561
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
562
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
563
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
564
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
565
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
566
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
567
      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
568
      189,  189,  189,  189,  189,  189,    0,  187,  187,  187
569
    } ;
570
571
static const flex_int16_t yy_nxt[255] =
572
    {   0,
573
        4,    5,    6,    7,    4,    8,    9,   10,   11,   12,
574
       11,   11,   11,   13,   11,   11,   14,   15,   11,   11,
575
       11,   16,   11,   17,   18,   19,   11,   11,   11,   11,
576
       20,   11,   11,   11,   11,   21,   22,   11,   23,   24,
577
       25,   26,   27,   11,   28,   34,   38,   40,   35,   44,
578
       50,   45,   39,   41,   65,   51,   84,   95,   96,   32,
579
       85,  186,  185,  184,  183,  182,  181,  180,   66,   30,
580
       30,   30,   54,  179,   54,  178,  177,  176,  175,  174,
581
      173,  172,  171,  170,  169,  168,  167,  166,  165,  164,
582
      163,  162,  161,  160,  159,  158,  157,  156,  155,  154,
583
584
      153,  152,  151,  150,  149,  148,  147,  146,  145,  144,
585
      143,  142,  141,  140,  139,  138,  137,  136,  135,  134,
586
      133,  132,  131,  130,  129,  128,  127,  126,  125,  124,
587
      123,  122,  121,  120,  119,  118,  117,  116,  115,  114,
588
      113,  112,  111,  110,  109,  108,  107,  106,  105,  104,
589
      103,  102,  101,  100,   99,   98,   97,   94,   93,   92,
590
       91,   90,   89,   88,   87,   86,   83,   82,   81,   80,
591
       79,   78,   77,   76,   75,   74,   73,   72,   71,   70,
592
       69,   68,   67,   64,   63,   62,   61,   60,   59,   58,
593
       57,   56,   55,   31,   53,   52,   49,   48,   47,   46,
594
595
       43,   42,   37,   36,   33,   31,  187,   29,    3,  187,
596
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
597
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
598
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
599
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
600
      187,  187,  187,  187
601
    } ;
602
603
static const flex_int16_t yy_chk[255] =
604
    {   0,
605
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
606
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
607
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
608
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
609
        1,    1,    1,    1,    1,   14,   17,   18,   14,   21,
610
       26,   21,   17,   18,   43,   26,   65,   75,   75,  189,
611
       65,  185,  184,  183,  182,  181,  180,  179,   43,  188,
612
      188,  188,  190,  178,  190,  177,  176,  175,  174,  173,
613
      172,  171,  170,  169,  168,  167,  165,  164,  163,  162,
614
      161,  159,  158,  157,  156,  153,  152,  151,  150,  149,
615
616
      148,  147,  146,  145,  143,  142,  141,  140,  139,  138,
617
      137,  136,  135,  134,  133,  129,  128,  127,  126,  124,
618
      123,  122,  120,  119,  117,  115,  114,  113,  111,  109,
619
      108,  107,  106,  105,  103,  102,   99,   98,   96,   95,
620
       94,   93,   92,   91,   90,   89,   88,   86,   85,   84,
621
       83,   82,   81,   80,   79,   78,   76,   74,   73,   72,
622
       71,   70,   69,   68,   67,   66,   64,   63,   62,   61,
623
       60,   59,   57,   55,   53,   52,   51,   50,   49,   48,
624
       47,   46,   45,   42,   41,   40,   39,   38,   37,   36,
625
       35,   34,   33,   30,   28,   27,   25,   24,   23,   22,
626
627
       20,   19,   16,   15,   13,    7,    3,    2,  187,  187,
628
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
629
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
630
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
631
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
632
      187,  187,  187,  187
633
    } ;
634
635
static yy_state_type yy_last_accepting_state;
636
static char *yy_last_accepting_cpos;
637
638
extern int boot_yy_flex_debug;
639
int boot_yy_flex_debug = 0;
640
641
/* The intent behind this definition is that it'll catch
642
 * any uses of REJECT which flex missed.
643
 */
644
#define REJECT reject_used_but_not_detected
645
#define yymore() yymore_used_but_not_detected
646
4.34k
#define YY_MORE_ADJ 0
647
#define YY_RESTORE_YY_MORE_OFFSET
648
char *boot_yytext;
649
#line 1 "bootscanner.l"
650
#line 2 "bootscanner.l"
651
/*-------------------------------------------------------------------------
652
 *
653
 * bootscanner.l
654
 *    a lexical scanner for the bootstrap parser
655
 *
656
 * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
657
 * Portions Copyright (c) 1994, Regents of the University of California
658
 *
659
 *
660
 * IDENTIFICATION
661
 *    src/backend/bootstrap/bootscanner.l
662
 *
663
 *-------------------------------------------------------------------------
664
 */
665
#include "postgres.h"
666
667
#include "access/attnum.h"
668
#include "access/htup.h"
669
#include "access/itup.h"
670
#include "access/tupdesc.h"
671
#include "bootstrap/bootstrap.h"
672
#include "catalog/pg_am.h"
673
#include "catalog/pg_attribute.h"
674
#include "catalog/pg_class.h"
675
#include "nodes/nodes.h"
676
#include "nodes/parsenodes.h"
677
#include "nodes/pg_list.h"
678
#include "nodes/primnodes.h"
679
#include "parser/scansup.h"
680
#include "rewrite/prs2lock.h"
681
#include "storage/block.h"
682
#include "storage/fd.h"
683
#include "storage/itemptr.h"
684
#include "storage/off.h"
685
#include "utils/rel.h"
686
687
/* Not needed now that this file is compiled as part of bootparse. */
688
/* #include "bootparse.h" */
689
690
/* LCOV_EXCL_START */
691
692
/* Avoid exit() on fatal scanner errors (a bit ugly -- see yy_fatal_error) */
693
#undef fprintf
694
0
#define fprintf(file, fmt, msg)  fprintf_to_ereport(fmt, msg)
695
696
static void
697
fprintf_to_ereport(const char *fmt, const char *msg)
698
0
{
699
0
  ereport(ERROR, (errmsg_internal("%s", msg)));
700
0
}
701
702
703
static int  yyline = 1;     /* line number for error reporting */
704
705
#line 705 "bootscanner.c"
706
#define YY_NO_INPUT 1
707
/*
708
 * Keyword tokens return the keyword text (as a constant string) in yylval.kw,
709
 * just in case that's needed because we want to treat the keyword as an
710
 * unreserved identifier.  Note that _null_ is not treated as a keyword
711
 * for this purpose; it's the one "reserved word" in the bootstrap syntax.
712
 *
713
 * Notice that all the keywords are case-sensitive, and for historical
714
 * reasons some must be upper case.
715
 *
716
 * String tokens return a palloc'd string in yylval.str.
717
 */
718
#line 718 "bootscanner.c"
719
720
#define INITIAL 0
721
722
#ifndef YY_NO_UNISTD_H
723
/* Special case for "unistd.h", since it is non-ANSI. We include it way
724
 * down here because we want the user's section 1 to have been scanned first.
725
 * The user has a chance to override it with an option.
726
 */
727
#include <unistd.h>
728
#endif
729
730
#ifndef YY_EXTRA_TYPE
731
#define YY_EXTRA_TYPE void *
732
#endif
733
734
static int yy_init_globals ( void );
735
736
/* Accessor methods to globals.
737
   These are made visible to non-reentrant scanners for convenience. */
738
739
int boot_yylex_destroy ( void );
740
741
int boot_yyget_debug ( void );
742
743
void boot_yyset_debug ( int debug_flag  );
744
745
YY_EXTRA_TYPE boot_yyget_extra ( void );
746
747
void boot_yyset_extra ( YY_EXTRA_TYPE user_defined  );
748
749
FILE *boot_yyget_in ( void );
750
751
void boot_yyset_in  ( FILE * _in_str  );
752
753
FILE *boot_yyget_out ( void );
754
755
void boot_yyset_out  ( FILE * _out_str  );
756
757
      int boot_yyget_leng ( void );
758
759
char *boot_yyget_text ( void );
760
761
int boot_yyget_lineno ( void );
762
763
void boot_yyset_lineno ( int _line_number  );
764
765
/* Macros after this point can all be overridden by user definitions in
766
 * section 1.
767
 */
768
769
#ifndef YY_SKIP_YYWRAP
770
#ifdef __cplusplus
771
extern "C" int boot_yywrap ( void );
772
#else
773
extern int boot_yywrap ( void );
774
#endif
775
#endif
776
777
#ifndef YY_NO_UNPUT
778
    
779
#endif
780
781
#ifndef yytext_ptr
782
static void yy_flex_strncpy ( char *, const char *, int );
783
#endif
784
785
#ifdef YY_NEED_STRLEN
786
static int yy_flex_strlen ( const char * );
787
#endif
788
789
#ifndef YY_NO_INPUT
790
#ifdef __cplusplus
791
static int yyinput ( void );
792
#else
793
static int input ( void );
794
#endif
795
796
#endif
797
798
/* Amount of stuff to slurp up with each read. */
799
#ifndef YY_READ_BUF_SIZE
800
#ifdef __ia64__
801
/* On IA-64, the buffer size is 16k, not 8k */
802
#define YY_READ_BUF_SIZE 16384
803
#else
804
4.33k
#define YY_READ_BUF_SIZE 8192
805
#endif /* __ia64__ */
806
#endif
807
808
/* Copy whatever the last rule matched to the standard output. */
809
#ifndef ECHO
810
/* This used to be an fputs(), but since the string might contain NUL's,
811
 * we now use fwrite().
812
 */
813
#define ECHO do { if (fwrite( boot_yytext, (size_t) boot_yyleng, 1, boot_yyout )) {} } while (0)
814
#endif
815
816
/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
817
 * is returned in "result".
818
 */
819
#ifndef YY_INPUT
820
#define YY_INPUT(buf,result,max_size) \
821
2.16k
  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
822
2.16k
    { \
823
0
    int c = '*'; \
824
0
    int n; \
825
0
    for ( n = 0; n < max_size && \
826
0
           (c = getc( boot_yyin )) != EOF && c != '\n'; ++n ) \
827
0
      buf[n] = (char) c; \
828
0
    if ( c == '\n' ) \
829
0
      buf[n++] = (char) c; \
830
0
    if ( c == EOF && ferror( boot_yyin ) ) \
831
0
      YY_FATAL_ERROR( "input in flex scanner failed" ); \
832
0
    result = n; \
833
0
    } \
834
2.16k
  else \
835
2.16k
    { \
836
2.16k
    errno=0; \
837
2.16k
    while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, boot_yyin)) == 0 && 
ferror(boot_yyin)2.00k
) \
838
2.16k
      { \
839
0
      if( errno != EINTR) \
840
0
        { \
841
0
        YY_FATAL_ERROR( "input in flex scanner failed" ); \
842
0
        break; \
843
0
        } \
844
0
      errno=0; \
845
0
      clearerr(boot_yyin); \
846
0
      } \
847
2.16k
    }\
848
\
849
850
#endif
851
852
/* No semi-colon after return; correct usage is to write "yyterminate();" -
853
 * we don't want an extra ';' after the "return" because that will cause
854
 * some compilers to complain about unreachable statements.
855
 */
856
#ifndef yyterminate
857
2.00k
#define yyterminate() return YY_NULL
858
#endif
859
860
/* Number of entries by which start-condition stack grows. */
861
#ifndef YY_START_STACK_INCR
862
#define YY_START_STACK_INCR 25
863
#endif
864
865
/* Report a fatal error. */
866
#ifndef YY_FATAL_ERROR
867
0
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
868
#endif
869
870
/* end tables serialization structures and prototypes */
871
872
/* Default declaration of generated scanner - a define so the user can
873
 * easily add parameters.
874
 */
875
#ifndef YY_DECL
876
#define YY_DECL_IS_OURS 1
877
878
extern int boot_yylex (void);
879
880
#define YY_DECL int boot_yylex (void)
881
#endif /* !YY_DECL */
882
883
/* Code executed at the beginning of each rule, after boot_yytext and boot_yyleng
884
 * have been set up.
885
 */
886
#ifndef YY_USER_ACTION
887
#define YY_USER_ACTION
888
#endif
889
890
/* Code executed at the end of each rule. */
891
#ifndef YY_BREAK
892
309k
#define YY_BREAK /*LINTED*/break;
893
#endif
894
895
#define YY_RULE_SETUP \
896
618k
  if ( boot_yyleng > 0 ) \
897
618k
    YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
898
618k
        (boot_yytext[boot_yyleng - 1] == '\n'); \
899
618k
  YY_USER_ACTION
900
901
/** The main scanner function which does all the work.
902
 */
903
YY_DECL
904
310k
{
905
310k
  yy_state_type yy_current_state;
906
310k
  char *yy_cp, *yy_bp;
907
310k
  int yy_act;
908
    
909
310k
  if ( !(yy_init) )
910
2.00k
    {
911
2.00k
    (yy_init) = 1;
912
913
#ifdef YY_USER_INIT
914
    YY_USER_INIT;
915
#endif
916
917
2.00k
    if ( ! (yy_start) )
918
2.00k
      (yy_start) = 1; /* first start state */
919
920
2.00k
    if ( ! boot_yyin )
921
2.00k
      boot_yyin = stdin;
922
923
2.00k
    if ( ! boot_yyout )
924
2.00k
      boot_yyout = stdout;
925
926
2.00k
    if ( ! YY_CURRENT_BUFFER ) {
927
2.00k
      boot_yyensure_buffer_stack ();
928
2.00k
      YY_CURRENT_BUFFER_LVALUE =
929
2.00k
        boot_yy_create_buffer(boot_yyin,YY_BUF_SIZE );
930
2.00k
    }
931
932
2.00k
    boot_yy_load_buffer_state( );
933
2.00k
    }
934
935
310k
  {
936
310k
#line 83 "bootscanner.l"
937
938
939
310k
#line 939 "bootscanner.c"
940
941
620k
  while ( /*CONSTCOND*/1 )    /* loops until end-of-file is reached */
942
620k
    {
943
620k
    yy_cp = (yy_c_buf_p);
944
945
    /* Support of boot_yytext. */
946
620k
    *yy_cp = (yy_hold_char);
947
948
    /* yy_bp points to the position in yy_ch_buf of the start of
949
     * the current run.
950
     */
951
620k
    yy_bp = yy_cp;
952
953
620k
    yy_current_state = (yy_start);
954
620k
    yy_current_state += YY_AT_BOL();
955
620k
yy_match:
956
620k
    do
957
1.96M
      {
958
1.96M
      YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
959
1.96M
      if ( yy_accept[yy_current_state] )
960
1.29M
        {
961
1.29M
        (yy_last_accepting_state) = yy_current_state;
962
1.29M
        (yy_last_accepting_cpos) = yy_cp;
963
1.29M
        }
964
3.25M
      while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
965
1.28M
        {
966
1.28M
        yy_current_state = (int) yy_def[yy_current_state];
967
1.28M
        if ( yy_current_state >= 188 )
968
650k
          yy_c = yy_meta[yy_c];
969
1.28M
        }
970
1.96M
      yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
971
1.96M
      ++yy_cp;
972
1.96M
      }
973
1.96M
    while ( yy_current_state != 187 );
974
620k
    yy_cp = (yy_last_accepting_cpos);
975
620k
    yy_current_state = (yy_last_accepting_state);
976
977
620k
yy_find_action:
978
620k
    yy_act = yy_accept[yy_current_state];
979
980
620k
    YY_DO_BEFORE_ACTION;
981
982
622k
do_action:  /* This label is used only to access EOF actions. */
983
984
622k
    switch ( yy_act )
985
622k
  { /* beginning of action switch */
986
0
      case 0: /* must back up */
987
      /* undo the effects of YY_DO_BEFORE_ACTION */
988
0
      *yy_cp = (yy_hold_char);
989
0
      yy_cp = (yy_last_accepting_cpos);
990
0
      yy_current_state = (yy_last_accepting_state);
991
0
      goto yy_find_action;
992
993
122
case 1:
994
122
YY_RULE_SETUP
995
122
#line 85 "bootscanner.l"
996
122
{ yylval.kw = "open"; return OPEN; }
997
0
  YY_BREAK
998
130
case 2:
999
130
YY_RULE_SETUP
1000
130
#line 87 "bootscanner.l"
1001
130
{ yylval.kw = "close"; return XCLOSE; }
1002
0
  YY_BREAK
1003
130
case 3:
1004
130
YY_RULE_SETUP
1005
130
#line 89 "bootscanner.l"
1006
130
{ yylval.kw = "create"; return XCREATE; }
1007
0
  YY_BREAK
1008
8.12k
case 4:
1009
8.12k
YY_RULE_SETUP
1010
8.12k
#line 91 "bootscanner.l"
1011
8.12k
{ yylval.kw = "OID"; return OBJ_ID; }
1012
0
  YY_BREAK
1013
8
case 5:
1014
8
YY_RULE_SETUP
1015
8
#line 92 "bootscanner.l"
1016
8
{ yylval.kw = "bootstrap"; return XBOOTSTRAP; }
1017
0
  YY_BREAK
1018
24
case 6:
1019
24
YY_RULE_SETUP
1020
24
#line 93 "bootscanner.l"
1021
24
{ yylval.kw = "shared_relation"; return XSHARED_RELATION; }
1022
0
  YY_BREAK
1023
50
case 7:
1024
50
YY_RULE_SETUP
1025
50
#line 94 "bootscanner.l"
1026
50
{ yylval.kw = "without_oids"; return XWITHOUT_OIDS; }
1027
0
  YY_BREAK
1028
24
case 8:
1029
24
YY_RULE_SETUP
1030
24
#line 95 "bootscanner.l"
1031
24
{ yylval.kw = "rowtype_oid"; return XROWTYPE_OID; }
1032
0
  YY_BREAK
1033
12.6k
case 9:
1034
12.6k
YY_RULE_SETUP
1035
12.6k
#line 97 "bootscanner.l"
1036
12.6k
{ yylval.kw = "insert"; return INSERT_TUPLE; }
1037
0
  YY_BREAK
1038
48.3k
case 10:
1039
48.3k
YY_RULE_SETUP
1040
48.3k
#line 99 "bootscanner.l"
1041
48.3k
{ return NULLVAL; }
1042
0
  YY_BREAK
1043
1.13k
case 11:
1044
1.13k
YY_RULE_SETUP
1045
1.13k
#line 101 "bootscanner.l"
1046
1.13k
{ return COMMA; }
1047
0
  YY_BREAK
1048
9.19k
case 12:
1049
9.19k
YY_RULE_SETUP
1050
9.19k
#line 102 "bootscanner.l"
1051
9.19k
{ return EQUALS; }
1052
0
  YY_BREAK
1053
13.1k
case 13:
1054
13.1k
YY_RULE_SETUP
1055
13.1k
#line 103 "bootscanner.l"
1056
13.1k
{ return LPAREN; }
1057
0
  YY_BREAK
1058
13.1k
case 14:
1059
13.1k
YY_RULE_SETUP
1060
13.1k
#line 104 "bootscanner.l"
1061
13.1k
{ return RPAREN; }
1062
0
  YY_BREAK
1063
14.7k
case 15:
1064
/* rule 15 can match eol */
1065
14.7k
YY_RULE_SETUP
1066
14.7k
#line 106 "bootscanner.l"
1067
14.7k
{ yyline++; }
1068
14.7k
  YY_BREAK
1069
294k
case 16:
1070
294k
YY_RULE_SETUP
1071
294k
#line 107 "bootscanner.l"
1072
294k
;
1073
294k
  YY_BREAK
1074
2
case 17:
1075
2
YY_RULE_SETUP
1076
2
#line 109 "bootscanner.l"
1077
2
;   /* drop everything after "#" for comments */
1078
2
  YY_BREAK
1079
236
case 18:
1080
236
YY_RULE_SETUP
1081
236
#line 111 "bootscanner.l"
1082
236
{ yylval.kw = "declare"; return XDECLARE; }
1083
0
  YY_BREAK
1084
124
case 19:
1085
124
YY_RULE_SETUP
1086
124
#line 112 "bootscanner.l"
1087
124
{ yylval.kw = "yb_declare"; return YBDECLARE; } /* For YugaByte pkeys */
1088
0
  YY_BREAK
1089
2
case 20:
1090
2
YY_RULE_SETUP
1091
2
#line 113 "bootscanner.l"
1092
2
{ yylval.kw = "build"; return XBUILD; }
1093
0
  YY_BREAK
1094
2
case 21:
1095
2
YY_RULE_SETUP
1096
2
#line 114 "bootscanner.l"
1097
2
{ yylval.kw = "indices"; return INDICES; }
1098
0
  YY_BREAK
1099
88
case 22:
1100
88
YY_RULE_SETUP
1101
88
#line 115 "bootscanner.l"
1102
88
{ yylval.kw = "unique"; return UNIQUE; }
1103
0
  YY_BREAK
1104
248
case 23:
1105
248
YY_RULE_SETUP
1106
248
#line 116 "bootscanner.l"
1107
248
{ yylval.kw = "primary"; return PRIMARY; } /* For YugaByte pkeys */
1108
0
  YY_BREAK
1109
360
case 24:
1110
360
YY_RULE_SETUP
1111
360
#line 117 "bootscanner.l"
1112
360
{ yylval.kw = "index"; return INDEX; }
1113
0
  YY_BREAK
1114
360
case 25:
1115
360
YY_RULE_SETUP
1116
360
#line 118 "bootscanner.l"
1117
360
{ yylval.kw = "on"; return ON; }
1118
0
  YY_BREAK
1119
360
case 26:
1120
360
YY_RULE_SETUP
1121
360
#line 119 "bootscanner.l"
1122
360
{ yylval.kw = "using"; return USING; }
1123
0
  YY_BREAK
1124
0
case 27:
1125
0
YY_RULE_SETUP
1126
0
#line 120 "bootscanner.l"
1127
0
{ yylval.kw = "toast"; return XTOAST; }
1128
0
  YY_BREAK
1129
38
case 28:
1130
38
YY_RULE_SETUP
1131
38
#line 121 "bootscanner.l"
1132
38
{ yylval.kw = "FORCE"; return XFORCE; }
1133
0
  YY_BREAK
1134
36
case 29:
1135
36
YY_RULE_SETUP
1136
36
#line 122 "bootscanner.l"
1137
36
{ yylval.kw = "NOT"; return XNOT; }
1138
0
  YY_BREAK
1139
38
case 30:
1140
38
YY_RULE_SETUP
1141
38
#line 123 "bootscanner.l"
1142
38
{ yylval.kw = "NULL"; return XNULL; }
1143
0
  YY_BREAK
1144
2
case 31:
1145
2
YY_RULE_SETUP
1146
2
#line 124 "bootscanner.l"
1147
2
{ yylval.kw = "yb_check_if_initdb_is_already_done"; return YBCHECKINITDBDONE; }
1148
0
  YY_BREAK
1149
194k
case 32:
1150
194k
YY_RULE_SETUP
1151
194k
#line 125 "bootscanner.l"
1152
194k
{
1153
194k
          yylval.str = scanstr(yytext);
1154
194k
          return ID;
1155
0
        }
1156
0
  YY_BREAK
1157
6.36k
case 33:
1158
/* rule 33 can match eol */
1159
6.36k
YY_RULE_SETUP
1160
6.36k
#line 129 "bootscanner.l"
1161
6.36k
{
1162
          /* leading and trailing quotes are not passed to scanstr */
1163
6.36k
          yytext[strlen(yytext) - 1] = '\0';
1164
6.36k
          yylval.str = scanstr(yytext+1);
1165
6.36k
          yytext[strlen(yytext)] = '"'; /* restore yytext */
1166
6.36k
          return ID;
1167
0
        }
1168
0
  YY_BREAK
1169
0
case 34:
1170
0
YY_RULE_SETUP
1171
0
#line 137 "bootscanner.l"
1172
0
{
1173
0
          elog(ERROR, "syntax error at line %d: unexpected character \"%s\"", yyline, yytext);
1174
0
        }
1175
0
  YY_BREAK
1176
0
case 35:
1177
0
YY_RULE_SETUP
1178
0
#line 141 "bootscanner.l"
1179
0
YY_FATAL_ERROR( "flex scanner jammed" );
1180
0
  YY_BREAK
1181
0
#line 1181 "bootscanner.c"
1182
2.00k
case YY_STATE_EOF(INITIAL):
1183
2.00k
  yyterminate();
1184
1185
2.17k
  case YY_END_OF_BUFFER:
1186
2.17k
    {
1187
    /* Amount of text matched not including the EOB char. */
1188
2.17k
    int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1189
1190
    /* Undo the effects of YY_DO_BEFORE_ACTION. */
1191
2.17k
    *yy_cp = (yy_hold_char);
1192
2.17k
    YY_RESTORE_YY_MORE_OFFSET
1193
1194
2.17k
    if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1195
2.00k
      {
1196
      /* We're scanning a new file or input source.  It's
1197
       * possible that this happened because the user
1198
       * just pointed boot_yyin at a new source and called
1199
       * boot_yylex().  If so, then we have to assure
1200
       * consistency between YY_CURRENT_BUFFER and our
1201
       * globals.  Here is the right place to do so, because
1202
       * this is the first action (other than possibly a
1203
       * back-up) that will match for the new input source.
1204
       */
1205
2.00k
      (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1206
2.00k
      YY_CURRENT_BUFFER_LVALUE->yy_input_file = boot_yyin;
1207
2.00k
      YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1208
2.00k
      }
1209
1210
    /* Note that here we test for yy_c_buf_p "<=" to the position
1211
     * of the first EOB in the buffer, since yy_c_buf_p will
1212
     * already have been incremented past the NUL character
1213
     * (since all states make transitions on EOB to the
1214
     * end-of-buffer state).  Contrast this with the test
1215
     * in input().
1216
     */
1217
2.17k
    if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1218
0
      { /* This was really a NUL. */
1219
0
      yy_state_type yy_next_state;
1220
1221
0
      (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1222
1223
0
      yy_current_state = yy_get_previous_state(  );
1224
1225
      /* Okay, we're now positioned to make the NUL
1226
       * transition.  We couldn't have
1227
       * yy_get_previous_state() go ahead and do it
1228
       * for us because it doesn't know how to deal
1229
       * with the possibility of jamming (and we don't
1230
       * want to build jamming into it because then it
1231
       * will run more slowly).
1232
       */
1233
1234
0
      yy_next_state = yy_try_NUL_trans( yy_current_state );
1235
1236
0
      yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1237
1238
0
      if ( yy_next_state )
1239
0
        {
1240
        /* Consume the NUL. */
1241
0
        yy_cp = ++(yy_c_buf_p);
1242
0
        yy_current_state = yy_next_state;
1243
0
        goto yy_match;
1244
0
        }
1245
1246
0
      else
1247
0
        {
1248
0
        yy_cp = (yy_last_accepting_cpos);
1249
0
        yy_current_state = (yy_last_accepting_state);
1250
0
        goto yy_find_action;
1251
0
        }
1252
0
      }
1253
1254
2.17k
    else switch ( yy_get_next_buffer(  ) )
1255
2.17k
      {
1256
2.00k
      case EOB_ACT_END_OF_FILE:
1257
2.00k
        {
1258
2.00k
        (yy_did_buffer_switch_on_eof) = 0;
1259
1260
2.00k
        if ( boot_yywrap( ) )
1261
2.00k
          {
1262
          /* Note: because we've taken care in
1263
           * yy_get_next_buffer() to have set up
1264
           * boot_yytext, we can now set up
1265
           * yy_c_buf_p so that if some total
1266
           * hoser (like flex itself) wants to
1267
           * call the scanner after we return the
1268
           * YY_NULL, it'll still work - another
1269
           * YY_NULL will get returned.
1270
           */
1271
2.00k
          (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1272
1273
2.00k
          yy_act = YY_STATE_EOF(YY_START);
1274
2.00k
          goto do_action;
1275
2.00k
          }
1276
1277
0
        else
1278
0
          {
1279
0
          if ( ! (yy_did_buffer_switch_on_eof) )
1280
0
            YY_NEW_FILE;
1281
0
          }
1282
0
        break;
1283
2.00k
        }
1284
1285
166
      case EOB_ACT_CONTINUE_SCAN:
1286
166
        (yy_c_buf_p) =
1287
166
          (yytext_ptr) + yy_amount_of_matched_text;
1288
1289
166
        yy_current_state = yy_get_previous_state(  );
1290
1291
166
        yy_cp = (yy_c_buf_p);
1292
166
        yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1293
166
        goto yy_match;
1294
1295
2
      case EOB_ACT_LAST_MATCH:
1296
2
        (yy_c_buf_p) =
1297
2
        &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1298
1299
2
        yy_current_state = yy_get_previous_state(  );
1300
1301
2
        yy_cp = (yy_c_buf_p);
1302
2
        yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1303
2
        goto yy_find_action;
1304
2.17k
      }
1305
0
    break;
1306
2.17k
    }
1307
1308
0
  default:
1309
0
    YY_FATAL_ERROR(
1310
622k
      "fatal flex scanner internal error--no action found" );
1311
622k
  } /* end of action switch */
1312
622k
    } /* end of scanning one token */
1313
310k
  } /* end of user's declarations */
1314
310k
} /* end of boot_yylex */
1315
1316
/* yy_get_next_buffer - try to read in a new buffer
1317
 *
1318
 * Returns a code representing an action:
1319
 *  EOB_ACT_LAST_MATCH -
1320
 *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1321
 *  EOB_ACT_END_OF_FILE - end of file
1322
 */
1323
static int yy_get_next_buffer (void)
1324
2.17k
{
1325
2.17k
      char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1326
2.17k
  char *source = (yytext_ptr);
1327
2.17k
  int number_to_move, i;
1328
2.17k
  int ret_val;
1329
1330
2.17k
  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1331
0
    YY_FATAL_ERROR(
1332
2.17k
    "fatal flex scanner internal error--end of buffer missed" );
1333
1334
2.17k
  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1335
0
    { /* Don't try to fill the buffer, so this is an EOF. */
1336
0
    if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1337
0
      {
1338
      /* We matched a single character, the EOB, so
1339
       * treat this as a final EOF.
1340
       */
1341
0
      return EOB_ACT_END_OF_FILE;
1342
0
      }
1343
1344
0
    else
1345
0
      {
1346
      /* We matched some text prior to the EOB, first
1347
       * process it.
1348
       */
1349
0
      return EOB_ACT_LAST_MATCH;
1350
0
      }
1351
0
    }
1352
1353
  /* Try to read more data. */
1354
1355
  /* First move last chars to start of buffer. */
1356
2.17k
  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
1357
1358
2.74k
  for ( i = 0; i < number_to_move; 
++i578
)
1359
578
    *(dest++) = *(source++);
1360
1361
2.17k
  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1362
    /* don't do the read, it's not guaranteed to return an EOF,
1363
     * just force an EOF
1364
     */
1365
2
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1366
1367
2.16k
  else
1368
2.16k
    {
1369
2.16k
      int num_to_read =
1370
2.16k
      YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1371
1372
2.16k
    while ( num_to_read <= 0 )
1373
0
      { /* Not enough room in the buffer - grow it. */
1374
1375
      /* just a shorter name for the current buffer */
1376
0
      YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1377
1378
0
      int yy_c_buf_p_offset =
1379
0
        (int) ((yy_c_buf_p) - b->yy_ch_buf);
1380
1381
0
      if ( b->yy_is_our_buffer )
1382
0
        {
1383
0
        int new_size = b->yy_buf_size * 2;
1384
1385
0
        if ( new_size <= 0 )
1386
0
          b->yy_buf_size += b->yy_buf_size / 8;
1387
0
        else
1388
0
          b->yy_buf_size *= 2;
1389
1390
0
        b->yy_ch_buf = (char *)
1391
          /* Include room in for 2 EOB chars. */
1392
0
          boot_yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2)  );
1393
0
        }
1394
0
      else
1395
        /* Can't grow it, we don't own it. */
1396
0
        b->yy_ch_buf = NULL;
1397
1398
0
      if ( ! b->yy_ch_buf )
1399
0
        YY_FATAL_ERROR(
1400
0
        "fatal error - scanner input buffer overflow" );
1401
1402
0
      (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1403
1404
0
      num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1405
0
            number_to_move - 1;
1406
1407
0
      }
1408
1409
2.16k
    if ( num_to_read > YY_READ_BUF_SIZE )
1410
2.16k
      num_to_read = YY_READ_BUF_SIZE;
1411
1412
    /* Read in more data. */
1413
2.16k
    YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1414
2.16k
      (yy_n_chars), num_to_read );
1415
1416
2.16k
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1417
2.16k
    }
1418
1419
2.17k
  if ( (yy_n_chars) == 0 )
1420
2.00k
    {
1421
2.00k
    if ( number_to_move == YY_MORE_ADJ )
1422
2.00k
      {
1423
2.00k
      ret_val = EOB_ACT_END_OF_FILE;
1424
2.00k
      boot_yyrestart(boot_yyin  );
1425
2.00k
      }
1426
1427
2
    else
1428
2
      {
1429
2
      ret_val = EOB_ACT_LAST_MATCH;
1430
2
      YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1431
2
        YY_BUFFER_EOF_PENDING;
1432
2
      }
1433
2.00k
    }
1434
1435
166
  else
1436
166
    ret_val = EOB_ACT_CONTINUE_SCAN;
1437
1438
2.17k
  if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1439
    /* Extend the array by 50%, plus the number we really need. */
1440
0
    int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1441
0
    YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) boot_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size  );
1442
0
    if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1443
0
      YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1444
0
  }
1445
1446
2.17k
  (yy_n_chars) += number_to_move;
1447
2.17k
  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1448
2.17k
  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1449
1450
2.17k
  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1451
1452
2.17k
  return ret_val;
1453
2.17k
}
1454
1455
/* yy_get_previous_state - get the state just before the EOB char was reached */
1456
1457
    static yy_state_type yy_get_previous_state (void)
1458
168
{
1459
168
  yy_state_type yy_current_state;
1460
168
  char *yy_cp;
1461
    
1462
168
  yy_current_state = (yy_start);
1463
168
  yy_current_state += YY_AT_BOL();
1464
1465
746
  for ( yy_cp = (
yytext_ptr168
) +
YY_MORE_ADJ168
; yy_cp < (yy_c_buf_p);
++yy_cp578
)
1466
578
    {
1467
578
    YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 
10
);
1468
578
    if ( yy_accept[yy_current_state] )
1469
388
      {
1470
388
      (yy_last_accepting_state) = yy_current_state;
1471
388
      (yy_last_accepting_cpos) = yy_cp;
1472
388
      }
1473
852
    while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1474
274
      {
1475
274
      yy_current_state = (int) yy_def[yy_current_state];
1476
274
      if ( yy_current_state >= 188 )
1477
268
        yy_c = yy_meta[yy_c];
1478
274
      }
1479
578
    yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1480
578
    }
1481
1482
168
  return yy_current_state;
1483
168
}
1484
1485
/* yy_try_NUL_trans - try to make a transition on the NUL character
1486
 *
1487
 * synopsis
1488
 *  next_state = yy_try_NUL_trans( current_state );
1489
 */
1490
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1491
0
{
1492
0
  int yy_is_jam;
1493
0
      char *yy_cp = (yy_c_buf_p);
1494
1495
0
  YY_CHAR yy_c = 1;
1496
0
  if ( yy_accept[yy_current_state] )
1497
0
    {
1498
0
    (yy_last_accepting_state) = yy_current_state;
1499
0
    (yy_last_accepting_cpos) = yy_cp;
1500
0
    }
1501
0
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1502
0
    {
1503
0
    yy_current_state = (int) yy_def[yy_current_state];
1504
0
    if ( yy_current_state >= 188 )
1505
0
      yy_c = yy_meta[yy_c];
1506
0
    }
1507
0
  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1508
0
  yy_is_jam = (yy_current_state == 187);
1509
1510
0
    return yy_is_jam ? 0 : yy_current_state;
1511
0
}
1512
1513
#ifndef YY_NO_UNPUT
1514
1515
#endif
1516
1517
#ifndef YY_NO_INPUT
1518
#ifdef __cplusplus
1519
    static int yyinput (void)
1520
#else
1521
    static int input  (void)
1522
#endif
1523
1524
{
1525
  int c;
1526
    
1527
  *(yy_c_buf_p) = (yy_hold_char);
1528
1529
  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1530
    {
1531
    /* yy_c_buf_p now points to the character we want to return.
1532
     * If this occurs *before* the EOB characters, then it's a
1533
     * valid NUL; if not, then we've hit the end of the buffer.
1534
     */
1535
    if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1536
      /* This was really a NUL. */
1537
      *(yy_c_buf_p) = '\0';
1538
1539
    else
1540
      { /* need more input */
1541
      int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
1542
      ++(yy_c_buf_p);
1543
1544
      switch ( yy_get_next_buffer(  ) )
1545
        {
1546
        case EOB_ACT_LAST_MATCH:
1547
          /* This happens because yy_g_n_b()
1548
           * sees that we've accumulated a
1549
           * token and flags that we need to
1550
           * try matching the token before
1551
           * proceeding.  But for input(),
1552
           * there's no matching to consider.
1553
           * So convert the EOB_ACT_LAST_MATCH
1554
           * to EOB_ACT_END_OF_FILE.
1555
           */
1556
1557
          /* Reset buffer status. */
1558
          boot_yyrestart(boot_yyin );
1559
1560
          /*FALLTHROUGH*/
1561
1562
        case EOB_ACT_END_OF_FILE:
1563
          {
1564
          if ( boot_yywrap( ) )
1565
            return 0;
1566
1567
          if ( ! (yy_did_buffer_switch_on_eof) )
1568
            YY_NEW_FILE;
1569
#ifdef __cplusplus
1570
          return yyinput();
1571
#else
1572
          return input();
1573
#endif
1574
          }
1575
1576
        case EOB_ACT_CONTINUE_SCAN:
1577
          (yy_c_buf_p) = (yytext_ptr) + offset;
1578
          break;
1579
        }
1580
      }
1581
    }
1582
1583
  c = *(unsigned char *) (yy_c_buf_p);  /* cast for 8-bit char's */
1584
  *(yy_c_buf_p) = '\0'; /* preserve boot_yytext */
1585
  (yy_hold_char) = *++(yy_c_buf_p);
1586
1587
  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
1588
1589
  return c;
1590
}
1591
#endif  /* ifndef YY_NO_INPUT */
1592
1593
/** Immediately switch to a different input stream.
1594
 * @param input_file A readable stream.
1595
 * 
1596
 * @note This function does not reset the start condition to @c INITIAL .
1597
 */
1598
    void boot_yyrestart  (FILE * input_file )
1599
2.00k
{
1600
    
1601
2.00k
  if ( ! YY_CURRENT_BUFFER ){
1602
0
        boot_yyensure_buffer_stack ();
1603
0
    YY_CURRENT_BUFFER_LVALUE =
1604
0
            boot_yy_create_buffer(boot_yyin,YY_BUF_SIZE );
1605
0
  }
1606
1607
2.00k
  boot_yy_init_buffer(YY_CURRENT_BUFFER,input_file );
1608
2.00k
  boot_yy_load_buffer_state( );
1609
2.00k
}
1610
1611
/** Switch to a different input buffer.
1612
 * @param new_buffer The new input buffer.
1613
 * 
1614
 */
1615
    void boot_yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1616
0
{
1617
    
1618
  /* TODO. We should be able to replace this entire function body
1619
   * with
1620
   *    boot_yypop_buffer_state();
1621
   *    boot_yypush_buffer_state(new_buffer);
1622
     */
1623
0
  boot_yyensure_buffer_stack ();
1624
0
  if ( YY_CURRENT_BUFFER == new_buffer )
1625
0
    return;
1626
1627
0
  if ( YY_CURRENT_BUFFER )
1628
0
    {
1629
    /* Flush out information for old buffer. */
1630
0
    *(yy_c_buf_p) = (yy_hold_char);
1631
0
    YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1632
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1633
0
    }
1634
1635
0
  YY_CURRENT_BUFFER_LVALUE = new_buffer;
1636
0
  boot_yy_load_buffer_state( );
1637
1638
  /* We don't actually know whether we did this switch during
1639
   * EOF (boot_yywrap()) processing, but the only time this flag
1640
   * is looked at is after boot_yywrap() is called, so it's safe
1641
   * to go ahead and always set it.
1642
   */
1643
0
  (yy_did_buffer_switch_on_eof) = 1;
1644
0
}
1645
1646
static void boot_yy_load_buffer_state  (void)
1647
6.00k
{
1648
6.00k
      (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1649
6.00k
  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1650
6.00k
  boot_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1651
6.00k
  (yy_hold_char) = *(yy_c_buf_p);
1652
6.00k
}
1653
1654
/** Allocate and initialize an input buffer state.
1655
 * @param file A readable stream.
1656
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1657
 * 
1658
 * @return the allocated buffer state.
1659
 */
1660
    YY_BUFFER_STATE boot_yy_create_buffer  (FILE * file, int  size )
1661
2.00k
{
1662
2.00k
  YY_BUFFER_STATE b;
1663
    
1664
2.00k
  b = (YY_BUFFER_STATE) boot_yyalloc(sizeof( struct yy_buffer_state )  );
1665
2.00k
  if ( ! b )
1666
0
    YY_FATAL_ERROR( "out of dynamic memory in boot_yy_create_buffer()" );
1667
1668
2.00k
  b->yy_buf_size = size;
1669
1670
  /* yy_ch_buf has to be 2 characters longer than the size given because
1671
   * we need to put in 2 end-of-buffer characters.
1672
   */
1673
2.00k
  b->yy_ch_buf = (char *) boot_yyalloc((yy_size_t) (b->yy_buf_size + 2)  );
1674
2.00k
  if ( ! b->yy_ch_buf )
1675
0
    YY_FATAL_ERROR( "out of dynamic memory in boot_yy_create_buffer()" );
1676
1677
2.00k
  b->yy_is_our_buffer = 1;
1678
1679
2.00k
  boot_yy_init_buffer(b,file );
1680
1681
2.00k
  return b;
1682
2.00k
}
1683
1684
/** Destroy the buffer.
1685
 * @param b a buffer created with boot_yy_create_buffer()
1686
 * 
1687
 */
1688
    void boot_yy_delete_buffer (YY_BUFFER_STATE  b )
1689
0
{
1690
    
1691
0
  if ( ! b )
1692
0
    return;
1693
1694
0
  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1695
0
    YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1696
1697
0
  if ( b->yy_is_our_buffer )
1698
0
    boot_yyfree((void *) b->yy_ch_buf  );
1699
1700
0
  boot_yyfree((void *) b  );
1701
0
}
1702
1703
/* Initializes or reinitializes a buffer.
1704
 * This function is sometimes called more than once on the same buffer,
1705
 * such as during a boot_yyrestart() or at EOF.
1706
 */
1707
    static void boot_yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1708
1709
4.00k
{
1710
4.00k
  int oerrno = errno;
1711
    
1712
4.00k
  boot_yy_flush_buffer(b );
1713
1714
4.00k
  b->yy_input_file = file;
1715
4.00k
  b->yy_fill_buffer = 1;
1716
1717
    /* If b is the current buffer, then boot_yy_init_buffer was _probably_
1718
     * called from boot_yyrestart() or through yy_get_next_buffer.
1719
     * In that case, we don't want to reset the lineno or column.
1720
     */
1721
4.00k
    if (b != YY_CURRENT_BUFFER){
1722
2.00k
        b->yy_bs_lineno = 1;
1723
2.00k
        b->yy_bs_column = 0;
1724
2.00k
    }
1725
1726
4.00k
        b->yy_is_interactive = 0;
1727
    
1728
4.00k
  errno = oerrno;
1729
4.00k
}
1730
1731
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1732
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1733
 * 
1734
 */
1735
    void boot_yy_flush_buffer (YY_BUFFER_STATE  b )
1736
4.00k
{
1737
4.00k
      if ( ! b )
1738
0
    return;
1739
1740
4.00k
  b->yy_n_chars = 0;
1741
1742
  /* We always need two end-of-buffer characters.  The first causes
1743
   * a transition to the end-of-buffer state.  The second causes
1744
   * a jam in that state.
1745
   */
1746
4.00k
  b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1747
4.00k
  b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1748
1749
4.00k
  b->yy_buf_pos = &b->yy_ch_buf[0];
1750
1751
4.00k
  b->yy_at_bol = 1;
1752
4.00k
  b->yy_buffer_status = YY_BUFFER_NEW;
1753
1754
4.00k
  if ( b == YY_CURRENT_BUFFER )
1755
2.00k
    boot_yy_load_buffer_state( );
1756
4.00k
}
1757
1758
/** Pushes the new state onto the stack. The new state becomes
1759
 *  the current state. This function will allocate the stack
1760
 *  if necessary.
1761
 *  @param new_buffer The new state.
1762
 *  
1763
 */
1764
void boot_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
1765
0
{
1766
0
      if (new_buffer == NULL)
1767
0
    return;
1768
1769
0
  boot_yyensure_buffer_stack();
1770
1771
  /* This block is copied from boot_yy_switch_to_buffer. */
1772
0
  if ( YY_CURRENT_BUFFER )
1773
0
    {
1774
    /* Flush out information for old buffer. */
1775
0
    *(yy_c_buf_p) = (yy_hold_char);
1776
0
    YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1777
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1778
0
    }
1779
1780
  /* Only push if top exists. Otherwise, replace top. */
1781
0
  if (YY_CURRENT_BUFFER)
1782
0
    (yy_buffer_stack_top)++;
1783
0
  YY_CURRENT_BUFFER_LVALUE = new_buffer;
1784
1785
  /* copied from boot_yy_switch_to_buffer. */
1786
0
  boot_yy_load_buffer_state( );
1787
0
  (yy_did_buffer_switch_on_eof) = 1;
1788
0
}
1789
1790
/** Removes and deletes the top of the stack, if present.
1791
 *  The next element becomes the new top.
1792
 *  
1793
 */
1794
void boot_yypop_buffer_state (void)
1795
0
{
1796
0
      if (!YY_CURRENT_BUFFER)
1797
0
    return;
1798
1799
0
  boot_yy_delete_buffer(YY_CURRENT_BUFFER );
1800
0
  YY_CURRENT_BUFFER_LVALUE = NULL;
1801
0
  if ((yy_buffer_stack_top) > 0)
1802
0
    --(yy_buffer_stack_top);
1803
1804
0
  if (YY_CURRENT_BUFFER) {
1805
0
    boot_yy_load_buffer_state( );
1806
0
    (yy_did_buffer_switch_on_eof) = 1;
1807
0
  }
1808
0
}
1809
1810
/* Allocates the stack if it does not exist.
1811
 *  Guarantees space for at least one push.
1812
 */
1813
static void boot_yyensure_buffer_stack (void)
1814
2.00k
{
1815
2.00k
  yy_size_t num_to_alloc;
1816
    
1817
2.00k
  if (!(yy_buffer_stack)) {
1818
1819
    /* First allocation is just for 2 elements, since we don't know if this
1820
     * scanner will even need a stack. We use 2 instead of 1 to avoid an
1821
     * immediate realloc on the next call.
1822
         */
1823
2.00k
      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
1824
2.00k
    (yy_buffer_stack) = (struct yy_buffer_state**)boot_yyalloc
1825
2.00k
                (num_to_alloc * sizeof(struct yy_buffer_state*)
1826
2.00k
                );
1827
2.00k
    if ( ! (yy_buffer_stack) )
1828
0
      YY_FATAL_ERROR( "out of dynamic memory in boot_yyensure_buffer_stack()" );
1829
1830
2.00k
    memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1831
1832
2.00k
    (yy_buffer_stack_max) = num_to_alloc;
1833
2.00k
    (yy_buffer_stack_top) = 0;
1834
2.00k
    return;
1835
2.00k
  }
1836
1837
0
  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1838
1839
    /* Increase the buffer to prepare for a possible push. */
1840
0
    yy_size_t grow_size = 8 /* arbitrary grow size */;
1841
1842
0
    num_to_alloc = (yy_buffer_stack_max) + grow_size;
1843
0
    (yy_buffer_stack) = (struct yy_buffer_state**)boot_yyrealloc
1844
0
                ((yy_buffer_stack),
1845
0
                num_to_alloc * sizeof(struct yy_buffer_state*)
1846
0
                );
1847
0
    if ( ! (yy_buffer_stack) )
1848
0
      YY_FATAL_ERROR( "out of dynamic memory in boot_yyensure_buffer_stack()" );
1849
1850
    /* zero only the new slots.*/
1851
0
    memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1852
0
    (yy_buffer_stack_max) = num_to_alloc;
1853
0
  }
1854
0
}
1855
1856
/** Setup the input buffer state to scan directly from a user-specified character buffer.
1857
 * @param base the character buffer
1858
 * @param size the size in bytes of the character buffer
1859
 * 
1860
 * @return the newly allocated buffer state object.
1861
 */
1862
YY_BUFFER_STATE boot_yy_scan_buffer  (char * base, yy_size_t  size )
1863
0
{
1864
0
  YY_BUFFER_STATE b;
1865
    
1866
0
  if ( size < 2 ||
1867
0
       base[size-2] != YY_END_OF_BUFFER_CHAR ||
1868
0
       base[size-1] != YY_END_OF_BUFFER_CHAR )
1869
    /* They forgot to leave room for the EOB's. */
1870
0
    return NULL;
1871
1872
0
  b = (YY_BUFFER_STATE) boot_yyalloc(sizeof( struct yy_buffer_state )  );
1873
0
  if ( ! b )
1874
0
    YY_FATAL_ERROR( "out of dynamic memory in boot_yy_scan_buffer()" );
1875
1876
0
  b->yy_buf_size = (int) (size - 2);  /* "- 2" to take care of EOB's */
1877
0
  b->yy_buf_pos = b->yy_ch_buf = base;
1878
0
  b->yy_is_our_buffer = 0;
1879
0
  b->yy_input_file = NULL;
1880
0
  b->yy_n_chars = b->yy_buf_size;
1881
0
  b->yy_is_interactive = 0;
1882
0
  b->yy_at_bol = 1;
1883
0
  b->yy_fill_buffer = 0;
1884
0
  b->yy_buffer_status = YY_BUFFER_NEW;
1885
1886
0
  boot_yy_switch_to_buffer(b  );
1887
1888
0
  return b;
1889
0
}
1890
1891
/** Setup the input buffer state to scan a string. The next call to boot_yylex() will
1892
 * scan from a @e copy of @a str.
1893
 * @param yystr a NUL-terminated string to scan
1894
 * 
1895
 * @return the newly allocated buffer state object.
1896
 * @note If you want to scan bytes that may contain NUL values, then use
1897
 *       boot_yy_scan_bytes() instead.
1898
 */
1899
YY_BUFFER_STATE boot_yy_scan_string (const char * yystr )
1900
0
{
1901
    
1902
0
  return boot_yy_scan_bytes(yystr,(int) strlen(yystr) );
1903
0
}
1904
1905
/** Setup the input buffer state to scan the given bytes. The next call to boot_yylex() will
1906
 * scan from a @e copy of @a bytes.
1907
 * @param yybytes the byte buffer to scan
1908
 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
1909
 * 
1910
 * @return the newly allocated buffer state object.
1911
 */
1912
YY_BUFFER_STATE boot_yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
1913
0
{
1914
0
  YY_BUFFER_STATE b;
1915
0
  char *buf;
1916
0
  yy_size_t n;
1917
0
  int i;
1918
    
1919
  /* Get memory for full buffer, including space for trailing EOB's. */
1920
0
  n = (yy_size_t) (_yybytes_len + 2);
1921
0
  buf = (char *) boot_yyalloc(n  );
1922
0
  if ( ! buf )
1923
0
    YY_FATAL_ERROR( "out of dynamic memory in boot_yy_scan_bytes()" );
1924
1925
0
  for ( i = 0; i < _yybytes_len; ++i )
1926
0
    buf[i] = yybytes[i];
1927
1928
0
  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
1929
1930
0
  b = boot_yy_scan_buffer(buf,n );
1931
0
  if ( ! b )
1932
0
    YY_FATAL_ERROR( "bad buffer in boot_yy_scan_bytes()" );
1933
1934
  /* It's okay to grow etc. this buffer, and we should throw it
1935
   * away when we're done.
1936
   */
1937
0
  b->yy_is_our_buffer = 1;
1938
1939
0
  return b;
1940
0
}
1941
1942
#ifndef YY_EXIT_FAILURE
1943
0
#define YY_EXIT_FAILURE 2
1944
#endif
1945
1946
static void yynoreturn yy_fatal_error (const char* msg )
1947
0
{
1948
0
      (void) fprintf( stderr, "%s\n", msg );
1949
0
  exit( YY_EXIT_FAILURE );
1950
0
}
1951
1952
/* Redefine yyless() so it works in section 3 code. */
1953
1954
#undef yyless
1955
#define yyless(n) \
1956
  do \
1957
    { \
1958
    /* Undo effects of setting up boot_yytext. */ \
1959
        int yyless_macro_arg = (n); \
1960
        YY_LESS_LINENO(yyless_macro_arg);\
1961
    boot_yytext[boot_yyleng] = (yy_hold_char); \
1962
    (yy_c_buf_p) = boot_yytext + yyless_macro_arg; \
1963
    (yy_hold_char) = *(yy_c_buf_p); \
1964
    *(yy_c_buf_p) = '\0'; \
1965
    boot_yyleng = yyless_macro_arg; \
1966
    } \
1967
  while ( 0 )
1968
1969
/* Accessor  methods (get/set functions) to struct members. */
1970
1971
/** Get the current line number.
1972
 * 
1973
 */
1974
int boot_yyget_lineno  (void)
1975
0
{
1976
    
1977
0
    return boot_yylineno;
1978
0
}
1979
1980
/** Get the input stream.
1981
 * 
1982
 */
1983
FILE *boot_yyget_in  (void)
1984
0
{
1985
0
        return boot_yyin;
1986
0
}
1987
1988
/** Get the output stream.
1989
 * 
1990
 */
1991
FILE *boot_yyget_out  (void)
1992
0
{
1993
0
        return boot_yyout;
1994
0
}
1995
1996
/** Get the length of the current token.
1997
 * 
1998
 */
1999
int boot_yyget_leng  (void)
2000
0
{
2001
0
        return boot_yyleng;
2002
0
}
2003
2004
/** Get the current token.
2005
 * 
2006
 */
2007
2008
char *boot_yyget_text  (void)
2009
0
{
2010
0
        return boot_yytext;
2011
0
}
2012
2013
/** Set the current line number.
2014
 * @param _line_number line number
2015
 * 
2016
 */
2017
void boot_yyset_lineno (int  _line_number )
2018
0
{
2019
    
2020
0
    boot_yylineno = _line_number;
2021
0
}
2022
2023
/** Set the input stream. This does not discard the current
2024
 * input buffer.
2025
 * @param _in_str A readable stream.
2026
 * 
2027
 * @see boot_yy_switch_to_buffer
2028
 */
2029
void boot_yyset_in (FILE *  _in_str )
2030
0
{
2031
0
        boot_yyin = _in_str ;
2032
0
}
2033
2034
void boot_yyset_out (FILE *  _out_str )
2035
0
{
2036
0
        boot_yyout = _out_str ;
2037
0
}
2038
2039
int boot_yyget_debug  (void)
2040
0
{
2041
0
        return boot_yy_flex_debug;
2042
0
}
2043
2044
void boot_yyset_debug (int  _bdebug )
2045
0
{
2046
0
        boot_yy_flex_debug = _bdebug ;
2047
0
}
2048
2049
static int yy_init_globals (void)
2050
0
{
2051
        /* Initialization is the same as for the non-reentrant scanner.
2052
     * This function is called from boot_yylex_destroy(), so don't allocate here.
2053
     */
2054
2055
0
    (yy_buffer_stack) = NULL;
2056
0
    (yy_buffer_stack_top) = 0;
2057
0
    (yy_buffer_stack_max) = 0;
2058
0
    (yy_c_buf_p) = NULL;
2059
0
    (yy_init) = 0;
2060
0
    (yy_start) = 0;
2061
2062
/* Defined in main.c */
2063
#ifdef YY_STDINIT
2064
    boot_yyin = stdin;
2065
    boot_yyout = stdout;
2066
#else
2067
0
    boot_yyin = NULL;
2068
0
    boot_yyout = NULL;
2069
0
#endif
2070
2071
    /* For future reference: Set errno on error, since we are called by
2072
     * boot_yylex_init()
2073
     */
2074
0
    return 0;
2075
0
}
2076
2077
/* boot_yylex_destroy is for both reentrant and non-reentrant scanners. */
2078
int boot_yylex_destroy  (void)
2079
0
{
2080
    
2081
    /* Pop the buffer stack, destroying each element. */
2082
0
  while(YY_CURRENT_BUFFER){
2083
0
    boot_yy_delete_buffer(YY_CURRENT_BUFFER  );
2084
0
    YY_CURRENT_BUFFER_LVALUE = NULL;
2085
0
    boot_yypop_buffer_state();
2086
0
  }
2087
2088
  /* Destroy the stack itself. */
2089
0
  boot_yyfree((yy_buffer_stack) );
2090
0
  (yy_buffer_stack) = NULL;
2091
2092
    /* Reset the globals. This is important in a non-reentrant scanner so the next time
2093
     * boot_yylex() is called, initialization will occur. */
2094
0
    yy_init_globals( );
2095
2096
0
    return 0;
2097
0
}
2098
2099
/*
2100
 * Internal utility routines.
2101
 */
2102
2103
#ifndef yytext_ptr
2104
static void yy_flex_strncpy (char* s1, const char * s2, int n )
2105
{
2106
    
2107
  int i;
2108
  for ( i = 0; i < n; ++i )
2109
    s1[i] = s2[i];
2110
}
2111
#endif
2112
2113
#ifdef YY_NEED_STRLEN
2114
static int yy_flex_strlen (const char * s )
2115
{
2116
  int n;
2117
  for ( n = 0; s[n]; ++n )
2118
    ;
2119
2120
  return n;
2121
}
2122
#endif
2123
2124
void *boot_yyalloc (yy_size_t  size )
2125
6.00k
{
2126
6.00k
      return malloc(size);
2127
6.00k
}
2128
2129
void *boot_yyrealloc  (void * ptr, yy_size_t  size )
2130
0
{
2131
    
2132
  /* The cast to (char *) in the following accommodates both
2133
   * implementations that use char* generic pointers, and those
2134
   * that use void* generic pointers.  It works with the latter
2135
   * because both ANSI C and C++ allow castless assignment from
2136
   * any pointer type to void*, and deal with argument conversions
2137
   * as though doing an assignment.
2138
   */
2139
0
  return realloc(ptr, size);
2140
0
}
2141
2142
void boot_yyfree (void * ptr )
2143
0
{
2144
0
      free( (char *) ptr ); /* see boot_yyrealloc() for (char *) cast */
2145
0
}
2146
2147
#define YYTABLES_NAME "yytables"
2148
2149
#line 141 "bootscanner.l"
2150
2151
2152
/* LCOV_EXCL_STOP */
2153
2154
void
2155
yyerror(const char *message)
2156
0
{
2157
0
  elog(ERROR, "%s at line %d", message, yyline);
2158
0
}
2159