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

Generated by: LCOV version 1.10