LCOV - code coverage report
Current view: top level - src/backend/bootstrap - bootscanner.c (source / functions) Hit Total Coverage
Test: PostgreSQL Lines: 159 354 44.9 %
Date: 2017-09-29 15:12:54 Functions: 10 33 30.3 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.11