LCOV - code coverage report
Current view: top level - bin/default/third_party/heimdal/lib/asn1 - lex.lex.c (source / functions) Hit Total Coverage
Test: coverage report for master 98b443d9 Lines: 378 829 45.6 %
Date: 2024-05-31 13:13:24 Functions: 12 38 31.6 %

          Line data    Source code
       1             : 
       2             : #define  YY_INT_ALIGNED short int
       3             : 
       4             : /* A lexical scanner generated by flex */
       5             : 
       6             : #define FLEX_SCANNER
       7             : #define YY_FLEX_MAJOR_VERSION 2
       8             : #define YY_FLEX_MINOR_VERSION 6
       9             : #define YY_FLEX_SUBMINOR_VERSION 4
      10             : #if YY_FLEX_SUBMINOR_VERSION > 0
      11             : #define FLEX_BETA
      12             : #endif
      13             : 
      14             : /* First, we deal with  platform-specific or compiler-specific issues. */
      15             : 
      16             : /* begin standard C headers. */
      17             : #include <stdio.h>
      18             : #include <string.h>
      19             : #include <errno.h>
      20             : #include <stdlib.h>
      21             : 
      22             : /* end standard C headers. */
      23             : 
      24             : /* flex integer type definitions */
      25             : 
      26             : #ifndef FLEXINT_H
      27             : #define FLEXINT_H
      28             : 
      29             : /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
      30             : 
      31             : #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
      32             : 
      33             : /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
      34             :  * if you want the limit (max/min) macros for int types. 
      35             :  */
      36             : #ifndef __STDC_LIMIT_MACROS
      37             : #define __STDC_LIMIT_MACROS 1
      38             : #endif
      39             : 
      40             : #include <inttypes.h>
      41             : typedef int8_t flex_int8_t;
      42             : typedef uint8_t flex_uint8_t;
      43             : typedef int16_t flex_int16_t;
      44             : typedef uint16_t flex_uint16_t;
      45             : typedef int32_t flex_int32_t;
      46             : typedef uint32_t flex_uint32_t;
      47             : #else
      48             : typedef signed char flex_int8_t;
      49             : typedef short int flex_int16_t;
      50             : typedef int flex_int32_t;
      51             : typedef unsigned char flex_uint8_t; 
      52             : typedef unsigned short int flex_uint16_t;
      53             : typedef unsigned int flex_uint32_t;
      54             : 
      55             : /* Limits of integral types. */
      56             : #ifndef INT8_MIN
      57             : #define INT8_MIN               (-128)
      58             : #endif
      59             : #ifndef INT16_MIN
      60             : #define INT16_MIN              (-32767-1)
      61             : #endif
      62             : #ifndef INT32_MIN
      63             : #define INT32_MIN              (-2147483647-1)
      64             : #endif
      65             : #ifndef INT8_MAX
      66             : #define INT8_MAX               (127)
      67             : #endif
      68             : #ifndef INT16_MAX
      69             : #define INT16_MAX              (32767)
      70             : #endif
      71             : #ifndef INT32_MAX
      72             : #define INT32_MAX              (2147483647)
      73             : #endif
      74             : #ifndef UINT8_MAX
      75             : #define UINT8_MAX              (255U)
      76             : #endif
      77             : #ifndef UINT16_MAX
      78             : #define UINT16_MAX             (65535U)
      79             : #endif
      80             : #ifndef UINT32_MAX
      81             : #define UINT32_MAX             (4294967295U)
      82             : #endif
      83             : 
      84             : #ifndef SIZE_MAX
      85             : #define SIZE_MAX               (~(size_t)0)
      86             : #endif
      87             : 
      88             : #endif /* ! C99 */
      89             : 
      90             : #endif /* ! FLEXINT_H */
      91             : 
      92             : /* begin standard C++ headers. */
      93             : 
      94             : /* TODO: this is always defined, so inline it */
      95             : #define yyconst const
      96             : 
      97             : #if defined(__GNUC__) && __GNUC__ >= 3
      98             : #define yynoreturn __attribute__((__noreturn__))
      99             : #else
     100             : #define yynoreturn
     101             : #endif
     102             : 
     103             : /* Returned upon end-of-file. */
     104             : #define YY_NULL 0
     105             : 
     106             : /* Promotes a possibly negative, possibly signed char to an
     107             :  *   integer in range [0..255] for use as an array index.
     108             :  */
     109             : #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
     110             : 
     111             : /* Enter a start condition.  This macro really ought to take a parameter,
     112             :  * but we do it the disgusting crufty way forced on us by the ()-less
     113             :  * definition of BEGIN.
     114             :  */
     115             : #define BEGIN (yy_start) = 1 + 2 *
     116             : /* Translate the current start state into a value that can be later handed
     117             :  * to BEGIN to return to the state.  The YYSTATE alias is for lex
     118             :  * compatibility.
     119             :  */
     120             : #define YY_START (((yy_start) - 1) / 2)
     121             : #define YYSTATE YY_START
     122             : /* Action number for EOF rule of a given start state. */
     123             : #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
     124             : /* Special action meaning "start processing a new file". */
     125             : #define YY_NEW_FILE yyrestart( yyin  )
     126             : #define YY_END_OF_BUFFER_CHAR 0
     127             : 
     128             : /* Size of default input buffer. */
     129             : #ifndef YY_BUF_SIZE
     130             : #ifdef __ia64__
     131             : /* On IA-64, the buffer size is 16k, not 8k.
     132             :  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
     133             :  * Ditto for the __ia64__ case accordingly.
     134             :  */
     135             : #define YY_BUF_SIZE 32768
     136             : #else
     137             : #define YY_BUF_SIZE 16384
     138             : #endif /* __ia64__ */
     139             : #endif
     140             : 
     141             : /* The state buf must be large enough to hold one state per character in the main buffer.
     142             :  */
     143             : #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
     144             : 
     145             : #ifndef YY_TYPEDEF_YY_BUFFER_STATE
     146             : #define YY_TYPEDEF_YY_BUFFER_STATE
     147             : typedef struct yy_buffer_state *YY_BUFFER_STATE;
     148             : #endif
     149             : 
     150             : #ifndef YY_TYPEDEF_YY_SIZE_T
     151             : #define YY_TYPEDEF_YY_SIZE_T
     152             : typedef size_t yy_size_t;
     153             : #endif
     154             : 
     155             : extern int yyleng;
     156             : 
     157             : extern FILE *yyin, *yyout;
     158             : 
     159             : #define EOB_ACT_CONTINUE_SCAN 0
     160             : #define EOB_ACT_END_OF_FILE 1
     161             : #define EOB_ACT_LAST_MATCH 2
     162             :     
     163             :     #define YY_LESS_LINENO(n)
     164             :     #define YY_LINENO_REWIND_TO(ptr)
     165             :     
     166             : /* Return all but the first "n" matched characters back to the input stream. */
     167             : #define yyless(n) \
     168             :         do \
     169             :                 { \
     170             :                 /* Undo effects of setting up yytext. */ \
     171             :         int yyless_macro_arg = (n); \
     172             :         YY_LESS_LINENO(yyless_macro_arg);\
     173             :                 *yy_cp = (yy_hold_char); \
     174             :                 YY_RESTORE_YY_MORE_OFFSET \
     175             :                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
     176             :                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
     177             :                 } \
     178             :         while ( 0 )
     179             : #define unput(c) yyunput( c, (yytext_ptr)  )
     180             : 
     181             : #ifndef YY_STRUCT_YY_BUFFER_STATE
     182             : #define YY_STRUCT_YY_BUFFER_STATE
     183             : struct yy_buffer_state
     184             :         {
     185             :         FILE *yy_input_file;
     186             : 
     187             :         char *yy_ch_buf;                /* input buffer */
     188             :         char *yy_buf_pos;               /* current position in input buffer */
     189             : 
     190             :         /* Size of input buffer in bytes, not including room for EOB
     191             :          * characters.
     192             :          */
     193             :         int yy_buf_size;
     194             : 
     195             :         /* Number of characters read into yy_ch_buf, not including EOB
     196             :          * characters.
     197             :          */
     198             :         int yy_n_chars;
     199             : 
     200             :         /* Whether we "own" the buffer - i.e., we know we created it,
     201             :          * and can realloc() it to grow it, and should free() it to
     202             :          * delete it.
     203             :          */
     204             :         int yy_is_our_buffer;
     205             : 
     206             :         /* Whether this is an "interactive" input source; if so, and
     207             :          * if we're using stdio for input, then we want to use getc()
     208             :          * instead of fread(), to make sure we stop fetching input after
     209             :          * each newline.
     210             :          */
     211             :         int yy_is_interactive;
     212             : 
     213             :         /* Whether we're considered to be at the beginning of a line.
     214             :          * If so, '^' rules will be active on the next match, otherwise
     215             :          * not.
     216             :          */
     217             :         int yy_at_bol;
     218             : 
     219             :     int yy_bs_lineno; /**< The line count. */
     220             :     int yy_bs_column; /**< The column count. */
     221             : 
     222             :         /* Whether to try to fill the input buffer when we reach the
     223             :          * end of it.
     224             :          */
     225             :         int yy_fill_buffer;
     226             : 
     227             :         int yy_buffer_status;
     228             : 
     229             : #define YY_BUFFER_NEW 0
     230             : #define YY_BUFFER_NORMAL 1
     231             :         /* When an EOF's been seen but there's still some text to process
     232             :          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
     233             :          * shouldn't try reading from the input source any more.  We might
     234             :          * still have a bunch of tokens to match, though, because of
     235             :          * possible backing-up.
     236             :          *
     237             :          * When we actually see the EOF, we change the status to "new"
     238             :          * (via yyrestart()), so that the user can continue scanning by
     239             :          * just pointing yyin at a new input file.
     240             :          */
     241             : #define YY_BUFFER_EOF_PENDING 2
     242             : 
     243             :         };
     244             : #endif /* !YY_STRUCT_YY_BUFFER_STATE */
     245             : 
     246             : /* Stack of input buffers. */
     247             : static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
     248             : static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
     249             : static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
     250             : 
     251             : /* We provide macros for accessing buffer states in case in the
     252             :  * future we want to put the buffer states in a more general
     253             :  * "scanner state".
     254             :  *
     255             :  * Returns the top of the stack, or NULL.
     256             :  */
     257             : #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
     258             :                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
     259             :                           : NULL)
     260             : /* Same as previous macro, but useful when we know that the buffer stack is not
     261             :  * NULL or when we need an lvalue. For internal use only.
     262             :  */
     263             : #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
     264             : 
     265             : /* yy_hold_char holds the character lost when yytext is formed. */
     266             : static char yy_hold_char;
     267             : static int yy_n_chars;          /* number of characters read into yy_ch_buf */
     268             : int yyleng;
     269             : 
     270             : /* Points to current character in buffer. */
     271             : static char *yy_c_buf_p = NULL;
     272             : static int yy_init = 0;         /* whether we need to initialize */
     273             : static int yy_start = 0;        /* start state number */
     274             : 
     275             : /* Flag which is used to allow yywrap()'s to do buffer switches
     276             :  * instead of setting up a fresh yyin.  A bit of a hack ...
     277             :  */
     278             : static int yy_did_buffer_switch_on_eof;
     279             : 
     280             : void yyrestart ( FILE *input_file  );
     281             : void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
     282             : YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
     283             : void yy_delete_buffer ( YY_BUFFER_STATE b  );
     284             : void yy_flush_buffer ( YY_BUFFER_STATE b  );
     285             : void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
     286             : void yypop_buffer_state ( void );
     287             : 
     288             : static void yyensure_buffer_stack ( void );
     289             : static void yy_load_buffer_state ( void );
     290             : static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
     291             : #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
     292             : 
     293             : YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
     294             : YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
     295             : YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
     296             : 
     297             : void *yyalloc ( yy_size_t  );
     298             : void *yyrealloc ( void *, yy_size_t  );
     299             : void yyfree ( void *  );
     300             : 
     301             : #define yy_new_buffer yy_create_buffer
     302             : #define yy_set_interactive(is_interactive) \
     303             :         { \
     304             :         if ( ! YY_CURRENT_BUFFER ){ \
     305             :         yyensure_buffer_stack (); \
     306             :                 YY_CURRENT_BUFFER_LVALUE =    \
     307             :             yy_create_buffer( yyin, YY_BUF_SIZE ); \
     308             :         } \
     309             :         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
     310             :         }
     311             : #define yy_set_bol(at_bol) \
     312             :         { \
     313             :         if ( ! YY_CURRENT_BUFFER ){\
     314             :         yyensure_buffer_stack (); \
     315             :                 YY_CURRENT_BUFFER_LVALUE =    \
     316             :             yy_create_buffer( yyin, YY_BUF_SIZE ); \
     317             :         } \
     318             :         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
     319             :         }
     320             : #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
     321             : 
     322             : /* Begin user sect3 */
     323             : typedef flex_uint8_t YY_CHAR;
     324             : 
     325             : FILE *yyin = NULL, *yyout = NULL;
     326             : 
     327             : typedef int yy_state_type;
     328             : 
     329             : extern int yylineno;
     330             : int yylineno = 1;
     331             : 
     332             : extern char *yytext;
     333             : #ifdef yytext_ptr
     334             : #undef yytext_ptr
     335             : #endif
     336             : #define yytext_ptr yytext
     337             : 
     338             : static yy_state_type yy_get_previous_state ( void );
     339             : static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
     340             : static int yy_get_next_buffer ( void );
     341             : static void yynoreturn yy_fatal_error ( const char* msg  );
     342             : 
     343             : /* Done after the current pattern has been matched and before the
     344             :  * corresponding action - sets up yytext.
     345             :  */
     346             : #define YY_DO_BEFORE_ACTION \
     347             :         (yytext_ptr) = yy_bp; \
     348             :         yyleng = (int) (yy_cp - yy_bp); \
     349             :         (yy_hold_char) = *yy_cp; \
     350             :         *yy_cp = '\0'; \
     351             :         (yy_c_buf_p) = yy_cp;
     352             : #define YY_NUM_RULES 101
     353             : #define YY_END_OF_BUFFER 102
     354             : /* This struct is not used in this scanner,
     355             :    but its presence is necessary. */
     356             : struct yy_trans_info
     357             :         {
     358             :         flex_int32_t yy_verify;
     359             :         flex_int32_t yy_nxt;
     360             :         };
     361             : static const flex_int16_t yy_accept[574] =
     362             :     {   0,
     363             :         0,    0,  102,  100,   96,   97,   91,   84,   81,   81,
     364             :        85,  100,   92,   92,   86,   87,   94,   94,   94,   94,
     365             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     366             :        94,   94,   94,   94,   94,   82,   83,   93,   95,   89,
     367             :        92,   92,   99,   90,    0,    0,   94,   94,   94,   94,
     368             :        94,   94,   94,   94,   94,   10,   94,   94,   94,   94,
     369             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     370             :        94,   94,   94,   94,   94,   94,   94,   94,   51,   94,
     371             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     372             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     373             : 
     374             :        94,   93,   95,   98,   92,   88,   94,    3,   94,   94,
     375             :        94,    7,   94,   94,   94,   94,   94,   94,   94,   94,
     376             :        94,   94,   22,   94,   94,   94,   94,   94,   94,   94,
     377             :        94,   94,   94,   94,   94,   94,   94,   94,   44,   45,
     378             :        94,   94,   94,   94,   94,   94,   94,   55,   94,   94,
     379             :        94,   94,   94,   94,   94,   63,   94,   94,   94,   94,
     380             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     381             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     382             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     383             :        94,   94,   94,   94,   30,   94,   94,   94,   94,   94,
     384             : 
     385             :        94,   94,   94,   94,   94,   94,   47,   94,   94,   94,
     386             :        94,   94,   94,   94,   94,   94,   94,   60,   94,   94,
     387             :        64,   94,   94,   94,   68,   69,   94,   94,   94,   94,
     388             :        94,   94,   94,   94,   94,   94,   80,   94,   94,   94,
     389             :        94,    6,   94,   94,   94,   94,   13,   94,   94,   94,
     390             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     391             :        29,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     392             :        94,   94,   94,   94,   94,   50,   94,   94,   94,   94,
     393             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     394             :        72,   94,   94,   94,   94,   94,   94,   94,    1,   94,
     395             : 
     396             :        94,   94,   94,   94,   94,   12,   94,   94,   94,   94,
     397             :        94,   94,   94,   94,   24,   94,   94,   94,   94,   94,
     398             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     399             :        94,   94,   94,   49,   94,   94,   94,   94,   94,   94,
     400             :        94,   94,   94,   65,   66,   94,   94,   94,   73,   94,
     401             :        94,   94,   94,   94,   94,   94,   94,   94,   94,    9,
     402             :        94,   94,   94,   94,   18,   94,   94,   21,   94,   94,
     403             :        26,   94,   94,   94,   94,   94,   94,   94,   37,   38,
     404             :        94,   94,   41,   94,   94,   94,   94,   94,   94,   54,
     405             :        94,   57,   58,   94,   94,   94,   94,   94,   94,   94,
     406             : 
     407             :        75,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     408             :        94,   94,   94,   94,   20,   94,   25,   94,   28,   94,
     409             :        94,   94,   94,   94,   36,   39,   40,   94,   94,   94,
     410             :        94,   52,   94,   94,   94,   94,   62,   94,   94,   94,
     411             :        94,   94,   94,   94,   94,   94,   94,    5,    8,   11,
     412             :        14,   94,   94,   94,   94,   94,   94,   94,   94,   34,
     413             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   67,
     414             :        94,   94,   74,   94,   94,   94,   94,   94,   94,   15,
     415             :        94,   17,   94,   23,   94,   94,   94,   94,   35,   94,
     416             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   76,
     417             : 
     418             :        94,   94,   94,   94,    4,   16,   19,   94,   94,   94,
     419             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
     420             :        94,   94,   94,   94,   94,   94,   94,   94,   94,   42,
     421             :        43,   94,   94,   94,   94,   94,   61,   94,   94,   94,
     422             :        94,   94,   94,   27,   31,   94,   33,   94,   48,   94,
     423             :        56,   94,   94,   71,   94,   94,   79,   94,   94,   46,
     424             :        94,   94,   94,   94,   78,    2,   32,   94,   59,   70,
     425             :        77,   53,    0
     426             :     } ;
     427             : 
     428             : static const YY_CHAR yy_ec[256] =
     429             :     {   0,
     430             :         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
     431             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     432             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     433             :         1,    2,    1,    4,    1,    1,    1,    5,    1,    6,
     434             :         6,    7,    1,    6,    8,    9,   10,   11,   12,   13,
     435             :        13,   14,   15,   16,   13,   17,   13,   18,    6,    1,
     436             :        19,    1,    1,   20,   21,   22,   23,   24,   25,   26,
     437             :        27,   28,   29,   30,   31,   32,   33,   34,   35,   36,
     438             :        37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
     439             :        47,    1,   48,    1,   49,    1,   50,   51,   52,   53,
     440             : 
     441             :        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
     442             :        64,   65,   60,   66,   67,   68,   69,   70,   60,   71,
     443             :        60,   72,    6,    6,    6,    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             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     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             : 
     452             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     453             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     454             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     455             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     456             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     457             :         1,    1,    1,    1,    1
     458             :     } ;
     459             : 
     460             : static const YY_CHAR yy_meta[73] =
     461             :     {   0,
     462             :         1,    1,    1,    1,    1,    1,    1,    2,    1,    1,
     463             :         3,    3,    3,    3,    3,    3,    3,    1,    1,    1,
     464             :         3,    3,    3,    3,    3,    3,    2,    2,    2,    2,
     465             :         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
     466             :         2,    2,    2,    2,    2,    2,    1,    1,    4,    5,
     467             :         5,    5,    5,    5,    5,    4,    4,    4,    4,    4,
     468             :         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
     469             :         4,    4
     470             :     } ;
     471             : 
     472             : static const flex_int16_t yy_base[578] =
     473             :     {   0,
     474             :         0,    0,  648,  649,  649,  649,  649,  649,  649,   65,
     475             :       638,  639,   72,   79,  627,  649,   75,   73,   77,  619,
     476             :        66,   82,   47,    0,   93,   94,   78,   99,  107,  618,
     477             :       104,  120,   90,  584,  612,  649,  649,    0,    0,  649,
     478             :       155,  164,  631,  649,    0,  620,    0,  599,  605,  600,
     479             :       595,  607,  593,  596,  596,    0,  113,  609,   41,  603,
     480             :       606,  114,  123,  595,  591,  562,  574,  608,  597,  585,
     481             :       117,  585,  575,  584,  585,  554,  585,  574,    0,  573,
     482             :       553,  571,  568,  568,  135,  550,  130,  145,  561,  568,
     483             :       571,  592,  576,  561,  565,  539,  570,  160,  540,  131,
     484             : 
     485             :       557,    0,    0,  649,    0,  649,  162,    0,  564,  560,
     486             :       565,    0,  554,  560,  553,  561,  550,  552,  149,  170,
     487             :       562,  551,    0,  552,  559,  158,  558,  543,  548,  526,
     488             :       514,  539,  543,  160,  544,  535,  549,  557,    0,  531,
     489             :       539,  516,  544,  543,  538,  512,  525,    0,  525,  524,
     490             :       520,  498,  528,  538,  517,    0,  532,  527,  515,  515,
     491             :       514,  527,  526,  496,  159,  509,  531,  477,  492,  487,
     492             :       516,  509,  504,  512,  507,  505,  470,  512,  515,  512,
     493             :       495,  498,  492,  510,  489,  495,  504,  503,  501,  489,
     494             :       495,  485,  166,  497,    0,  455,  463,  451,  478,  488,
     495             : 
     496             :       478,  474,  493,  170,  499,  473,    0,  445,  487,  469,
     497             :       473,  455,  481,  497,  479,  482,  434,    0,  461,  475,
     498             :         0,  465,  477,  429,    0,    0,  488,  427,  460,  452,
     499             :       467,  433,  451,  435,  424,  436,    0,  446,  464,  461,
     500             :       462,    0,  416,  460,  457,  454,    0,  444,  439,  447,
     501             :       443,  445,  449,  447,  433,  430,  446,  428,  428,  432,
     502             :         0,  415,  406,  397,  433,  129,  421,  436,  425,  433,
     503             :       418,  440,  447,  396,  413,    0,  418,  383,  412,  420,
     504             :       414,  407,  396,  416,  410,  416,  398,  375,  411,  385,
     505             :         0,  413,  399,  374,  367,  368,  365,  371,    0,  408,
     506             : 
     507             :       409,  389,  370,  393,  386,    0,  400,  403,  389,  382,
     508             :       381,  395,  395,  397,    0,  388,  377,  386,  393,  352,
     509             :       360,  353,  384,  380,  384,  368,  381,  382,  366,  378,
     510             :       363,  372,  348,    0,  378,  374,  363,  362,  355,  369,
     511             :       342,  350,  368,    0,    0,  332,  365,  317,    0,  348,
     512             :       332,  319,  317,  329,  328,  341,  340,  350,  315,    0,
     513             :       352,  342,  346,  345,    0,  344,  348,    0,  331,  330,
     514             :         0,  347,  336,  103,  328,  303,  336,  324,    0,    0,
     515             :       324,  337,    0,  338,  292,  325,  319,  325,  302,    0,
     516             :       329,    0,    0,  293,  328,  327,  288,  325,  310,  327,
     517             : 
     518             :         0,  289,  296,  274,  305,  335,  313,  318,  284,  301,
     519             :       298,  303,  302,  300,    0,  309,    0,  304,    0,  264,
     520             :       259,  262,  273,  303,    0,    0,    0,  287,  260,  299,
     521             :       256,    0,  256,  293,  267,  271,    0,  263,  284,  249,
     522             :       284,  252,  253,  274,  244,  272,  275,    0,    0,    0,
     523             :       270,  283,  280,  272,  281,  272,  237,  248,  235,    0,
     524             :       262,  270,  240,  268,  230,  243,  260,  254,  257,    0,
     525             :       251,  224,    0,  233,  249,  219,  220,  240,  250,    0,
     526             :       259,    0,  243,    0,  252,  222,  226,  220,    0,  242,
     527             :       213,  241,  216,  207,  243,  203,  241,  240,  210,    0,
     528             : 
     529             :       199,  200,  207,  230,    0,    0,    0,  223,  199,  221,
     530             :       197,  225,  202,  228,  193,  197,  214,  187,  228,  225,
     531             :       187,  183,  190,  184,  206,  200,  188,  185,  186,    0,
     532             :         0,  201,  184,  173,  180,  166,    0,  194,  166,  163,
     533             :       157,  163,  197,    0,    0,  155,    0,  171,    0,  147,
     534             :         0,  151,  188,    0,  149,  155,    0,  166,  155,    0,
     535             :       143,  150,  167,  147,    0,    0,    0,   38,    0,    0,
     536             :         0,    0,  649,  225,  229,  231,  234
     537             :     } ;
     538             : 
     539             : static const flex_int16_t yy_def[578] =
     540             :     {   0,
     541             :       573,    1,  573,  573,  573,  573,  573,  573,  573,  573,
     542             :       573,  573,  573,  573,  573,  573,  574,  574,  574,  574,
     543             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     544             :       574,  574,  574,  574,  574,  573,  573,  575,  576,  573,
     545             :       573,  573,  573,  573,  577,  573,  574,  574,  574,  574,
     546             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     547             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     548             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     549             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     550             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     551             : 
     552             :       574,  575,  576,  573,  577,  573,  574,  574,  574,  574,
     553             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     554             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     555             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     556             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     557             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     558             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     559             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     560             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     561             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     562             : 
     563             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     564             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     565             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     566             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     567             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     568             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     569             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     570             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     571             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     572             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     573             : 
     574             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     575             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     576             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     577             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     578             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     579             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     580             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     581             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     582             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     583             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     584             : 
     585             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     586             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     587             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     588             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     589             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     590             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     591             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     592             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     593             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     594             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     595             : 
     596             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     597             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     598             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     599             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     600             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     601             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     602             :       574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
     603             :       574,  574,    0,  573,  573,  573,  573
     604             :     } ;
     605             : 
     606             : static const flex_int16_t yy_nxt[722] =
     607             :     {   0,
     608             :         4,    5,    6,    7,    8,    9,    4,   10,   11,   12,
     609             :        13,   14,   14,   14,   14,   14,   14,   15,    4,   16,
     610             :        17,   18,   19,   20,   21,   22,   23,   24,   25,   24,
     611             :        24,   24,   26,   27,   28,   29,   24,   30,   31,   32,
     612             :        33,   34,   35,   24,   24,   24,   36,   37,   38,   39,
     613             :        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
     614             :        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
     615             :        39,   39,   40,  118,  119,   41,   42,   42,   42,   42,
     616             :        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
     617             :        42,   42,   42,   42,   42,   42,   48,   52,   61,   62,
     618             : 
     619             :        66,   53,   64,  572,   57,   54,   49,   55,   58,   63,
     620             :        50,   59,   67,   68,   73,   51,   69,   56,   75,   65,
     621             :        77,   78,   74,   97,   79,   70,   71,   82,   88,   98,
     622             :        83,   72,   89,  115,   80,   92,  122,  123,   84,  135,
     623             :        93,  420,   45,   90,   85,  125,   76,  116,   91,   81,
     624             :       153,  324,   99,  325,  124,  136,  137,   94,  126,  150,
     625             :       421,  154,  127,  151,   95,   42,   42,   42,   42,   42,
     626             :        42,   42,   86,   96,   42,   42,   42,   42,   42,   42,
     627             :        42,  155,  166,  169,  156,  167,  172,  183,  184,  191,
     628             :       185,  200,  192,  229,  201,  230,  270,  170,  186,  259,
     629             : 
     630             :       231,  173,  571,  260,  570,  569,  568,  271,  567,  566,
     631             :       565,  564,  563,  562,  561,  560,  559,  558,  557,  556,
     632             :       555,  554,  553,  552,  551,   45,   47,   47,   47,   47,
     633             :       102,  102,  103,  103,  103,  103,  105,  550,  105,  549,
     634             :       548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
     635             :       538,  537,  536,  535,  534,  533,  532,  531,  530,  529,
     636             :       528,  527,  526,  525,  524,  523,  522,  521,  520,  519,
     637             :       518,  517,  516,  515,  514,  513,  512,  511,  510,  509,
     638             :       508,  507,  506,  505,  504,  503,  502,  501,  500,  499,
     639             :       498,  497,  496,  495,  494,  493,  492,  491,  490,  489,
     640             : 
     641             :       488,  487,  486,  485,  484,  483,  482,  481,  480,  479,
     642             :       478,  477,  476,  475,  474,  473,  472,  471,  470,  469,
     643             :       468,  467,  466,  465,  464,  463,  462,  461,  460,  459,
     644             :       458,  457,  456,  455,  454,  453,  452,  451,  450,  449,
     645             :       448,  447,  446,  445,  444,  443,  442,  441,  440,  439,
     646             :       438,  437,  436,  435,  434,  433,  432,  431,  430,  429,
     647             :       428,  427,  426,  425,  424,  423,  422,  419,  418,  417,
     648             :       416,  415,  414,  413,  412,  411,  410,  409,  408,  407,
     649             :       406,  405,  404,  403,  402,  401,  400,  399,  398,  397,
     650             :       396,  395,  394,  393,  392,  391,  390,  389,  388,  387,
     651             : 
     652             :       386,  385,  384,  383,  382,  381,  380,  379,  378,  377,
     653             :       376,  375,  374,  373,  372,  371,  370,  369,  368,  367,
     654             :       366,  365,  364,  363,  362,  361,  360,  359,  358,  357,
     655             :       356,  355,  354,  353,  352,  351,  350,  349,  348,  347,
     656             :       346,  345,  344,  343,  342,  341,  340,  339,  338,  337,
     657             :       336,  335,  334,  333,  332,  331,  330,  329,  328,  327,
     658             :       326,  323,  322,  321,  320,  319,  318,  317,  316,  315,
     659             :       314,  313,  312,  311,  310,  309,  308,  307,  306,  305,
     660             :       304,  303,  302,  301,  300,  299,  298,  297,  296,  295,
     661             :       294,  293,  292,  291,  290,  289,  288,  287,  286,  285,
     662             : 
     663             :       284,  283,  282,  281,  280,  279,  278,  277,  276,  275,
     664             :       274,  273,  272,  269,  268,  267,  266,  265,  264,  263,
     665             :       262,  261,  258,  257,  256,  255,  254,  253,  252,  251,
     666             :       250,  249,  248,  247,  246,  245,  244,  243,  242,  241,
     667             :       240,  239,  238,  237,  236,  235,  234,  233,  232,  228,
     668             :       227,  226,  225,  224,  223,  222,  221,  220,  219,  218,
     669             :       217,  216,  215,  214,  213,  212,  211,  210,  209,  208,
     670             :       207,  206,  205,  204,  203,  202,  199,  198,  197,  196,
     671             :       195,  194,  193,  190,  189,  188,  187,  182,  181,  180,
     672             :       179,  178,  177,  176,  175,  174,  171,  168,  165,  164,
     673             : 
     674             :       163,  162,  161,  160,  159,  158,  157,  152,  149,  148,
     675             :       147,  146,  145,  144,  143,  142,  141,  140,  139,  138,
     676             :       134,  133,  132,  131,  130,  129,  128,  121,  120,  117,
     677             :       114,  113,  112,  111,  110,  109,  108,  107,  106,  104,
     678             :       101,  100,   87,   60,   46,   44,   43,  573,    3,  573,
     679             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     680             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     681             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     682             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     683             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     684             : 
     685             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     686             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     687             :       573
     688             :     } ;
     689             : 
     690             : static const flex_int16_t yy_chk[722] =
     691             :     {   0,
     692             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     693             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     694             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     695             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     696             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     697             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     698             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     699             :         1,    1,   10,   59,   59,   10,   10,   10,   10,   10,
     700             :        10,   10,   13,   13,   13,   13,   13,   13,   13,   14,
     701             :        14,   14,   14,   14,   14,   14,   17,   18,   21,   21,
     702             : 
     703             :        23,   18,   22,  568,   19,   18,   17,   18,   19,   21,
     704             :        17,   19,   23,   25,   26,   17,   25,   18,   27,   22,
     705             :        28,   28,   26,   33,   28,   25,   25,   29,   31,   33,
     706             :        29,   25,   31,   57,   28,   32,   62,   62,   29,   71,
     707             :        32,  374,   13,   31,   29,   63,   27,   57,   31,   28,
     708             :        87,  266,   33,  266,   62,   71,   71,   32,   63,   85,
     709             :       374,   87,   63,   85,   32,   41,   41,   41,   41,   41,
     710             :        41,   41,   29,   32,   42,   42,   42,   42,   42,   42,
     711             :        42,   88,   98,  100,   88,   98,  107,  119,  119,  126,
     712             :       120,  134,  126,  165,  134,  165,  204,  100,  120,  193,
     713             : 
     714             :       165,  107,  564,  193,  563,  562,  561,  204,  559,  558,
     715             :       556,  555,  553,  552,  550,  548,  546,  543,  542,  541,
     716             :       540,  539,  538,  536,  535,   41,  574,  574,  574,  574,
     717             :       575,  575,  576,  576,  576,  576,  577,  534,  577,  533,
     718             :       532,  529,  528,  527,  526,  525,  524,  523,  522,  521,
     719             :       520,  519,  518,  517,  516,  515,  514,  513,  512,  511,
     720             :       510,  509,  508,  504,  503,  502,  501,  499,  498,  497,
     721             :       496,  495,  494,  493,  492,  491,  490,  488,  487,  486,
     722             :       485,  483,  481,  479,  478,  477,  476,  475,  474,  472,
     723             :       471,  469,  468,  467,  466,  465,  464,  463,  462,  461,
     724             : 
     725             :       459,  458,  457,  456,  455,  454,  453,  452,  451,  447,
     726             :       446,  445,  444,  443,  442,  441,  440,  439,  438,  436,
     727             :       435,  434,  433,  431,  430,  429,  428,  424,  423,  422,
     728             :       421,  420,  418,  416,  414,  413,  412,  411,  410,  409,
     729             :       408,  407,  406,  405,  404,  403,  402,  400,  399,  398,
     730             :       397,  396,  395,  394,  391,  389,  388,  387,  386,  385,
     731             :       384,  382,  381,  378,  377,  376,  375,  373,  372,  370,
     732             :       369,  367,  366,  364,  363,  362,  361,  359,  358,  357,
     733             :       356,  355,  354,  353,  352,  351,  350,  348,  347,  346,
     734             :       343,  342,  341,  340,  339,  338,  337,  336,  335,  333,
     735             : 
     736             :       332,  331,  330,  329,  328,  327,  326,  325,  324,  323,
     737             :       322,  321,  320,  319,  318,  317,  316,  314,  313,  312,
     738             :       311,  310,  309,  308,  307,  305,  304,  303,  302,  301,
     739             :       300,  298,  297,  296,  295,  294,  293,  292,  290,  289,
     740             :       288,  287,  286,  285,  284,  283,  282,  281,  280,  279,
     741             :       278,  277,  275,  274,  273,  272,  271,  270,  269,  268,
     742             :       267,  265,  264,  263,  262,  260,  259,  258,  257,  256,
     743             :       255,  254,  253,  252,  251,  250,  249,  248,  246,  245,
     744             :       244,  243,  241,  240,  239,  238,  236,  235,  234,  233,
     745             :       232,  231,  230,  229,  228,  227,  224,  223,  222,  220,
     746             : 
     747             :       219,  217,  216,  215,  214,  213,  212,  211,  210,  209,
     748             :       208,  206,  205,  203,  202,  201,  200,  199,  198,  197,
     749             :       196,  194,  192,  191,  190,  189,  188,  187,  186,  185,
     750             :       184,  183,  182,  181,  180,  179,  178,  177,  176,  175,
     751             :       174,  173,  172,  171,  170,  169,  168,  167,  166,  164,
     752             :       163,  162,  161,  160,  159,  158,  157,  155,  154,  153,
     753             :       152,  151,  150,  149,  147,  146,  145,  144,  143,  142,
     754             :       141,  140,  138,  137,  136,  135,  133,  132,  131,  130,
     755             :       129,  128,  127,  125,  124,  122,  121,  118,  117,  116,
     756             :       115,  114,  113,  111,  110,  109,  101,   99,   97,   96,
     757             : 
     758             :        95,   94,   93,   92,   91,   90,   89,   86,   84,   83,
     759             :        82,   81,   80,   78,   77,   76,   75,   74,   73,   72,
     760             :        70,   69,   68,   67,   66,   65,   64,   61,   60,   58,
     761             :        55,   54,   53,   52,   51,   50,   49,   48,   46,   43,
     762             :        35,   34,   30,   20,   15,   12,   11,    3,  573,  573,
     763             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     764             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     765             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     766             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     767             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     768             : 
     769             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     770             :       573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
     771             :       573
     772             :     } ;
     773             : 
     774             : static yy_state_type yy_last_accepting_state;
     775             : static char *yy_last_accepting_cpos;
     776             : 
     777             : extern int yy_flex_debug;
     778             : int yy_flex_debug = 0;
     779             : 
     780             : /* The intent behind this definition is that it'll catch
     781             :  * any uses of REJECT which flex missed.
     782             :  */
     783             : #define REJECT reject_used_but_not_detected
     784             : #define yymore() yymore_used_but_not_detected
     785             : #define YY_MORE_ADJ 0
     786             : #define YY_RESTORE_YY_MORE_OFFSET
     787             : char *yytext;
     788             : /*
     789             :  * Copyright (c) 1997 - 2017 Kungliga Tekniska Högskolan
     790             :  * (Royal Institute of Technology, Stockholm, Sweden).
     791             :  * All rights reserved.
     792             :  *
     793             :  * Redistribution and use in source and binary forms, with or without
     794             :  * modification, are permitted provided that the following conditions
     795             :  * are met:
     796             :  *
     797             :  * 1. Redistributions of source code must retain the above copyright
     798             :  *    notice, this list of conditions and the following disclaimer.
     799             :  *
     800             :  * 2. Redistributions in binary form must reproduce the above copyright
     801             :  *    notice, this list of conditions and the following disclaimer in the
     802             :  *    documentation and/or other materials provided with the distribution.
     803             :  *
     804             :  * 3. Neither the name of the Institute nor the names of its contributors
     805             :  *    may be used to endorse or promote products derived from this software
     806             :  *    without specific prior written permission.
     807             :  *
     808             :  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
     809             :  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     810             :  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     811             :  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
     812             :  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     813             :  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     814             :  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     815             :  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     816             :  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     817             :  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     818             :  * SUCH DAMAGE.
     819             :  */
     820             : 
     821             : /* $Id$ */
     822             : 
     823             : #ifdef HAVE_CONFIG_H
     824             : #include <config.h>
     825             : #endif
     826             : #include <stdio.h>
     827             : #include <stdarg.h>
     828             : #include <stdlib.h>
     829             : #include <stdint.h>
     830             : #include <string.h>
     831             : #ifdef HAVE_UNISTD_H
     832             : #include <unistd.h>
     833             : #endif
     834             : #undef ECHO
     835             : #include "symbol.h"
     836             : #include "asn1parse.h"
     837             : #include "lex.h"
     838             : #include "gen_locl.h"
     839             : 
     840             : static unsigned lineno = 1;
     841             : 
     842             : #undef ECHO
     843             : 
     844             : static void unterminated(const char *, unsigned);
     845             : 
     846             : /* This is for broken old lexes (solaris 10 and hpux) */
     847             : 
     848             : #define INITIAL 0
     849             : 
     850             : #ifndef YY_NO_UNISTD_H
     851             : /* Special case for "unistd.h", since it is non-ANSI. We include it way
     852             :  * down here because we want the user's section 1 to have been scanned first.
     853             :  * The user has a chance to override it with an option.
     854             :  */
     855             : #include <unistd.h>
     856             : #endif
     857             : 
     858             : #ifndef YY_EXTRA_TYPE
     859             : #define YY_EXTRA_TYPE void *
     860             : #endif
     861             : 
     862             : static int yy_init_globals ( void );
     863             : 
     864             : /* Accessor methods to globals.
     865             :    These are made visible to non-reentrant scanners for convenience. */
     866             : 
     867             : int yylex_destroy ( void );
     868             : 
     869             : int yyget_debug ( void );
     870             : 
     871             : void yyset_debug ( int debug_flag  );
     872             : 
     873             : YY_EXTRA_TYPE yyget_extra ( void );
     874             : 
     875             : void yyset_extra ( YY_EXTRA_TYPE user_defined  );
     876             : 
     877             : FILE *yyget_in ( void );
     878             : 
     879             : void yyset_in  ( FILE * _in_str  );
     880             : 
     881             : FILE *yyget_out ( void );
     882             : 
     883             : void yyset_out  ( FILE * _out_str  );
     884             : 
     885             :                         int yyget_leng ( void );
     886             : 
     887             : char *yyget_text ( void );
     888             : 
     889             : int yyget_lineno ( void );
     890             : 
     891             : void yyset_lineno ( int _line_number  );
     892             : 
     893             : /* Macros after this point can all be overridden by user definitions in
     894             :  * section 1.
     895             :  */
     896             : 
     897             : #ifndef YY_SKIP_YYWRAP
     898             : #ifdef __cplusplus
     899             : extern "C" int yywrap ( void );
     900             : #else
     901             : extern int yywrap ( void );
     902             : #endif
     903             : #endif
     904             : 
     905             : #ifndef YY_NO_UNPUT
     906             :     
     907             :     static void yyunput ( int c, char *buf_ptr  );
     908             :     
     909             : #endif
     910             : 
     911             : #ifndef yytext_ptr
     912             : static void yy_flex_strncpy ( char *, const char *, int );
     913             : #endif
     914             : 
     915             : #ifdef YY_NEED_STRLEN
     916             : static int yy_flex_strlen ( const char * );
     917             : #endif
     918             : 
     919             : #ifndef YY_NO_INPUT
     920             : #ifdef __cplusplus
     921             : static int yyinput ( void );
     922             : #else
     923             : static int input ( void );
     924             : #endif
     925             : 
     926             : #endif
     927             : 
     928             : /* Amount of stuff to slurp up with each read. */
     929             : #ifndef YY_READ_BUF_SIZE
     930             : #ifdef __ia64__
     931             : /* On IA-64, the buffer size is 16k, not 8k */
     932             : #define YY_READ_BUF_SIZE 16384
     933             : #else
     934             : #define YY_READ_BUF_SIZE 8192
     935             : #endif /* __ia64__ */
     936             : #endif
     937             : 
     938             : /* Copy whatever the last rule matched to the standard output. */
     939             : #ifndef ECHO
     940             : /* This used to be an fputs(), but since the string might contain NUL's,
     941             :  * we now use fwrite().
     942             :  */
     943             : #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
     944             : #endif
     945             : 
     946             : /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
     947             :  * is returned in "result".
     948             :  */
     949             : #ifndef YY_INPUT
     950             : #define YY_INPUT(buf,result,max_size) \
     951             :         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
     952             :                 { \
     953             :                 int c = '*'; \
     954             :                 int n; \
     955             :                 for ( n = 0; n < max_size && \
     956             :                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
     957             :                         buf[n] = (char) c; \
     958             :                 if ( c == '\n' ) \
     959             :                         buf[n++] = (char) c; \
     960             :                 if ( c == EOF && ferror( yyin ) ) \
     961             :                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
     962             :                 result = n; \
     963             :                 } \
     964             :         else \
     965             :                 { \
     966             :                 errno=0; \
     967             :                 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
     968             :                         { \
     969             :                         if( errno != EINTR) \
     970             :                                 { \
     971             :                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
     972             :                                 break; \
     973             :                                 } \
     974             :                         errno=0; \
     975             :                         clearerr(yyin); \
     976             :                         } \
     977             :                 }\
     978             : \
     979             : 
     980             : #endif
     981             : 
     982             : /* No semi-colon after return; correct usage is to write "yyterminate();" -
     983             :  * we don't want an extra ';' after the "return" because that will cause
     984             :  * some compilers to complain about unreachable statements.
     985             :  */
     986             : #ifndef yyterminate
     987             : #define yyterminate() return YY_NULL
     988             : #endif
     989             : 
     990             : /* Number of entries by which start-condition stack grows. */
     991             : #ifndef YY_START_STACK_INCR
     992             : #define YY_START_STACK_INCR 25
     993             : #endif
     994             : 
     995             : /* Report a fatal error. */
     996             : #ifndef YY_FATAL_ERROR
     997             : #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
     998             : #endif
     999             : 
    1000             : /* end tables serialization structures and prototypes */
    1001             : 
    1002             : /* Default declaration of generated scanner - a define so the user can
    1003             :  * easily add parameters.
    1004             :  */
    1005             : #ifndef YY_DECL
    1006             : #define YY_DECL_IS_OURS 1
    1007             : 
    1008             : extern int yylex (void);
    1009             : 
    1010             : #define YY_DECL int yylex (void)
    1011             : #endif /* !YY_DECL */
    1012             : 
    1013             : /* Code executed at the beginning of each rule, after yytext and yyleng
    1014             :  * have been set up.
    1015             :  */
    1016             : #ifndef YY_USER_ACTION
    1017             : #define YY_USER_ACTION
    1018             : #endif
    1019             : 
    1020             : /* Code executed at the end of each rule. */
    1021             : #ifndef YY_BREAK
    1022             : #define YY_BREAK /*LINTED*/break;
    1023             : #endif
    1024             : 
    1025             : #define YY_RULE_SETUP \
    1026             :         YY_USER_ACTION
    1027             : 
    1028             : /** The main scanner function which does all the work.
    1029             :  */
    1030      271491 : YY_DECL
    1031             : {
    1032       14289 :         yy_state_type yy_current_state;
    1033       14289 :         char *yy_cp, *yy_bp;
    1034       14289 :         int yy_act;
    1035             :     
    1036      271491 :         if ( !(yy_init) )
    1037             :                 {
    1038         304 :                 (yy_init) = 1;
    1039             : 
    1040             : #ifdef YY_USER_INIT
    1041             :                 YY_USER_INIT;
    1042             : #endif
    1043             : 
    1044         304 :                 if ( ! (yy_start) )
    1045         304 :                         (yy_start) = 1; /* first start state */
    1046             : 
    1047         304 :                 if ( ! yyin )
    1048           0 :                         yyin = stdin;
    1049             : 
    1050         304 :                 if ( ! yyout )
    1051         304 :                         yyout = stdout;
    1052             : 
    1053         304 :                 if ( ! YY_CURRENT_BUFFER ) {
    1054         304 :                         yyensure_buffer_stack ();
    1055         304 :                         YY_CURRENT_BUFFER_LVALUE =
    1056         304 :                                 yy_create_buffer( yyin, YY_BUF_SIZE );
    1057             :                 }
    1058             : 
    1059         304 :                 yy_load_buffer_state(  );
    1060             :                 }
    1061             : 
    1062             :         {
    1063             : 
    1064       33720 :         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
    1065             :                 {
    1066      640680 :                 yy_cp = (yy_c_buf_p);
    1067             : 
    1068             :                 /* Support of yytext. */
    1069      640680 :                 *yy_cp = (yy_hold_char);
    1070             : 
    1071             :                 /* yy_bp points to the position in yy_ch_buf of the start of
    1072             :                  * the current run.
    1073             :                  */
    1074      640680 :                 yy_bp = yy_cp;
    1075             : 
    1076      640680 :                 yy_current_state = (yy_start);
    1077      607356 : yy_match:
    1078      102605 :                 do
    1079             :                         {
    1080     1949495 :                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
    1081     1949495 :                         if ( yy_accept[yy_current_state] )
    1082             :                                 {
    1083     1293482 :                                 (yy_last_accepting_state) = yy_current_state;
    1084     1293482 :                                 (yy_last_accepting_cpos) = yy_cp;
    1085             :                                 }
    1086     3035915 :                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    1087             :                                 {
    1088     1086420 :                                 yy_current_state = (int) yy_def[yy_current_state];
    1089     1086420 :                                 if ( yy_current_state >= 574 )
    1090      936282 :                                         yy_c = yy_meta[yy_c];
    1091             :                                 }
    1092     1949495 :                         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
    1093     1949495 :                         ++yy_cp;
    1094             :                         }
    1095     1949495 :                 while ( yy_base[yy_current_state] != 649 );
    1096             : 
    1097      641098 : yy_find_action:
    1098      641098 :                 yy_act = yy_accept[yy_current_state];
    1099      641098 :                 if ( yy_act == 0 )
    1100             :                         { /* have to back up */
    1101      150138 :                         yy_cp = (yy_last_accepting_cpos);
    1102      150138 :                         yy_current_state = (yy_last_accepting_state);
    1103      150138 :                         yy_act = yy_accept[yy_current_state];
    1104             :                         }
    1105             : 
    1106      641098 :                 YY_DO_BEFORE_ACTION;
    1107             : 
    1108      641402 : do_action:      /* This label is used only to access EOF actions. */
    1109             : 
    1110      641402 :                 switch ( yy_act )
    1111             :         { /* beginning of action switch */
    1112           0 :                         case 0: /* must back up */
    1113             :                         /* undo the effects of YY_DO_BEFORE_ACTION */
    1114           0 :                         *yy_cp = (yy_hold_char);
    1115           0 :                         yy_cp = (yy_last_accepting_cpos);
    1116           0 :                         yy_current_state = (yy_last_accepting_state);
    1117           0 :                         goto yy_find_action;
    1118             : 
    1119           0 : case 1:
    1120             : YY_RULE_SETUP
    1121           0 : { return kw_ABSENT; }
    1122           0 :         YY_BREAK
    1123           0 : case 2:
    1124             : YY_RULE_SETUP
    1125           0 : { return kw_ABSTRACT_SYNTAX; }
    1126           0 :         YY_BREAK
    1127           0 : case 3:
    1128             : YY_RULE_SETUP
    1129           0 : { return kw_ALL; }
    1130          24 :         YY_BREAK
    1131         456 : case 4:
    1132             : YY_RULE_SETUP
    1133         456 : { return kw_APPLICATION; }
    1134           0 :         YY_BREAK
    1135           0 : case 5:
    1136             : YY_RULE_SETUP
    1137           0 : { return kw_AUTOMATIC; }
    1138          16 :         YY_BREAK
    1139         304 : case 6:
    1140             : YY_RULE_SETUP
    1141         304 : { return kw_BEGIN; }
    1142          35 :         YY_BREAK
    1143         665 : case 7:
    1144             : YY_RULE_SETUP
    1145         665 : { return kw_BIT; }
    1146           3 :         YY_BREAK
    1147          57 : case 8:
    1148             : YY_RULE_SETUP
    1149          57 : { return kw_BMPString; }
    1150          16 :         YY_BREAK
    1151         304 : case 9:
    1152             : YY_RULE_SETUP
    1153         304 : { return kw_BOOLEAN; }
    1154           0 :         YY_BREAK
    1155           0 : case 10:
    1156             : YY_RULE_SETUP
    1157           0 : { return kw_BY; }
    1158           0 :         YY_BREAK
    1159           0 : case 11:
    1160             : YY_RULE_SETUP
    1161           0 : { return kw_CHARACTER; }
    1162          31 :         YY_BREAK
    1163         589 : case 12:
    1164             : YY_RULE_SETUP
    1165         589 : { return kw_CHOICE; }
    1166           5 :         YY_BREAK
    1167          95 : case 13:
    1168             : YY_RULE_SETUP
    1169          95 : { return kw_CLASS; }
    1170           0 :         YY_BREAK
    1171           0 : case 14:
    1172             : YY_RULE_SETUP
    1173           0 : { return kw_COMPONENT; }
    1174           0 :         YY_BREAK
    1175           0 : case 15:
    1176             : YY_RULE_SETUP
    1177           0 : { return kw_COMPONENTS; }
    1178           0 :         YY_BREAK
    1179           0 : case 16:
    1180             : YY_RULE_SETUP
    1181           0 : { return kw_CONSTRAINED; }
    1182           1 :         YY_BREAK
    1183          19 : case 17:
    1184             : YY_RULE_SETUP
    1185          19 : { return kw_CONTAINING; }
    1186          14 :         YY_BREAK
    1187         266 : case 18:
    1188             : YY_RULE_SETUP
    1189         266 : { return kw_DEFAULT; }
    1190          16 :         YY_BREAK
    1191         304 : case 19:
    1192             : YY_RULE_SETUP
    1193         304 : { return kw_DEFINITIONS; }
    1194           0 :         YY_BREAK
    1195           0 : case 20:
    1196             : YY_RULE_SETUP
    1197           0 : { return kw_EMBEDDED; }
    1198           0 :         YY_BREAK
    1199           0 : case 21:
    1200             : YY_RULE_SETUP
    1201           0 : { return kw_ENCODED; }
    1202          16 :         YY_BREAK
    1203         304 : case 22:
    1204             : YY_RULE_SETUP
    1205         304 : { return kw_END; }
    1206          10 :         YY_BREAK
    1207         190 : case 23:
    1208             : YY_RULE_SETUP
    1209         190 : { return kw_ENUMERATED; }
    1210           0 :         YY_BREAK
    1211           0 : case 24:
    1212             : YY_RULE_SETUP
    1213           0 : { return kw_EXCEPT; }
    1214          24 :         YY_BREAK
    1215         456 : case 25:
    1216             : YY_RULE_SETUP
    1217         456 : { return kw_EXPLICIT; }
    1218           1 :         YY_BREAK
    1219          19 : case 26:
    1220             : YY_RULE_SETUP
    1221          19 : { return kw_EXPORTS; }
    1222           0 :         YY_BREAK
    1223           0 : case 27:
    1224             : YY_RULE_SETUP
    1225           0 : { return kw_EXTENSIBILITY; }
    1226           0 :         YY_BREAK
    1227           0 : case 28:
    1228             : YY_RULE_SETUP
    1229           0 : { return kw_EXTERNAL; }
    1230          27 :         YY_BREAK
    1231         513 : case 29:
    1232             : YY_RULE_SETUP
    1233         513 : { return kw_FALSE; }
    1234          23 :         YY_BREAK
    1235         437 : case 30:
    1236             : YY_RULE_SETUP
    1237         437 : { return kw_FROM; }
    1238          14 :         YY_BREAK
    1239         266 : case 31:
    1240             : YY_RULE_SETUP
    1241         266 : { return kw_GeneralString; }
    1242           9 :         YY_BREAK
    1243         171 : case 32:
    1244             : YY_RULE_SETUP
    1245         171 : { return kw_GeneralizedTime; }
    1246           0 :         YY_BREAK
    1247           0 : case 33:
    1248             : YY_RULE_SETUP
    1249           0 : { return kw_GraphicString; }
    1250          11 :         YY_BREAK
    1251         209 : case 34:
    1252             : YY_RULE_SETUP
    1253         209 : { return kw_IA5String; }
    1254         278 :         YY_BREAK
    1255        5282 : case 35:
    1256             : YY_RULE_SETUP
    1257        5282 : { return kw_IDENTIFIER; }
    1258          70 :         YY_BREAK
    1259        1330 : case 36:
    1260             : YY_RULE_SETUP
    1261        1330 : { return kw_IMPLICIT; }
    1262           0 :         YY_BREAK
    1263           0 : case 37:
    1264             : YY_RULE_SETUP
    1265           0 : { return kw_IMPLIED; }
    1266          13 :         YY_BREAK
    1267         247 : case 38:
    1268             : YY_RULE_SETUP
    1269         247 : { return kw_IMPORTS; }
    1270           0 :         YY_BREAK
    1271           0 : case 39:
    1272             : YY_RULE_SETUP
    1273           0 : { return kw_INCLUDES; }
    1274           0 :         YY_BREAK
    1275           0 : case 40:
    1276             : YY_RULE_SETUP
    1277           0 : { return kw_INSTANCE; }
    1278         155 :         YY_BREAK
    1279        2945 : case 41:
    1280             : YY_RULE_SETUP
    1281        2945 : { return kw_INTEGER; }
    1282           0 :         YY_BREAK
    1283           0 : case 42:
    1284             : YY_RULE_SETUP
    1285           0 : { return kw_INTERSECTION; }
    1286           0 :         YY_BREAK
    1287           0 : case 43:
    1288             : YY_RULE_SETUP
    1289           0 : { return kw_ISO646String; }
    1290          14 :         YY_BREAK
    1291         266 : case 44:
    1292             : YY_RULE_SETUP
    1293         266 : { return kw_MAX; }
    1294           0 :         YY_BREAK
    1295           0 : case 45:
    1296             : YY_RULE_SETUP
    1297           0 : { return kw_MIN; }
    1298           0 :         YY_BREAK
    1299           0 : case 46:
    1300             : YY_RULE_SETUP
    1301           0 : { return kw_MINUS_INFINITY; }
    1302           5 :         YY_BREAK
    1303          95 : case 47:
    1304             : YY_RULE_SETUP
    1305          95 : { return kw_NULL; }
    1306           0 :         YY_BREAK
    1307           0 : case 48:
    1308             : YY_RULE_SETUP
    1309           0 : { return kw_NumericString; }
    1310         278 :         YY_BREAK
    1311        5282 : case 49:
    1312             : YY_RULE_SETUP
    1313        5282 : { return kw_OBJECT; }
    1314         122 :         YY_BREAK
    1315        2318 : case 50:
    1316             : YY_RULE_SETUP
    1317        2318 : { return kw_OCTET; }
    1318          91 :         YY_BREAK
    1319        1729 : case 51:
    1320             : YY_RULE_SETUP
    1321        1729 : { return kw_OF; }
    1322         297 :         YY_BREAK
    1323        5643 : case 52:
    1324             : YY_RULE_SETUP
    1325        5643 : { return kw_OPTIONAL; }
    1326           0 :         YY_BREAK
    1327           0 : case 53:
    1328             : YY_RULE_SETUP
    1329           0 : { return kw_ObjectDescriptor; }
    1330           0 :         YY_BREAK
    1331           0 : case 54:
    1332             : YY_RULE_SETUP
    1333           0 : { return kw_PATTERN; }
    1334           0 :         YY_BREAK
    1335           0 : case 55:
    1336             : YY_RULE_SETUP
    1337           0 : { return kw_PDV; }
    1338           0 :         YY_BREAK
    1339           0 : case 56:
    1340             : YY_RULE_SETUP
    1341           0 : { return kw_PLUS_INFINITY; }
    1342           0 :         YY_BREAK
    1343           0 : case 57:
    1344             : YY_RULE_SETUP
    1345           0 : { return kw_PRESENT; }
    1346           0 :         YY_BREAK
    1347           0 : case 58:
    1348             : YY_RULE_SETUP
    1349           0 : { return kw_PRIVATE; }
    1350           2 :         YY_BREAK
    1351          38 : case 59:
    1352             : YY_RULE_SETUP
    1353          38 : { return kw_PrintableString; }
    1354           0 :         YY_BREAK
    1355           0 : case 60:
    1356             : YY_RULE_SETUP
    1357           0 : { return kw_REAL; }
    1358           0 :         YY_BREAK
    1359           0 : case 61:
    1360             : YY_RULE_SETUP
    1361           0 : { return kw_RELATIVE_OID; }
    1362         294 :         YY_BREAK
    1363        5586 : case 62:
    1364             : YY_RULE_SETUP
    1365        5586 : { return kw_SEQUENCE; }
    1366          17 :         YY_BREAK
    1367         323 : case 63:
    1368             : YY_RULE_SETUP
    1369         323 : { return kw_SET; }
    1370          17 :         YY_BREAK
    1371         323 : case 64:
    1372             : YY_RULE_SETUP
    1373         323 : { return kw_SIZE; }
    1374         157 :         YY_BREAK
    1375        2983 : case 65:
    1376             : YY_RULE_SETUP
    1377        2983 : { return kw_STRING; }
    1378           0 :         YY_BREAK
    1379           0 : case 66:
    1380             : YY_RULE_SETUP
    1381           0 : { return kw_SYNTAX; }
    1382           0 :         YY_BREAK
    1383           0 : case 67:
    1384             : YY_RULE_SETUP
    1385           0 : { return kw_T61String; }
    1386           2 :         YY_BREAK
    1387          38 : case 68:
    1388             : YY_RULE_SETUP
    1389          38 : { return kw_TAGS; }
    1390           0 :         YY_BREAK
    1391           0 : case 69:
    1392             : YY_RULE_SETUP
    1393           0 : { return kw_TRUE; }
    1394           0 :         YY_BREAK
    1395           0 : case 70:
    1396             : YY_RULE_SETUP
    1397           0 : { return kw_TYPE_IDENTIFIER; }
    1398           1 :         YY_BREAK
    1399          19 : case 71:
    1400             : YY_RULE_SETUP
    1401          19 : { return kw_TeletexString; }
    1402           0 :         YY_BREAK
    1403           0 : case 72:
    1404             : YY_RULE_SETUP
    1405           0 : { return kw_UNION; }
    1406           5 :         YY_BREAK
    1407          95 : case 73:
    1408             : YY_RULE_SETUP
    1409          95 : { return kw_UNIQUE; }
    1410           1 :         YY_BREAK
    1411          19 : case 74:
    1412             : YY_RULE_SETUP
    1413          19 : { return kw_UNIVERSAL; }
    1414           1 :         YY_BREAK
    1415          19 : case 75:
    1416             : YY_RULE_SETUP
    1417          19 : { return kw_UTCTime; }
    1418          46 :         YY_BREAK
    1419         874 : case 76:
    1420             : YY_RULE_SETUP
    1421         874 : { return kw_UTF8String; }
    1422           1 :         YY_BREAK
    1423          19 : case 77:
    1424             : YY_RULE_SETUP
    1425          19 : { return kw_UniversalString; }
    1426           0 :         YY_BREAK
    1427           0 : case 78:
    1428             : YY_RULE_SETUP
    1429           0 : { return kw_VideotexString; }
    1430           2 :         YY_BREAK
    1431          38 : case 79:
    1432             : YY_RULE_SETUP
    1433          38 : { return kw_VisibleString; }
    1434           0 :         YY_BREAK
    1435           0 : case 80:
    1436             : YY_RULE_SETUP
    1437           0 : { return kw_WITH; }
    1438        4208 :         YY_BREAK
    1439       79952 : case 81:
    1440             : YY_RULE_SETUP
    1441       79952 : { return *yytext; }
    1442         612 :         YY_BREAK
    1443       11628 : case 82:
    1444             : YY_RULE_SETUP
    1445       11628 : { return *yytext; }
    1446         612 :         YY_BREAK
    1447       11628 : case 83:
    1448             : YY_RULE_SETUP
    1449       11628 : { return *yytext; }
    1450         149 :         YY_BREAK
    1451        2831 : case 84:
    1452             : YY_RULE_SETUP
    1453        2831 : { return *yytext; }
    1454          12 :         YY_BREAK
    1455         228 : case 85:
    1456             : YY_RULE_SETUP
    1457         228 : { return *yytext; }
    1458           6 :         YY_BREAK
    1459         114 : case 86:
    1460             : YY_RULE_SETUP
    1461         114 : { return *yytext; }
    1462           6 :         YY_BREAK
    1463         114 : case 87:
    1464             : YY_RULE_SETUP
    1465         114 : { return *yytext; }
    1466         783 :         YY_BREAK
    1467       14877 : case 88:
    1468             : YY_RULE_SETUP
    1469       14877 : { return EEQUAL; }
    1470         874 :         YY_BREAK
    1471       16606 : case 89:
    1472             : YY_RULE_SETUP
    1473             : {
    1474       16606 :                             int c, start_lineno = lineno;
    1475       16606 :                             int f = 0;
    1476      541481 :                             while((c = input()) != EOF) {
    1477      541481 :                                 if(f && c == '-')
    1478        1728 :                                     break;
    1479      539657 :                                 if(c == '-') {
    1480        9310 :                                     f = 1;
    1481        9310 :                                     continue;
    1482             :                                 }
    1483      530347 :                                 if(c == '\n') {
    1484       14782 :                                     lineno++;
    1485       14782 :                                     break;
    1486             :                                 }
    1487      488430 :                                 f = 0;
    1488             :                             }
    1489       16606 :                             if(c == EOF)
    1490       33720 :                                 unterminated("comment", start_lineno);
    1491             :                         }
    1492       15732 :         YY_BREAK
    1493           0 : case 90:
    1494             : YY_RULE_SETUP
    1495             : {
    1496           0 :                             int c, start_lineno = lineno;
    1497           0 :                             int level = 1;
    1498           0 :                             int seen_star = 0;
    1499           0 :                             int seen_slash = 0;
    1500           0 :                             while((c = input()) != EOF) {
    1501           0 :                                 if(c == '/') {
    1502           0 :                                     if(seen_star) {
    1503           0 :                                         if(--level == 0)
    1504           0 :                                             break;
    1505           0 :                                         seen_star = 0;
    1506           0 :                                         continue;
    1507             :                                     }
    1508           0 :                                     seen_slash = 1;
    1509           0 :                                     continue;
    1510             :                                 }
    1511           0 :                                 if(seen_star && c == '/') {
    1512           0 :                                     if(--level == 0)
    1513           0 :                                         break;
    1514           0 :                                     seen_star = 0;
    1515           0 :                                     continue;
    1516             :                                 }
    1517           0 :                                 if(c == '*') {
    1518           0 :                                     if(seen_slash) {
    1519           0 :                                         level++;
    1520           0 :                                         seen_star = seen_slash = 0;
    1521           0 :                                         continue;
    1522             :                                     }
    1523           0 :                                     seen_star = 1;
    1524           0 :                                     continue;
    1525             :                                 }
    1526           0 :                                 seen_star = seen_slash = 0;
    1527           0 :                                 if(c == '\n') {
    1528           0 :                                     lineno++;
    1529           0 :                                     continue;
    1530             :                                 }
    1531             :                             }
    1532           0 :                             if(c == EOF)
    1533       33720 :                                 unterminated("comment", start_lineno);
    1534             :                         }
    1535           0 :         YY_BREAK
    1536           0 : case 91:
    1537             : YY_RULE_SETUP
    1538             : {
    1539           0 :                             int start_lineno = lineno;
    1540           0 :                             int c;
    1541           0 :                             char buf[1024];
    1542           0 :                             char *p = buf;
    1543           0 :                             int f = 0;
    1544           0 :                             int skip_ws = 0;
    1545             : 
    1546           0 :                             while((c = input()) != EOF) {
    1547           0 :                                 if(isspace(c) && skip_ws) {
    1548           0 :                                     if(c == '\n')
    1549           0 :                                         lineno++;
    1550           0 :                                     continue;
    1551             :                                 }
    1552           0 :                                 skip_ws = 0;
    1553             : 
    1554           0 :                                 if(c == '"') {
    1555           0 :                                     if(f) {
    1556           0 :                                         *p++ = '"';
    1557           0 :                                         f = 0;
    1558             :                                     } else
    1559           0 :                                         f = 1;
    1560           0 :                                     continue;
    1561             :                                 }
    1562           0 :                                 if(f == 1) {
    1563           0 :                                     unput(c);
    1564           0 :                                     break;
    1565             :                                 }
    1566           0 :                                 if(c == '\n') {
    1567           0 :                                     lineno++;
    1568           0 :                                     while(p > buf && isspace((unsigned char)p[-1]))
    1569           0 :                                         p--;
    1570           0 :                                     skip_ws = 1;
    1571           0 :                                     continue;
    1572             :                                 }
    1573           0 :                                 *p++ = c;
    1574             :                             }
    1575           0 :                             if(c == EOF)
    1576           0 :                                 unterminated("string", start_lineno);
    1577           0 :                             *p++ = '\0';
    1578           0 :                             yylval.name = estrdup(buf);
    1579           0 :                             return STRING;
    1580             :                         }
    1581        1845 :         YY_BREAK
    1582       35055 : case 92:
    1583             : YY_RULE_SETUP
    1584       35055 : { char *e, *y = yytext;
    1585       35055 :                           yylval.constant = strtoll((const char *)yytext,
    1586             :                                                    &e, 0);
    1587       35055 :                           if(e == y)
    1588           0 :                             lex_error_message("malformed constant (%s)", yytext);
    1589             :                           else
    1590       35055 :                             return NUMBER;
    1591             :                         }
    1592           0 :         YY_BREAK
    1593        1501 : case 93:
    1594             : YY_RULE_SETUP
    1595             : {
    1596        1501 :                           yylval.name =  estrdup ((const char *)yytext);
    1597        1501 :                           return CLASS_IDENTIFIER;
    1598             :                         }
    1599        1541 :         YY_BREAK
    1600       29279 : case 94:
    1601             : YY_RULE_SETUP
    1602             : {
    1603       29279 :                           yylval.name =  estrdup ((const char *)yytext);
    1604       29279 :                           return TYPE_IDENTIFIER;
    1605             :                         }
    1606        2158 :         YY_BREAK
    1607       41002 : case 95:
    1608             : YY_RULE_SETUP
    1609             : {
    1610       41002 :                           yylval.name =  estrdup ((const char *)yytext);
    1611       41002 :                           return VALUE_IDENTIFIER;
    1612             :                         }
    1613             :         YY_BREAK
    1614      276498 : case 96:
    1615             : YY_RULE_SETUP
    1616             : ;
    1617      276498 :         YY_BREAK
    1618       60724 : case 97:
    1619             : /* rule 97 can match eol */
    1620             : YY_RULE_SETUP
    1621       60724 : { ++lineno; }
    1622       60724 :         YY_BREAK
    1623         741 : case 98:
    1624             : YY_RULE_SETUP
    1625         741 : { return ELLIPSIS; }
    1626          58 :         YY_BREAK
    1627        1102 : case 99:
    1628             : YY_RULE_SETUP
    1629        1102 : { return RANGE; }
    1630           0 :         YY_BREAK
    1631           0 : case 100:
    1632             : YY_RULE_SETUP
    1633           0 : { lex_error_message("Ignoring char(%c)\n", *yytext); }
    1634           0 :         YY_BREAK
    1635           0 : case 101:
    1636             : YY_RULE_SETUP
    1637           0 : ECHO;
    1638           0 :         YY_BREAK
    1639         304 : case YY_STATE_EOF(INITIAL):
    1640         304 :         yyterminate();
    1641             : 
    1642         722 :         case YY_END_OF_BUFFER:
    1643             :                 {
    1644             :                 /* Amount of text matched not including the EOB char. */
    1645         722 :                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
    1646             : 
    1647             :                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
    1648         722 :                 *yy_cp = (yy_hold_char);
    1649             :                 YY_RESTORE_YY_MORE_OFFSET
    1650             : 
    1651         722 :                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
    1652             :                         {
    1653             :                         /* We're scanning a new file or input source.  It's
    1654             :                          * possible that this happened because the user
    1655             :                          * just pointed yyin at a new source and called
    1656             :                          * yylex().  If so, then we have to assure
    1657             :                          * consistency between YY_CURRENT_BUFFER and our
    1658             :                          * globals.  Here is the right place to do so, because
    1659             :                          * this is the first action (other than possibly a
    1660             :                          * back-up) that will match for the new input source.
    1661             :                          */
    1662         304 :                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
    1663         304 :                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
    1664         304 :                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
    1665             :                         }
    1666             : 
    1667             :                 /* Note that here we test for yy_c_buf_p "<=" to the position
    1668             :                  * of the first EOB in the buffer, since yy_c_buf_p will
    1669             :                  * already have been incremented past the NUL character
    1670             :                  * (since all states make transitions on EOB to the
    1671             :                  * end-of-buffer state).  Contrast this with the test
    1672             :                  * in input().
    1673             :                  */
    1674         722 :                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
    1675             :                         { /* This was really a NUL. */
    1676           0 :                         yy_state_type yy_next_state;
    1677             : 
    1678           0 :                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
    1679             : 
    1680           0 :                         yy_current_state = yy_get_previous_state(  );
    1681             : 
    1682             :                         /* Okay, we're now positioned to make the NUL
    1683             :                          * transition.  We couldn't have
    1684             :                          * yy_get_previous_state() go ahead and do it
    1685             :                          * for us because it doesn't know how to deal
    1686             :                          * with the possibility of jamming (and we don't
    1687             :                          * want to build jamming into it because then it
    1688             :                          * will run more slowly).
    1689             :                          */
    1690             : 
    1691           0 :                         yy_next_state = yy_try_NUL_trans( yy_current_state );
    1692             : 
    1693           0 :                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
    1694             : 
    1695           0 :                         if ( yy_next_state )
    1696             :                                 {
    1697             :                                 /* Consume the NUL. */
    1698           0 :                                 yy_cp = ++(yy_c_buf_p);
    1699           0 :                                 yy_current_state = yy_next_state;
    1700           0 :                                 goto yy_match;
    1701             :                                 }
    1702             : 
    1703             :                         else
    1704             :                                 {
    1705           0 :                                 yy_cp = (yy_c_buf_p);
    1706           0 :                                 goto yy_find_action;
    1707             :                                 }
    1708             :                         }
    1709             : 
    1710         722 :                 else switch ( yy_get_next_buffer(  ) )
    1711             :                         {
    1712         304 :                         case EOB_ACT_END_OF_FILE:
    1713             :                                 {
    1714         304 :                                 (yy_did_buffer_switch_on_eof) = 0;
    1715             : 
    1716         304 :                                 if ( yywrap(  ) )
    1717             :                                         {
    1718             :                                         /* Note: because we've taken care in
    1719             :                                          * yy_get_next_buffer() to have set up
    1720             :                                          * yytext, we can now set up
    1721             :                                          * yy_c_buf_p so that if some total
    1722             :                                          * hoser (like flex itself) wants to
    1723             :                                          * call the scanner after we return the
    1724             :                                          * YY_NULL, it'll still work - another
    1725             :                                          * YY_NULL will get returned.
    1726             :                                          */
    1727         304 :                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
    1728             : 
    1729         304 :                                         yy_act = YY_STATE_EOF(YY_START);
    1730         304 :                                         goto do_action;
    1731             :                                         }
    1732             : 
    1733             :                                 else
    1734             :                                         {
    1735           0 :                                         if ( ! (yy_did_buffer_switch_on_eof) )
    1736           0 :                                                 YY_NEW_FILE;
    1737             :                                         }
    1738           0 :                                 break;
    1739             :                                 }
    1740             : 
    1741         418 :                         case EOB_ACT_CONTINUE_SCAN:
    1742         418 :                                 (yy_c_buf_p) =
    1743         418 :                                         (yytext_ptr) + yy_amount_of_matched_text;
    1744             : 
    1745         418 :                                 yy_current_state = yy_get_previous_state(  );
    1746             : 
    1747         418 :                                 yy_cp = (yy_c_buf_p);
    1748         418 :                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
    1749         418 :                                 goto yy_match;
    1750             : 
    1751           0 :                         case EOB_ACT_LAST_MATCH:
    1752           0 :                                 (yy_c_buf_p) =
    1753           0 :                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
    1754             : 
    1755           0 :                                 yy_current_state = yy_get_previous_state(  );
    1756             : 
    1757           0 :                                 yy_cp = (yy_c_buf_p);
    1758           0 :                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
    1759           0 :                                 goto yy_find_action;
    1760             :                         }
    1761           0 :                 break;
    1762             :                 }
    1763             : 
    1764           0 :         default:
    1765           0 :                 YY_FATAL_ERROR(
    1766             :                         "fatal flex scanner internal error--no action found" );
    1767             :         } /* end of action switch */
    1768             :                 } /* end of scanning one token */
    1769             :         } /* end of user's declarations */
    1770             : } /* end of yylex */
    1771             : 
    1772             : /* yy_get_next_buffer - try to read in a new buffer
    1773             :  *
    1774             :  * Returns a code representing an action:
    1775             :  *      EOB_ACT_LAST_MATCH -
    1776             :  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
    1777             :  *      EOB_ACT_END_OF_FILE - end of file
    1778             :  */
    1779         779 : static int yy_get_next_buffer (void)
    1780             : {
    1781         779 :         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
    1782         779 :         char *source = (yytext_ptr);
    1783          41 :         int number_to_move, i;
    1784          41 :         int ret_val;
    1785             : 
    1786         779 :         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
    1787           0 :                 YY_FATAL_ERROR(
    1788             :                 "fatal flex scanner internal error--end of buffer missed" );
    1789             : 
    1790         779 :         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
    1791             :                 { /* Don't try to fill the buffer, so this is an EOF. */
    1792           0 :                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
    1793             :                         {
    1794             :                         /* We matched a single character, the EOB, so
    1795             :                          * treat this as a final EOF.
    1796             :                          */
    1797           0 :                         return EOB_ACT_END_OF_FILE;
    1798             :                         }
    1799             : 
    1800             :                 else
    1801             :                         {
    1802             :                         /* We matched some text prior to the EOB, first
    1803             :                          * process it.
    1804             :                          */
    1805           0 :                         return EOB_ACT_LAST_MATCH;
    1806             :                         }
    1807             :                 }
    1808             : 
    1809             :         /* Try to read more data. */
    1810             : 
    1811             :         /* First move last chars to start of buffer. */
    1812         779 :         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
    1813             : 
    1814        2945 :         for ( i = 0; i < number_to_move; ++i )
    1815        2166 :                 *(dest++) = *(source++);
    1816             : 
    1817         779 :         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
    1818             :                 /* don't do the read, it's not guaranteed to return an EOF,
    1819             :                  * just force an EOF
    1820             :                  */
    1821           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
    1822             : 
    1823             :         else
    1824             :                 {
    1825         779 :                         int num_to_read =
    1826         779 :                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
    1827             : 
    1828         779 :                 while ( num_to_read <= 0 )
    1829             :                         { /* Not enough room in the buffer - grow it. */
    1830             : 
    1831             :                         /* just a shorter name for the current buffer */
    1832           0 :                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
    1833             : 
    1834           0 :                         int yy_c_buf_p_offset =
    1835           0 :                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
    1836             : 
    1837           0 :                         if ( b->yy_is_our_buffer )
    1838             :                                 {
    1839           0 :                                 int new_size = b->yy_buf_size * 2;
    1840             : 
    1841           0 :                                 if ( new_size <= 0 )
    1842           0 :                                         b->yy_buf_size += b->yy_buf_size / 8;
    1843             :                                 else
    1844           0 :                                         b->yy_buf_size *= 2;
    1845             : 
    1846           0 :                                 b->yy_ch_buf = (char *)
    1847             :                                         /* Include room in for 2 EOB chars. */
    1848           0 :                                         yyrealloc( (void *) b->yy_ch_buf,
    1849           0 :                                                          (yy_size_t) (b->yy_buf_size + 2)  );
    1850             :                                 }
    1851             :                         else
    1852             :                                 /* Can't grow it, we don't own it. */
    1853           0 :                                 b->yy_ch_buf = NULL;
    1854             : 
    1855           0 :                         if ( ! b->yy_ch_buf )
    1856           0 :                                 YY_FATAL_ERROR(
    1857             :                                 "fatal error - scanner input buffer overflow" );
    1858             : 
    1859           0 :                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
    1860             : 
    1861           0 :                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
    1862             :                                                 number_to_move - 1;
    1863             : 
    1864             :                         }
    1865             : 
    1866         779 :                 if ( num_to_read > YY_READ_BUF_SIZE )
    1867         738 :                         num_to_read = YY_READ_BUF_SIZE;
    1868             : 
    1869             :                 /* Read in more data. */
    1870         820 :                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
    1871          41 :                         (yy_n_chars), num_to_read );
    1872             : 
    1873         779 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    1874             :                 }
    1875             : 
    1876         779 :         if ( (yy_n_chars) == 0 )
    1877             :                 {
    1878         304 :                 if ( number_to_move == YY_MORE_ADJ )
    1879             :                         {
    1880         304 :                         ret_val = EOB_ACT_END_OF_FILE;
    1881         304 :                         yyrestart( yyin  );
    1882             :                         }
    1883             : 
    1884             :                 else
    1885             :                         {
    1886           0 :                         ret_val = EOB_ACT_LAST_MATCH;
    1887           0 :                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
    1888             :                                 YY_BUFFER_EOF_PENDING;
    1889             :                         }
    1890             :                 }
    1891             : 
    1892             :         else
    1893         450 :                 ret_val = EOB_ACT_CONTINUE_SCAN;
    1894             : 
    1895         779 :         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
    1896             :                 /* Extend the array by 50%, plus the number we really need. */
    1897           0 :                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
    1898           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
    1899           0 :                         (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
    1900           0 :                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    1901           0 :                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
    1902             :                 /* "- 2" to take care of EOB's */
    1903           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
    1904             :         }
    1905             : 
    1906         779 :         (yy_n_chars) += number_to_move;
    1907         779 :         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
    1908         779 :         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
    1909             : 
    1910         779 :         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
    1911             : 
    1912         779 :         return ret_val;
    1913             : }
    1914             : 
    1915             : /* yy_get_previous_state - get the state just before the EOB char was reached */
    1916             : 
    1917         418 :     static yy_state_type yy_get_previous_state (void)
    1918             : {
    1919          22 :         yy_state_type yy_current_state;
    1920          22 :         char *yy_cp;
    1921             :     
    1922         418 :         yy_current_state = (yy_start);
    1923             : 
    1924         969 :         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
    1925             :                 {
    1926         551 :                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
    1927         551 :                 if ( yy_accept[yy_current_state] )
    1928             :                         {
    1929         456 :                         (yy_last_accepting_state) = yy_current_state;
    1930         456 :                         (yy_last_accepting_cpos) = yy_cp;
    1931             :                         }
    1932         988 :                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    1933             :                         {
    1934         437 :                         yy_current_state = (int) yy_def[yy_current_state];
    1935         437 :                         if ( yy_current_state >= 574 )
    1936         437 :                                 yy_c = yy_meta[yy_c];
    1937             :                         }
    1938         551 :                 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
    1939             :                 }
    1940             : 
    1941         418 :         return yy_current_state;
    1942             : }
    1943             : 
    1944             : /* yy_try_NUL_trans - try to make a transition on the NUL character
    1945             :  *
    1946             :  * synopsis
    1947             :  *      next_state = yy_try_NUL_trans( current_state );
    1948             :  */
    1949           0 :     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
    1950             : {
    1951           0 :         int yy_is_jam;
    1952           0 :         char *yy_cp = (yy_c_buf_p);
    1953             : 
    1954           0 :         YY_CHAR yy_c = 1;
    1955           0 :         if ( yy_accept[yy_current_state] )
    1956             :                 {
    1957           0 :                 (yy_last_accepting_state) = yy_current_state;
    1958           0 :                 (yy_last_accepting_cpos) = yy_cp;
    1959             :                 }
    1960           0 :         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    1961             :                 {
    1962           0 :                 yy_current_state = (int) yy_def[yy_current_state];
    1963           0 :                 if ( yy_current_state >= 574 )
    1964           0 :                         yy_c = yy_meta[yy_c];
    1965             :                 }
    1966           0 :         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
    1967           0 :         yy_is_jam = (yy_current_state == 573);
    1968             : 
    1969           0 :                 return yy_is_jam ? 0 : yy_current_state;
    1970             : }
    1971             : 
    1972             : #ifndef YY_NO_UNPUT
    1973             : 
    1974           0 :     static void yyunput (int c, char * yy_bp )
    1975             : {
    1976           0 :         char *yy_cp;
    1977             :     
    1978           0 :     yy_cp = (yy_c_buf_p);
    1979             : 
    1980             :         /* undo effects of setting up yytext */
    1981           0 :         *yy_cp = (yy_hold_char);
    1982             : 
    1983           0 :         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
    1984             :                 { /* need to shift things up to make room */
    1985             :                 /* +2 for EOB chars. */
    1986           0 :                 int number_to_move = (yy_n_chars) + 2;
    1987           0 :                 char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
    1988           0 :                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
    1989           0 :                 char *source =
    1990           0 :                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
    1991             : 
    1992           0 :                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    1993           0 :                         *--dest = *--source;
    1994             : 
    1995           0 :                 yy_cp += (int) (dest - source);
    1996           0 :                 yy_bp += (int) (dest - source);
    1997           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
    1998           0 :                         (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
    1999             : 
    2000           0 :                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
    2001           0 :                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
    2002             :                 }
    2003             : 
    2004           0 :         *--yy_cp = (char) c;
    2005             : 
    2006           0 :         (yytext_ptr) = yy_bp;
    2007           0 :         (yy_hold_char) = *yy_cp;
    2008           0 :         (yy_c_buf_p) = yy_cp;
    2009           0 : }
    2010             : 
    2011             : #endif
    2012             : 
    2013             : #ifndef YY_NO_INPUT
    2014             : #ifdef __cplusplus
    2015             :     static int yyinput (void)
    2016             : #else
    2017      541481 :     static int input  (void)
    2018             : #endif
    2019             : 
    2020             : {
    2021       28499 :         int c;
    2022             :     
    2023      541481 :         *(yy_c_buf_p) = (yy_hold_char);
    2024             : 
    2025      541481 :         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
    2026             :                 {
    2027             :                 /* yy_c_buf_p now points to the character we want to return.
    2028             :                  * If this occurs *before* the EOB characters, then it's a
    2029             :                  * valid NUL; if not, then we've hit the end of the buffer.
    2030             :                  */
    2031          57 :                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
    2032             :                         /* This was really a NUL. */
    2033           0 :                         *(yy_c_buf_p) = '\0';
    2034             : 
    2035             :                 else
    2036             :                         { /* need more input */
    2037          57 :                         int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
    2038          57 :                         ++(yy_c_buf_p);
    2039             : 
    2040          57 :                         switch ( yy_get_next_buffer(  ) )
    2041             :                                 {
    2042           0 :                                 case EOB_ACT_LAST_MATCH:
    2043             :                                         /* This happens because yy_g_n_b()
    2044             :                                          * sees that we've accumulated a
    2045             :                                          * token and flags that we need to
    2046             :                                          * try matching the token before
    2047             :                                          * proceeding.  But for input(),
    2048             :                                          * there's no matching to consider.
    2049             :                                          * So convert the EOB_ACT_LAST_MATCH
    2050             :                                          * to EOB_ACT_END_OF_FILE.
    2051             :                                          */
    2052             : 
    2053             :                                         /* Reset buffer status. */
    2054           0 :                                         yyrestart( yyin );
    2055             : 
    2056             :                                         /*FALLTHROUGH*/
    2057             : 
    2058           0 :                                 case EOB_ACT_END_OF_FILE:
    2059             :                                         {
    2060           0 :                                         if ( yywrap(  ) )
    2061           0 :                                                 return 0;
    2062             : 
    2063           0 :                                         if ( ! (yy_did_buffer_switch_on_eof) )
    2064           0 :                                                 YY_NEW_FILE;
    2065             : #ifdef __cplusplus
    2066             :                                         return yyinput();
    2067             : #else
    2068           0 :                                         return input();
    2069             : #endif
    2070             :                                         }
    2071             : 
    2072          57 :                                 case EOB_ACT_CONTINUE_SCAN:
    2073          57 :                                         (yy_c_buf_p) = (yytext_ptr) + offset;
    2074          57 :                                         break;
    2075             :                                 }
    2076             :                         }
    2077             :                 }
    2078             : 
    2079      541481 :         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
    2080      541481 :         *(yy_c_buf_p) = '\0';   /* preserve yytext */
    2081      541481 :         (yy_hold_char) = *++(yy_c_buf_p);
    2082             : 
    2083      541481 :         return c;
    2084             : }
    2085             : #endif  /* ifndef YY_NO_INPUT */
    2086             : 
    2087             : /** Immediately switch to a different input stream.
    2088             :  * @param input_file A readable stream.
    2089             :  * 
    2090             :  * @note This function does not reset the start condition to @c INITIAL .
    2091             :  */
    2092         304 :     void yyrestart  (FILE * input_file )
    2093             : {
    2094             :     
    2095         304 :         if ( ! YY_CURRENT_BUFFER ){
    2096           0 :         yyensure_buffer_stack ();
    2097           0 :                 YY_CURRENT_BUFFER_LVALUE =
    2098           0 :             yy_create_buffer( yyin, YY_BUF_SIZE );
    2099             :         }
    2100             : 
    2101         304 :         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
    2102         304 :         yy_load_buffer_state(  );
    2103         304 : }
    2104             : 
    2105             : /** Switch to a different input buffer.
    2106             :  * @param new_buffer The new input buffer.
    2107             :  * 
    2108             :  */
    2109           0 :     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
    2110             : {
    2111             :     
    2112             :         /* TODO. We should be able to replace this entire function body
    2113             :          * with
    2114             :          *              yypop_buffer_state();
    2115             :          *              yypush_buffer_state(new_buffer);
    2116             :      */
    2117           0 :         yyensure_buffer_stack ();
    2118           0 :         if ( YY_CURRENT_BUFFER == new_buffer )
    2119           0 :                 return;
    2120             : 
    2121           0 :         if ( YY_CURRENT_BUFFER )
    2122             :                 {
    2123             :                 /* Flush out information for old buffer. */
    2124           0 :                 *(yy_c_buf_p) = (yy_hold_char);
    2125           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
    2126           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    2127             :                 }
    2128             : 
    2129           0 :         YY_CURRENT_BUFFER_LVALUE = new_buffer;
    2130           0 :         yy_load_buffer_state(  );
    2131             : 
    2132             :         /* We don't actually know whether we did this switch during
    2133             :          * EOF (yywrap()) processing, but the only time this flag
    2134             :          * is looked at is after yywrap() is called, so it's safe
    2135             :          * to go ahead and always set it.
    2136             :          */
    2137           0 :         (yy_did_buffer_switch_on_eof) = 1;
    2138             : }
    2139             : 
    2140         912 : static void yy_load_buffer_state  (void)
    2141             : {
    2142         912 :         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
    2143         912 :         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
    2144         912 :         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
    2145         864 :         (yy_hold_char) = *(yy_c_buf_p);
    2146         880 : }
    2147             : 
    2148             : /** Allocate and initialize an input buffer state.
    2149             :  * @param file A readable stream.
    2150             :  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
    2151             :  * 
    2152             :  * @return the allocated buffer state.
    2153             :  */
    2154         304 :     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
    2155             : {
    2156          16 :         YY_BUFFER_STATE b;
    2157             :     
    2158         304 :         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
    2159         304 :         if ( ! b )
    2160           0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
    2161             : 
    2162         304 :         b->yy_buf_size = size;
    2163             : 
    2164             :         /* yy_ch_buf has to be 2 characters longer than the size given because
    2165             :          * we need to put in 2 end-of-buffer characters.
    2166             :          */
    2167         304 :         b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
    2168         304 :         if ( ! b->yy_ch_buf )
    2169           0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
    2170             : 
    2171         304 :         b->yy_is_our_buffer = 1;
    2172             : 
    2173         304 :         yy_init_buffer( b, file );
    2174             : 
    2175         304 :         return b;
    2176             : }
    2177             : 
    2178             : /** Destroy the buffer.
    2179             :  * @param b a buffer created with yy_create_buffer()
    2180             :  * 
    2181             :  */
    2182           0 :     void yy_delete_buffer (YY_BUFFER_STATE  b )
    2183             : {
    2184             :     
    2185           0 :         if ( ! b )
    2186           0 :                 return;
    2187             : 
    2188           0 :         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
    2189           0 :                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
    2190             : 
    2191           0 :         if ( b->yy_is_our_buffer )
    2192           0 :                 yyfree( (void *) b->yy_ch_buf  );
    2193             : 
    2194           0 :         yyfree( (void *) b  );
    2195             : }
    2196             : 
    2197             : /* Initializes or reinitializes a buffer.
    2198             :  * This function is sometimes called more than once on the same buffer,
    2199             :  * such as during a yyrestart() or at EOF.
    2200             :  */
    2201         608 :     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
    2202             : 
    2203             : {
    2204         608 :         int oerrno = errno;
    2205             :     
    2206         608 :         yy_flush_buffer( b );
    2207             : 
    2208         608 :         b->yy_input_file = file;
    2209         608 :         b->yy_fill_buffer = 1;
    2210             : 
    2211             :     /* If b is the current buffer, then yy_init_buffer was _probably_
    2212             :      * called from yyrestart() or through yy_get_next_buffer.
    2213             :      * In that case, we don't want to reset the lineno or column.
    2214             :      */
    2215         608 :     if (b != YY_CURRENT_BUFFER){
    2216         304 :         b->yy_bs_lineno = 1;
    2217         304 :         b->yy_bs_column = 0;
    2218             :     }
    2219             : 
    2220         608 :         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
    2221             :     
    2222         608 :         errno = oerrno;
    2223         608 : }
    2224             : 
    2225             : /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
    2226             :  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
    2227             :  * 
    2228             :  */
    2229         608 :     void yy_flush_buffer (YY_BUFFER_STATE  b )
    2230             : {
    2231         608 :         if ( ! b )
    2232           0 :                 return;
    2233             : 
    2234         608 :         b->yy_n_chars = 0;
    2235             : 
    2236             :         /* We always need two end-of-buffer characters.  The first causes
    2237             :          * a transition to the end-of-buffer state.  The second causes
    2238             :          * a jam in that state.
    2239             :          */
    2240         608 :         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
    2241         608 :         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
    2242             : 
    2243         608 :         b->yy_buf_pos = &b->yy_ch_buf[0];
    2244             : 
    2245         608 :         b->yy_at_bol = 1;
    2246         608 :         b->yy_buffer_status = YY_BUFFER_NEW;
    2247             : 
    2248         608 :         if ( b == YY_CURRENT_BUFFER )
    2249         304 :                 yy_load_buffer_state(  );
    2250             : }
    2251             : 
    2252             : /** Pushes the new state onto the stack. The new state becomes
    2253             :  *  the current state. This function will allocate the stack
    2254             :  *  if necessary.
    2255             :  *  @param new_buffer The new state.
    2256             :  *  
    2257             :  */
    2258           0 : void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
    2259             : {
    2260           0 :         if (new_buffer == NULL)
    2261           0 :                 return;
    2262             : 
    2263           0 :         yyensure_buffer_stack();
    2264             : 
    2265             :         /* This block is copied from yy_switch_to_buffer. */
    2266           0 :         if ( YY_CURRENT_BUFFER )
    2267             :                 {
    2268             :                 /* Flush out information for old buffer. */
    2269           0 :                 *(yy_c_buf_p) = (yy_hold_char);
    2270           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
    2271           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    2272             :                 }
    2273             : 
    2274             :         /* Only push if top exists. Otherwise, replace top. */
    2275           0 :         if (YY_CURRENT_BUFFER)
    2276           0 :                 (yy_buffer_stack_top)++;
    2277           0 :         YY_CURRENT_BUFFER_LVALUE = new_buffer;
    2278             : 
    2279             :         /* copied from yy_switch_to_buffer. */
    2280           0 :         yy_load_buffer_state(  );
    2281           0 :         (yy_did_buffer_switch_on_eof) = 1;
    2282             : }
    2283             : 
    2284             : /** Removes and deletes the top of the stack, if present.
    2285             :  *  The next element becomes the new top.
    2286             :  *  
    2287             :  */
    2288           0 : void yypop_buffer_state (void)
    2289             : {
    2290           0 :         if (!YY_CURRENT_BUFFER)
    2291           0 :                 return;
    2292             : 
    2293           0 :         yy_delete_buffer(YY_CURRENT_BUFFER );
    2294           0 :         YY_CURRENT_BUFFER_LVALUE = NULL;
    2295           0 :         if ((yy_buffer_stack_top) > 0)
    2296           0 :                 --(yy_buffer_stack_top);
    2297             : 
    2298           0 :         if (YY_CURRENT_BUFFER) {
    2299           0 :                 yy_load_buffer_state(  );
    2300           0 :                 (yy_did_buffer_switch_on_eof) = 1;
    2301             :         }
    2302             : }
    2303             : 
    2304             : /* Allocates the stack if it does not exist.
    2305             :  *  Guarantees space for at least one push.
    2306             :  */
    2307         304 : static void yyensure_buffer_stack (void)
    2308             : {
    2309          16 :         yy_size_t num_to_alloc;
    2310             :     
    2311         304 :         if (!(yy_buffer_stack)) {
    2312             : 
    2313             :                 /* First allocation is just for 2 elements, since we don't know if this
    2314             :                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
    2315             :                  * immediate realloc on the next call.
    2316             :          */
    2317         304 :       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
    2318         304 :                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
    2319             :                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
    2320             :                                                                 );
    2321         304 :                 if ( ! (yy_buffer_stack) )
    2322           0 :                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
    2323             : 
    2324         304 :                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
    2325             : 
    2326         304 :                 (yy_buffer_stack_max) = num_to_alloc;
    2327         304 :                 (yy_buffer_stack_top) = 0;
    2328         304 :                 return;
    2329             :         }
    2330             : 
    2331           0 :         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
    2332             : 
    2333             :                 /* Increase the buffer to prepare for a possible push. */
    2334           0 :                 yy_size_t grow_size = 8 /* arbitrary grow size */;
    2335             : 
    2336           0 :                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
    2337           0 :                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
    2338             :                                                                 ((yy_buffer_stack),
    2339             :                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
    2340             :                                                                 );
    2341           0 :                 if ( ! (yy_buffer_stack) )
    2342           0 :                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
    2343             : 
    2344             :                 /* zero only the new slots.*/
    2345           0 :                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
    2346           0 :                 (yy_buffer_stack_max) = num_to_alloc;
    2347             :         }
    2348             : }
    2349             : 
    2350             : /** Setup the input buffer state to scan directly from a user-specified character buffer.
    2351             :  * @param base the character buffer
    2352             :  * @param size the size in bytes of the character buffer
    2353             :  * 
    2354             :  * @return the newly allocated buffer state object.
    2355             :  */
    2356           0 : YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
    2357             : {
    2358           0 :         YY_BUFFER_STATE b;
    2359             :     
    2360           0 :         if ( size < 2 ||
    2361           0 :              base[size-2] != YY_END_OF_BUFFER_CHAR ||
    2362           0 :              base[size-1] != YY_END_OF_BUFFER_CHAR )
    2363             :                 /* They forgot to leave room for the EOB's. */
    2364           0 :                 return NULL;
    2365             : 
    2366           0 :         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
    2367           0 :         if ( ! b )
    2368           0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
    2369             : 
    2370           0 :         b->yy_buf_size = (int) (size - 2);   /* "- 2" to take care of EOB's */
    2371           0 :         b->yy_buf_pos = b->yy_ch_buf = base;
    2372           0 :         b->yy_is_our_buffer = 0;
    2373           0 :         b->yy_input_file = NULL;
    2374           0 :         b->yy_n_chars = b->yy_buf_size;
    2375           0 :         b->yy_is_interactive = 0;
    2376           0 :         b->yy_at_bol = 1;
    2377           0 :         b->yy_fill_buffer = 0;
    2378           0 :         b->yy_buffer_status = YY_BUFFER_NEW;
    2379             : 
    2380           0 :         yy_switch_to_buffer( b  );
    2381             : 
    2382           0 :         return b;
    2383             : }
    2384             : 
    2385             : /** Setup the input buffer state to scan a string. The next call to yylex() will
    2386             :  * scan from a @e copy of @a str.
    2387             :  * @param yystr a NUL-terminated string to scan
    2388             :  * 
    2389             :  * @return the newly allocated buffer state object.
    2390             :  * @note If you want to scan bytes that may contain NUL values, then use
    2391             :  *       yy_scan_bytes() instead.
    2392             :  */
    2393           0 : YY_BUFFER_STATE yy_scan_string (const char * yystr )
    2394             : {
    2395             :     
    2396           0 :         return yy_scan_bytes( yystr, (int) strlen(yystr) );
    2397             : }
    2398             : 
    2399             : /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
    2400             :  * scan from a @e copy of @a bytes.
    2401             :  * @param yybytes the byte buffer to scan
    2402             :  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
    2403             :  * 
    2404             :  * @return the newly allocated buffer state object.
    2405             :  */
    2406           0 : YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
    2407             : {
    2408           0 :         YY_BUFFER_STATE b;
    2409           0 :         char *buf;
    2410           0 :         yy_size_t n;
    2411           0 :         int i;
    2412             :     
    2413             :         /* Get memory for full buffer, including space for trailing EOB's. */
    2414           0 :         n = (yy_size_t) (_yybytes_len + 2);
    2415           0 :         buf = (char *) yyalloc( n  );
    2416           0 :         if ( ! buf )
    2417           0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
    2418             : 
    2419           0 :         for ( i = 0; i < _yybytes_len; ++i )
    2420           0 :                 buf[i] = yybytes[i];
    2421             : 
    2422           0 :         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
    2423             : 
    2424           0 :         b = yy_scan_buffer( buf, n );
    2425           0 :         if ( ! b )
    2426           0 :                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
    2427             : 
    2428             :         /* It's okay to grow etc. this buffer, and we should throw it
    2429             :          * away when we're done.
    2430             :          */
    2431           0 :         b->yy_is_our_buffer = 1;
    2432             : 
    2433           0 :         return b;
    2434             : }
    2435             : 
    2436             : #ifndef YY_EXIT_FAILURE
    2437             : #define YY_EXIT_FAILURE 2
    2438             : #endif
    2439             : 
    2440           0 : static void yynoreturn yy_fatal_error (const char* msg )
    2441             : {
    2442           0 :                         fprintf( stderr, "%s\n", msg );
    2443           0 :         exit( YY_EXIT_FAILURE );
    2444             : }
    2445             : 
    2446             : /* Redefine yyless() so it works in section 3 code. */
    2447             : 
    2448             : #undef yyless
    2449             : #define yyless(n) \
    2450             :         do \
    2451             :                 { \
    2452             :                 /* Undo effects of setting up yytext. */ \
    2453             :         int yyless_macro_arg = (n); \
    2454             :         YY_LESS_LINENO(yyless_macro_arg);\
    2455             :                 yytext[yyleng] = (yy_hold_char); \
    2456             :                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
    2457             :                 (yy_hold_char) = *(yy_c_buf_p); \
    2458             :                 *(yy_c_buf_p) = '\0'; \
    2459             :                 yyleng = yyless_macro_arg; \
    2460             :                 } \
    2461             :         while ( 0 )
    2462             : 
    2463             : /* Accessor  methods (get/set functions) to struct members. */
    2464             : 
    2465             : /** Get the current line number.
    2466             :  * 
    2467             :  */
    2468           0 : int yyget_lineno  (void)
    2469             : {
    2470             :     
    2471           0 :     return yylineno;
    2472             : }
    2473             : 
    2474             : /** Get the input stream.
    2475             :  * 
    2476             :  */
    2477           0 : FILE *yyget_in  (void)
    2478             : {
    2479           0 :         return yyin;
    2480             : }
    2481             : 
    2482             : /** Get the output stream.
    2483             :  * 
    2484             :  */
    2485           0 : FILE *yyget_out  (void)
    2486             : {
    2487           0 :         return yyout;
    2488             : }
    2489             : 
    2490             : /** Get the length of the current token.
    2491             :  * 
    2492             :  */
    2493           0 : int yyget_leng  (void)
    2494             : {
    2495           0 :         return yyleng;
    2496             : }
    2497             : 
    2498             : /** Get the current token.
    2499             :  * 
    2500             :  */
    2501             : 
    2502           0 : char *yyget_text  (void)
    2503             : {
    2504           0 :         return yytext;
    2505             : }
    2506             : 
    2507             : /** Set the current line number.
    2508             :  * @param _line_number line number
    2509             :  * 
    2510             :  */
    2511           0 : void yyset_lineno (int  _line_number )
    2512             : {
    2513             :     
    2514           0 :     yylineno = _line_number;
    2515           0 : }
    2516             : 
    2517             : /** Set the input stream. This does not discard the current
    2518             :  * input buffer.
    2519             :  * @param _in_str A readable stream.
    2520             :  * 
    2521             :  * @see yy_switch_to_buffer
    2522             :  */
    2523           0 : void yyset_in (FILE *  _in_str )
    2524             : {
    2525           0 :         yyin = _in_str ;
    2526           0 : }
    2527             : 
    2528           0 : void yyset_out (FILE *  _out_str )
    2529             : {
    2530           0 :         yyout = _out_str ;
    2531           0 : }
    2532             : 
    2533           0 : int yyget_debug  (void)
    2534             : {
    2535           0 :         return yy_flex_debug;
    2536             : }
    2537             : 
    2538           0 : void yyset_debug (int  _bdebug )
    2539             : {
    2540           0 :         yy_flex_debug = _bdebug ;
    2541           0 : }
    2542             : 
    2543           0 : static int yy_init_globals (void)
    2544             : {
    2545             :         /* Initialization is the same as for the non-reentrant scanner.
    2546             :      * This function is called from yylex_destroy(), so don't allocate here.
    2547             :      */
    2548             : 
    2549           0 :     (yy_buffer_stack) = NULL;
    2550           0 :     (yy_buffer_stack_top) = 0;
    2551           0 :     (yy_buffer_stack_max) = 0;
    2552           0 :     (yy_c_buf_p) = NULL;
    2553           0 :     (yy_init) = 0;
    2554           0 :     (yy_start) = 0;
    2555             : 
    2556             : /* Defined in main.c */
    2557             : #ifdef YY_STDINIT
    2558             :     yyin = stdin;
    2559             :     yyout = stdout;
    2560             : #else
    2561           0 :     yyin = NULL;
    2562           0 :     yyout = NULL;
    2563             : #endif
    2564             : 
    2565             :     /* For future reference: Set errno on error, since we are called by
    2566             :      * yylex_init()
    2567             :      */
    2568           0 :     return 0;
    2569             : }
    2570             : 
    2571             : /* yylex_destroy is for both reentrant and non-reentrant scanners. */
    2572           0 : int yylex_destroy  (void)
    2573             : {
    2574             :     
    2575             :     /* Pop the buffer stack, destroying each element. */
    2576           0 :         while(YY_CURRENT_BUFFER){
    2577           0 :                 yy_delete_buffer( YY_CURRENT_BUFFER  );
    2578           0 :                 YY_CURRENT_BUFFER_LVALUE = NULL;
    2579           0 :                 yypop_buffer_state();
    2580             :         }
    2581             : 
    2582             :         /* Destroy the stack itself. */
    2583           0 :         yyfree((yy_buffer_stack) );
    2584           0 :         (yy_buffer_stack) = NULL;
    2585             : 
    2586             :     /* Reset the globals. This is important in a non-reentrant scanner so the next time
    2587             :      * yylex() is called, initialization will occur. */
    2588           0 :     yy_init_globals( );
    2589             : 
    2590           0 :     return 0;
    2591             : }
    2592             : 
    2593             : /*
    2594             :  * Internal utility routines.
    2595             :  */
    2596             : 
    2597             : #ifndef yytext_ptr
    2598             : static void yy_flex_strncpy (char* s1, const char * s2, int n )
    2599             : {
    2600             :                 
    2601             :         int i;
    2602             :         for ( i = 0; i < n; ++i )
    2603             :                 s1[i] = s2[i];
    2604             : }
    2605             : #endif
    2606             : 
    2607             : #ifdef YY_NEED_STRLEN
    2608             : static int yy_flex_strlen (const char * s )
    2609             : {
    2610             :         int n;
    2611             :         for ( n = 0; s[n]; ++n )
    2612             :                 ;
    2613             : 
    2614             :         return n;
    2615             : }
    2616             : #endif
    2617             : 
    2618         912 : void *yyalloc (yy_size_t  size )
    2619             : {
    2620         912 :                         return malloc(size);
    2621             : }
    2622             : 
    2623           0 : void *yyrealloc  (void * ptr, yy_size_t  size )
    2624             : {
    2625             :                 
    2626             :         /* The cast to (char *) in the following accommodates both
    2627             :          * implementations that use char* generic pointers, and those
    2628             :          * that use void* generic pointers.  It works with the latter
    2629             :          * because both ANSI C and C++ allow castless assignment from
    2630             :          * any pointer type to void*, and deal with argument conversions
    2631             :          * as though doing an assignment.
    2632             :          */
    2633           0 :         return realloc(ptr, size);
    2634             : }
    2635             : 
    2636           0 : void yyfree (void * ptr )
    2637             : {
    2638           0 :                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
    2639           0 : }
    2640             : 
    2641             : #define YYTABLES_NAME "yytables"
    2642             : 
    2643             : int
    2644         304 : yywrap ()
    2645             : {
    2646         304 :      return 1;
    2647             : }
    2648             : 
    2649             : void
    2650           0 : lex_error_message (const char *format, ...)
    2651             : {
    2652           0 :     va_list args;
    2653             : 
    2654           0 :     va_start (args, format);
    2655           0 :     fprintf (stderr, "%s:%d: ", get_filename(), lineno);
    2656           0 :     vfprintf (stderr, format, args);
    2657           0 :     va_end (args);
    2658           0 :     error_flag++;
    2659           0 : }
    2660             : 
    2661             : static void
    2662           0 : unterminated(const char *type, unsigned start_lineno)
    2663             : {
    2664           0 :     lex_error_message("unterminated %s, possibly started on line %d\n", type, start_lineno);
    2665           0 : }
    2666             : 

Generated by: LCOV version 1.14