LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source - scanner.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 161 397 40.6 %
Date: 2013-07-09 Functions: 12 37 32.4 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #line 2 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
       2             : 
       3             : #line 4 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
       4             : 
       5             : #define  YY_INT_ALIGNED short int
       6             : 
       7             : /* A lexical scanner generated by flex */
       8             : 
       9             : #define FLEX_SCANNER
      10             : #define YY_FLEX_MAJOR_VERSION 2
      11             : #define YY_FLEX_MINOR_VERSION 5
      12             : #define YY_FLEX_SUBMINOR_VERSION 37
      13             : #if YY_FLEX_SUBMINOR_VERSION > 0
      14             : #define FLEX_BETA
      15             : #endif
      16             : 
      17             : /* First, we deal with  platform-specific or compiler-specific issues. */
      18             : 
      19             : /* begin standard C headers. */
      20             : #include <stdio.h>
      21             : #include <string.h>
      22             : #include <errno.h>
      23             : #include <stdlib.h>
      24             : 
      25             : /* end standard C headers. */
      26             : 
      27             : /* flex integer type definitions */
      28             : 
      29             : #ifndef FLEXINT_H
      30             : #define FLEXINT_H
      31             : 
      32             : /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
      33             : 
      34             : #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
      35             : 
      36             : /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
      37             :  * if you want the limit (max/min) macros for int types. 
      38             :  */
      39             : #ifndef __STDC_LIMIT_MACROS
      40             : #define __STDC_LIMIT_MACROS 1
      41             : #endif
      42             : 
      43             : #include <inttypes.h>
      44             : typedef int8_t flex_int8_t;
      45             : typedef uint8_t flex_uint8_t;
      46             : typedef int16_t flex_int16_t;
      47             : typedef uint16_t flex_uint16_t;
      48             : typedef int32_t flex_int32_t;
      49             : typedef uint32_t flex_uint32_t;
      50             : #else
      51             : typedef signed char flex_int8_t;
      52             : typedef short int flex_int16_t;
      53             : typedef int flex_int32_t;
      54             : typedef unsigned char flex_uint8_t; 
      55             : typedef unsigned short int flex_uint16_t;
      56             : typedef unsigned int flex_uint32_t;
      57             : 
      58             : /* Limits of integral types. */
      59             : #ifndef INT8_MIN
      60             : #define INT8_MIN               (-128)
      61             : #endif
      62             : #ifndef INT16_MIN
      63             : #define INT16_MIN              (-32767-1)
      64             : #endif
      65             : #ifndef INT32_MIN
      66             : #define INT32_MIN              (-2147483647-1)
      67             : #endif
      68             : #ifndef INT8_MAX
      69             : #define INT8_MAX               (127)
      70             : #endif
      71             : #ifndef INT16_MAX
      72             : #define INT16_MAX              (32767)
      73             : #endif
      74             : #ifndef INT32_MAX
      75             : #define INT32_MAX              (2147483647)
      76             : #endif
      77             : #ifndef UINT8_MAX
      78             : #define UINT8_MAX              (255U)
      79             : #endif
      80             : #ifndef UINT16_MAX
      81             : #define UINT16_MAX             (65535U)
      82             : #endif
      83             : #ifndef UINT32_MAX
      84             : #define UINT32_MAX             (4294967295U)
      85             : #endif
      86             : 
      87             : #endif /* ! C99 */
      88             : 
      89             : #endif /* ! FLEXINT_H */
      90             : 
      91             : #ifdef __cplusplus
      92             : 
      93             : /* The "const" storage-class-modifier is valid. */
      94             : #define YY_USE_CONST
      95             : 
      96             : #else   /* ! __cplusplus */
      97             : 
      98             : /* C99 requires __STDC__ to be defined as 1. */
      99             : #if defined (__STDC__)
     100             : 
     101             : #define YY_USE_CONST
     102             : 
     103             : #endif  /* defined (__STDC__) */
     104             : #endif  /* ! __cplusplus */
     105             : 
     106             : #ifdef YY_USE_CONST
     107             : #define yyconst const
     108             : #else
     109             : #define yyconst
     110             : #endif
     111             : 
     112             : /* Returned upon end-of-file. */
     113             : #define YY_NULL 0
     114             : 
     115             : /* Promotes a possibly negative, possibly signed char to an unsigned
     116             :  * integer for use as an array index.  If the signed char is negative,
     117             :  * we want to instead treat it as an 8-bit unsigned char, hence the
     118             :  * double cast.
     119             :  */
     120             : #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
     121             : 
     122             : /* Enter a start condition.  This macro really ought to take a parameter,
     123             :  * but we do it the disgusting crufty way forced on us by the ()-less
     124             :  * definition of BEGIN.
     125             :  */
     126             : #define BEGIN (yy_start) = 1 + 2 *
     127             : 
     128             : /* Translate the current start state into a value that can be later handed
     129             :  * to BEGIN to return to the state.  The YYSTATE alias is for lex
     130             :  * compatibility.
     131             :  */
     132             : #define YY_START (((yy_start) - 1) / 2)
     133             : #define YYSTATE YY_START
     134             : 
     135             : /* Action number for EOF rule of a given start state. */
     136             : #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
     137             : 
     138             : /* Special action meaning "start processing a new file". */
     139             : #define YY_NEW_FILE yyrestart(yyin  )
     140             : 
     141             : #define YY_END_OF_BUFFER_CHAR 0
     142             : 
     143             : /* Size of default input buffer. */
     144             : #ifndef YY_BUF_SIZE
     145             : #define YY_BUF_SIZE 16384
     146             : #endif
     147             : 
     148             : /* The state buf must be large enough to hold one state per character in the main buffer.
     149             :  */
     150             : #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
     151             : 
     152             : #ifndef YY_TYPEDEF_YY_BUFFER_STATE
     153             : #define YY_TYPEDEF_YY_BUFFER_STATE
     154             : typedef struct yy_buffer_state *YY_BUFFER_STATE;
     155             : #endif
     156             : 
     157             : #ifndef YY_TYPEDEF_YY_SIZE_T
     158             : #define YY_TYPEDEF_YY_SIZE_T
     159             : typedef size_t yy_size_t;
     160             : #endif
     161             : 
     162             : extern yy_size_t yyleng;
     163             : 
     164             : extern FILE *yyin, *yyout;
     165             : 
     166             : #define EOB_ACT_CONTINUE_SCAN 0
     167             : #define EOB_ACT_END_OF_FILE 1
     168             : #define EOB_ACT_LAST_MATCH 2
     169             : 
     170             :     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
     171             :      *       access to the local variable yy_act. Since yyless() is a macro, it would break
     172             :      *       existing scanners that call yyless() from OUTSIDE yylex. 
     173             :      *       One obvious solution it to make yy_act a global. I tried that, and saw
     174             :      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
     175             :      *       normally declared as a register variable-- so it is not worth it.
     176             :      */
     177             :     #define  YY_LESS_LINENO(n) \
     178             :             do { \
     179             :                 int yyl;\
     180             :                 for ( yyl = n; yyl < yyleng; ++yyl )\
     181             :                     if ( yytext[yyl] == '\n' )\
     182             :                         --yylineno;\
     183             :             }while(0)
     184             :     
     185             : /* Return all but the first "n" matched characters back to the input stream. */
     186             : #define yyless(n) \
     187             :         do \
     188             :                 { \
     189             :                 /* Undo effects of setting up yytext. */ \
     190             :         int yyless_macro_arg = (n); \
     191             :         YY_LESS_LINENO(yyless_macro_arg);\
     192             :                 *yy_cp = (yy_hold_char); \
     193             :                 YY_RESTORE_YY_MORE_OFFSET \
     194             :                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
     195             :                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
     196             :                 } \
     197             :         while ( 0 )
     198             : 
     199             : #define unput(c) yyunput( c, (yytext_ptr)  )
     200             : 
     201             : #ifndef YY_STRUCT_YY_BUFFER_STATE
     202             : #define YY_STRUCT_YY_BUFFER_STATE
     203             : struct yy_buffer_state
     204             :         {
     205             :         FILE *yy_input_file;
     206             : 
     207             :         char *yy_ch_buf;                /* input buffer */
     208             :         char *yy_buf_pos;               /* current position in input buffer */
     209             : 
     210             :         /* Size of input buffer in bytes, not including room for EOB
     211             :          * characters.
     212             :          */
     213             :         yy_size_t yy_buf_size;
     214             : 
     215             :         /* Number of characters read into yy_ch_buf, not including EOB
     216             :          * characters.
     217             :          */
     218             :         yy_size_t yy_n_chars;
     219             : 
     220             :         /* Whether we "own" the buffer - i.e., we know we created it,
     221             :          * and can realloc() it to grow it, and should free() it to
     222             :          * delete it.
     223             :          */
     224             :         int yy_is_our_buffer;
     225             : 
     226             :         /* Whether this is an "interactive" input source; if so, and
     227             :          * if we're using stdio for input, then we want to use getc()
     228             :          * instead of fread(), to make sure we stop fetching input after
     229             :          * each newline.
     230             :          */
     231             :         int yy_is_interactive;
     232             : 
     233             :         /* Whether we're considered to be at the beginning of a line.
     234             :          * If so, '^' rules will be active on the next match, otherwise
     235             :          * not.
     236             :          */
     237             :         int yy_at_bol;
     238             : 
     239             :     int yy_bs_lineno; /**< The line count. */
     240             :     int yy_bs_column; /**< The column count. */
     241             :     
     242             :         /* Whether to try to fill the input buffer when we reach the
     243             :          * end of it.
     244             :          */
     245             :         int yy_fill_buffer;
     246             : 
     247             :         int yy_buffer_status;
     248             : 
     249             : #define YY_BUFFER_NEW 0
     250             : #define YY_BUFFER_NORMAL 1
     251             :         /* When an EOF's been seen but there's still some text to process
     252             :          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
     253             :          * shouldn't try reading from the input source any more.  We might
     254             :          * still have a bunch of tokens to match, though, because of
     255             :          * possible backing-up.
     256             :          *
     257             :          * When we actually see the EOF, we change the status to "new"
     258             :          * (via yyrestart()), so that the user can continue scanning by
     259             :          * just pointing yyin at a new input file.
     260             :          */
     261             : #define YY_BUFFER_EOF_PENDING 2
     262             : 
     263             :         };
     264             : #endif /* !YY_STRUCT_YY_BUFFER_STATE */
     265             : 
     266             : /* Stack of input buffers. */
     267             : static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
     268             : static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
     269             : static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
     270             : 
     271             : /* We provide macros for accessing buffer states in case in the
     272             :  * future we want to put the buffer states in a more general
     273             :  * "scanner state".
     274             :  *
     275             :  * Returns the top of the stack, or NULL.
     276             :  */
     277             : #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
     278             :                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
     279             :                           : NULL)
     280             : 
     281             : /* Same as previous macro, but useful when we know that the buffer stack is not
     282             :  * NULL or when we need an lvalue. For internal use only.
     283             :  */
     284             : #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
     285             : 
     286             : /* yy_hold_char holds the character lost when yytext is formed. */
     287             : static char yy_hold_char;
     288             : static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
     289             : yy_size_t yyleng;
     290             : 
     291             : /* Points to current character in buffer. */
     292             : static char *yy_c_buf_p = (char *) 0;
     293             : static int yy_init = 0;         /* whether we need to initialize */
     294             : static int yy_start = 0;        /* start state number */
     295             : 
     296             : /* Flag which is used to allow yywrap()'s to do buffer switches
     297             :  * instead of setting up a fresh yyin.  A bit of a hack ...
     298             :  */
     299             : static int yy_did_buffer_switch_on_eof;
     300             : 
     301             : void yyrestart (FILE *input_file  );
     302             : void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
     303             : YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
     304             : void yy_delete_buffer (YY_BUFFER_STATE b  );
     305             : void yy_flush_buffer (YY_BUFFER_STATE b  );
     306             : void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
     307             : void yypop_buffer_state (void );
     308             : 
     309             : static void yyensure_buffer_stack (void );
     310             : static void yy_load_buffer_state (void );
     311             : static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
     312             : 
     313             : #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
     314             : 
     315             : YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
     316             : YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
     317             : YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
     318             : 
     319             : void *yyalloc (yy_size_t  );
     320             : void *yyrealloc (void *,yy_size_t  );
     321             : void yyfree (void *  );
     322             : 
     323             : #define yy_new_buffer yy_create_buffer
     324             : 
     325             : #define yy_set_interactive(is_interactive) \
     326             :         { \
     327             :         if ( ! YY_CURRENT_BUFFER ){ \
     328             :         yyensure_buffer_stack (); \
     329             :                 YY_CURRENT_BUFFER_LVALUE =    \
     330             :             yy_create_buffer(yyin,YY_BUF_SIZE ); \
     331             :         } \
     332             :         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
     333             :         }
     334             : 
     335             : #define yy_set_bol(at_bol) \
     336             :         { \
     337             :         if ( ! YY_CURRENT_BUFFER ){\
     338             :         yyensure_buffer_stack (); \
     339             :                 YY_CURRENT_BUFFER_LVALUE =    \
     340             :             yy_create_buffer(yyin,YY_BUF_SIZE ); \
     341             :         } \
     342             :         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
     343             :         }
     344             : 
     345             : #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
     346             : 
     347             : /* Begin user sect3 */
     348             : 
     349             : #define yywrap() 1
     350             : #define YY_SKIP_YYWRAP
     351             : 
     352             : typedef unsigned char YY_CHAR;
     353             : 
     354             : FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
     355             : 
     356             : typedef int yy_state_type;
     357             : 
     358             : extern int yylineno;
     359             : 
     360             : int yylineno = 1;
     361             : 
     362             : extern char *yytext;
     363             : #define yytext_ptr yytext
     364             : 
     365             : static yy_state_type yy_get_previous_state (void );
     366             : static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
     367             : static int yy_get_next_buffer (void );
     368             : static void yy_fatal_error (yyconst char msg[]  );
     369             : 
     370             : /* Done after the current pattern has been matched and before the
     371             :  * corresponding action - sets up yytext.
     372             :  */
     373             : #define YY_DO_BEFORE_ACTION \
     374             :         (yytext_ptr) = yy_bp; \
     375             :         yyleng = (size_t) (yy_cp - yy_bp); \
     376             :         (yy_hold_char) = *yy_cp; \
     377             :         *yy_cp = '\0'; \
     378             :         (yy_c_buf_p) = yy_cp;
     379             : 
     380             : #define YY_NUM_RULES 88
     381             : #define YY_END_OF_BUFFER 89
     382             : /* This struct is not used in this scanner,
     383             :    but its presence is necessary. */
     384             : struct yy_trans_info
     385             :         {
     386             :         flex_int32_t yy_verify;
     387             :         flex_int32_t yy_nxt;
     388             :         };
     389             : static yyconst flex_int16_t yy_accept[411] =
     390             :     {   0,
     391             :        62,   62,    0,    0,    0,    0,   89,   81,    1,    2,
     392             :        81,   81,   81,   57,   56,   81,   81,   81,   62,   62,
     393             :        62,   81,   62,   62,   62,   62,   62,   62,   62,   62,
     394             :        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
     395             :        62,   81,   73,   75,   76,   68,   88,    1,    0,   57,
     396             :        56,    0,   60,   66,    0,    0,   57,   57,   62,   62,
     397             :        62,   57,   58,    0,   56,   56,   56,   65,   63,   64,
     398             :        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
     399             :        62,   62,   62,   62,   62,   62,   62,   62,   49,   62,
     400             :        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
     401             : 
     402             :        62,   62,   62,   62,   62,   62,   62,   62,   62,    0,
     403             :        85,    0,    0,    0,    0,    0,   73,    0,   74,   76,
     404             :        78,   68,   69,   70,   71,   57,   57,    0,    0,   57,
     405             :        58,   56,   56,   56,   55,    0,   60,   72,    0,    0,
     406             :        61,    0,   59,   58,   58,   58,   62,   62,   62,   62,
     407             :        32,   62,   62,   62,   62,   62,   62,   62,   62,   62,
     408             :        62,   62,   62,   52,   62,   62,   62,   62,   62,   62,
     409             :        62,   62,   62,   50,   62,   62,   62,   62,   62,   62,
     410             :        62,   53,   62,   62,   62,   62,   62,   62,   62,   62,
     411             :        62,    0,    0,    0,    0,    0,   77,    0,   59,   58,
     412             : 
     413             :        58,   58,    0,   60,   67,    0,   79,    0,   80,    0,
     414             :        61,   59,   62,   62,   45,   46,   62,   62,   62,   34,
     415             :         5,   35,   62,   62,   62,   10,   62,   62,   62,   62,
     416             :        62,   39,   62,   62,   62,   62,   62,   62,   62,   62,
     417             :        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
     418             :        42,   62,   62,   44,    0,    0,    0,    0,    0,   59,
     419             :         0,   61,   47,   48,   62,   62,    4,    6,   62,   62,
     420             :        62,   37,   38,   51,   62,   62,   62,   17,   62,   62,
     421             :        62,   62,   62,   62,   62,   62,   62,   40,   62,   62,
     422             :        62,   62,   62,   62,   31,   62,   84,    0,    0,    0,
     423             : 
     424             :         0,   62,   62,   62,   62,   62,   36,   62,   62,   62,
     425             :        62,   62,   16,   62,   62,   62,   62,   21,   62,   62,
     426             :        62,   62,   62,   41,   27,   28,   62,   62,   62,   83,
     427             :         0,    0,    0,    0,    0,    0,   62,   33,   62,   62,
     428             :         9,   62,   62,   62,   62,   62,   62,   62,   62,   62,
     429             :        62,   62,   62,   24,   62,   62,   30,   62,    0,   86,
     430             :         0,    0,    0,   62,   62,   62,   62,   62,   62,   62,
     431             :        62,   18,   19,   20,   62,   22,   62,   25,   62,   62,
     432             :        43,    0,    0,    0,    3,    7,   62,   11,   12,   62,
     433             :        62,   15,   54,   23,   26,   29,   82,    0,   87,   62,
     434             : 
     435             :        62,   62,    8,   62,   62,   62,   14,   62,   13,    0
     436             :     } ;
     437             : 
     438             : static yyconst flex_int32_t yy_ec[256] =
     439             :     {   0,
     440             :         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
     441             :         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
     442             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     443             :         1,    5,    1,    6,    7,    1,    1,    1,    1,    1,
     444             :         1,    8,    9,    1,   10,   11,   12,   13,   14,   14,
     445             :        14,   14,   14,   14,   14,   15,   15,   16,    1,   17,
     446             :         1,   18,    1,    1,   19,   20,   20,   20,   21,   22,
     447             :        23,   23,   23,   23,   23,   24,   23,   23,   23,   23,
     448             :        23,   25,   26,   27,   28,   23,   23,   29,   23,   23,
     449             :         1,    1,    1,   30,   31,    1,   32,   33,   34,   35,
     450             : 
     451             :        36,   37,   38,   39,   40,   23,   23,   41,   42,   43,
     452             :        44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
     453             :        54,   23,    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,    1,    1,    1,    1,    1,
     458             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     459             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     460             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     461             : 
     462             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     463             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     464             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     465             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     466             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     467             :         1,    1,    1,    1,    1
     468             :     } ;
     469             : 
     470             : static yyconst flex_int32_t yy_meta[55] =
     471             :     {   0,
     472             :         1,    1,    2,    1,    1,    1,    1,    3,    1,    1,
     473             :         4,    1,    5,    5,    5,    1,    1,    1,    5,    5,
     474             :         5,    5,    4,    5,    4,    4,    4,    5,    4,    6,
     475             :         4,    5,    5,    5,    5,    5,    5,    4,    4,    4,
     476             :         5,    4,    4,    4,    4,    4,    4,    4,    4,    5,
     477             :         4,    4,    4,    4
     478             :     } ;
     479             : 
     480             : static yyconst flex_int16_t yy_base[426] =
     481             :     {   0,
     482             :         0,  600,   52,   53,  591,  588,  592, 1338,   60, 1338,
     483             :        55,   60,   51,   65,  108,  568,  558,  538,   46,   71,
     484             :        73,   56,   81,   94,   96,  106,  100,  115,   77,  103,
     485             :       130,  134,  136,  140,  141,  148,  151,  153,  159,  166,
     486             :       144,  212,    0,  158,  542,    0,   73,   95,  186,  247,
     487             :       290,  540,  197,  542,  536,  207,  215,  222,  265,  185,
     488             :       281,  192,  330,  193,    0,    0,  220, 1338, 1338, 1338,
     489             :       243,  276,  238,  271,  288,  297,  324,  298,  233,  302,
     490             :       305,  342,  326,  328,  350,  358,  359,  361,  366,  364,
     491             :       372,  374,  380,  382,  383,  387,  389,  299,  388,  393,
     492             : 
     493             :       406,  390,  411,  412,  416,  418,  420,  427,  429,    0,
     494             :      1338,  515,  458,  478,  470,  457,    0,  240,  491,  468,
     495             :      1338,    0,   83,  173, 1338,   80,    0,  463,  472, 1338,
     496             :       455,    0,    0, 1338, 1338,  479, 1338,  454,  454,  445,
     497             :       487,  271,  516,  179,    0,  433,  480,  459,  501,  484,
     498             :       435,  486,  487,  503,  505,  508,  524,  526,  529,  531,
     499             :       534,  532,  538,  541,  547,  548,  555,  556,  562,  566,
     500             :       569,  570,  571,  574,  577,  578,  579,  601,  602,  592,
     501             :       603,  604,  606,  607,  609,  613,  617,  619,  620,  630,
     502             :       632,  439,  435,  403,  369,  364, 1338,  247,  659,  658,
     503             : 
     504             :       269, 1338,  310,  643, 1338,  379, 1338,  357, 1338,  675,
     505             :      1338,  664,  672,  666,  667,  681,  683,  689,  693,  690,
     506             :       695,  696,  698,  699,  702,  704,  705,  706,  707,  708,
     507             :       711,  720,  729,  721,  730,  733,  735,  737,  745,  752,
     508             :       756,  758,  759,  761,  763,  766,  760,  771,  782,  773,
     509             :       775,  787,  788,  797,  350,  235,  295,  291,  282, 1338,
     510             :       373,  809,  803,  804,  806,  809,  814,  816,  818,  821,
     511             :       822,  825,  827,  831,  833,  843,  849,  850,  855,  856,
     512             :       857,  861,  862,  858,  865,  871,  884,  872,  880,  889,
     513             :       894,  897,  901,  902,  906,  908, 1338,  931,  228,  945,
     514             : 
     515             :       205,  911,  924,  937,  938,  941,  942,  943,  945,  951,
     516             :       953,  954,  955,  960,  968,  964,  970,  976,  977,  981,
     517             :       986,  991,  992,  993,  994,  995,  999, 1000, 1008, 1338,
     518             :      1033,  238, 1038, 1052,  916,  175, 1031, 1018, 1039, 1044,
     519             :      1045, 1048, 1052, 1058, 1050, 1062, 1063, 1066, 1067, 1074,
     520             :      1084, 1085, 1088, 1089, 1092, 1097, 1098, 1102,  191, 1338,
     521             :       163,  148,  268, 1103, 1101, 1111, 1114, 1116, 1119, 1124,
     522             :      1130, 1120, 1132, 1133, 1135, 1137, 1142, 1149, 1151, 1156,
     523             :      1158,  110,  107,   80, 1160, 1161, 1164, 1165, 1166, 1168,
     524             :      1170, 1172, 1173, 1177, 1179, 1182, 1338,   69, 1338, 1187,
     525             : 
     526             :      1196, 1198, 1200, 1201, 1203, 1204, 1205, 1210, 1206, 1338,
     527             :      1258, 1264, 1267, 1272, 1278, 1283, 1289, 1295,   53, 1301,
     528             :      1307, 1313, 1319, 1325, 1331
     529             :     } ;
     530             : 
     531             : static yyconst flex_int16_t yy_def[426] =
     532             :     {   0,
     533             :       410,    1,  411,  411,  412,  412,  410,  410,  410,  410,
     534             :       410,  410,  410,  413,  413,  410,  410,  410,  413,  413,
     535             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     536             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     537             :       413,  410,  414,  410,  415,  416,  417,  410,  410,  410,
     538             :       410,  410,  410,  410,  418,  410,   15,   15,   15,  413,
     539             :       413,  413,   15,  413,   15,   15,  413,  410,  410,  410,
     540             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     541             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     542             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     543             : 
     544             :       413,  413,  413,  413,  413,  413,  413,  413,  413,   42,
     545             :       410,   42,  410,  410,  410,  410,  414,  410,  410,  415,
     546             :       410,  416,  417,  410,  410,   50,  126,  410,  410,  410,
     547             :       419,   51,   51,  410,  410,  410,  410,  410,  420,  421,
     548             :       410,  410,  413,   63,   63,  413,  413,  413,  413,  413,
     549             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     550             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     551             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     552             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     553             :       413,  422,  410,  410,  410,  410,  410,  410,  410,  419,
     554             : 
     555             :       200,  410,  410,  410,  410,  420,  410,  421,  410,  410,
     556             :       410,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     557             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     558             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     559             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     560             :       413,  413,  413,  413,  422,  410,  410,  410,  410,  410,
     561             :       410,  410,  413,  413,  413,  413,  413,  413,  413,  413,
     562             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     563             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     564             :       413,  413,  413,  413,  413,  413,  410,  410,  410,  410,
     565             : 
     566             :       410,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     567             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     568             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  410,
     569             :       410,  423,  410,  410,  410,  410,  413,  413,  413,  413,
     570             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     571             :       413,  413,  413,  413,  413,  413,  413,  413,  423,  410,
     572             :       424,  410,  410,  413,  413,  413,  413,  413,  413,  413,
     573             :       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
     574             :       413,  424,  410,  425,  413,  413,  413,  413,  413,  413,
     575             :       413,  413,  413,  413,  413,  413,  410,  425,  410,  413,
     576             : 
     577             :       413,  413,  413,  413,  413,  413,  413,  413,  413,    0,
     578             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     579             :       410,  410,  410,  410,  410
     580             :     } ;
     581             : 
     582             : static yyconst flex_int16_t yy_nxt[1393] =
     583             :     {   0,
     584             :         8,    9,   10,    9,    9,    8,    8,    8,    8,   11,
     585             :        12,   13,   14,   15,   15,   16,   17,   18,   19,   19,
     586             :        19,   20,   19,   19,   19,   19,   21,   19,   19,    8,
     587             :        22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
     588             :        32,   33,   34,   35,   36,   19,   37,   38,   39,   40,
     589             :        41,   19,   19,   19,   44,   44,  410,  201,   54,   45,
     590             :        45,   48,   55,   48,   48,   49,  410,   50,   51,   51,
     591             :        52,  399,   53,   53,   53,   56,   64,   57,   58,   59,
     592             :       124,  410,  399,  410,  125,   61,  410,  410,   62,   71,
     593             :       410,  410,   62,   63,  410,   64,   48,   73,   48,   48,
     594             : 
     595             :        61,   64,   72,   64,  410,   62,  410,   64,  410,  397,
     596             :       410,   64,   87,  410,   62,  383,  410,   63,   56,   74,
     597             :        65,   66,   66,   75,   64,  410,   64,   79,   61,   76,
     598             :        64,   67,  410,   64,   80,   67,   64,   77,   64,   81,
     599             :       410,   82,   84,   61,  410,   64,  410,   78,   67,   83,
     600             :       410,  410,   85,  361,  410,   86,   88,   67,  410,  118,
     601             :        64,  410,  118,  410,   64,  119,   64,   91,  383,  410,
     602             :        64,   64,   89,   94,   64,   93,  410,   90,   64,   92,
     603             :       198,   64,   99,   64,  125,   95,  100,  109,  101,   64,
     604             :        96,  102,  103,  360,   97,  410,   64,   98,   53,   53,
     605             : 
     606             :        53,  104,  410,  410,  105,  106,  363,   63,  108,   53,
     607             :        53,   53,  107,  110,  111,   64,  112,  136,  137,  141,
     608             :       141,  141,   64,  410,  113,  113,  113,   57,   58,   59,
     609             :       410,   63,  136,  137,   57,   58,   59,  297,   62,  298,
     610             :       360,  118,   62,  410,  118,   62,  336,  119,  410,   62,
     611             :        64,  114,  115,  410,  198,   62,  116,   56,  125,  126,
     612             :       127,  128,   62,   64,   62,  149,  147,  129,   64,  384,
     613             :       130,   62,  384,   64,  130,  131,  332,   59,   59,   59,
     614             :       156,  410,  129,  199,  199,  199,  410,  130,   60,  142,
     615             :       142,  410,   60,  143,  143,  143,  130,  410,  410,  131,
     616             : 
     617             :        56,   64,  132,  133,  133,   60,   64,  410,  410,  410,
     618             :       129,   64,  410,  134,   60,  410,  148,  134,   64,  301,
     619             :       150,  410,  204,  204,  204,  129,  300,   64,   64,   64,
     620             :       134,  176,   64,  157,  410,   64,  410,  299,  410,  134,
     621             :       410,  151,  144,  145,  145,  152,  155,  158,  145,  145,
     622             :       145,  145,  410,  146,   64,  256,   64,  146,   64,  209,
     623             :       410,  145,  145,  145,  145,  145,  145,  153,  410,  410,
     624             :       146,  410,   64,  154,  410,  160,  410,  161,  159,  146,
     625             :        64,  207,  410,  162,  410,  262,  262,  262,   64,   64,
     626             :       410,   64,  410,  410,   64,  259,   64,  410,  410,  410,
     627             : 
     628             :       410,  163,   64,  410,   64,  165,  168,  164,  170,  166,
     629             :        64,  258,   64,   64,  167,  171,  410,   64,   64,   64,
     630             :        64,  410,  410,   64,  178,  169,  410,  177,  410,  172,
     631             :       410,  173,  175,  183,  179,  174,   64,  410,  257,  410,
     632             :       192,   64,   64,  410,  256,  410,   64,  209,   64,  187,
     633             :        64,  180,  181,  184,  182,  186,  207,   64,  185,   64,
     634             :       111,  205,  193,   64,  188,   64,  189,  200,  191,  410,
     635             :       113,  113,  113,   56,  190,  128,  128,  128,  202,  410,
     636             :       142,  142,  202,  129,  199,  199,  199,  203,  203,   64,
     637             :       410,  204,  204,  204,  410,  202,  410,  410,  129,  141,
     638             : 
     639             :       141,  141,  197,  196,  202,  213,  214,  210,  211,  195,
     640             :        64,  410,  194,  410,   64,  410,   64,   64,  410,  216,
     641             :       192,  215,  210,  211,  142,  142,  410,  218,  143,  143,
     642             :       143,   64,  217,   64,  410,   64,  410,  212,   64,  410,
     643             :       220,  410,  410,  221,  410,  219,   64,  140,  410,  138,
     644             :       135,  410,  212,  121,   64,   70,   64,  410,  410,   64,
     645             :       224,   64,   64,  225,   64,  410,  410,  227,   64,  228,
     646             :       222,   64,  410,  223,   69,  226,  410,   64,   64,  410,
     647             :       410,  410,  229,   68,  410,   64,   64,  410,  410,  410,
     648             :       231,  410,   64,  232,  233,   47,   64,  230,   47,   64,
     649             : 
     650             :        64,   64,  410,  235,   64,  236,   42,   64,   64,   64,
     651             :       237,  410,  410,  410,  410,  234,  410,  410,  239,  410,
     652             :       410,  238,   64,  410,  410,  410,  240,  410,  410,  410,
     653             :       410,   64,   64,   64,   64,  241,   64,   64,  410,   64,
     654             :       410,  243,  410,   64,  246,  242,  410,   64,  247,   64,
     655             :        64,  410,  245,  244,  251,  204,  204,  204,  248,  250,
     656             :        64,  249,   64,  252,  137,  410,  254,  142,  142,  253,
     657             :       200,  199,  199,  199,  410,  410,  410,  410,  410,  137,
     658             :       260,  202,  410,  261,  261,  202,  131,  262,  262,  262,
     659             :       410,  410,  263,  410,   64,  260,   64,   64,  202,  410,
     660             : 
     661             :       410,  264,   64,  410,  410,  410,  410,  202,  410,  410,
     662             :       131,   64,  410,   64,  410,  410,  410,  410,  410,   64,
     663             :        64,  410,  265,   64,  266,   64,   64,  267,   64,   64,
     664             :       410,  410,   64,  410,   64,   64,   64,   64,   64,  410,
     665             :       410,   64,  270,  410,  410,  410,  268,  410,  269,  271,
     666             :        64,   64,  410,  273,  272,  410,  274,  275,  410,   64,
     667             :        64,  277,  410,   64,  276,   64,  410,   64,  410,  410,
     668             :       410,  410,  281,  410,  410,   64,  410,  278,  280,  279,
     669             :       410,  410,   64,  410,  282,  410,   64,  283,   64,   64,
     670             :        64,   64,  410,   64,  286,  410,   64,  410,  410,  284,
     671             : 
     672             :       287,   64,  290,   64,  291,   64,  289,  410,  285,  294,
     673             :       410,  288,   64,  410,  410,  292,  410,   64,   64,  410,
     674             :       293,  262,  262,  262,  410,  296,  410,   64,  410,  295,
     675             :       211,  410,  410,   64,   64,  410,   64,  410,  302,   64,
     676             :       303,  410,  410,  410,   64,  211,   64,  304,   64,  410,
     677             :       410,   64,   64,  410,  410,   64,  307,   64,  306,  410,
     678             :       410,   64,  305,   64,  410,  410,  410,  410,  410,  309,
     679             :       308,  410,  410,   64,  310,  410,  410,  311,  410,   64,
     680             :        64,  410,  410,  410,  313,   64,   64,   64,   64,  410,
     681             :       410,   64,   64,  312,  410,   64,  320,  410,  315,  410,
     682             : 
     683             :       319,   64,   64,  316,  410,  314,  410,  410,  317,  318,
     684             :        64,  410,  410,  321,   64,  323,  410,  322,  410,   64,
     685             :       362,  410,  410,  410,   64,  410,  324,   64,  335,  335,
     686             :       335,   64,   64,  330,  410,  326,   64,  328,   64,  410,
     687             :       327,   64,  325,  331,  331,  331,  333,  410,  410,  334,
     688             :       329,  410,  410,  410,   64,  410,  410,  335,  335,  335,
     689             :       337,  410,  410,  410,  410,  410,  338,   64,   64,  340,
     690             :       410,   64,   64,   64,  410,   64,  343,  410,  410,  339,
     691             :       410,   64,  342,   64,   64,   64,  410,  410,  345,  341,
     692             :        64,  410,  344,  410,   64,  347,  410,  346,   64,  348,
     693             : 
     694             :        64,  410,  410,  410,  410,  410,   64,   64,  350,  410,
     695             :       410,   64,  349,  352,  410,  410,   64,  351,  410,  353,
     696             :       410,   64,   64,   64,   64,   64,  354,  410,  410,   64,
     697             :        64,  410,  410,  410,  356,  330,  357,  410,   64,  333,
     698             :       355,  410,  334,  358,  410,  331,  331,  331,   64,  410,
     699             :       335,  335,  335,  333,  410,  410,  334,  361,  410,  410,
     700             :       410,   64,  410,  410,  335,  335,  335,  410,  410,   64,
     701             :       410,  410,  410,  410,   64,   64,  410,  410,   64,  364,
     702             :        64,  410,   64,  366,  410,  368,  370,  365,   64,  410,
     703             :       369,  367,   64,   64,  410,  410,   64,   64,  410,  410,
     704             : 
     705             :       410,  371,  410,  410,   64,  410,  373,  410,  410,  375,
     706             :       372,  410,  410,  410,   64,   64,  410,  410,   64,   64,
     707             :       374,  410,   64,  378,  410,  377,  410,   64,   64,  410,
     708             :       410,   64,   64,   64,  410,  379,  381,  376,  385,  380,
     709             :       410,   64,  410,  410,   64,  410,   64,  410,  386,   64,
     710             :        64,  389,  410,  387,   64,  391,  388,  410,  390,  410,
     711             :        64,  410,   64,   64,  392,   64,  410,   64,  410,  393,
     712             :       410,  410,   64,  410,  410,  410,  410,  394,  410,   64,
     713             :       410,   64,  410,  410,  410,  410,   64,  410,   64,  410,
     714             :        64,   64,  410,  395,   64,   64,   64,  410,   64,  400,
     715             : 
     716             :        64,  410,   64,   64,  396,  401,  410,   64,  410,   64,
     717             :       410,  410,   64,  410,  410,  410,  410,   64,  410,  402,
     718             :       410,  403,  410,  410,  410,  410,   64,  410,   64,  410,
     719             :        64,   64,  410,   64,   64,   64,   64,  410,  405,  410,
     720             :        64,  410,  410,  410,  406,  404,  410,  410,  410,  410,
     721             :       410,  407,  410,  408,  410,  410,  410,  409,   43,   43,
     722             :        43,   43,   43,   43,   46,   46,   46,   46,   46,   46,
     723             :        60,   60,  117,  410,  410,  117,  117,  117,  120,  410,
     724             :       410,  120,  120,  122,  122,  410,  122,  122,  122,  123,
     725             :       123,  123,  123,  123,  123,  139,  139,  139,  139,  139,
     726             : 
     727             :       139,  206,  206,  206,  206,  206,  206,  208,  208,  208,
     728             :       208,  208,  208,  255,  255,  255,  255,  255,  255,  359,
     729             :       359,  359,  359,  359,  359,  382,  382,  382,  382,  382,
     730             :       382,  398,  398,  398,  398,  398,  398,    7,  410,  410,
     731             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     732             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     733             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     734             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     735             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     736             :       410,  410
     737             : 
     738             :     } ;
     739             : 
     740             : static yyconst flex_int16_t yy_chk[1393] =
     741             :     {   0,
     742             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     743             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     744             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     745             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     746             :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     747             :         1,    1,    1,    1,    3,    4,   19,  419,   13,    3,
     748             :         4,    9,   13,    9,    9,   11,   22,   11,   11,   11,
     749             :        12,  398,   12,   12,   12,   14,   19,   14,   14,   14,
     750             :        47,   20,  384,   21,   47,   14,   22,   29,   14,   20,
     751             :       123,   23,   14,   14,  123,   14,   48,   21,   48,   48,
     752             : 
     753             :        14,   20,   20,   21,   24,   14,   25,   29,  126,  383,
     754             :        27,   23,   29,   30,   14,  382,   26,   14,   15,   21,
     755             :        15,   15,   15,   23,   24,   28,   25,   25,   15,   23,
     756             :        27,   15,  126,   30,   25,   15,   26,   24,   15,   25,
     757             :        31,   26,   27,   15,   32,   28,   33,   24,   15,   26,
     758             :        34,   35,   27,  362,   41,   28,   30,   15,   36,   44,
     759             :        31,   37,   44,   38,   32,   44,   33,   33,  361,   39,
     760             :        34,   35,   31,   35,   41,   34,   40,   32,   36,   33,
     761             :       124,   37,   37,   38,  124,   35,   37,   41,   38,   39,
     762             :        35,   38,   38,  359,   36,   60,   40,   36,   49,   49,
     763             : 
     764             :        49,   38,   62,   64,   38,   39,  336,  144,   40,   53,
     765             :        53,   53,   39,   42,   42,   60,   42,   53,   53,   56,
     766             :        56,   56,   62,   64,   42,   42,   42,   57,   57,   57,
     767             :        67,  144,   53,   53,   58,   58,   58,  256,   57,  256,
     768             :       332,  118,   57,   79,  118,   58,  301,  118,   73,   58,
     769             :        67,   42,   42,   71,  198,   57,   42,   50,  198,   50,
     770             :        50,   50,   58,   79,   57,   73,   71,   50,   73,  363,
     771             :        50,   58,  363,   71,   50,   50,  299,   59,   59,   59,
     772             :        79,   74,   50,  142,  142,  142,   72,   50,   59,   61,
     773             :        61,   61,   59,   61,   61,   61,   50,  201,   75,   50,
     774             : 
     775             :        51,   74,   51,   51,   51,   59,   72,   76,   78,   98,
     776             :        51,   61,   80,   51,   59,   81,   72,   51,   75,  259,
     777             :        74,  201,  203,  203,  203,   51,  258,   76,   78,   98,
     778             :        51,   98,   80,   80,   77,   81,   83,  257,   84,   51,
     779             :        63,   75,   63,   63,   63,   76,   78,   81,   63,   63,
     780             :        63,   63,   82,   63,   77,  255,   83,   63,   84,  208,
     781             :        85,   63,   63,   63,   63,   63,   63,   77,   86,   87,
     782             :        63,   88,   82,   77,   90,   83,   89,   84,   82,   63,
     783             :        85,  206,   91,   85,   92,  261,  261,  261,   86,   87,
     784             :        93,   88,   94,   95,   90,  196,   89,   96,   99,   97,
     785             : 
     786             :       102,   86,   91,  100,   92,   88,   90,   87,   92,   89,
     787             :        93,  195,   94,   95,   89,   93,  101,   96,   99,   97,
     788             :       102,  103,  104,  100,  100,   91,  105,   99,  106,   94,
     789             :       107,   95,   97,  102,  100,   96,  101,  108,  194,  109,
     790             :       193,  103,  104,  146,  192,  151,  105,  140,  106,  106,
     791             :       107,  101,  101,  103,  101,  105,  139,  108,  104,  109,
     792             :       113,  138,  113,  146,  107,  151,  108,  131,  109,  148,
     793             :       113,  113,  113,  128,  108,  128,  128,  128,  131,  120,
     794             :       129,  129,  131,  128,  129,  129,  129,  136,  136,  148,
     795             :       147,  136,  136,  136,  150,  131,  152,  153,  128,  141,
     796             : 
     797             :       141,  141,  119,  116,  131,  147,  148,  141,  141,  115,
     798             :       147,  149,  114,  154,  150,  155,  152,  153,  156,  150,
     799             :       112,  149,  141,  141,  143,  143,  143,  153,  143,  143,
     800             :       143,  149,  152,  154,  157,  155,  158,  143,  156,  159,
     801             :       155,  160,  162,  156,  161,  154,  143,   55,  163,   54,
     802             :        52,  164,  143,   45,  157,   18,  158,  165,  166,  159,
     803             :       159,  160,  162,  160,  161,  167,  168,  162,  163,  163,
     804             :       157,  164,  169,  158,   17,  161,  170,  165,  166,  171,
     805             :       172,  173,  165,   16,  174,  167,  168,  175,  176,  177,
     806             :       167,    7,  169,  168,  169,    6,  170,  166,    5,  171,
     807             : 
     808             :       172,  173,  180,  171,  174,  172,    2,  175,  176,  177,
     809             :       173,  178,  179,  181,  182,  170,  183,  184,  176,  185,
     810             :         0,  175,  180,  186,    0,    0,  177,  187,    0,  188,
     811             :       189,  178,  179,  181,  182,  178,  183,  184,    0,  185,
     812             :       190,  180,  191,  186,  184,  179,    0,  187,  185,  188,
     813             :       189,    0,  183,  181,  188,  204,  204,  204,  185,  187,
     814             :       190,  186,  191,  189,  204,    0,  191,  199,  199,  190,
     815             :       200,  199,  199,  199,  212,    0,  214,  215,    0,  204,
     816             :       199,  200,  213,  210,  210,  200,  200,  210,  210,  210,
     817             :         0,  216,  213,  217,  212,  199,  214,  215,  200,  218,
     818             : 
     819             :       220,  214,  213,  219,    0,  221,  222,  200,  223,  224,
     820             :       200,  216,  225,  217,  226,  227,  228,  229,  230,  218,
     821             :       220,  231,  217,  219,  218,  221,  222,  219,  223,  224,
     822             :       232,  234,  225,    0,  226,  227,  228,  229,  230,  233,
     823             :       235,  231,  225,  236,    0,  237,  223,  238,  224,  227,
     824             :       232,  234,    0,  229,  228,  239,  230,  231,    0,  233,
     825             :       235,  234,  240,  236,  233,  237,  241,  238,  242,  243,
     826             :       247,  244,  238,  245,    0,  239,  246,  235,  237,  236,
     827             :         0,  248,  240,  250,  239,  251,  241,  240,  242,  243,
     828             :       247,  244,  249,  245,  243,    0,  246,  252,  253,  241,
     829             : 
     830             :       244,  248,  247,  250,  248,  251,  246,  254,  242,  251,
     831             :         0,  245,  249,  263,  264,  249,  265,  252,  253,  266,
     832             :       250,  262,  262,  262,  267,  253,  268,  254,  269,  252,
     833             :       262,  270,  271,  263,  264,  272,  265,  273,  265,  266,
     834             :       266,  274,    0,  275,  267,  262,  268,  268,  269,    0,
     835             :         0,  270,  271,  276,    0,  272,  270,  273,  269,  277,
     836             :       278,  274,  268,  275,    0,  279,  280,  281,  284,  275,
     837             :       271,  282,  283,  276,  276,  285,    0,  276,    0,  277,
     838             :       278,  286,  288,    0,  277,  279,  280,  281,  284,    0,
     839             :       289,  282,  283,  276,  287,  285,  285,    0,  280,  290,
     840             : 
     841             :       284,  286,  288,  281,  291,  279,    0,  292,  282,  283,
     842             :       289,  293,  294,  286,  287,  289,  295,  287,  296,  290,
     843             :       335,  302,    0,    0,  291,    0,  290,  292,  335,  335,
     844             :       335,  293,  294,  298,  303,  292,  295,  294,  296,    0,
     845             :       293,  302,  291,  298,  298,  298,  300,  304,  305,  300,
     846             :       296,  306,  307,  308,  303,  309,    0,  300,  300,  300,
     847             :       302,  310,    0,  311,  312,  313,  303,  304,  305,  305,
     848             :       314,  306,  307,  308,  316,  309,  309,    0,  315,  304,
     849             :       317,  310,  308,  311,  312,  313,  318,  319,  311,  306,
     850             :       314,  320,  310,    0,  316,  314,  321,  312,  315,  315,
     851             : 
     852             :       317,  322,  323,  324,  325,  326,  318,  319,  317,  327,
     853             :       328,  320,  316,  320,    0,    0,  321,  319,  329,  321,
     854             :         0,  322,  323,  324,  325,  326,  322,    0,  338,  327,
     855             :       328,    0,    0,    0,  327,  331,  328,    0,  329,  333,
     856             :       323,  337,  333,  329,    0,  331,  331,  331,  338,  339,
     857             :       333,  333,  333,  334,  340,  341,  334,  334,  342,    0,
     858             :       345,  337,  343,    0,  334,  334,  334,    0,  344,  339,
     859             :         0,    0,  346,  347,  340,  341,  348,  349,  342,  337,
     860             :       345,    0,  343,  340,  350,  343,  345,  339,  344,    0,
     861             :       344,  342,  346,  347,  351,  352,  348,  349,  353,  354,
     862             : 
     863             :         0,  346,  355,    0,  350,    0,  348,  356,  357,  350,
     864             :       347,  365,  358,  364,  351,  352,    0,    0,  353,  354,
     865             :       349,  366,  355,  353,  367,  352,  368,  356,  357,  369,
     866             :       372,  365,  358,  364,  370,  355,  358,  351,  364,  356,
     867             :       371,  366,  373,  374,  367,  375,  368,  376,  365,  369,
     868             :       372,  368,  377,  366,  370,  370,  367,    0,  369,  378,
     869             :       371,  379,  373,  374,  371,  375,  380,  376,  381,  375,
     870             :       385,  386,  377,    0,  387,  388,  389,  377,  390,  378,
     871             :       391,  379,  392,  393,    0,    0,  380,  394,  381,  395,
     872             :       385,  386,  396,  379,  387,  388,  389,  400,  390,  387,
     873             : 
     874             :       391,    0,  392,  393,  380,  390,  401,  394,  402,  395,
     875             :       403,  404,  396,  405,  406,  407,  409,  400,    0,  391,
     876             :       408,  400,    0,    0,    0,    0,  401,    0,  402,    0,
     877             :       403,  404,    0,  405,  406,  407,  409,    0,  402,    0,
     878             :       408,    0,    0,    0,  404,  401,    0,    0,    0,    0,
     879             :         0,  405,    0,  406,    0,    0,    0,  408,  411,  411,
     880             :       411,  411,  411,  411,  412,  412,  412,  412,  412,  412,
     881             :       413,  413,  414,    0,    0,  414,  414,  414,  415,    0,
     882             :         0,  415,  415,  416,  416,    0,  416,  416,  416,  417,
     883             :       417,  417,  417,  417,  417,  418,  418,  418,  418,  418,
     884             : 
     885             :       418,  420,  420,  420,  420,  420,  420,  421,  421,  421,
     886             :       421,  421,  421,  422,  422,  422,  422,  422,  422,  423,
     887             :       423,  423,  423,  423,  423,  424,  424,  424,  424,  424,
     888             :       424,  425,  425,  425,  425,  425,  425,  410,  410,  410,
     889             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     890             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     891             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     892             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     893             :       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
     894             :       410,  410
     895             : 
     896             :     } ;
     897             : 
     898             : /* Table of booleans, true if rule could match eol. */
     899             : static yyconst flex_int32_t yy_rule_can_match_eol[89] =
     900             :     {   0,
     901             : 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     902             :     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     903             :     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     904             :     0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 
     905             :     1, 0, 1, 1, 1, 1, 1, 1, 0,     };
     906             : 
     907             : static yy_state_type yy_last_accepting_state;
     908             : static char *yy_last_accepting_cpos;
     909             : 
     910             : extern int yy_flex_debug;
     911             : int yy_flex_debug = 0;
     912             : 
     913             : /* The intent behind this definition is that it'll catch
     914             :  * any uses of REJECT which flex missed.
     915             :  */
     916             : #define REJECT reject_used_but_not_detected
     917             : #define yymore() yymore_used_but_not_detected
     918             : #define YY_MORE_ADJ 0
     919             : #define YY_RESTORE_YY_MORE_OFFSET
     920             : char *yytext;
     921             : #line 1 "/usr/local/src/libreoffice/idlc/source/scanner.l"
     922             : /*
     923             :  * This file is part of the LibreOffice project.
     924             :  *
     925             :  * This Source Code Form is subject to the terms of the Mozilla Public
     926             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
     927             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
     928             :  *
     929             :  * This file incorporates work covered by the following license notice:
     930             :  *
     931             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
     932             :  *   contributor license agreements. See the NOTICE file distributed
     933             :  *   with this work for additional information regarding copyright
     934             :  *   ownership. The ASF licenses this file to you under the Apache
     935             :  *   License, Version 2.0 (the "License"); you may not use this file
     936             :  *   except in compliance with the License. You may obtain a copy of
     937             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
     938             :  */
     939             : #line 22 "/usr/local/src/libreoffice/idlc/source/scanner.l"
     940             : /*
     941             :  * scanner.ll - Lexical scanner for IDLC 1.0
     942             :  */
     943             : 
     944             : #include "sal/config.h"
     945             : 
     946             : #include <ctype.h>
     947             : #include <stdlib.h>
     948             : #include <string.h>
     949             : 
     950             : #include <idlc/idlc.hxx>
     951             : #include <idlc/errorhandler.hxx>
     952             : #include <idlc/fehelper.hxx>
     953             : 
     954             : #include "attributeexceptions.hxx"
     955             : 
     956             : 
     957             : class AstExpression;
     958             : class AstArray;
     959             : class AstMember;
     960             : 
     961             : #include <parser.hxx>
     962             : 
     963             : /* handle locations */
     964             : int yycolumn = 1;
     965             : 
     966             : #define YY_USER_ACTION idlc()->setOffset(yycolumn, yycolumn+yyleng-1); \
     967             :     yycolumn += yyleng;
     968             : 
     969             : sal_Int32               beginLine = 0;
     970             : ::rtl::OString  docu;
     971             : 
     972             : static int asciiToInteger(char const * s, sal_Int64  * sval, sal_uInt64 * uval) {
     973             :     bool neg = false;
     974             :     if (*s == '-') {
     975             :         neg = true;
     976             :         ++s;
     977             :     }
     978             :     unsigned int base = 10;
     979             :     if (*s == '0') {
     980             :         base = 8;
     981             :         ++s;
     982             :         if (*s == 'X' || *s == 'x') {
     983             :             base = 16;
     984             :             ++s;
     985             :         }
     986             :     }
     987             :     sal_uInt64 val = 0;
     988             :     for (; *s != 0; ++s) {
     989             :         unsigned int n;
     990             :         if (*s >= '0' && *s <= '9') {
     991             :             n = *s - '0';
     992             :         } else {
     993             :             switch (*s) {
     994             :             case 'A':
     995             :             case 'a':
     996             :                 n = 10;
     997             :                 break;
     998             :             case 'B':
     999             :             case 'b':
    1000             :                 n = 11;
    1001             :                 break;
    1002             :             case 'C':
    1003             :             case 'c':
    1004             :                 n = 12;
    1005             :                 break;
    1006             :             case 'D':
    1007             :             case 'd':
    1008             :                 n = 13;
    1009             :                 break;
    1010             :             case 'E':
    1011             :             case 'e':
    1012             :                 n = 14;
    1013             :                 break;
    1014             :             case 'F':
    1015             :             case 'f':
    1016             :                 n = 15;
    1017             :                 break;
    1018             :             default:
    1019             :                 goto done;
    1020             :             }
    1021             :         }
    1022             :         // The following guarantees the invariant val <= SAL_MAX_UINT64 (because
    1023             :         // base and n are sufficiently small), *if*
    1024             :         // std::numeric_limits<sal_uInt64>::max() == SAL_MAX_UINT64:
    1025             :         sal_uInt64 nval = val * base + n;
    1026             :         if (nval < val) {
    1027             :             idlc()->error()->syntaxError(
    1028             :                 PS_NoState, idlc()->getLineNumber(),
    1029             :                 "integral constant too large");
    1030             :             val = 0;
    1031             :             break;
    1032             :         }
    1033             :         val = nval;
    1034             :     }
    1035             :  done:
    1036             :     if (neg) {
    1037             :         if (val < SAL_CONST_UINT64(0x8000000000000000)) {
    1038             :             *sval = -static_cast< sal_Int64 >(val);
    1039             :         } else if (val == SAL_CONST_UINT64(0x8000000000000000)) {
    1040             :             *sval = SAL_MIN_INT64;
    1041             :         } else {
    1042             :             idlc()->error()->syntaxError(
    1043             :                 PS_NoState, idlc()->getLineNumber(),
    1044             :                 "negative integral constant too large");
    1045             :             *sval = 0;
    1046             :         }
    1047             :         return IDL_INTEGER_LITERAL;
    1048             :     } else if (val <= static_cast< sal_uInt64 >(SAL_MAX_INT64)) {
    1049             :         *sval = static_cast< sal_Int64 >(val);
    1050             :         return IDL_INTEGER_LITERAL;
    1051             :     } else {
    1052             :         *uval = val;
    1053             :         return IDL_INTEGER_ULITERAL;
    1054             :     }
    1055             : }
    1056             : 
    1057             : static double asciiToFloat(const sal_Char *s)
    1058             : {
    1059             :         double          d = 0.0;
    1060             :         double          e, k;
    1061             :         sal_Int32       neg = 0, negexp = 0;
    1062             : 
    1063             :         if (*s == '-')
    1064             :         {
    1065             :         neg = 1;
    1066             :         s++;
    1067             :         }
    1068             :         while (*s >= '0' && *s <= '9')
    1069             :         {
    1070             :         d = (d * 10) + *s - '0';
    1071             :         s++;
    1072             :         }
    1073             :         if (*s == '.')
    1074             :         {
    1075             :         s++;
    1076             :         e = 10;
    1077             :         while (*s >= '0' && *s <= '9')
    1078             :         {
    1079             :                 d += (*s - '0') / (e * 1.0);
    1080             :                 e *= 10;
    1081             :                 s++;
    1082             :         }
    1083             :         }
    1084             :         if (*s == 'e' || *s == 'E')
    1085             :         {
    1086             :         s++;
    1087             :         if (*s == '-')
    1088             :         {
    1089             :                 negexp = 1;
    1090             :                 s++;
    1091             :         } else
    1092             :         {
    1093             :                 if (*s == '+')
    1094             :                 s++;
    1095             :                 e = 0;
    1096             :                 while (*s >= '0' && *s <= '9')
    1097             :                 {
    1098             :                 e = (e * 10) + *s - '0';
    1099             :                 s++;
    1100             :                 }
    1101             :                 if (e > 0)
    1102             :                 {
    1103             :                 for (k = 1; e > 0; k *= 10, e--)
    1104             :                     ;
    1105             :                 if (negexp)
    1106             :                         d /= k;
    1107             :                 else
    1108             :                         d *= k;
    1109             :                 }
    1110             :                 }
    1111             :         }
    1112             :         if (neg) d *= -1.0;
    1113             :         return d;
    1114             : }
    1115             : 
    1116             : static void     idlParsePragma(sal_Char* pPragma)
    1117             : {
    1118             :         ::rtl::OString pragma(pPragma);
    1119             :         sal_Int32 index = pragma.indexOf("include");
    1120             :         sal_Char* begin = pPragma + index + 8;
    1121             :         sal_Char* offset = begin;
    1122             :         while (*offset != ',') offset++;
    1123             :         //::rtl::OString include = pragma.copy(index + 8, offset - begin);
    1124             :         //unused// idlc()->insertInclude(pragma.copy(index + 8, (sal_Int32)(offset - begin)));
    1125             : }       
    1126             : 
    1127             : static void parseLineAndFile(sal_Char* pBuf)
    1128             : {
    1129             :         sal_Char        *r = pBuf;
    1130             :         sal_Char    *h;
    1131             :         sal_Bool        bIsInMain = sal_False;
    1132             : 
    1133             :         /* Skip initial '#' */
    1134             :         if (*r != '#')
    1135             :                 return;
    1136             : 
    1137             :         /* Find line number */
    1138             :         for (r++; *r == ' ' || *r == '\t' || isalpha(*r); r++) ;
    1139             :         h = r;
    1140             :         for (; *r != '\0' && *r != ' ' && *r != '\t'; r++) ;
    1141             :         *r++ = 0;
    1142             :         idlc()->setLineNumber((sal_uInt32)atol(h));
    1143             :     yylineno = atol(h);
    1144             : 
    1145             :         /* Find file name, if present */
    1146             :         for (; *r != '"'; r++)
    1147             :         {
    1148             :                 if (*r == '\n' || *r == '\0')
    1149             :                         return;
    1150             :         }
    1151             :         h = ++r;
    1152             :         for (; *r != '"'; r++) ;
    1153             :         *r = 0;
    1154             :         if (*h == '\0')
    1155             :                 idlc()->setFileName(::rtl::OString("standard input"));
    1156             :         else
    1157             :                 idlc()->setFileName(::rtl::OString(h));
    1158             : 
    1159             :         bIsInMain = (idlc()->getFileName() == idlc()->getRealFileName()) ? sal_True : sal_False;
    1160             :         idlc()->setInMainfile(bIsInMain);            
    1161             : }       
    1162             : 
    1163             : // Suppress any warnings from generated code:
    1164             : #if HAVE_GCC_PRAGMA_DIAGNOSTIC_MODIFY
    1165             : #pragma GCC diagnostic ignored "-Wunused-function"
    1166             : #pragma GCC diagnostic ignored "-Wunused-label"
    1167             : #elif defined __SUNPRO_CC
    1168             : #pragma disable_warn
    1169             : #elif defined _MSC_VER
    1170             : #pragma warning(push, 1)
    1171             : /**/
    1172             : #ifdef yywrap
    1173             : #undef  yywrap
    1174             : #define yywrap() 1
    1175             : #endif
    1176             : /**/
    1177             : #endif
    1178             : #define YY_NO_UNISTD_H
    1179             : 
    1180             : 
    1181             : #line 1182 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
    1182             : 
    1183             : #define INITIAL 0
    1184             : #define DOCU 1
    1185             : #define COMMENT 2
    1186             : 
    1187             : #ifndef YY_NO_UNISTD_H
    1188             : /* Special case for "unistd.h", since it is non-ANSI. We include it way
    1189             :  * down here because we want the user's section 1 to have been scanned first.
    1190             :  * The user has a chance to override it with an option.
    1191             :  */
    1192             : #include <unistd.h>
    1193             : #endif
    1194             : 
    1195             : #ifndef YY_EXTRA_TYPE
    1196             : #define YY_EXTRA_TYPE void *
    1197             : #endif
    1198             : 
    1199             : static int yy_init_globals (void );
    1200             : 
    1201             : /* Accessor methods to globals.
    1202             :    These are made visible to non-reentrant scanners for convenience. */
    1203             : 
    1204             : int yylex_destroy (void );
    1205             : 
    1206             : int yyget_debug (void );
    1207             : 
    1208             : void yyset_debug (int debug_flag  );
    1209             : 
    1210             : YY_EXTRA_TYPE yyget_extra (void );
    1211             : 
    1212             : void yyset_extra (YY_EXTRA_TYPE user_defined  );
    1213             : 
    1214             : FILE *yyget_in (void );
    1215             : 
    1216             : void yyset_in  (FILE * in_str  );
    1217             : 
    1218             : FILE *yyget_out (void );
    1219             : 
    1220             : void yyset_out  (FILE * out_str  );
    1221             : 
    1222             : yy_size_t yyget_leng (void );
    1223             : 
    1224             : char *yyget_text (void );
    1225             : 
    1226             : int yyget_lineno (void );
    1227             : 
    1228             : void yyset_lineno (int line_number  );
    1229             : 
    1230             : /* Macros after this point can all be overridden by user definitions in
    1231             :  * section 1.
    1232             :  */
    1233             : 
    1234             : #ifndef YY_SKIP_YYWRAP
    1235             : #ifdef __cplusplus
    1236             : extern "C" int yywrap (void );
    1237             : #else
    1238             : extern int yywrap (void );
    1239             : #endif
    1240             : #endif
    1241             : 
    1242             :     static void yyunput (int c,char *buf_ptr  );
    1243             :     
    1244             : #ifndef yytext_ptr
    1245             : static void yy_flex_strncpy (char *,yyconst char *,int );
    1246             : #endif
    1247             : 
    1248             : #ifdef YY_NEED_STRLEN
    1249             : static int yy_flex_strlen (yyconst char * );
    1250             : #endif
    1251             : 
    1252             : #ifndef YY_NO_INPUT
    1253             : 
    1254             : #ifdef __cplusplus
    1255             : static int yyinput (void );
    1256             : #else
    1257             : static int input (void );
    1258             : #endif
    1259             : 
    1260             : #endif
    1261             : 
    1262             : /* Amount of stuff to slurp up with each read. */
    1263             : #ifndef YY_READ_BUF_SIZE
    1264             : #define YY_READ_BUF_SIZE 8192
    1265             : #endif
    1266             : 
    1267             : /* Copy whatever the last rule matched to the standard output. */
    1268             : #ifndef ECHO
    1269             : /* This used to be an fputs(), but since the string might contain NUL's,
    1270             :  * we now use fwrite().
    1271             :  */
    1272             : #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
    1273             : #endif
    1274             : 
    1275             : /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
    1276             :  * is returned in "result".
    1277             :  */
    1278             : #ifndef YY_INPUT
    1279             : #define YY_INPUT(buf,result,max_size) \
    1280             :         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
    1281             :                 { \
    1282             :                 int c = '*'; \
    1283             :                 size_t n; \
    1284             :                 for ( n = 0; n < max_size && \
    1285             :                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
    1286             :                         buf[n] = (char) c; \
    1287             :                 if ( c == '\n' ) \
    1288             :                         buf[n++] = (char) c; \
    1289             :                 if ( c == EOF && ferror( yyin ) ) \
    1290             :                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
    1291             :                 result = n; \
    1292             :                 } \
    1293             :         else \
    1294             :                 { \
    1295             :                 errno=0; \
    1296             :                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
    1297             :                         { \
    1298             :                         if( errno != EINTR) \
    1299             :                                 { \
    1300             :                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
    1301             :                                 break; \
    1302             :                                 } \
    1303             :                         errno=0; \
    1304             :                         clearerr(yyin); \
    1305             :                         } \
    1306             :                 }\
    1307             : \
    1308             : 
    1309             : #endif
    1310             : 
    1311             : /* No semi-colon after return; correct usage is to write "yyterminate();" -
    1312             :  * we don't want an extra ';' after the "return" because that will cause
    1313             :  * some compilers to complain about unreachable statements.
    1314             :  */
    1315             : #ifndef yyterminate
    1316             : #define yyterminate() return YY_NULL
    1317             : #endif
    1318             : 
    1319             : /* Number of entries by which start-condition stack grows. */
    1320             : #ifndef YY_START_STACK_INCR
    1321             : #define YY_START_STACK_INCR 25
    1322             : #endif
    1323             : 
    1324             : /* Report a fatal error. */
    1325             : #ifndef YY_FATAL_ERROR
    1326             : #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
    1327             : #endif
    1328             : 
    1329             : /* end tables serialization structures and prototypes */
    1330             : 
    1331             : /* Default declaration of generated scanner - a define so the user can
    1332             :  * easily add parameters.
    1333             :  */
    1334             : #ifndef YY_DECL
    1335             : #define YY_DECL_IS_OURS 1
    1336             : 
    1337             : extern int yylex (void);
    1338             : 
    1339             : #define YY_DECL int yylex (void)
    1340             : #endif /* !YY_DECL */
    1341             : 
    1342             : /* Code executed at the beginning of each rule, after yytext and yyleng
    1343             :  * have been set up.
    1344             :  */
    1345             : #ifndef YY_USER_ACTION
    1346             : #define YY_USER_ACTION
    1347             : #endif
    1348             : 
    1349             : /* Code executed at the end of each rule. */
    1350             : #ifndef YY_BREAK
    1351             : #define YY_BREAK break;
    1352             : #endif
    1353             : 
    1354             : #define YY_RULE_SETUP \
    1355             :         if ( yyleng > 0 ) \
    1356             :                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
    1357             :                                 (yytext[yyleng - 1] == '\n'); \
    1358             :         YY_USER_ACTION
    1359             : 
    1360             : /** The main scanner function which does all the work.
    1361             :  */
    1362     4614253 : YY_DECL
    1363             : {
    1364             :         register yy_state_type yy_current_state;
    1365             :         register char *yy_cp, *yy_bp;
    1366             :         register int yy_act;
    1367             :     
    1368             : #line 281 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1369             : 
    1370             : 
    1371             : #line 1372 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
    1372             : 
    1373     4614253 :         if ( !(yy_init) )
    1374             :                 {
    1375         452 :                 (yy_init) = 1;
    1376             : 
    1377             : #ifdef YY_USER_INIT
    1378             :                 YY_USER_INIT;
    1379             : #endif
    1380             : 
    1381         452 :                 if ( ! (yy_start) )
    1382         452 :                         (yy_start) = 1; /* first start state */
    1383             : 
    1384         452 :                 if ( ! yyin )
    1385           0 :                         yyin = stdin;
    1386             : 
    1387         452 :                 if ( ! yyout )
    1388         452 :                         yyout = stdout;
    1389             : 
    1390         452 :                 if ( ! YY_CURRENT_BUFFER ) {
    1391         452 :                         yyensure_buffer_stack ();
    1392         452 :                         YY_CURRENT_BUFFER_LVALUE =
    1393         452 :                                 yy_create_buffer(yyin,YY_BUF_SIZE );
    1394             :                 }
    1395             : 
    1396         452 :                 yy_load_buffer_state( );
    1397             :                 }
    1398             : 
    1399             :         while ( 1 )             /* loops until end-of-file is reached */
    1400             :                 {
    1401    14359378 :                 yy_cp = (yy_c_buf_p);
    1402             : 
    1403             :                 /* Support of yytext. */
    1404    14359378 :                 *yy_cp = (yy_hold_char);
    1405             : 
    1406             :                 /* yy_bp points to the position in yy_ch_buf of the start of
    1407             :                  * the current run.
    1408             :                  */
    1409    14359378 :                 yy_bp = yy_cp;
    1410             : 
    1411    14359378 :                 yy_current_state = (yy_start);
    1412    14359378 :                 yy_current_state += YY_AT_BOL();
    1413             : yy_match:
    1414   187080022 :                 do
    1415             :                         {
    1416   187080022 :                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
    1417   187080022 :                         if ( yy_accept[yy_current_state] )
    1418             :                                 {
    1419   163908829 :                                 (yy_last_accepting_state) = yy_current_state;
    1420   163908829 :                                 (yy_last_accepting_cpos) = yy_cp;
    1421             :                                 }
    1422   533374962 :                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    1423             :                                 {
    1424   159214918 :                                 yy_current_state = (int) yy_def[yy_current_state];
    1425   159214918 :                                 if ( yy_current_state >= 411 )
    1426   143571841 :                                         yy_c = yy_meta[(unsigned int) yy_c];
    1427             :                                 }
    1428   187080022 :                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    1429   187080022 :                         ++yy_cp;
    1430             :                         }
    1431             :                 while ( yy_current_state != 410 );
    1432    14382846 :                 yy_cp = (yy_last_accepting_cpos);
    1433    14382846 :                 yy_current_state = (yy_last_accepting_state);
    1434             : 
    1435             : yy_find_action:
    1436    14388446 :                 yy_act = yy_accept[yy_current_state];
    1437             : 
    1438    14388446 :                 YY_DO_BEFORE_ACTION;
    1439             : 
    1440    14388446 :                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
    1441             :                         {
    1442             :                         int yyl;
    1443    79156539 :                         for ( yyl = 0; yyl < yyleng; ++yyl )
    1444    73781804 :                                 if ( yytext[yyl] == '\n' )
    1445             :                                            
    1446     5004306 :     yylineno++;
    1447             : ;
    1448             :                         }
    1449             : 
    1450             : do_action:      /* This label is used only to access EOF actions. */
    1451             : 
    1452    14394046 :                 switch ( yy_act )
    1453             :         { /* beginning of action switch */
    1454             :                         case 0: /* must back up */
    1455             :                         /* undo the effects of YY_DO_BEFORE_ACTION */
    1456           0 :                         *yy_cp = (yy_hold_char);
    1457           0 :                         yy_cp = (yy_last_accepting_cpos);
    1458           0 :                         yy_current_state = (yy_last_accepting_state);
    1459           0 :                         goto yy_find_action;
    1460             : 
    1461             : case 1:
    1462     2360502 : YY_RULE_SETUP
    1463             : #line 283 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1464             : ; /* eat up whitespace */
    1465             :         YY_BREAK
    1466             : case 2:
    1467             : /* rule 2 can match eol */
    1468             : YY_RULE_SETUP
    1469             : #line 284 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1470             : {
    1471             :        idlc()->incLineNumber();
    1472             :        yycolumn = 1;
    1473             :        yylineno++;
    1474             : }
    1475             :         YY_BREAK
    1476             : case 3:
    1477             : YY_RULE_SETUP
    1478             : #line 290 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1479             : return IDL_ATTRIBUTE;
    1480             :         YY_BREAK
    1481             : case 4:
    1482             : YY_RULE_SETUP
    1483             : #line 291 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1484             : return IDL_BOUND;
    1485             :         YY_BREAK
    1486             : case 5:
    1487             : YY_RULE_SETUP
    1488             : #line 292 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1489             : return IDL_CASE;
    1490             :         YY_BREAK
    1491             : case 6:
    1492             : YY_RULE_SETUP
    1493             : #line 293 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1494             : return IDL_CONST;
    1495             :         YY_BREAK
    1496             : case 7:
    1497             : YY_RULE_SETUP
    1498             : #line 294 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1499             : return IDL_CONSTANTS;
    1500             :         YY_BREAK
    1501             : case 8:
    1502             : YY_RULE_SETUP
    1503             : #line 295 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1504             : return IDL_CONSTRAINED;
    1505             :         YY_BREAK
    1506             : case 9:
    1507             : YY_RULE_SETUP
    1508             : #line 296 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1509             : return IDL_DEFAULT;
    1510             :         YY_BREAK
    1511             : case 10:
    1512             : YY_RULE_SETUP
    1513             : #line 297 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1514             : return IDL_ENUM;
    1515             :         YY_BREAK
    1516             : case 11:
    1517             : YY_RULE_SETUP
    1518             : #line 298 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1519             : return IDL_EXCEPTION;
    1520             :         YY_BREAK
    1521             : case 12:
    1522             : YY_RULE_SETUP
    1523             : #line 299 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1524             : return IDL_INTERFACE;
    1525             :         YY_BREAK
    1526             : case 13:
    1527             : YY_RULE_SETUP
    1528             : #line 300 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1529             : return IDL_MAYBEAMBIGUOUS;
    1530             :         YY_BREAK
    1531             : case 14:
    1532             : YY_RULE_SETUP
    1533             : #line 301 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1534             : return IDL_MAYBEDEFAULT;
    1535             :         YY_BREAK
    1536             : case 15:
    1537             : YY_RULE_SETUP
    1538             : #line 302 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1539             : return IDL_MAYBEVOID;
    1540             :         YY_BREAK
    1541             : case 16:
    1542             : YY_RULE_SETUP
    1543             : #line 303 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1544             : return IDL_MODULE;
    1545             :         YY_BREAK
    1546             : case 17:
    1547             : YY_RULE_SETUP
    1548             : #line 304 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1549             : return IDL_NEEDS;
    1550             :         YY_BREAK
    1551             : case 18:
    1552             : YY_RULE_SETUP
    1553             : #line 305 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1554             : return IDL_OBSERVES;
    1555             :         YY_BREAK
    1556             : case 19:
    1557             : YY_RULE_SETUP
    1558             : #line 306 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1559             : return IDL_OPTIONAL;
    1560             :         YY_BREAK
    1561             : case 20:
    1562             : YY_RULE_SETUP
    1563             : #line 307 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1564             : return IDL_PROPERTY;
    1565             :         YY_BREAK
    1566             : case 21:
    1567             : YY_RULE_SETUP
    1568             : #line 308 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1569             : return IDL_RAISES;
    1570             :         YY_BREAK
    1571             : case 22:
    1572             : YY_RULE_SETUP
    1573             : #line 309 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1574             : return IDL_READONLY;
    1575             :         YY_BREAK
    1576             : case 23:
    1577             : YY_RULE_SETUP
    1578             : #line 310 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1579             : return IDL_REMOVABLE;
    1580             :         YY_BREAK
    1581             : case 24:
    1582             : YY_RULE_SETUP
    1583             : #line 311 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1584             : return IDL_SERVICE;
    1585             :         YY_BREAK
    1586             : case 25:
    1587             : YY_RULE_SETUP
    1588             : #line 312 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1589             : return IDL_SEQUENCE;
    1590             :         YY_BREAK
    1591             : case 26:
    1592             : YY_RULE_SETUP
    1593             : #line 313 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1594             : return IDL_SINGLETON;
    1595             :         YY_BREAK
    1596             : case 27:
    1597             : YY_RULE_SETUP
    1598             : #line 314 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1599             : return IDL_STRUCT;
    1600             :         YY_BREAK
    1601             : case 28:
    1602             : YY_RULE_SETUP
    1603             : #line 315 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1604             : return IDL_SWITCH;
    1605             :         YY_BREAK
    1606             : case 29:
    1607             : YY_RULE_SETUP
    1608             : #line 316 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1609             : return IDL_TRANSIENT;
    1610             :         YY_BREAK
    1611             : case 30:
    1612             : YY_RULE_SETUP
    1613             : #line 317 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1614             : return IDL_TYPEDEF;
    1615             :         YY_BREAK
    1616             : case 31:
    1617             : YY_RULE_SETUP
    1618             : #line 318 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1619             : return IDL_UNION;
    1620             :         YY_BREAK
    1621             : case 32:
    1622             : YY_RULE_SETUP
    1623             : #line 320 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1624             : return IDL_ANY;                         
    1625             :         YY_BREAK
    1626             : case 33:
    1627             : YY_RULE_SETUP
    1628             : #line 321 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1629             : return IDL_BOOLEAN;
    1630             :         YY_BREAK
    1631             : case 34:
    1632             : YY_RULE_SETUP
    1633             : #line 322 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1634             : return IDL_BYTE;
    1635             :         YY_BREAK
    1636             : case 35:
    1637             : YY_RULE_SETUP
    1638             : #line 323 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1639             : return IDL_CHAR;
    1640             :         YY_BREAK
    1641             : case 36:
    1642             : YY_RULE_SETUP
    1643             : #line 324 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1644             : return IDL_DOUBLE;
    1645             :         YY_BREAK
    1646             : case 37:
    1647             : YY_RULE_SETUP
    1648             : #line 325 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1649             : return IDL_FLOAT;
    1650             :         YY_BREAK
    1651             : case 38:
    1652             : YY_RULE_SETUP
    1653             : #line 326 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1654             : return IDL_HYPER;
    1655             :         YY_BREAK
    1656             : case 39:
    1657             : YY_RULE_SETUP
    1658             : #line 327 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1659             : return IDL_LONG;
    1660             :         YY_BREAK
    1661             : case 40:
    1662             : YY_RULE_SETUP
    1663             : #line 328 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1664             : return IDL_SHORT;
    1665             :         YY_BREAK
    1666             : case 41:
    1667             : YY_RULE_SETUP
    1668             : #line 329 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1669             : return IDL_STRING;
    1670             :         YY_BREAK
    1671             : case 42:
    1672             : YY_RULE_SETUP
    1673             : #line 330 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1674             : return IDL_TYPE;
    1675             :         YY_BREAK
    1676             : case 43:
    1677             : YY_RULE_SETUP
    1678             : #line 331 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1679             : return IDL_UNSIGNED;
    1680             :         YY_BREAK
    1681             : case 44:
    1682             : YY_RULE_SETUP
    1683             : #line 332 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1684             : return IDL_VOID;
    1685             :         YY_BREAK
    1686             : case 45:
    1687             : YY_RULE_SETUP
    1688             : #line 334 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1689             : return IDL_TRUE;
    1690             :         YY_BREAK
    1691             : case 46:
    1692             : YY_RULE_SETUP
    1693             : #line 335 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1694             : return IDL_TRUE;
    1695             :         YY_BREAK
    1696             : case 47:
    1697             : YY_RULE_SETUP
    1698             : #line 336 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1699             : return IDL_FALSE;
    1700             :         YY_BREAK
    1701             : case 48:
    1702             : YY_RULE_SETUP
    1703             : #line 337 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1704             : return IDL_FALSE;
    1705             :         YY_BREAK
    1706             : case 49:
    1707             : YY_RULE_SETUP
    1708             : #line 339 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1709             : return IDL_IN;
    1710             :         YY_BREAK
    1711             : case 50:
    1712             : YY_RULE_SETUP
    1713             : #line 340 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1714             : return IDL_OUT;
    1715             :         YY_BREAK
    1716             : case 51:
    1717             : YY_RULE_SETUP
    1718             : #line 341 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1719             : return IDL_INOUT;
    1720             :         YY_BREAK
    1721             : case 52:
    1722             : YY_RULE_SETUP
    1723             : #line 343 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1724             : return IDL_GET;
    1725             :         YY_BREAK
    1726             : case 53:
    1727             : YY_RULE_SETUP
    1728             : #line 344 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1729             : return IDL_SET;
    1730             :         YY_BREAK
    1731             : case 54:
    1732             : YY_RULE_SETUP
    1733             : #line 346 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1734             : return IDL_PUBLISHED;
    1735             :         YY_BREAK
    1736             : case 55:
    1737             : YY_RULE_SETUP
    1738             : #line 348 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1739             : return IDL_ELLIPSIS;
    1740             :         YY_BREAK
    1741             : case 56:
    1742             : YY_RULE_SETUP
    1743             : #line 350 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1744             : {
    1745             :                 return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
    1746             :             }
    1747             :         YY_BREAK
    1748             : case 57:
    1749             : YY_RULE_SETUP
    1750             : #line 354 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1751             : {
    1752             :                 return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
    1753             :             }
    1754             :         YY_BREAK
    1755             : case 58:
    1756             : YY_RULE_SETUP
    1757             : #line 358 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1758             : {
    1759             :                 return asciiToInteger(yytext, &yylval.ival, &yylval.uval);
    1760             :             }
    1761             :         YY_BREAK
    1762             : case 59:
    1763             : #line 363 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1764             : case 60:
    1765             : #line 364 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1766             : case 61:
    1767             : YY_RULE_SETUP
    1768             : #line 364 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1769             : {
    1770             :                 yylval.dval = asciiToFloat( yytext );
    1771             :                                 return IDL_FLOATING_PT_LITERAL;
    1772             :             }
    1773             :         YY_BREAK
    1774             : case 62:
    1775             : YY_RULE_SETUP
    1776             : #line 369 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1777             : {
    1778             :                                 yylval.sval = new ::rtl::OString(yytext);
    1779             :                                 return IDL_IDENTIFIER;
    1780             :                         }
    1781             :         YY_BREAK
    1782             : case 63:
    1783             : YY_RULE_SETUP
    1784             : #line 374 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1785             : {
    1786             :                 yylval.strval = yytext;
    1787             :                 return IDL_LEFTSHIFT;
    1788             :         }
    1789             :         YY_BREAK
    1790             : case 64:
    1791             : YY_RULE_SETUP
    1792             : #line 378 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1793             : {
    1794             :                 yylval.strval = yytext;
    1795             :                 return IDL_RIGHTSHIFT;
    1796             :         }
    1797             :         YY_BREAK
    1798             : case 65:
    1799             : YY_RULE_SETUP
    1800             : #line 382 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1801             : {
    1802             :                 yylval.strval = yytext;
    1803             :                 return IDL_SCOPESEPARATOR;
    1804             :         }
    1805             :         YY_BREAK
    1806             : case 66:
    1807             : YY_RULE_SETUP
    1808             : #line 387 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1809             : { 
    1810             :                         BEGIN( COMMENT );
    1811             :                         docu = ::rtl::OString();
    1812             :                         beginLine = idlc()->getLineNumber();
    1813             :                 }
    1814             :         YY_BREAK
    1815             : case 67:
    1816             : YY_RULE_SETUP
    1817             : #line 393 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1818             : { 
    1819             :                         BEGIN( COMMENT );
    1820             :                         docu = ::rtl::OString();
    1821             :                         beginLine = idlc()->getLineNumber();
    1822             :                 }
    1823             :         YY_BREAK
    1824             : case 68:
    1825             : /* rule 68 can match eol */
    1826             : YY_RULE_SETUP
    1827             : #line 399 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1828             : {
    1829             :                                 docu += ::rtl::OString(yytext);
    1830             :                         } 
    1831             :         YY_BREAK
    1832             : case 69:
    1833             : /* rule 69 can match eol */
    1834             : YY_RULE_SETUP
    1835             : #line 403 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1836             : {
    1837             :                                 docu += ::rtl::OString(yytext);
    1838             :                         }
    1839             :         YY_BREAK
    1840             : case 70:
    1841             : YY_RULE_SETUP
    1842             : #line 407 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1843             : {
    1844             :                                 docu += ::rtl::OString(yytext);
    1845             :                         }
    1846             :         YY_BREAK
    1847             : case 71:
    1848             : YY_RULE_SETUP
    1849             : #line 411 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1850             : {
    1851             :                                 docu = docu.trim();
    1852             :                 sal_Int32 nIndex = 0;
    1853             :                 int count = 0;
    1854             :                 do { docu.getToken( 0, '\n', nIndex ); count++; } while( nIndex != -1 );
    1855             :                                 idlc()->setLineNumber( beginLine + count - 1);
    1856             :                                 BEGIN( INITIAL );
    1857             :                         }
    1858             :         YY_BREAK
    1859             : case 72:
    1860             : YY_RULE_SETUP
    1861             : #line 420 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1862             : {
    1863             :                         BEGIN( DOCU );
    1864             :                         docu = ::rtl::OString();
    1865             :                         beginLine = idlc()->getLineNumber();
    1866             :                 }
    1867             :         YY_BREAK
    1868             : case 73:
    1869             : YY_RULE_SETUP
    1870             : #line 426 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1871             : {
    1872             :                                 docu += ::rtl::OString(yytext);
    1873             :                         }
    1874             :         YY_BREAK
    1875             : case 74:
    1876             : /* rule 74 can match eol */
    1877             : YY_RULE_SETUP
    1878             : #line 430 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1879             : {
    1880             :                                 idlc()->setLineNumber( idlc()->getLineNumber()  + 1);
    1881             :                                 docu += ::rtl::OString("\n");
    1882             :                         }
    1883             :         YY_BREAK
    1884             : case 75:
    1885             : /* rule 75 can match eol */
    1886             : YY_RULE_SETUP
    1887             : #line 435 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1888             : {
    1889             :                                 idlc()->setLineNumber( idlc()->getLineNumber()  + 1);
    1890             :                                 docu += ::rtl::OString(yytext);
    1891             :                         }
    1892             :         YY_BREAK
    1893             : case 76:
    1894             : YY_RULE_SETUP
    1895             : #line 440 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1896             : {
    1897             :                                 docu += ::rtl::OString(yytext);
    1898             :                         }
    1899             :         YY_BREAK
    1900             : case 77:
    1901             : /* rule 77 can match eol */
    1902             : YY_RULE_SETUP
    1903             : #line 444 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1904             : {
    1905             :                                 docu = docu.trim();
    1906             :                                 sal_Int32 nIndex = 0;
    1907             :                                 int count = 0;
    1908             :                                 do { docu.getToken( 0, '\n', nIndex ); count++; } while( nIndex != -1 );
    1909             :                                 idlc()->setLineNumber( beginLine + count - 1);                
    1910             :                                 if ( (nIndex = docu.indexOf("/*")) >= 0 || (nIndex = docu.indexOf("///")) >= 0 )
    1911             :                                 {
    1912             :                     if ( 0 != nIndex &&
    1913             :                          (docu.getStr()[nIndex - 1] != '"' && docu.getStr()[nIndex - 1] != ':') )
    1914             :                         idlc()->error()->syntaxError(PS_NoState, idlc()->getLineNumber(),
    1915             :                                                      "nested documentation strings are not allowed!");
    1916             :                                 }
    1917             :                                 idlc()->setDocumentation(docu);
    1918             :                                 BEGIN( INITIAL );
    1919             :                         }
    1920             :         YY_BREAK
    1921             : case 78:
    1922             : YY_RULE_SETUP
    1923             : #line 461 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1924             : {
    1925             :                                 docu = docu.trim();
    1926             :                                 sal_Int32 nIndex = 0;
    1927             :                                 int count = 0;
    1928             :                                 do { docu.getToken( 0, '\n', nIndex ); count++; } while( nIndex != -1 );
    1929             :                                 idlc()->setLineNumber( beginLine + count - 1);
    1930             :                                 if ( docu.indexOf("/*") >= 0 || docu.indexOf("//") >= 0 )
    1931             :                                 {
    1932             :                     if ( 0 != nIndex &&
    1933             :                          (docu.getStr()[nIndex - 1] != '"' && docu.getStr()[nIndex - 1] != ':') )
    1934             :                         idlc()->error()->syntaxError(PS_NoState, idlc()->getLineNumber(),
    1935             :                                                      "nested documentation strings are not allowed!");
    1936             :                                 }
    1937             :                                 idlc()->setDocumentation(docu);
    1938             :                                 BEGIN( INITIAL );
    1939             :                         }
    1940             :         YY_BREAK
    1941             : case 79:
    1942             : /* rule 79 can match eol */
    1943             : YY_RULE_SETUP
    1944             : #line 478 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1945             : {
    1946             :                                 /* only a comment */
    1947             :                                 ::rtl::OString docStr(yytext);
    1948             :                                 docStr = docStr.copy( 0, docStr.lastIndexOf('\n') );
    1949             :                                 docStr = docStr.copy( docStr.lastIndexOf('/')+1 );
    1950             :                                 docStr = docStr.trim();
    1951             :                                 idlc()->incLineNumber();
    1952             :                         }
    1953             :         YY_BREAK
    1954             : case 80:
    1955             : /* rule 80 can match eol */
    1956             : YY_RULE_SETUP
    1957             : #line 487 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1958             : {
    1959             :                                 ::rtl::OString docStr(yytext);
    1960             :                                 docStr = docStr.copy( 0, docStr.lastIndexOf('\n') );
    1961             :                                 docStr = docStr.copy( docStr.lastIndexOf('/')+1 );
    1962             :                                 docStr = docStr.trim();
    1963             :                                 idlc()->incLineNumber();
    1964             :                                 idlc()->setDocumentation(docStr);
    1965             :                         }
    1966             :         YY_BREAK
    1967             : case 81:
    1968             : YY_RULE_SETUP
    1969             : #line 496 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1970             : return yytext[0];
    1971             :         YY_BREAK
    1972             : case 82:
    1973             : /* rule 82 can match eol */
    1974             : YY_RULE_SETUP
    1975             : #line 498 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1976             : {
    1977             :         parseLineAndFile(yytext);
    1978             : }
    1979             :         YY_BREAK
    1980             : case 83:
    1981             : /* rule 83 can match eol */
    1982             : YY_RULE_SETUP
    1983             : #line 502 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1984             : {
    1985             :         parseLineAndFile(yytext);
    1986             : }
    1987             :         YY_BREAK
    1988             : case 84:
    1989             : /* rule 84 can match eol */
    1990             : YY_RULE_SETUP
    1991             : #line 506 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    1992             : {
    1993             :         parseLineAndFile(yytext);
    1994             : }
    1995             :         YY_BREAK
    1996             : case 85:
    1997             : /* rule 85 can match eol */
    1998             : YY_RULE_SETUP
    1999             : #line 510 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    2000             : {
    2001             :         parseLineAndFile(yytext);
    2002             : }
    2003             :         YY_BREAK
    2004             : case 86:
    2005             : /* rule 86 can match eol */
    2006             : YY_RULE_SETUP
    2007             : #line 514 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    2008             : {
    2009             :         /* ignore cpp ident */
    2010             :         idlc()->incLineNumber();
    2011             : }
    2012             :         YY_BREAK
    2013             : case 87:
    2014             : /* rule 87 can match eol */
    2015             : YY_RULE_SETUP
    2016             : #line 519 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    2017             : {       /* remember pragma */
    2018             :         idlParsePragma(yytext);
    2019             :         idlc()->incLineNumber();
    2020             : }
    2021             :         YY_BREAK
    2022             : case 88:
    2023             : YY_RULE_SETUP
    2024             : #line 524 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    2025             : ECHO;
    2026             :         YY_BREAK
    2027             : #line 2028 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/idlc/source/scanner.cxx"
    2028             : case YY_STATE_EOF(INITIAL):
    2029             : case YY_STATE_EOF(DOCU):
    2030             : case YY_STATE_EOF(COMMENT):
    2031        5600 :         yyterminate();
    2032             : 
    2033             :         case YY_END_OF_BUFFER:
    2034             :                 {
    2035             :                 /* Amount of text matched not including the EOB char. */
    2036       34668 :                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
    2037             : 
    2038             :                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
    2039       34668 :                 *yy_cp = (yy_hold_char);
    2040             :                 YY_RESTORE_YY_MORE_OFFSET
    2041             : 
    2042       34668 :                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
    2043             :                         {
    2044             :                         /* We're scanning a new file or input source.  It's
    2045             :                          * possible that this happened because the user
    2046             :                          * just pointed yyin at a new source and called
    2047             :                          * yylex().  If so, then we have to assure
    2048             :                          * consistency between YY_CURRENT_BUFFER and our
    2049             :                          * globals.  Here is the right place to do so, because
    2050             :                          * this is the first action (other than possibly a
    2051             :                          * back-up) that will match for the new input source.
    2052             :                          */
    2053        5600 :                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
    2054        5600 :                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
    2055        5600 :                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
    2056             :                         }
    2057             : 
    2058             :                 /* Note that here we test for yy_c_buf_p "<=" to the position
    2059             :                  * of the first EOB in the buffer, since yy_c_buf_p will
    2060             :                  * already have been incremented past the NUL character
    2061             :                  * (since all states make transitions on EOB to the
    2062             :                  * end-of-buffer state).  Contrast this with the test
    2063             :                  * in input().
    2064             :                  */
    2065       34668 :                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
    2066             :                         { /* This was really a NUL. */
    2067             :                         yy_state_type yy_next_state;
    2068             : 
    2069           0 :                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
    2070             : 
    2071           0 :                         yy_current_state = yy_get_previous_state(  );
    2072             : 
    2073             :                         /* Okay, we're now positioned to make the NUL
    2074             :                          * transition.  We couldn't have
    2075             :                          * yy_get_previous_state() go ahead and do it
    2076             :                          * for us because it doesn't know how to deal
    2077             :                          * with the possibility of jamming (and we don't
    2078             :                          * want to build jamming into it because then it
    2079             :                          * will run more slowly).
    2080             :                          */
    2081             : 
    2082           0 :                         yy_next_state = yy_try_NUL_trans( yy_current_state );
    2083             : 
    2084           0 :                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
    2085             : 
    2086           0 :                         if ( yy_next_state )
    2087             :                                 {
    2088             :                                 /* Consume the NUL. */
    2089           0 :                                 yy_cp = ++(yy_c_buf_p);
    2090           0 :                                 yy_current_state = yy_next_state;
    2091           0 :                                 goto yy_match;
    2092             :                                 }
    2093             : 
    2094             :                         else
    2095             :                                 {
    2096           0 :                                 yy_cp = (yy_last_accepting_cpos);
    2097           0 :                                 yy_current_state = (yy_last_accepting_state);
    2098           0 :                                 goto yy_find_action;
    2099             :                                 }
    2100             :                         }
    2101             : 
    2102       34668 :                 else switch ( yy_get_next_buffer(  ) )
    2103             :                         {
    2104             :                         case EOB_ACT_END_OF_FILE:
    2105             :                                 {
    2106        5600 :                                 (yy_did_buffer_switch_on_eof) = 0;
    2107             : 
    2108             :                                 if ( yywrap( ) )
    2109             :                                         {
    2110             :                                         /* Note: because we've taken care in
    2111             :                                          * yy_get_next_buffer() to have set up
    2112             :                                          * yytext, we can now set up
    2113             :                                          * yy_c_buf_p so that if some total
    2114             :                                          * hoser (like flex itself) wants to
    2115             :                                          * call the scanner after we return the
    2116             :                                          * YY_NULL, it'll still work - another
    2117             :                                          * YY_NULL will get returned.
    2118             :                                          */
    2119        5600 :                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
    2120             : 
    2121        5600 :                                         yy_act = YY_STATE_EOF(YY_START);
    2122        5600 :                                         goto do_action;
    2123             :                                         }
    2124             : 
    2125             :                                 else
    2126             :                                         {
    2127             :                                         if ( ! (yy_did_buffer_switch_on_eof) )
    2128             :                                                 YY_NEW_FILE;
    2129             :                                         }
    2130             :                                 break;
    2131             :                                 }
    2132             : 
    2133             :                         case EOB_ACT_CONTINUE_SCAN:
    2134             :                                 (yy_c_buf_p) =
    2135       23468 :                                         (yytext_ptr) + yy_amount_of_matched_text;
    2136             : 
    2137       23468 :                                 yy_current_state = yy_get_previous_state(  );
    2138             : 
    2139       23468 :                                 yy_cp = (yy_c_buf_p);
    2140       23468 :                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
    2141       23468 :                                 goto yy_match;
    2142             : 
    2143             :                         case EOB_ACT_LAST_MATCH:
    2144             :                                 (yy_c_buf_p) =
    2145        5600 :                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
    2146             : 
    2147        5600 :                                 yy_current_state = yy_get_previous_state(  );
    2148             : 
    2149        5600 :                                 yy_cp = (yy_c_buf_p);
    2150        5600 :                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
    2151        5600 :                                 goto yy_find_action;
    2152             :                         }
    2153           0 :                 break;
    2154             :                 }
    2155             : 
    2156             :         default:
    2157             :                 YY_FATAL_ERROR(
    2158           0 :                         "fatal flex scanner internal error--no action found" );
    2159             :         } /* end of action switch */
    2160     9745125 :                 } /* end of scanning one token */
    2161             : } /* end of yylex */
    2162             : 
    2163             : /* yy_get_next_buffer - try to read in a new buffer
    2164             :  *
    2165             :  * Returns a code representing an action:
    2166             :  *      EOB_ACT_LAST_MATCH -
    2167             :  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
    2168             :  *      EOB_ACT_END_OF_FILE - end of file
    2169             :  */
    2170       34668 : static int yy_get_next_buffer (void)
    2171             : {
    2172       34668 :         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
    2173       34668 :         register char *source = (yytext_ptr);
    2174             :         register int number_to_move, i;
    2175             :         int ret_val;
    2176             : 
    2177       34668 :         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
    2178             :                 YY_FATAL_ERROR(
    2179           0 :                 "fatal flex scanner internal error--end of buffer missed" );
    2180             : 
    2181       34668 :         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
    2182             :                 { /* Don't try to fill the buffer, so this is an EOF. */
    2183           0 :                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
    2184             :                         {
    2185             :                         /* We matched a single character, the EOB, so
    2186             :                          * treat this as a final EOF.
    2187             :                          */
    2188           0 :                         return EOB_ACT_END_OF_FILE;
    2189             :                         }
    2190             : 
    2191             :                 else
    2192             :                         {
    2193             :                         /* We matched some text prior to the EOB, first
    2194             :                          * process it.
    2195             :                          */
    2196           0 :                         return EOB_ACT_LAST_MATCH;
    2197             :                         }
    2198             :                 }
    2199             : 
    2200             :         /* Try to read more data. */
    2201             : 
    2202             :         /* First move last chars to start of buffer. */
    2203       34668 :         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
    2204             : 
    2205      518348 :         for ( i = 0; i < number_to_move; ++i )
    2206      483680 :                 *(dest++) = *(source++);
    2207             : 
    2208       34668 :         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
    2209             :                 /* don't do the read, it's not guaranteed to return an EOF,
    2210             :                  * just force an EOF
    2211             :                  */
    2212        5600 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
    2213             : 
    2214             :         else
    2215             :                 {
    2216             :                         yy_size_t num_to_read =
    2217       29068 :                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
    2218             : 
    2219       58136 :                 while ( num_to_read <= 0 )
    2220             :                         { /* Not enough room in the buffer - grow it. */
    2221             : 
    2222             :                         /* just a shorter name for the current buffer */
    2223           0 :                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
    2224             : 
    2225             :                         int yy_c_buf_p_offset =
    2226           0 :                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
    2227             : 
    2228           0 :                         if ( b->yy_is_our_buffer )
    2229             :                                 {
    2230           0 :                                 yy_size_t new_size = b->yy_buf_size * 2;
    2231             : 
    2232           0 :                                 if ( new_size <= 0 )
    2233           0 :                                         b->yy_buf_size += b->yy_buf_size / 8;
    2234             :                                 else
    2235           0 :                                         b->yy_buf_size *= 2;
    2236             : 
    2237             :                                 b->yy_ch_buf = (char *)
    2238             :                                         /* Include room in for 2 EOB chars. */
    2239           0 :                                         yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
    2240             :                                 }
    2241             :                         else
    2242             :                                 /* Can't grow it, we don't own it. */
    2243           0 :                                 b->yy_ch_buf = 0;
    2244             : 
    2245           0 :                         if ( ! b->yy_ch_buf )
    2246             :                                 YY_FATAL_ERROR(
    2247           0 :                                 "fatal error - scanner input buffer overflow" );
    2248             : 
    2249           0 :                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
    2250             : 
    2251           0 :                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
    2252           0 :                                                 number_to_move - 1;
    2253             : 
    2254             :                         }
    2255             : 
    2256       29068 :                 if ( num_to_read > YY_READ_BUF_SIZE )
    2257       29068 :                         num_to_read = YY_READ_BUF_SIZE;
    2258             : 
    2259             :                 /* Read in more data. */
    2260       29068 :                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
    2261             :                         (yy_n_chars), num_to_read );
    2262             : 
    2263       29068 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    2264             :                 }
    2265             : 
    2266       34668 :         if ( (yy_n_chars) == 0 )
    2267             :                 {
    2268       11200 :                 if ( number_to_move == YY_MORE_ADJ )
    2269             :                         {
    2270        5600 :                         ret_val = EOB_ACT_END_OF_FILE;
    2271        5600 :                         yyrestart(yyin  );
    2272             :                         }
    2273             : 
    2274             :                 else
    2275             :                         {
    2276        5600 :                         ret_val = EOB_ACT_LAST_MATCH;
    2277        5600 :                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
    2278        5600 :                                 YY_BUFFER_EOF_PENDING;
    2279             :                         }
    2280             :                 }
    2281             : 
    2282             :         else
    2283       23468 :                 ret_val = EOB_ACT_CONTINUE_SCAN;
    2284             : 
    2285       34668 :         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
    2286             :                 /* Extend the array by 50%, plus the number we really need. */
    2287           0 :                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
    2288           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
    2289           0 :                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    2290           0 :                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
    2291             :         }
    2292             : 
    2293       34668 :         (yy_n_chars) += number_to_move;
    2294       34668 :         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
    2295       34668 :         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
    2296             : 
    2297       34668 :         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
    2298             : 
    2299       34668 :         return ret_val;
    2300             : }
    2301             : 
    2302             : /* yy_get_previous_state - get the state just before the EOB char was reached */
    2303             : 
    2304       29068 :     static yy_state_type yy_get_previous_state (void)
    2305             : {
    2306             :         register yy_state_type yy_current_state;
    2307             :         register char *yy_cp;
    2308             :     
    2309       29068 :         yy_current_state = (yy_start);
    2310       29068 :         yy_current_state += YY_AT_BOL();
    2311             : 
    2312      512748 :         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
    2313             :                 {
    2314      483680 :                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
    2315      483680 :                 if ( yy_accept[yy_current_state] )
    2316             :                         {
    2317      432940 :                         (yy_last_accepting_state) = yy_current_state;
    2318      432940 :                         (yy_last_accepting_cpos) = yy_cp;
    2319             :                         }
    2320     1426952 :                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    2321             :                         {
    2322      459592 :                         yy_current_state = (int) yy_def[yy_current_state];
    2323      459592 :                         if ( yy_current_state >= 411 )
    2324      453343 :                                 yy_c = yy_meta[(unsigned int) yy_c];
    2325             :                         }
    2326      483680 :                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    2327             :                 }
    2328             : 
    2329       29068 :         return yy_current_state;
    2330             : }
    2331             : 
    2332             : /* yy_try_NUL_trans - try to make a transition on the NUL character
    2333             :  *
    2334             :  * synopsis
    2335             :  *      next_state = yy_try_NUL_trans( current_state );
    2336             :  */
    2337           0 :     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
    2338             : {
    2339             :         register int yy_is_jam;
    2340           0 :         register char *yy_cp = (yy_c_buf_p);
    2341             : 
    2342           0 :         register YY_CHAR yy_c = 1;
    2343           0 :         if ( yy_accept[yy_current_state] )
    2344             :                 {
    2345           0 :                 (yy_last_accepting_state) = yy_current_state;
    2346           0 :                 (yy_last_accepting_cpos) = yy_cp;
    2347             :                 }
    2348           0 :         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    2349             :                 {
    2350           0 :                 yy_current_state = (int) yy_def[yy_current_state];
    2351           0 :                 if ( yy_current_state >= 411 )
    2352           0 :                         yy_c = yy_meta[(unsigned int) yy_c];
    2353             :                 }
    2354           0 :         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    2355           0 :         yy_is_jam = (yy_current_state == 410);
    2356             : 
    2357           0 :                 return yy_is_jam ? 0 : yy_current_state;
    2358             : }
    2359             : 
    2360           0 :     static void yyunput (int c, register char * yy_bp )
    2361             : {
    2362             :         register char *yy_cp;
    2363             :     
    2364           0 :     yy_cp = (yy_c_buf_p);
    2365             : 
    2366             :         /* undo effects of setting up yytext */
    2367           0 :         *yy_cp = (yy_hold_char);
    2368             : 
    2369           0 :         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
    2370             :                 { /* need to shift things up to make room */
    2371             :                 /* +2 for EOB chars. */
    2372           0 :                 register yy_size_t number_to_move = (yy_n_chars) + 2;
    2373           0 :                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
    2374           0 :                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
    2375             :                 register char *source =
    2376           0 :                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
    2377             : 
    2378           0 :                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    2379           0 :                         *--dest = *--source;
    2380             : 
    2381           0 :                 yy_cp += (int) (dest - source);
    2382           0 :                 yy_bp += (int) (dest - source);
    2383           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
    2384           0 :                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
    2385             : 
    2386           0 :                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
    2387           0 :                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
    2388             :                 }
    2389             : 
    2390           0 :         *--yy_cp = (char) c;
    2391             : 
    2392           0 :     if ( c == '\n' ){
    2393           0 :         --yylineno;
    2394             :     }
    2395             : 
    2396           0 :         (yytext_ptr) = yy_bp;
    2397           0 :         (yy_hold_char) = *yy_cp;
    2398           0 :         (yy_c_buf_p) = yy_cp;
    2399           0 : }
    2400             : 
    2401             : #ifndef YY_NO_INPUT
    2402             : #ifdef __cplusplus
    2403           0 :     static int yyinput (void)
    2404             : #else
    2405             :     static int input  (void)
    2406             : #endif
    2407             : 
    2408             : {
    2409             :         int c;
    2410             :     
    2411           0 :         *(yy_c_buf_p) = (yy_hold_char);
    2412             : 
    2413           0 :         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
    2414             :                 {
    2415             :                 /* yy_c_buf_p now points to the character we want to return.
    2416             :                  * If this occurs *before* the EOB characters, then it's a
    2417             :                  * valid NUL; if not, then we've hit the end of the buffer.
    2418             :                  */
    2419           0 :                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
    2420             :                         /* This was really a NUL. */
    2421           0 :                         *(yy_c_buf_p) = '\0';
    2422             : 
    2423             :                 else
    2424             :                         { /* need more input */
    2425           0 :                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
    2426           0 :                         ++(yy_c_buf_p);
    2427             : 
    2428           0 :                         switch ( yy_get_next_buffer(  ) )
    2429             :                                 {
    2430             :                                 case EOB_ACT_LAST_MATCH:
    2431             :                                         /* This happens because yy_g_n_b()
    2432             :                                          * sees that we've accumulated a
    2433             :                                          * token and flags that we need to
    2434             :                                          * try matching the token before
    2435             :                                          * proceeding.  But for input(),
    2436             :                                          * there's no matching to consider.
    2437             :                                          * So convert the EOB_ACT_LAST_MATCH
    2438             :                                          * to EOB_ACT_END_OF_FILE.
    2439             :                                          */
    2440             : 
    2441             :                                         /* Reset buffer status. */
    2442           0 :                                         yyrestart(yyin );
    2443             : 
    2444             :                                         /*FALLTHROUGH*/
    2445             : 
    2446             :                                 case EOB_ACT_END_OF_FILE:
    2447             :                                         {
    2448             :                                         if ( yywrap( ) )
    2449           0 :                                                 return EOF;
    2450             : 
    2451             :                                         if ( ! (yy_did_buffer_switch_on_eof) )
    2452             :                                                 YY_NEW_FILE;
    2453             : #ifdef __cplusplus
    2454             :                                         return yyinput();
    2455             : #else
    2456             :                                         return input();
    2457             : #endif
    2458             :                                         }
    2459             : 
    2460             :                                 case EOB_ACT_CONTINUE_SCAN:
    2461           0 :                                         (yy_c_buf_p) = (yytext_ptr) + offset;
    2462           0 :                                         break;
    2463             :                                 }
    2464             :                         }
    2465             :                 }
    2466             : 
    2467           0 :         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
    2468           0 :         *(yy_c_buf_p) = '\0';   /* preserve yytext */
    2469           0 :         (yy_hold_char) = *++(yy_c_buf_p);
    2470             : 
    2471           0 :         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
    2472           0 :         if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
    2473             :                    
    2474           0 :     yylineno++;
    2475             : ;
    2476             : 
    2477           0 :         return c;
    2478             : }
    2479             : #endif  /* ifndef YY_NO_INPUT */
    2480             : 
    2481             : /** Immediately switch to a different input stream.
    2482             :  * @param input_file A readable stream.
    2483             :  * 
    2484             :  * @note This function does not reset the start condition to @c INITIAL .
    2485             :  */
    2486        5600 :     void yyrestart  (FILE * input_file )
    2487             : {
    2488             :     
    2489        5600 :         if ( ! YY_CURRENT_BUFFER ){
    2490           0 :         yyensure_buffer_stack ();
    2491           0 :                 YY_CURRENT_BUFFER_LVALUE =
    2492           0 :             yy_create_buffer(yyin,YY_BUF_SIZE );
    2493             :         }
    2494             : 
    2495        5600 :         yy_init_buffer(YY_CURRENT_BUFFER,input_file );
    2496        5600 :         yy_load_buffer_state( );
    2497        5600 : }
    2498             : 
    2499             : /** Switch to a different input buffer.
    2500             :  * @param new_buffer The new input buffer.
    2501             :  * 
    2502             :  */
    2503           0 :     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
    2504             : {
    2505             :     
    2506             :         /* TODO. We should be able to replace this entire function body
    2507             :          * with
    2508             :          *              yypop_buffer_state();
    2509             :          *              yypush_buffer_state(new_buffer);
    2510             :      */
    2511           0 :         yyensure_buffer_stack ();
    2512           0 :         if ( YY_CURRENT_BUFFER == new_buffer )
    2513           0 :                 return;
    2514             : 
    2515           0 :         if ( YY_CURRENT_BUFFER )
    2516             :                 {
    2517             :                 /* Flush out information for old buffer. */
    2518           0 :                 *(yy_c_buf_p) = (yy_hold_char);
    2519           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
    2520           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    2521             :                 }
    2522             : 
    2523           0 :         YY_CURRENT_BUFFER_LVALUE = new_buffer;
    2524           0 :         yy_load_buffer_state( );
    2525             : 
    2526             :         /* We don't actually know whether we did this switch during
    2527             :          * EOF (yywrap()) processing, but the only time this flag
    2528             :          * is looked at is after yywrap() is called, so it's safe
    2529             :          * to go ahead and always set it.
    2530             :          */
    2531           0 :         (yy_did_buffer_switch_on_eof) = 1;
    2532             : }
    2533             : 
    2534       11652 : static void yy_load_buffer_state  (void)
    2535             : {
    2536       11652 :         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
    2537       11652 :         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
    2538       11652 :         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
    2539       11652 :         (yy_hold_char) = *(yy_c_buf_p);
    2540       11652 : }
    2541             : 
    2542             : /** Allocate and initialize an input buffer state.
    2543             :  * @param file A readable stream.
    2544             :  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
    2545             :  * 
    2546             :  * @return the allocated buffer state.
    2547             :  */
    2548         452 :     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
    2549             : {
    2550             :         YY_BUFFER_STATE b;
    2551             :     
    2552         452 :         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
    2553         452 :         if ( ! b )
    2554           0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
    2555             : 
    2556         452 :         b->yy_buf_size = size;
    2557             : 
    2558             :         /* yy_ch_buf has to be 2 characters longer than the size given because
    2559             :          * we need to put in 2 end-of-buffer characters.
    2560             :          */
    2561         452 :         b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
    2562         452 :         if ( ! b->yy_ch_buf )
    2563           0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
    2564             : 
    2565         452 :         b->yy_is_our_buffer = 1;
    2566             : 
    2567         452 :         yy_init_buffer(b,file );
    2568             : 
    2569         452 :         return b;
    2570             : }
    2571             : 
    2572             : /** Destroy the buffer.
    2573             :  * @param b a buffer created with yy_create_buffer()
    2574             :  * 
    2575             :  */
    2576           0 :     void yy_delete_buffer (YY_BUFFER_STATE  b )
    2577             : {
    2578             :     
    2579           0 :         if ( ! b )
    2580           0 :                 return;
    2581             : 
    2582           0 :         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
    2583           0 :                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
    2584             : 
    2585           0 :         if ( b->yy_is_our_buffer )
    2586           0 :                 yyfree((void *) b->yy_ch_buf  );
    2587             : 
    2588           0 :         yyfree((void *) b  );
    2589             : }
    2590             : 
    2591             : /* Initializes or reinitializes a buffer.
    2592             :  * This function is sometimes called more than once on the same buffer,
    2593             :  * such as during a yyrestart() or at EOF.
    2594             :  */
    2595        6052 :     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
    2596             : 
    2597             : {
    2598        6052 :         int oerrno = errno;
    2599             :     
    2600        6052 :         yy_flush_buffer(b );
    2601             : 
    2602        6052 :         b->yy_input_file = file;
    2603        6052 :         b->yy_fill_buffer = 1;
    2604             : 
    2605             :     /* If b is the current buffer, then yy_init_buffer was _probably_
    2606             :      * called from yyrestart() or through yy_get_next_buffer.
    2607             :      * In that case, we don't want to reset the lineno or column.
    2608             :      */
    2609        6052 :     if (b != YY_CURRENT_BUFFER){
    2610         452 :         b->yy_bs_lineno = 1;
    2611         452 :         b->yy_bs_column = 0;
    2612             :     }
    2613             : 
    2614        6052 :         b->yy_is_interactive = 0;
    2615             :     
    2616        6052 :         errno = oerrno;
    2617        6052 : }
    2618             : 
    2619             : /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
    2620             :  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
    2621             :  * 
    2622             :  */
    2623        6052 :     void yy_flush_buffer (YY_BUFFER_STATE  b )
    2624             : {
    2625        6052 :         if ( ! b )
    2626        6052 :                 return;
    2627             : 
    2628        6052 :         b->yy_n_chars = 0;
    2629             : 
    2630             :         /* We always need two end-of-buffer characters.  The first causes
    2631             :          * a transition to the end-of-buffer state.  The second causes
    2632             :          * a jam in that state.
    2633             :          */
    2634        6052 :         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
    2635        6052 :         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
    2636             : 
    2637        6052 :         b->yy_buf_pos = &b->yy_ch_buf[0];
    2638             : 
    2639        6052 :         b->yy_at_bol = 1;
    2640        6052 :         b->yy_buffer_status = YY_BUFFER_NEW;
    2641             : 
    2642        6052 :         if ( b == YY_CURRENT_BUFFER )
    2643        5600 :                 yy_load_buffer_state( );
    2644             : }
    2645             : 
    2646             : /** Pushes the new state onto the stack. The new state becomes
    2647             :  *  the current state. This function will allocate the stack
    2648             :  *  if necessary.
    2649             :  *  @param new_buffer The new state.
    2650             :  *  
    2651             :  */
    2652           0 : void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
    2653             : {
    2654           0 :         if (new_buffer == NULL)
    2655           0 :                 return;
    2656             : 
    2657           0 :         yyensure_buffer_stack();
    2658             : 
    2659             :         /* This block is copied from yy_switch_to_buffer. */
    2660           0 :         if ( YY_CURRENT_BUFFER )
    2661             :                 {
    2662             :                 /* Flush out information for old buffer. */
    2663           0 :                 *(yy_c_buf_p) = (yy_hold_char);
    2664           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
    2665           0 :                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
    2666             :                 }
    2667             : 
    2668             :         /* Only push if top exists. Otherwise, replace top. */
    2669           0 :         if (YY_CURRENT_BUFFER)
    2670           0 :                 (yy_buffer_stack_top)++;
    2671           0 :         YY_CURRENT_BUFFER_LVALUE = new_buffer;
    2672             : 
    2673             :         /* copied from yy_switch_to_buffer. */
    2674           0 :         yy_load_buffer_state( );
    2675           0 :         (yy_did_buffer_switch_on_eof) = 1;
    2676             : }
    2677             : 
    2678             : /** Removes and deletes the top of the stack, if present.
    2679             :  *  The next element becomes the new top.
    2680             :  *  
    2681             :  */
    2682           0 : void yypop_buffer_state (void)
    2683             : {
    2684           0 :         if (!YY_CURRENT_BUFFER)
    2685           0 :                 return;
    2686             : 
    2687           0 :         yy_delete_buffer(YY_CURRENT_BUFFER );
    2688           0 :         YY_CURRENT_BUFFER_LVALUE = NULL;
    2689           0 :         if ((yy_buffer_stack_top) > 0)
    2690           0 :                 --(yy_buffer_stack_top);
    2691             : 
    2692           0 :         if (YY_CURRENT_BUFFER) {
    2693           0 :                 yy_load_buffer_state( );
    2694           0 :                 (yy_did_buffer_switch_on_eof) = 1;
    2695             :         }
    2696             : }
    2697             : 
    2698             : /* Allocates the stack if it does not exist.
    2699             :  *  Guarantees space for at least one push.
    2700             :  */
    2701         452 : static void yyensure_buffer_stack (void)
    2702             : {
    2703             :         yy_size_t num_to_alloc;
    2704             :     
    2705         452 :         if (!(yy_buffer_stack)) {
    2706             : 
    2707             :                 /* First allocation is just for 2 elements, since we don't know if this
    2708             :                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
    2709             :                  * immediate realloc on the next call.
    2710             :          */
    2711         452 :                 num_to_alloc = 1;
    2712             :                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
    2713             :                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
    2714         452 :                                                                 );
    2715         452 :                 if ( ! (yy_buffer_stack) )
    2716           0 :                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
    2717             :                                                                   
    2718         452 :                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
    2719             :                                 
    2720         452 :                 (yy_buffer_stack_max) = num_to_alloc;
    2721         452 :                 (yy_buffer_stack_top) = 0;
    2722         904 :                 return;
    2723             :         }
    2724             : 
    2725           0 :         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
    2726             : 
    2727             :                 /* Increase the buffer to prepare for a possible push. */
    2728           0 :                 int grow_size = 8 /* arbitrary grow size */;
    2729             : 
    2730           0 :                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
    2731             :                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
    2732             :                                                                 ((yy_buffer_stack),
    2733             :                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
    2734           0 :                                                                 );
    2735           0 :                 if ( ! (yy_buffer_stack) )
    2736           0 :                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
    2737             : 
    2738             :                 /* zero only the new slots.*/
    2739           0 :                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
    2740           0 :                 (yy_buffer_stack_max) = num_to_alloc;
    2741             :         }
    2742             : }
    2743             : 
    2744             : /** Setup the input buffer state to scan directly from a user-specified character buffer.
    2745             :  * @param base the character buffer
    2746             :  * @param size the size in bytes of the character buffer
    2747             :  * 
    2748             :  * @return the newly allocated buffer state object. 
    2749             :  */
    2750           0 : YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
    2751             : {
    2752             :         YY_BUFFER_STATE b;
    2753             :     
    2754           0 :         if ( size < 2 ||
    2755           0 :              base[size-2] != YY_END_OF_BUFFER_CHAR ||
    2756           0 :              base[size-1] != YY_END_OF_BUFFER_CHAR )
    2757             :                 /* They forgot to leave room for the EOB's. */
    2758           0 :                 return 0;
    2759             : 
    2760           0 :         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
    2761           0 :         if ( ! b )
    2762           0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
    2763             : 
    2764           0 :         b->yy_buf_size = size - 2;   /* "- 2" to take care of EOB's */
    2765           0 :         b->yy_buf_pos = b->yy_ch_buf = base;
    2766           0 :         b->yy_is_our_buffer = 0;
    2767           0 :         b->yy_input_file = 0;
    2768           0 :         b->yy_n_chars = b->yy_buf_size;
    2769           0 :         b->yy_is_interactive = 0;
    2770           0 :         b->yy_at_bol = 1;
    2771           0 :         b->yy_fill_buffer = 0;
    2772           0 :         b->yy_buffer_status = YY_BUFFER_NEW;
    2773             : 
    2774           0 :         yy_switch_to_buffer(b  );
    2775             : 
    2776           0 :         return b;
    2777             : }
    2778             : 
    2779             : /** Setup the input buffer state to scan a string. The next call to yylex() will
    2780             :  * scan from a @e copy of @a str.
    2781             :  * @param yystr a NUL-terminated string to scan
    2782             :  * 
    2783             :  * @return the newly allocated buffer state object.
    2784             :  * @note If you want to scan bytes that may contain NUL values, then use
    2785             :  *       yy_scan_bytes() instead.
    2786             :  */
    2787           0 : YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
    2788             : {
    2789             :     
    2790           0 :         return yy_scan_bytes(yystr,strlen(yystr) );
    2791             : }
    2792             : 
    2793             : /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
    2794             :  * scan from a @e copy of @a bytes.
    2795             :  * @param yybytes the byte buffer to scan
    2796             :  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
    2797             :  * 
    2798             :  * @return the newly allocated buffer state object.
    2799             :  */
    2800           0 : YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
    2801             : {
    2802             :         YY_BUFFER_STATE b;
    2803             :         char *buf;
    2804             :         yy_size_t n;
    2805             :         int i;
    2806             :     
    2807             :         /* Get memory for full buffer, including space for trailing EOB's. */
    2808           0 :         n = _yybytes_len + 2;
    2809           0 :         buf = (char *) yyalloc(n  );
    2810           0 :         if ( ! buf )
    2811           0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
    2812             : 
    2813           0 :         for ( i = 0; i < _yybytes_len; ++i )
    2814           0 :                 buf[i] = yybytes[i];
    2815             : 
    2816           0 :         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
    2817             : 
    2818           0 :         b = yy_scan_buffer(buf,n );
    2819           0 :         if ( ! b )
    2820           0 :                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
    2821             : 
    2822             :         /* It's okay to grow etc. this buffer, and we should throw it
    2823             :          * away when we're done.
    2824             :          */
    2825           0 :         b->yy_is_our_buffer = 1;
    2826             : 
    2827           0 :         return b;
    2828             : }
    2829             : 
    2830             : #ifndef YY_EXIT_FAILURE
    2831             : #define YY_EXIT_FAILURE 2
    2832             : #endif
    2833             : 
    2834           0 : static void yy_fatal_error (yyconst char* msg )
    2835             : {
    2836           0 :         (void) fprintf( stderr, "%s\n", msg );
    2837           0 :         exit( YY_EXIT_FAILURE );
    2838             : }
    2839             : 
    2840             : /* Redefine yyless() so it works in section 3 code. */
    2841             : 
    2842             : #undef yyless
    2843             : #define yyless(n) \
    2844             :         do \
    2845             :                 { \
    2846             :                 /* Undo effects of setting up yytext. */ \
    2847             :         int yyless_macro_arg = (n); \
    2848             :         YY_LESS_LINENO(yyless_macro_arg);\
    2849             :                 yytext[yyleng] = (yy_hold_char); \
    2850             :                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
    2851             :                 (yy_hold_char) = *(yy_c_buf_p); \
    2852             :                 *(yy_c_buf_p) = '\0'; \
    2853             :                 yyleng = yyless_macro_arg; \
    2854             :                 } \
    2855             :         while ( 0 )
    2856             : 
    2857             : /* Accessor  methods (get/set functions) to struct members. */
    2858             : 
    2859             : /** Get the current line number.
    2860             :  * 
    2861             :  */
    2862           0 : int yyget_lineno  (void)
    2863             : {
    2864             :         
    2865           0 :     return yylineno;
    2866             : }
    2867             : 
    2868             : /** Get the input stream.
    2869             :  * 
    2870             :  */
    2871           0 : FILE *yyget_in  (void)
    2872             : {
    2873           0 :         return yyin;
    2874             : }
    2875             : 
    2876             : /** Get the output stream.
    2877             :  * 
    2878             :  */
    2879           0 : FILE *yyget_out  (void)
    2880             : {
    2881           0 :         return yyout;
    2882             : }
    2883             : 
    2884             : /** Get the length of the current token.
    2885             :  * 
    2886             :  */
    2887           0 : yy_size_t yyget_leng  (void)
    2888             : {
    2889           0 :         return yyleng;
    2890             : }
    2891             : 
    2892             : /** Get the current token.
    2893             :  * 
    2894             :  */
    2895             : 
    2896           0 : char *yyget_text  (void)
    2897             : {
    2898           0 :         return yytext;
    2899             : }
    2900             : 
    2901             : /** Set the current line number.
    2902             :  * @param line_number
    2903             :  * 
    2904             :  */
    2905           0 : void yyset_lineno (int  line_number )
    2906             : {
    2907             :     
    2908           0 :     yylineno = line_number;
    2909           0 : }
    2910             : 
    2911             : /** Set the input stream. This does not discard the current
    2912             :  * input buffer.
    2913             :  * @param in_str A readable stream.
    2914             :  * 
    2915             :  * @see yy_switch_to_buffer
    2916             :  */
    2917           0 : void yyset_in (FILE *  in_str )
    2918             : {
    2919           0 :         yyin = in_str ;
    2920           0 : }
    2921             : 
    2922           0 : void yyset_out (FILE *  out_str )
    2923             : {
    2924           0 :         yyout = out_str ;
    2925           0 : }
    2926             : 
    2927           0 : int yyget_debug  (void)
    2928             : {
    2929           0 :         return yy_flex_debug;
    2930             : }
    2931             : 
    2932           0 : void yyset_debug (int  bdebug )
    2933             : {
    2934           0 :         yy_flex_debug = bdebug ;
    2935           0 : }
    2936             : 
    2937           0 : static int yy_init_globals (void)
    2938             : {
    2939             :         /* Initialization is the same as for the non-reentrant scanner.
    2940             :      * This function is called from yylex_destroy(), so don't allocate here.
    2941             :      */
    2942             : 
    2943             :     /* We do not touch yylineno unless the option is enabled. */
    2944           0 :     yylineno =  1;
    2945             :     
    2946           0 :     (yy_buffer_stack) = 0;
    2947           0 :     (yy_buffer_stack_top) = 0;
    2948           0 :     (yy_buffer_stack_max) = 0;
    2949           0 :     (yy_c_buf_p) = (char *) 0;
    2950           0 :     (yy_init) = 0;
    2951           0 :     (yy_start) = 0;
    2952             : 
    2953             : /* Defined in main.c */
    2954             : #ifdef YY_STDINIT
    2955             :     yyin = stdin;
    2956             :     yyout = stdout;
    2957             : #else
    2958           0 :     yyin = (FILE *) 0;
    2959           0 :     yyout = (FILE *) 0;
    2960             : #endif
    2961             : 
    2962             :     /* For future reference: Set errno on error, since we are called by
    2963             :      * yylex_init()
    2964             :      */
    2965           0 :     return 0;
    2966             : }
    2967             : 
    2968             : /* yylex_destroy is for both reentrant and non-reentrant scanners. */
    2969           0 : int yylex_destroy  (void)
    2970             : {
    2971             :     
    2972             :     /* Pop the buffer stack, destroying each element. */
    2973           0 :         while(YY_CURRENT_BUFFER){
    2974           0 :                 yy_delete_buffer(YY_CURRENT_BUFFER  );
    2975           0 :                 YY_CURRENT_BUFFER_LVALUE = NULL;
    2976           0 :                 yypop_buffer_state();
    2977             :         }
    2978             : 
    2979             :         /* Destroy the stack itself. */
    2980           0 :         yyfree((yy_buffer_stack) );
    2981           0 :         (yy_buffer_stack) = NULL;
    2982             : 
    2983             :     /* Reset the globals. This is important in a non-reentrant scanner so the next time
    2984             :      * yylex() is called, initialization will occur. */
    2985           0 :     yy_init_globals( );
    2986             : 
    2987           0 :     return 0;
    2988             : }
    2989             : 
    2990             : /*
    2991             :  * Internal utility routines.
    2992             :  */
    2993             : 
    2994             : #ifndef yytext_ptr
    2995             : static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
    2996             : {
    2997             :         register int i;
    2998             :         for ( i = 0; i < n; ++i )
    2999             :                 s1[i] = s2[i];
    3000             : }
    3001             : #endif
    3002             : 
    3003             : #ifdef YY_NEED_STRLEN
    3004             : static int yy_flex_strlen (yyconst char * s )
    3005             : {
    3006             :         register int n;
    3007             :         for ( n = 0; s[n]; ++n )
    3008             :                 ;
    3009             : 
    3010             :         return n;
    3011             : }
    3012             : #endif
    3013             : 
    3014        1356 : void *yyalloc (yy_size_t  size )
    3015             : {
    3016        1356 :         return (void *) malloc( size );
    3017             : }
    3018             : 
    3019           0 : void *yyrealloc  (void * ptr, yy_size_t  size )
    3020             : {
    3021             :         /* The cast to (char *) in the following accommodates both
    3022             :          * implementations that use char* generic pointers, and those
    3023             :          * that use void* generic pointers.  It works with the latter
    3024             :          * because both ANSI C and C++ allow castless assignment from
    3025             :          * any pointer type to void*, and deal with argument conversions
    3026             :          * as though doing an assignment.
    3027             :          */
    3028           0 :         return (void *) realloc( (char *) ptr, size );
    3029             : }
    3030             : 
    3031           0 : void yyfree (void * ptr )
    3032             : {
    3033           0 :         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
    3034        1356 : }
    3035             : 
    3036             : #define YYTABLES_NAME "yytables"
    3037             : 
    3038             : #line 524 "/usr/local/src/libreoffice/idlc/source/scanner.l"
    3039             : 
    3040             : 
    3041             : 

Generated by: LCOV version 1.10