dcop Library API Documentation

scanner.cc

00001 #line 2 "scanner.cc"
00002 
00003 #line 4 "scanner.cc"
00004 
00005 #define  YY_INT_ALIGNED short int
00006 
00007 /* A lexical scanner generated by flex */
00008 
00009 #define FLEX_SCANNER
00010 #define YY_FLEX_MAJOR_VERSION 2
00011 #define YY_FLEX_MINOR_VERSION 5
00012 #define YY_FLEX_SUBMINOR_VERSION 31
00013 #if YY_FLEX_SUBMINOR_VERSION > 0
00014 #define FLEX_BETA
00015 #endif
00016 
00017 /* First, we deal with  platform-specific or compiler-specific issues. */
00018 
00019 /* begin standard C headers. */
00020 #include <stdio.h>
00021 #include <string.h>
00022 #include <errno.h>
00023 #include <stdlib.h>
00024 
00025 /* end standard C headers. */
00026 
00027 /* flex integer type definitions */
00028 
00029 #ifndef FLEXINT_H
00030 #define FLEXINT_H
00031 
00032 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00033 
00034 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
00035 #include <inttypes.h>
00036 typedef int8_t flex_int8_t;
00037 typedef uint8_t flex_uint8_t;
00038 typedef int16_t flex_int16_t;
00039 typedef uint16_t flex_uint16_t;
00040 typedef int32_t flex_int32_t;
00041 typedef uint32_t flex_uint32_t;
00042 #else
00043 typedef signed char flex_int8_t;
00044 typedef short int flex_int16_t;
00045 typedef int flex_int32_t;
00046 typedef unsigned char flex_uint8_t; 
00047 typedef unsigned short int flex_uint16_t;
00048 typedef unsigned int flex_uint32_t;
00049 #endif /* ! C99 */
00050 
00051 /* Limits of integral types. */
00052 #ifndef INT8_MIN
00053 #define INT8_MIN               (-128)
00054 #endif
00055 #ifndef INT16_MIN
00056 #define INT16_MIN              (-32767-1)
00057 #endif
00058 #ifndef INT32_MIN
00059 #define INT32_MIN              (-2147483647-1)
00060 #endif
00061 #ifndef INT8_MAX
00062 #define INT8_MAX               (127)
00063 #endif
00064 #ifndef INT16_MAX
00065 #define INT16_MAX              (32767)
00066 #endif
00067 #ifndef INT32_MAX
00068 #define INT32_MAX              (2147483647)
00069 #endif
00070 #ifndef UINT8_MAX
00071 #define UINT8_MAX              (255U)
00072 #endif
00073 #ifndef UINT16_MAX
00074 #define UINT16_MAX             (65535U)
00075 #endif
00076 #ifndef UINT32_MAX
00077 #define UINT32_MAX             (4294967295U)
00078 #endif
00079 
00080 #endif /* ! FLEXINT_H */
00081 
00082 #ifdef __cplusplus
00083 
00084 /* The "const" storage-class-modifier is valid. */
00085 #define YY_USE_CONST
00086 
00087 #else   /* ! __cplusplus */
00088 
00089 #if __STDC__
00090 
00091 #define YY_USE_CONST
00092 
00093 #endif  /* __STDC__ */
00094 #endif  /* ! __cplusplus */
00095 
00096 #ifdef YY_USE_CONST
00097 #define yyconst const
00098 #else
00099 #define yyconst
00100 #endif
00101 
00102 /* Returned upon end-of-file. */
00103 #define YY_NULL 0
00104 
00105 /* Promotes a possibly negative, possibly signed char to an unsigned
00106  * integer for use as an array index.  If the signed char is negative,
00107  * we want to instead treat it as an 8-bit unsigned char, hence the
00108  * double cast.
00109  */
00110 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00111 
00112 /* Enter a start condition.  This macro really ought to take a parameter,
00113  * but we do it the disgusting crufty way forced on us by the ()-less
00114  * definition of BEGIN.
00115  */
00116 #define BEGIN (yy_start) = 1 + 2 *
00117 
00118 /* Translate the current start state into a value that can be later handed
00119  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00120  * compatibility.
00121  */
00122 #define YY_START (((yy_start) - 1) / 2)
00123 #define YYSTATE YY_START
00124 
00125 /* Action number for EOF rule of a given start state. */
00126 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00127 
00128 /* Special action meaning "start processing a new file". */
00129 #define YY_NEW_FILE yyrestart(yyin  )
00130 
00131 #define YY_END_OF_BUFFER_CHAR 0
00132 
00133 /* Size of default input buffer. */
00134 #ifndef YY_BUF_SIZE
00135 #define YY_BUF_SIZE 16384
00136 #endif
00137 
00138 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00139 #define YY_TYPEDEF_YY_BUFFER_STATE
00140 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00141 #endif
00142 
00143 extern int yyleng;
00144 
00145 extern FILE *yyin, *yyout;
00146 
00147 #define EOB_ACT_CONTINUE_SCAN 0
00148 #define EOB_ACT_END_OF_FILE 1
00149 #define EOB_ACT_LAST_MATCH 2
00150 
00151     #define YY_LESS_LINENO(n)
00152     
00153 /* Return all but the first "n" matched characters back to the input stream. */
00154 #define yyless(n) \
00155     do \
00156         { \
00157         /* Undo effects of setting up yytext. */ \
00158         int yyless_macro_arg = (n); \
00159         YY_LESS_LINENO(yyless_macro_arg);\
00160         *yy_cp = (yy_hold_char); \
00161         YY_RESTORE_YY_MORE_OFFSET \
00162         (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00163         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00164         } \
00165     while ( 0 )
00166 
00167 #define unput(c) yyunput( c, (yytext_ptr)  )
00168 
00169 /* The following is because we cannot portably get our hands on size_t
00170  * (without autoconf's help, which isn't available because we want
00171  * flex-generated scanners to compile on their own).
00172  */
00173 
00174 #ifndef YY_TYPEDEF_YY_SIZE_T
00175 #define YY_TYPEDEF_YY_SIZE_T
00176 typedef unsigned int yy_size_t;
00177 #endif
00178 
00179 #ifndef YY_STRUCT_YY_BUFFER_STATE
00180 #define YY_STRUCT_YY_BUFFER_STATE
00181 struct yy_buffer_state
00182     {
00183     FILE *yy_input_file;
00184 
00185     char *yy_ch_buf;        /* input buffer */
00186     char *yy_buf_pos;       /* current position in input buffer */
00187 
00188     /* Size of input buffer in bytes, not including room for EOB
00189      * characters.
00190      */
00191     yy_size_t yy_buf_size;
00192 
00193     /* Number of characters read into yy_ch_buf, not including EOB
00194      * characters.
00195      */
00196     int yy_n_chars;
00197 
00198     /* Whether we "own" the buffer - i.e., we know we created it,
00199      * and can realloc() it to grow it, and should free() it to
00200      * delete it.
00201      */
00202     int yy_is_our_buffer;
00203 
00204     /* Whether this is an "interactive" input source; if so, and
00205      * if we're using stdio for input, then we want to use getc()
00206      * instead of fread(), to make sure we stop fetching input after
00207      * each newline.
00208      */
00209     int yy_is_interactive;
00210 
00211     /* Whether we're considered to be at the beginning of a line.
00212      * If so, '^' rules will be active on the next match, otherwise
00213      * not.
00214      */
00215     int yy_at_bol;
00216 
00217     int yy_bs_lineno; 
00218     int yy_bs_column; 
00220     /* Whether to try to fill the input buffer when we reach the
00221      * end of it.
00222      */
00223     int yy_fill_buffer;
00224 
00225     int yy_buffer_status;
00226 
00227 #define YY_BUFFER_NEW 0
00228 #define YY_BUFFER_NORMAL 1
00229     /* When an EOF's been seen but there's still some text to process
00230      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00231      * shouldn't try reading from the input source any more.  We might
00232      * still have a bunch of tokens to match, though, because of
00233      * possible backing-up.
00234      *
00235      * When we actually see the EOF, we change the status to "new"
00236      * (via yyrestart()), so that the user can continue scanning by
00237      * just pointing yyin at a new input file.
00238      */
00239 #define YY_BUFFER_EOF_PENDING 2
00240 
00241     };
00242 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00243 
00244 /* Stack of input buffers. */
00245 static size_t yy_buffer_stack_top = 0; 
00246 static size_t yy_buffer_stack_max = 0; 
00247 static YY_BUFFER_STATE * yy_buffer_stack = 0; 
00249 /* We provide macros for accessing buffer states in case in the
00250  * future we want to put the buffer states in a more general
00251  * "scanner state".
00252  *
00253  * Returns the top of the stack, or NULL.
00254  */
00255 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00256                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00257                           : NULL)
00258 
00259 /* Same as previous macro, but useful when we know that the buffer stack is not
00260  * NULL or when we need an lvalue. For internal use only.
00261  */
00262 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00263 
00264 /* yy_hold_char holds the character lost when yytext is formed. */
00265 static char yy_hold_char;
00266 static int yy_n_chars;      /* number of characters read into yy_ch_buf */
00267 int yyleng;
00268 
00269 /* Points to current character in buffer. */
00270 static char *yy_c_buf_p = (char *) 0;
00271 static int yy_init = 1;     /* whether we need to initialize */
00272 static int yy_start = 0;    /* start state number */
00273 
00274 /* Flag which is used to allow yywrap()'s to do buffer switches
00275  * instead of setting up a fresh yyin.  A bit of a hack ...
00276  */
00277 static int yy_did_buffer_switch_on_eof;
00278 
00279 void yyrestart (FILE *input_file  );
00280 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00281 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
00282 void yy_delete_buffer (YY_BUFFER_STATE b  );
00283 void yy_flush_buffer (YY_BUFFER_STATE b  );
00284 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
00285 void yypop_buffer_state (void );
00286 
00287 static void yyensure_buffer_stack (void );
00288 static void yy_load_buffer_state (void );
00289 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00290 
00291 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
00292 
00293 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
00294 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
00295 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
00296 
00297 void *yyalloc (yy_size_t  );
00298 void *yyrealloc (void *,yy_size_t  );
00299 void yyfree (void *  );
00300 
00301 #define yy_new_buffer yy_create_buffer
00302 
00303 #define yy_set_interactive(is_interactive) \
00304     { \
00305     if ( ! YY_CURRENT_BUFFER ){ \
00306         yyensure_buffer_stack (); \
00307         YY_CURRENT_BUFFER_LVALUE =    \
00308             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00309     } \
00310     YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00311     }
00312 
00313 #define yy_set_bol(at_bol) \
00314     { \
00315     if ( ! YY_CURRENT_BUFFER ){\
00316         yyensure_buffer_stack (); \
00317         YY_CURRENT_BUFFER_LVALUE =    \
00318             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00319     } \
00320     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00321     }
00322 
00323 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00324 
00325 /* Begin user sect3 */
00326 
00327 #define yywrap(n) 1
00328 #define YY_SKIP_YYWRAP
00329 
00330 typedef unsigned char YY_CHAR;
00331 
00332 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00333 
00334 typedef int yy_state_type;
00335 
00336 extern int yylineno;
00337 
00338 int yylineno = 1;
00339 
00340 extern char *yytext;
00341 #define yytext_ptr yytext
00342 
00343 static yy_state_type yy_get_previous_state (void );
00344 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
00345 static int yy_get_next_buffer (void );
00346 static void yy_fatal_error (yyconst char msg[]  );
00347 
00348 /* Done after the current pattern has been matched and before the
00349  * corresponding action - sets up yytext.
00350  */
00351 #define YY_DO_BEFORE_ACTION \
00352     (yytext_ptr) = yy_bp; \
00353     yyleng = (size_t) (yy_cp - yy_bp); \
00354     (yy_hold_char) = *yy_cp; \
00355     *yy_cp = '\0'; \
00356     (yy_c_buf_p) = yy_cp;
00357 
00358 #define YY_NUM_RULES 83
00359 #define YY_END_OF_BUFFER 84
00360 /* This struct is not used in this scanner,
00361    but its presence is necessary. */
00362 struct yy_trans_info
00363     {
00364     flex_int32_t yy_verify;
00365     flex_int32_t yy_nxt;
00366     };
00367 static yyconst flex_int16_t yy_acclist[655] =
00368     {   0,
00369         6,    6,   84,    6,   82,   83,    1,    6,   82,   83,
00370         2,   83,    6,   82,   83,    6,   82,   83,    6,   82,
00371        83,    6,   23,   82,   83,    6,   82,   83,    6,   14,
00372        82,   83,    6,   15,   82,   83,    7,   21,   82,   83,
00373         6,   17,   82,   83,    6,   20,   82,   83,    6,   18,
00374        82,   83,    6,   28,   82,   83,    6,   82,   83,    6,
00375        68,   78,   82,   83,    6,   77,   82,   83,    6,   16,
00376        82,   83,    6,   22,   82,   83,    6,   24,   82,   83,
00377         6,   27,   82,   83,    6,   25,   82,   83,    6,   71,
00378        82,   83,    6,   71,   82,   83,    6,   71,   82,   83,
00379 
00380         6,   71,   82,   83,    6,   71,   82,   83,    6,   30,
00381        82,   83,    6,   31,   82,   83,    6,   71,   82,   83,
00382         6,   71,   82,   83,    6,   71,   82,   83,    6,   71,
00383        82,   83,    6,   71,   82,   83,    6,   71,   82,   83,
00384         6,   71,   82,   83,    6,   71,   82,   83,    6,   71,
00385        82,   83,    6,   71,   82,   83,    6,   71,   82,   83,
00386         6,   71,   82,   83,    6,   71,   82,   83,    6,   71,
00387        82,   83,    6,   71,   82,   83,    6,   12,   82,   83,
00388         5,   13,   82,   83,    6,   19,   82,   83,    6,    6,
00389        34,    6,    6,   81,    6,    6,   11,    6,    9,    6,
00390 
00391         6,    6,    4,    6,   32,    6,    6,   75,    3,    6,
00392         8,    6,    6,   78,    6,    6,    6,   68,    6,   79,
00393         6,   77,    6,   77,    6,   26,    6,   33,    6,   71,
00394         6,   71,    6,   71,    6,   71,    6,   71,    6,   71,
00395         6,   71,    6,   71,    6,   71,    6,   71,    6,   71,
00396         6,   71,    6,   71,    6,   71,    6,   71,    6,   71,
00397         6,   71,    6,   71,    6,   71,    6,   71,    6,   71,
00398         6,   71,    6,   71,    6,   71,    6,   71,    6,   71,
00399         6,   71,    6,   71,    6,   71,    6,   71,   81,    6,
00400         6,    6,    9,    9,    6,    6,   80,   80,    6,   80,
00401 
00402         6,    6,    6,   29,    6,    6,    8,    8,    6,   74,
00403         6,    6,   73,    6,   79,    6,   71,    6,   71,    6,
00404        71,    6,   71,    6,   71,    6,   71,    6,   71,    6,
00405        71,    6,   71,    6,   71,    6,   71,    6,   71,    6,
00406        58,   71,    6,   71,    6,   71,    6,   71,    6,   71,
00407         6,   71,    6,   71,    6,   71,    6,   71,    6,   71,
00408         6,   71,    6,   71,    6,   71,    6,   71,    6,   71,
00409         6,   71,    6,   71,    6,   71,    6,   71,    6,   71,
00410         6,    6,    6,    6,    6,    6,    6,   76,    6,    6,
00411        71,    6,   71,    6,   71,    6,   61,   71,    6,   59,
00412 
00413        71,    6,   71,    6,   71,    6,   36,   71,    6,   71,
00414         6,   71,    6,   71,    6,   71,    6,   71,    6,   50,
00415        71,    6,   71,    6,   71,    6,   71,    6,   71,    6,
00416        71,    6,   71,    6,   71,    6,   71,    6,   71,    6,
00417        71,    6,   71,    6,   71,    6,   57,   71,    6,   71,
00418         6,   71,    6,   71,    6,   71,    6,    6,    6,    6,
00419         6,    6,   72,    6,   62,   71,    6,   71,    6,   71,
00420         6,   39,   71,    6,   35,   71,    6,   71,    6,   60,
00421        71,    6,   71,    6,   71,    6,   71,    6,   71,    6,
00422        71,    6,   71,    6,   71,    6,   71,    6,   71,    6,
00423 
00424        71,    6,   49,   71,    6,   71,    6,   71,    6,   56,
00425        71,    6,   71,    6,   71,    6,   71,    6,   71,    6,
00426        38,   71,    6,   71,    6,    6,   66,   71,    6,   71,
00427         6,   71,    6,   51,   71,    6,   44,   71,    6,   63,
00428        71,    6,   71,    6,   71,    6,   71,    6,   71,    6,
00429        71,    6,   43,   71,    6,   55,   71,    6,   71,    6,
00430        47,   71,    6,   45,   71,    6,   40,   71,    6,   71,
00431         6,   71,    6,   71,    6,    6,   71,    6,    6,   71,
00432         6,   46,   71,    6,   71,    6,   71,    6,   53,   71,
00433         6,   71,    6,   54,   71,    6,   65,   71,    6,   71,
00434 
00435         6,   42,   71,    6,    6,   67,   71,    6,   69,    6,
00436        69,    6,   71,    6,   71,    6,   41,   71,    6,   71,
00437         6,   48,   71,    6,    6,    6,    6,   71,    6,   37,
00438        71,    6,   52,   71,    6,   11,    6,    6,   70,    6,
00439        71,   10,   11,    6,    6,   71,   10,    6,   71,    6,
00440        71,    6,   64,   71
00441     } ;
00442 
00443 static yyconst flex_int16_t yy_accept[312] =
00444     {   0,
00445         1,    2,    3,    4,    7,   11,   13,   16,   19,   22,
00446        26,   29,   33,   37,   41,   45,   49,   53,   57,   60,
00447        65,   69,   73,   77,   81,   85,   89,   93,   97,  101,
00448       105,  109,  113,  117,  121,  125,  129,  133,  137,  141,
00449       145,  149,  153,  157,  161,  165,  169,  173,  177,  181,
00450       185,  189,  190,  192,  193,  195,  195,  196,  197,  198,
00451       200,  200,  201,  202,  202,  203,  204,  206,  207,  209,
00452       210,  212,  213,  215,  216,  217,  219,  221,  223,  225,
00453       227,  229,  231,  233,  235,  237,  239,  241,  243,  245,
00454       247,  249,  251,  253,  255,  257,  259,  261,  263,  265,
00455 
00456       267,  269,  271,  273,  275,  277,  279,  281,  283,  285,
00457       287,  289,  290,  290,  291,  292,  294,  295,  296,  298,
00458       299,  301,  302,  303,  305,  306,  308,  309,  311,  312,
00459       314,  316,  318,  320,  322,  324,  326,  328,  330,  332,
00460       334,  336,  338,  340,  343,  345,  347,  349,  351,  353,
00461       355,  357,  359,  361,  363,  365,  367,  369,  371,  373,
00462       375,  377,  379,  381,  381,  381,  382,  383,  384,  385,
00463       386,  387,  389,  390,  392,  394,  396,  399,  402,  404,
00464       406,  409,  411,  413,  415,  417,  419,  422,  424,  426,
00465       428,  430,  432,  434,  436,  438,  440,  442,  444,  446,
00466 
00467       449,  451,  453,  455,  457,  457,  457,  458,  459,  460,
00468       461,  462,  464,  467,  469,  471,  474,  477,  479,  482,
00469       484,  486,  488,  490,  492,  494,  496,  498,  500,  502,
00470       505,  507,  509,  512,  514,  516,  518,  520,  523,  525,
00471       525,  525,  526,  529,  531,  533,  536,  539,  542,  544,
00472       546,  548,  550,  552,  555,  558,  560,  563,  566,  569,
00473       571,  573,  575,  576,  578,  579,  581,  584,  586,  588,
00474       591,  593,  596,  599,  601,  604,  605,  608,  610,  611,
00475       612,  614,  616,  619,  621,  624,  625,  626,  627,  629,
00476       632,  635,  636,  637,  638,  638,  640,  642,  642,  642,
00477 
00478       644,  645,  645,  647,  648,  648,  648,  650,  652,  655,
00479       655
00480     } ;
00481 
00482 static yyconst flex_int32_t yy_ec[256] =
00483     {   0,
00484         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00485         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00486         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00487         1,    4,    5,    6,    7,    1,    1,    8,    9,   10,
00488        11,   12,   13,   14,   15,   16,   17,   18,   19,   19,
00489        19,   19,   19,   19,   19,   20,   20,   21,   22,   23,
00490        24,   25,   26,    1,   27,   28,   29,   30,   31,   32,
00491        33,   33,   33,   34,   35,   36,   33,   33,   37,   38,
00492        39,   40,   41,   42,   43,   33,   33,   44,   33,   33,
00493        45,   46,   47,    1,   48,    1,   49,   50,   51,   52,
00494 
00495        53,   54,   55,   56,   57,   33,   58,   59,   60,   61,
00496        62,   63,   33,   64,   65,   66,   67,   68,   33,   69,
00497        70,   33,   71,    1,   72,   73,    1,    1,    1,    1,
00498         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00499         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00500         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00501         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00502         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00503         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00504         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00505 
00506         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00507         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00508         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00509         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00510         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00511         1,    1,    1,    1,    1
00512     } ;
00513 
00514 static yyconst flex_int32_t yy_meta[74] =
00515     {   0,
00516         1,    2,    3,    4,    1,    5,    1,    1,    5,    1,
00517         1,    6,    1,    1,    1,    1,    1,    7,    7,    8,
00518         1,    1,    1,    1,    1,    5,    8,    8,    8,    8,
00519         8,    8,    4,    4,    4,    4,    4,    4,    4,    4,
00520         4,    4,    4,    9,    1,    5,    1,    4,    7,    7,
00521         8,    8,    8,    7,    4,    4,    4,    4,    4,    4,
00522         9,    4,    4,    9,    4,    9,    4,    9,    9,    4,
00523         1,   10,    1
00524     } ;
00525 
00526 static yyconst flex_int16_t yy_base[329] =
00527     {   0,
00528         0,    0,  904,    0,    0, 1106,  879,   72,   74,    0,
00529        73,    0,    0,  885,    0,    0,  876,   71,   64,   79,
00530        85,  879,    0,   69,  874,   82,  148,  221,   61,   69,
00531        73,    0,    0,   81,   53,   75,   67,   85,   98,   84,
00532        93,  103,  114,  148,  120,  140,  141,  155,    0, 1106,
00533         0,    0,    0,  178,    0,  193,  289,  124, 1106,  180,
00534       887,  188,  880,  879,  353, 1106,    0,  858,  238, 1106,
00535       117,  189,  243,  257,  198,    0,  405,  266,    0,    0,
00536         0,  846,   99,  158,  160,  171,  206,  238,  193,  213,
00537       224,  244,  226,  245,  237,  251,  243,  254,  188,  266,
00538 
00539       272,  252,  274,  279,  278,  297,  289,  286,  298,  273,
00540       290, 1106,  308,  372,  442,  317,  869,  329,    0, 1106,
00541       860,  351,  479,    0,  368,  332,    0,  374,  346,  390,
00542         0,  304,  176,  320,  369,  348,  341,  346,  355,  386,
00543       399,  389,  294,  840,  401,  340,  349,  393,  402,  411,
00544       414,  404,  416,  403,  420,  418,  421,  422,  423,  424,
00545       448,  441,  438,  494,    0,  532,  603,  511,  506,  667,
00546       498,  501,  528,  451,  499,  508,  839,  838,  474,  461,
00547       837,  426,  510,  495,  518,  522,  836,  525,  526,  527,
00548       528,  532,  530,  531,  533,  537,  535,  539,  538,  835,
00549 
00550       540,  542,  546,  541,  592,  716,  600,  601,  569,  852,
00551       598,  606,  832,  544,  612,  831,  830,  553,  829,  567,
00552       610,  566,  561,  601,  600,  613,  617,  618,  621,  827,
00553       615,  631,  824,  633,  623,  624,  632,  820,  643,  655,
00554       656,  678,  813,  638,  676,  807,  805,  661,  651,  664,
00555       644,  673,  683,  797,  763,  687,  762,  756,  732,  678,
00556       680,  681,  725,  685,  797,  688,  715,  704,  696,  697,
00557       698,  547,  534,  702,  476,  769,  459,  870,  456,    0,
00558       684,  711,  413,  730,  358,  825,  774,  336,  729,  310,
00559       107,  827,  733,  773,  790,    0,  734,  810,  760, 1106,
00560 
00561       788,  771,  752, 1106,  784,  785,  767,  790,   56, 1106,
00562       943,  952,  962,  972,  982,  991, 1001, 1011, 1021, 1027,
00563      1036, 1046, 1050, 1058, 1066, 1075, 1085, 1095
00564     } ;
00565 
00566 static yyconst flex_int16_t yy_def[329] =
00567     {   0,
00568       310,    1,  310,  311,  311,  310,  311,  312,  313,  311,
00569       314,  311,  311,  310,  311,  311,  311,  311,  311,  311,
00570       311,  311,  311,  311,  311,  311,  315,  315,   28,   28,
00571        28,  311,  311,   28,   28,   28,   28,   28,   28,   28,
00572        28,   28,   28,   28,   28,   28,   28,   28,  311,  310,
00573       311,  311,  311,  312,  311,  316,  311,  313,  310,  317,
00574       318,  313,  311,  310,  311,  310,  311,  311,  311,  310,
00575       319,  311,  311,  311,  311,  311,  311,  311,  311,  311,
00576       311,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00577        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00578 
00579        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00580        28,  310,  320,  312,  311,  317,  321,  313,  311,  310,
00581       311,  311,  311,  311,  311,  319,  322,  311,  311,  311,
00582        77,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00583        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00584        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00585        28,   28,   28,  316,  323,  312,  312,  313,  311,  311,
00586       311,  311,  311,   28,   28,   28,   28,   28,   28,   28,
00587        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00588        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00589 
00590        28,   28,   28,   28,  316,  316,  312,  312,  313,  311,
00591       311,  311,   28,   28,   28,   28,   28,   28,   28,   28,
00592        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00593        28,   28,   28,   28,   28,   28,   28,   28,   28,  316,
00594       316,  313,   28,   28,   28,   28,   28,   28,   28,   28,
00595        28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
00596        28,   28,  313,   28,  324,   28,   28,   28,   28,   28,
00597        28,   28,   28,   28,   28,  313,   28,  324,  311,  325,
00598        28,   28,   28,   28,   28,  313,  326,  311,   28,   28,
00599        28,  326,  327,  313,  328,  311,   28,  327,  310,  310,
00600 
00601       313,  318,   28,  310,  310,  318,   28,   28,   28,    0,
00602       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00603       310,  310,  310,  310,  310,  310,  310,  310
00604     } ;
00605 
00606 static yyconst flex_int16_t yy_nxt[1180] =
00607     {   0,
00608         4,    5,    6,    5,    7,    8,    9,   10,   11,   12,
00609        13,   14,   15,   16,   17,   18,   19,   20,   21,   21,
00610        22,   23,   24,   25,   26,    4,   27,   27,   27,   27,
00611        27,   28,   27,   27,   29,   27,   27,   27,   30,   27,
00612        27,   31,   27,   27,   32,    4,   33,   27,   27,   27,
00613        34,   27,   35,   36,   27,   27,   37,   38,   39,   40,
00614        41,   42,   43,   44,   45,   46,   47,   48,   27,   27,
00615        49,   50,   51,   52,   52,   70,   59,   55,   60,   82,
00616        71,   52,   82,   56,   64,   61,   68,   82,   69,   69,
00617        69,   81,   53,   82,   72,   82,   73,   73,   74,   82,
00618 
00619        72,   82,   78,   78,   78,   53,   81,   82,   84,   75,
00620        82,   82,   86,   90,   76,   75,   85,   57,   65,   82,
00621        79,   91,   77,   92,   82,   82,   59,   94,  127,   82,
00622        62,   75,   95,   82,  132,   61,   87,   75,   93,   88,
00623        82,   98,   89,   56,   64,   61,   82,   77,   52,   52,
00624        97,   52,   52,   52,   52,   52,   52,   52,   52,   96,
00625        52,   52,   52,   52,   52,   99,   82,   82,   52,   52,
00626        52,   52,   52,   52,   82,  103,  104,  100,  105,   52,
00627       101,   82,   59,   55,   82,  106,   82,  133,  127,   56,
00628        59,  117,   52,   52,   52,   61,  134,   82,  112,   61,
00629 
00630       102,  109,   82,  107,  175,  110,  128,  128,  128,  108,
00631       129,  111,  129,  135,   82,  130,  130,  130,   52,   82,
00632        52,   52,   52,   57,   52,   52,   52,   52,   52,   52,
00633        52,   52,   82,   52,   52,   52,   52,   52,  113,   82,
00634       149,   52,   52,   52,   52,   52,   52,   83,  118,   56,
00635        82,  117,   82,  138,  136,   69,   69,   69,   72,   61,
00636        73,   73,   74,   82,   82,   52,   52,   52,  125,   82,
00637        82,   82,   72,   75,   74,   74,   74,   82,   82,  139,
00638        82,   72,  142,   78,   78,   78,  137,   75,  145,  140,
00639       125,   52,   82,   52,   54,   75,   75,   54,   82,   82,
00640 
00641        82,   79,  141,  143,   82,   82,  114,  114,  147,   75,
00642       144,  146,   82,  148,   54,   82,   82,  153,   75,   59,
00643        82,  152,  150,   82,   82,  164,  164,  151,  117,  162,
00644        82,   59,  115,  155,   54,  154,   82,   54,   54,  156,
00645        61,  296,   54,  127,  174,  157,   82,  176,  160,   54,
00646       185,  165,   54,  163,   54,  159,   54,  115,   63,  119,
00647       158,  121,  161,  130,  130,  130,   82,   82,  169,  169,
00648       122,  122,   82,   52,   82,   82,  165,   55,   63,  168,
00649       171,   82,  171,   56,   82,  172,  172,  172,  117,  166,
00650       166,  128,  128,  128,  187,   82,  123,  188,   63,  177,
00651 
00652        61,   63,   63,  127,  173,  179,   63,  130,  130,  130,
00653       180,  178,   82,   63,  181,   82,   63,   57,   63,   82,
00654        63,  123,  131,  131,  131,   82,  173,   82,   82,   82,
00655        82,  131,  131,  131,  131,  131,  131,   82,  182,   82,
00656        82,  184,   82,   56,   82,  189,   82,   82,   82,   82,
00657        82,  186,   82,  131,  131,  131,  131,  131,  131,  167,
00658       167,  167,  193,  183,   82,  190,  195,   82,  167,  167,
00659       167,  167,  167,  167,   82,  200,  201,   82,  191,  192,
00660       196,  213,  194,  197,  288,   82,  198,   82,  199,  218,
00661       167,  167,  167,  167,  167,  167,  170,  170,  170,  112,
00662 
00663        82,  203,   82,  204,  202,  170,  170,  170,  170,  170,
00664       170,  205,  205,   59,  119,  172,  172,  172,  172,  172,
00665       172,   82,   61,   63,   63,   82,  217,  170,  170,  170,
00666       170,  170,  170,   52,   82,  214,   82,   55,  216,  113,
00667       211,  215,  211,   56,   82,  212,  212,  212,   82,  207,
00668       207,   82,   82,   82,   82,  220,   82,   82,   82,   82,
00669        82,   82,  219,   82,   82,   82,   82,   82,   82,  209,
00670        82,   59,   82,   82,  223,  225,  226,   57,  221,   82,
00671        61,  243,   61,  222,  227,  231,  228,   82,  235,  232,
00672       224,  236,   82,   82,  229,  234,  237,  112,  230,  233,
00673 
00674       238,   52,   52,   56,   52,   55,   55,  239,   55,  240,
00675       240,   56,   56,  245,   56,  212,  212,  212,  246,  249,
00676       208,  208,  208,  212,  212,  212,   82,   82,  248,  208,
00677       208,  208,  208,  208,  208,  242,   82,  113,   82,   82,
00678        61,   82,  244,   82,   82,   57,   57,   82,   57,   82,
00679        82,  208,  208,  208,  208,  208,  208,   82,   82,   82,
00680       112,  112,  247,  250,   82,  251,  264,  253,  254,   82,
00681        82,   56,   56,  256,   56,  119,  260,   82,  252,  265,
00682        59,  255,  257,  258,  210,  210,  210,   82,  259,   61,
00683        82,  262,  261,  210,  210,  210,  210,  210,  210,   82,
00684 
00685       113,  113,   82,  267,   82,  269,   82,   82,  266,   82,
00686        82,   82,  268,   82,   82,  210,  210,  210,  210,  210,
00687       210,  112,   82,   82,   82,  270,  277,   59,   82,  263,
00688        82,  273,  274,  241,  241,  241,   61,   82,  299,  275,
00689       289,   82,  241,  241,  241,  241,  241,  241,  271,   61,
00690       284,  272,  281,  285,  282,   82,   82,  299,   82,  283,
00691        82,  113,  304,  290,  241,  241,  241,  241,  241,  241,
00692       286,   59,  286,  300,  287,  300,  293,  276,   82,  294,
00693        61,  291,   82,  297,   61,  295,  304,  300,   82,   82,
00694       300,  287,  293,   82,  303,  302,   61,   52,  294,   61,
00695 
00696       307,   52,  279,   52,   52,   52,   52,   52,  280,   52,
00697        52,   52,   52,   52,  302,  299,   82,   52,   52,   52,
00698        52,   52,   52,   82,  305,  308,  286,   59,  286,  293,
00699       287,   82,  294,   82,  299,  306,   61,  301,  295,   82,
00700        61,   52,   52,   52,   61,  295,   82,  287,  305,  306,
00701        82,  294,  301,   82,  309,   82,   82,   82,   82,   61,
00702       119,   82,   82,   82,   82,   82,   82,   52,  119,   52,
00703        52,   59,   82,  124,   52,   52,   52,   52,   52,   52,
00704        52,  280,   52,   52,   52,   52,   52,  120,  119,   59,
00705        52,   52,   52,   52,   52,   52,   61,   53,  295,   80,
00706 
00707        67,   66,   53,  310,  310,  310,  310,  310,  310,  310,
00708       310,  310,  310,  310,   52,   52,   52,  310,  310,  310,
00709       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00710       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00711        52,  310,   52,   52,   52,  310,   52,   52,  310,   52,
00712        52,   52,   54,   54,  310,   54,   54,   54,   54,   54,
00713        54,   54,   58,   58,   58,   58,   58,   58,   58,   58,
00714        58,   58,   63,   63,  310,   63,   63,   63,   63,   63,
00715        63,   63,   82,   82,  310,   82,   82,  310,   82,   82,
00716        82,   56,  310,  310,   56,   56,   56,   56,   56,   56,
00717 
00718        56,  116,  116,  116,  116,  116,  116,  116,  116,  116,
00719       116,   61,   61,   61,   61,   61,   61,   61,   61,   61,
00720        61,  126,  126,  310,  126,  126,  126,  126,  126,  126,
00721       126,   56,  310,   56,  310,   56,  117,  117,  117,  117,
00722       117,  117,  117,  117,  117,  117,  127,  127,  310,  127,
00723       127,  127,  127,  127,  127,  127,  206,  206,  278,  278,
00724       310,  278,  278,  278,  278,  278,  278,  280,  310,  280,
00725       310,  280,  280,  280,  280,  292,  292,  292,  292,  292,
00726       292,  292,  292,  292,  292,  298,  298,  298,  298,  298,
00727       298,  298,  298,  298,  298,  295,  295,  295,  295,  295,
00728 
00729       295,  295,  295,  295,  295,    3,  310,  310,  310,  310,
00730       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00731       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00732       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00733       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00734       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00735       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00736       310,  310,  310,  310,  310,  310,  310,  310,  310
00737     } ;
00738 
00739 static yyconst flex_int16_t yy_chk[1180] =
00740     {   0,
00741         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00742         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00743         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00744         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00745         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00746         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00747         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00748         1,    1,    1,    8,   11,   19,    9,    8,    9,   35,
00749        19,   11,  309,    8,   11,    9,   18,   29,   18,   18,
00750        18,   24,   24,   37,   20,   30,   20,   20,   20,   31,
00751 
00752        21,   36,   21,   21,   21,   26,   26,   34,   29,   20,
00753        40,   38,   31,   35,   20,   21,   30,    8,   11,   41,
00754        21,   35,   20,   36,   39,   83,   58,   37,   71,   42,
00755         9,   20,   38,  291,   83,   58,   34,   21,   36,   34,
00756        43,   41,   34,    8,   11,    9,   45,   20,   27,   27,
00757        40,   27,   27,   27,   27,   27,   27,   27,   27,   39,
00758        27,   27,   27,   27,   27,   42,   46,   47,   27,   27,
00759        27,   27,   27,   27,   44,   45,   45,   43,   45,   54,
00760        43,   48,   60,   54,   84,   45,   85,   84,   71,   54,
00761        62,   60,   27,   27,   27,   58,   85,   86,   56,   62,
00762 
00763        44,   47,  133,   46,  133,   47,   72,   72,   72,   46,
00764        75,   48,   75,   86,   99,   75,   75,   75,   27,   89,
00765        27,   28,   28,   54,   28,   28,   28,   28,   28,   28,
00766        28,   28,   87,   28,   28,   28,   28,   28,   56,   90,
00767        99,   28,   28,   28,   28,   28,   28,   28,   62,   54,
00768        91,   60,   93,   89,   87,   69,   69,   69,   73,   62,
00769        73,   73,   73,   95,   88,   28,   28,   28,   69,   97,
00770        92,   94,   74,   73,   74,   74,   74,   96,  102,   90,
00771        98,   78,   93,   78,   78,   78,   88,   74,   95,   91,
00772        69,   28,  100,   28,   57,   73,   78,   57,  101,  110,
00773 
00774       103,   78,   92,   94,  105,  104,   57,   57,   97,   74,
00775        94,   96,  108,   98,   57,  107,  111,  102,   78,  116,
00776       143,  101,  100,  106,  109,  113,  113,  100,  116,  110,
00777       132,  118,   57,  104,   57,  103,  290,   57,   57,  105,
00778       118,  288,   57,  126,  132,  106,  134,  134,  108,   57,
00779       143,  113,   57,  111,   57,  107,   57,   57,   65,  122,
00780       106,   65,  109,  129,  129,  129,  146,  137,  122,  122,
00781        65,   65,  138,  114,  136,  147,  113,  114,   65,  118,
00782       125,  139,  125,  114,  285,  125,  125,  125,  116,  114,
00783       114,  128,  128,  128,  146,  135,   65,  147,   65,  135,
00784 
00785       118,   65,   65,  126,  128,  137,   65,  130,  130,  130,
00786       138,  136,  140,   65,  139,  142,   65,  114,   65,  148,
00787        65,   65,   77,   77,   77,  141,  128,  145,  149,  154,
00788       152,   77,   77,   77,   77,   77,   77,  150,  140,  283,
00789       151,  142,  153,  114,  156,  148,  155,  157,  158,  159,
00790       160,  145,  182,   77,   77,   77,   77,   77,   77,  115,
00791       115,  115,  152,  141,  163,  149,  154,  162,  115,  115,
00792       115,  115,  115,  115,  161,  159,  160,  174,  150,  151,
00793       155,  174,  153,  156,  279,  277,  157,  180,  158,  182,
00794       115,  115,  115,  115,  115,  115,  123,  123,  123,  164,
00795 
00796       179,  162,  275,  163,  161,  123,  123,  123,  123,  123,
00797       123,  164,  164,  168,  169,  171,  171,  171,  172,  172,
00798       172,  184,  168,  169,  169,  175,  180,  123,  123,  123,
00799       123,  123,  123,  166,  176,  175,  183,  166,  179,  164,
00800       173,  176,  173,  166,  185,  173,  173,  173,  186,  166,
00801       166,  188,  189,  190,  191,  184,  193,  194,  192,  195,
00802       273,  197,  183,  196,  199,  198,  201,  204,  202,  168,
00803       214,  209,  203,  272,  188,  190,  191,  166,  185,  218,
00804       209,  214,  168,  186,  192,  196,  193,  223,  199,  196,
00805       189,  201,  222,  220,  194,  198,  202,  205,  195,  197,
00806 
00807       203,  207,  208,  166,  167,  207,  208,  204,  167,  205,
00808       205,  207,  208,  218,  167,  211,  211,  211,  220,  223,
00809       167,  167,  167,  212,  212,  212,  225,  224,  222,  167,
00810       167,  167,  167,  167,  167,  209,  221,  205,  215,  226,
00811       209,  231,  215,  227,  228,  207,  208,  229,  167,  235,
00812       236,  167,  167,  167,  167,  167,  167,  232,  237,  234,
00813       240,  241,  221,  224,  244,  225,  244,  227,  228,  239,
00814       251,  207,  208,  231,  167,  170,  236,  249,  226,  245,
00815       242,  229,  232,  234,  170,  170,  170,  248,  235,  242,
00816       250,  239,  237,  170,  170,  170,  170,  170,  170,  252,
00817 
00818       240,  241,  245,  249,  260,  251,  261,  262,  248,  253,
00819       281,  264,  250,  256,  266,  170,  170,  170,  170,  170,
00820       170,  206,  269,  270,  271,  252,  264,  263,  274,  242,
00821       268,  260,  261,  206,  206,  206,  263,  282,  293,  262,
00822       281,  267,  206,  206,  206,  206,  206,  206,  253,  242,
00823       271,  256,  266,  274,  268,  289,  284,  293,  259,  269,
00824       297,  206,  299,  282,  206,  206,  206,  206,  206,  206,
00825       276,  276,  276,  302,  276,  294,  287,  263,  303,  287,
00826       276,  284,  258,  289,  294,  287,  305,  306,  257,  255,
00827       301,  276,  295,  307,  297,  295,  263,  265,  287,  301,
00828 
00829       303,  265,  265,  265,  265,  265,  265,  265,  265,  265,
00830       265,  265,  265,  265,  295,  298,  308,  265,  265,  265,
00831       265,  265,  265,  254,  299,  307,  286,  286,  286,  292,
00832       286,  247,  292,  246,  298,  302,  286,  294,  292,  243,
00833       276,  265,  265,  265,  294,  287,  238,  286,  305,  306,
00834       233,  292,  301,  230,  308,  219,  217,  216,  213,  301,
00835       210,  200,  187,  181,  178,  177,  144,  265,  121,  265,
00836       278,  117,   82,   68,  278,  278,  278,  278,  278,  278,
00837       278,  278,  278,  278,  278,  278,  278,   64,   63,   61,
00838       278,  278,  278,  278,  278,  278,  286,   25,  292,   22,
00839 
00840        17,   14,    7,    3,    0,    0,    0,    0,    0,    0,
00841         0,    0,    0,    0,  278,  278,  278,    0,    0,    0,
00842         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00843         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00844       278,    0,  278,  311,  311,    0,  311,  311,    0,  311,
00845       311,  311,  312,  312,    0,  312,  312,  312,  312,  312,
00846       312,  312,  313,  313,  313,  313,  313,  313,  313,  313,
00847       313,  313,  314,  314,    0,  314,  314,  314,  314,  314,
00848       314,  314,  315,  315,    0,  315,  315,    0,  315,  315,
00849       315,  316,    0,    0,  316,  316,  316,  316,  316,  316,
00850 
00851       316,  317,  317,  317,  317,  317,  317,  317,  317,  317,
00852       317,  318,  318,  318,  318,  318,  318,  318,  318,  318,
00853       318,  319,  319,    0,  319,  319,  319,  319,  319,  319,
00854       319,  320,    0,  320,    0,  320,  321,  321,  321,  321,
00855       321,  321,  321,  321,  321,  321,  322,  322,    0,  322,
00856       322,  322,  322,  322,  322,  322,  323,  323,  324,  324,
00857         0,  324,  324,  324,  324,  324,  324,  325,    0,  325,
00858         0,  325,  325,  325,  325,  326,  326,  326,  326,  326,
00859       326,  326,  326,  326,  326,  327,  327,  327,  327,  327,
00860       327,  327,  327,  327,  327,  328,  328,  328,  328,  328,
00861 
00862       328,  328,  328,  328,  328,  310,  310,  310,  310,  310,
00863       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00864       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00865       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00866       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00867       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00868       310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
00869       310,  310,  310,  310,  310,  310,  310,  310,  310
00870     } ;
00871 
00872 extern int yy_flex_debug;
00873 int yy_flex_debug = 0;
00874 
00875 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
00876 static char *yy_full_match;
00877 static int yy_lp;
00878 #define REJECT \
00879 { \
00880 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
00881 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
00882 ++(yy_lp); \
00883 goto find_rule; \
00884 }
00885 
00886 #define yymore() yymore_used_but_not_detected
00887 #define YY_MORE_ADJ 0
00888 #define YY_RESTORE_YY_MORE_OFFSET
00889 char *yytext;
00890 #line 1 "scanner.ll"
00891 #line 2 "scanner.ll"
00892 /*****************************************************************
00893 Copyright (c) 1999 Torben Weis <weis@kde.org>
00894 Copyright (c) 2000 Matthias Ettrich <ettrich@kde.org>
00895 
00896 Permission is hereby granted, free of charge, to any person obtaining a copy
00897 of this software and associated documentation files (the "Software"), to deal
00898 in the Software without restriction, including without limitation the rights
00899 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
00900 copies of the Software, and to permit persons to whom the Software is
00901 furnished to do so, subject to the following conditions:
00902 
00903 The above copyright notice and this permission notice shall be included in
00904 all copies or substantial portions of the Software.
00905 
00906 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00907 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00908 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
00909 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
00910 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
00911 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00912 
00913 ******************************************************************/
00914 
00915 #define YY_NO_UNPUT
00916 #include <stdlib.h>
00917 #include <ctype.h>
00918 
00919 class QString;
00920 
00921 #ifndef KDE_USE_FINAL
00922 #include "yacc.cc.h"
00923 #endif
00924 
00925 extern int idl_line_no;
00926 int comment_mode;
00927 int function_mode = 0;
00928 
00929 #include <qstring.h>
00930 #include <qregexp.h>
00931 
00932 static long ascii_to_longlong( long base, const char *s )
00933 {
00934   long ll = 0;
00935   while( *s != '\0' ) {
00936     char c = *s++;
00937     if( c >= 'a' )
00938       c -= 'a' - 'A';
00939     c -= '0';
00940     if( c > 9 )
00941       c -= 'A' - '0' - 10;
00942     ll = ll * base + c;
00943   }
00944   return ll;
00945 }
00946 
00947 static double ascii_to_longdouble (const char *s)
00948 {
00949   double d;
00950 #ifdef HAVE_SCANF_LF
00951   sscanf (s, "%Lf", &d);
00952 #else
00953   /*
00954    * this is only an approximation and will probably break fixed<>
00955    * parameter calculation on systems where
00956    * sizeof(double) < sizeof(long double). but fortunately all
00957    * systems where scanf("%Lf") is known to be broken (Linux/Alpha
00958    * and HPUX) have sizeof(double) == sizeof(long double).
00959    */
00960   d = strtod (s, NULL);
00961 #endif
00962   return d;
00963 }
00964 
00965 static char translate_char( const char *s )
00966 {
00967   char c = *s++;
00968 
00969   if( c != '\\' )
00970     return c;
00971   c = *s++;
00972   switch( c ) {
00973   case 'n':
00974     return '\n';
00975   case 't':
00976     return '\t';
00977   case 'v':
00978     return '\v';
00979   case 'b':
00980     return '\b';
00981   case 'r':
00982     return '\r';
00983   case 'f':
00984     return '\f';
00985   case 'a':
00986     return '\a';
00987   case '\\':
00988     return '\\';
00989   case '?':
00990     return '\?';
00991   case '\'':
00992     return '\'';
00993   case '"':
00994     return '"';
00995   case 'x':
00996   case 'X':
00997     return (char) ascii_to_longlong( 16, s );
00998   default:
00999     // Gotta be an octal
01000     return (char) ascii_to_longlong( 8, s );
01001   }
01002 }
01003 
01004 
01005 /*--------------------------------------------------------------------------*/
01006 /*--------------------------------------------------------------------------*/
01007 /*--------------------------------------------------------------------------*/
01008 #line 1009 "scanner.cc"
01009 
01010 #define INITIAL 0
01011 
01012 #ifndef YY_NO_UNISTD_H
01013 /* Special case for "unistd.h", since it is non-ANSI. We include it way
01014  * down here because we want the user's section 1 to have been scanned first.
01015  * The user has a chance to override it with an option.
01016  */
01017 #include <unistd.h>
01018 #endif
01019 
01020 #ifndef YY_EXTRA_TYPE
01021 #define YY_EXTRA_TYPE void *
01022 #endif
01023 
01024 /* Macros after this point can all be overridden by user definitions in
01025  * section 1.
01026  */
01027 
01028 #ifndef YY_SKIP_YYWRAP
01029 #ifdef __cplusplus
01030 extern "C" int yywrap (void );
01031 #else
01032 extern int yywrap (void );
01033 #endif
01034 #endif
01035 
01036     static void yyunput (int c,char *buf_ptr  );
01037     
01038 #ifndef yytext_ptr
01039 static void yy_flex_strncpy (char *,yyconst char *,int );
01040 #endif
01041 
01042 #ifdef YY_NEED_STRLEN
01043 static int yy_flex_strlen (yyconst char * );
01044 #endif
01045 
01046 #ifndef YY_NO_INPUT
01047 
01048 #ifdef __cplusplus
01049 static int yyinput (void );
01050 #else
01051 static int input (void );
01052 #endif
01053 
01054 #endif
01055 
01056 /* Amount of stuff to slurp up with each read. */
01057 #ifndef YY_READ_BUF_SIZE
01058 #define YY_READ_BUF_SIZE 8192
01059 #endif
01060 
01061 /* Copy whatever the last rule matched to the standard output. */
01062 #ifndef ECHO
01063 /* This used to be an fputs(), but since the string might contain NUL's,
01064  * we now use fwrite().
01065  */
01066 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
01067 #endif
01068 
01069 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01070  * is returned in "result".
01071  */
01072 #ifndef YY_INPUT
01073 #define YY_INPUT(buf,result,max_size) \
01074     if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
01075         { \
01076         int c = '*'; \
01077         size_t n; \
01078         for ( n = 0; n < max_size && \
01079                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
01080             buf[n] = (char) c; \
01081         if ( c == '\n' ) \
01082             buf[n++] = (char) c; \
01083         if ( c == EOF && ferror( yyin ) ) \
01084             YY_FATAL_ERROR( "input in flex scanner failed" ); \
01085         result = n; \
01086         } \
01087     else \
01088         { \
01089         errno=0; \
01090         while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
01091             { \
01092             if( errno != EINTR) \
01093                 { \
01094                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01095                 break; \
01096                 } \
01097             errno=0; \
01098             clearerr(yyin); \
01099             } \
01100         }\
01101 \
01102 
01103 #endif
01104 
01105 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01106  * we don't want an extra ';' after the "return" because that will cause
01107  * some compilers to complain about unreachable statements.
01108  */
01109 #ifndef yyterminate
01110 #define yyterminate() return YY_NULL
01111 #endif
01112 
01113 /* Number of entries by which start-condition stack grows. */
01114 #ifndef YY_START_STACK_INCR
01115 #define YY_START_STACK_INCR 25
01116 #endif
01117 
01118 /* Report a fatal error. */
01119 #ifndef YY_FATAL_ERROR
01120 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
01121 #endif
01122 
01123 /* end tables serialization structures and prototypes */
01124 
01125 /* Default declaration of generated scanner - a define so the user can
01126  * easily add parameters.
01127  */
01128 #ifndef YY_DECL
01129 #define YY_DECL_IS_OURS 1
01130 
01131 extern int yylex (void);
01132 
01133 #define YY_DECL int yylex (void)
01134 #endif /* !YY_DECL */
01135 
01136 /* Code executed at the beginning of each rule, after yytext and yyleng
01137  * have been set up.
01138  */
01139 #ifndef YY_USER_ACTION
01140 #define YY_USER_ACTION
01141 #endif
01142 
01143 /* Code executed at the end of each rule. */
01144 #ifndef YY_BREAK
01145 #define YY_BREAK break;
01146 #endif
01147 
01148 #define YY_RULE_SETUP \
01149     YY_USER_ACTION
01150 
01153 YY_DECL
01154 {
01155     register yy_state_type yy_current_state;
01156     register char *yy_cp, *yy_bp;
01157     register int yy_act;
01158     
01159 #line 148 "scanner.ll"
01160 
01161 
01162 #line 1163 "scanner.cc"
01163 
01164     if ( (yy_init) )
01165         {
01166         (yy_init) = 0;
01167 
01168 #ifdef YY_USER_INIT
01169         YY_USER_INIT;
01170 #endif
01171 
01172         if ( ! (yy_state_buf) )
01173             (yy_state_buf) = (yy_state_type *)yyalloc(YY_BUF_SIZE + 2  );
01174 
01175         if ( ! (yy_start) )
01176             (yy_start) = 1; /* first start state */
01177 
01178         if ( ! yyin )
01179             yyin = stdin;
01180 
01181         if ( ! yyout )
01182             yyout = stdout;
01183 
01184         if ( ! YY_CURRENT_BUFFER ) {
01185             yyensure_buffer_stack ();
01186             YY_CURRENT_BUFFER_LVALUE =
01187                 yy_create_buffer(yyin,YY_BUF_SIZE );
01188         }
01189 
01190         yy_load_buffer_state( );
01191         }
01192 
01193     while ( 1 )     /* loops until end-of-file is reached */
01194         {
01195         yy_cp = (yy_c_buf_p);
01196 
01197         /* Support of yytext. */
01198         *yy_cp = (yy_hold_char);
01199 
01200         /* yy_bp points to the position in yy_ch_buf of the start of
01201          * the current run.
01202          */
01203         yy_bp = yy_cp;
01204 
01205         yy_current_state = (yy_start);
01206 
01207         (yy_state_ptr) = (yy_state_buf);
01208         *(yy_state_ptr)++ = yy_current_state;
01209 
01210 yy_match:
01211         do
01212             {
01213             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01214             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01215                 {
01216                 yy_current_state = (int) yy_def[yy_current_state];
01217                 if ( yy_current_state >= 311 )
01218                     yy_c = yy_meta[(unsigned int) yy_c];
01219                 }
01220             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01221             *(yy_state_ptr)++ = yy_current_state;
01222             ++yy_cp;
01223             }
01224         while ( yy_current_state != 310 );
01225 
01226 yy_find_action:
01227         yy_current_state = *--(yy_state_ptr);
01228         (yy_lp) = yy_accept[yy_current_state];
01229 find_rule: /* we branch to this label when backing up */
01230         for ( ; ; ) /* until we find what rule we matched */
01231             {
01232             if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
01233                 {
01234                 yy_act = yy_acclist[(yy_lp)];
01235                     {
01236                     (yy_full_match) = yy_cp;
01237                     break;
01238                     }
01239                 }
01240             --yy_cp;
01241             yy_current_state = *--(yy_state_ptr);
01242             (yy_lp) = yy_accept[yy_current_state];
01243             }
01244 
01245         YY_DO_BEFORE_ACTION;
01246 
01247 do_action:  /* This label is used only to access EOF actions. */
01248 
01249         switch ( yy_act )
01250     { /* beginning of action switch */
01251 case 1:
01252 YY_RULE_SETUP
01253 #line 150 "scanner.ll"
01254 ;
01255     YY_BREAK
01256 case 2:
01257 /* rule 2 can match eol */
01258 YY_RULE_SETUP
01259 #line 151 "scanner.ll"
01260 { idl_line_no++; }
01261     YY_BREAK
01262 case 3:
01263 YY_RULE_SETUP
01264 #line 153 "scanner.ll"
01265 { comment_mode = 1; }
01266     YY_BREAK
01267 case 4:
01268 YY_RULE_SETUP
01269 #line 154 "scanner.ll"
01270 { if (!comment_mode) { REJECT; } else { comment_mode = 0; } }
01271     YY_BREAK
01272 case 5:
01273 YY_RULE_SETUP
01274 #line 155 "scanner.ll"
01275 {   
01276             if (! comment_mode) {
01277             if (!function_mode) { REJECT; } else {
01278             function_mode = 0;
01279             return T_RIGHT_CURLY_BRACKET;
01280             }
01281             }
01282         }
01283     YY_BREAK
01284 case 6:
01285 YY_RULE_SETUP
01286 #line 163 "scanner.ll"
01287 { if (!comment_mode && !function_mode) { REJECT; } }
01288     YY_BREAK
01289 case 7:
01290 YY_RULE_SETUP
01291 #line 164 "scanner.ll"
01292 { if (!comment_mode) { REJECT; } }
01293     YY_BREAK
01294 case 8:
01295 YY_RULE_SETUP
01296 #line 166 "scanner.ll"
01297 ;
01298     YY_BREAK
01299 case 9:
01300 YY_RULE_SETUP
01301 #line 167 "scanner.ll"
01302 {
01303                           exit( 1 );
01304                         }
01305     YY_BREAK
01306 case 10:
01307 /* rule 10 can match eol */
01308 YY_RULE_SETUP
01309 #line 170 "scanner.ll"
01310 {
01311               QString s( yytext );
01312                           int i = s.find(QRegExp("[\"<]"))+1;
01313                           int j = s.find(QRegExp("[\">]"), i);
01314               yylval._str = new QString( s.mid( i, j - i ) );
01315                           idl_line_no++;
01316                           return T_INCLUDE;
01317                         }
01318     YY_BREAK
01319 case 11:
01320 /* rule 11 can match eol */
01321 YY_RULE_SETUP
01322 #line 178 "scanner.ll"
01323 {
01324                           idl_line_no++;
01325                         }
01326     YY_BREAK
01327 case 12:
01328 YY_RULE_SETUP
01329 #line 181 "scanner.ll"
01330 return T_LEFT_CURLY_BRACKET;
01331     YY_BREAK
01332 case 13:
01333 YY_RULE_SETUP
01334 #line 182 "scanner.ll"
01335 return T_RIGHT_CURLY_BRACKET;
01336     YY_BREAK
01337 case 14:
01338 YY_RULE_SETUP
01339 #line 183 "scanner.ll"
01340 return T_LEFT_PARANTHESIS;
01341     YY_BREAK
01342 case 15:
01343 YY_RULE_SETUP
01344 #line 184 "scanner.ll"
01345 return T_RIGHT_PARANTHESIS;
01346     YY_BREAK
01347 case 16:
01348 YY_RULE_SETUP
01349 #line 185 "scanner.ll"
01350 return T_COLON;
01351     YY_BREAK
01352 case 17:
01353 YY_RULE_SETUP
01354 #line 186 "scanner.ll"
01355 return T_PLUS;
01356     YY_BREAK
01357 case 18:
01358 YY_RULE_SETUP
01359 #line 187 "scanner.ll"
01360 return T_MINUS;
01361     YY_BREAK
01362 case 19:
01363 YY_RULE_SETUP
01364 #line 188 "scanner.ll"
01365 return T_TILDE;
01366     YY_BREAK
01367 case 20:
01368 YY_RULE_SETUP
01369 #line 189 "scanner.ll"
01370 return T_COMMA;
01371     YY_BREAK
01372 case 21:
01373 YY_RULE_SETUP
01374 #line 190 "scanner.ll"
01375 return T_ASTERISK;
01376     YY_BREAK
01377 case 22:
01378 YY_RULE_SETUP
01379 #line 191 "scanner.ll"
01380 return T_SEMICOLON;
01381     YY_BREAK
01382 case 23:
01383 YY_RULE_SETUP
01384 #line 192 "scanner.ll"
01385 return T_AMPERSAND;
01386     YY_BREAK
01387 case 24:
01388 YY_RULE_SETUP
01389 #line 193 "scanner.ll"
01390 return T_LESS;
01391     YY_BREAK
01392 case 25:
01393 YY_RULE_SETUP
01394 #line 194 "scanner.ll"
01395 return T_GREATER;
01396     YY_BREAK
01397 case 26:
01398 YY_RULE_SETUP
01399 #line 195 "scanner.ll"
01400 return T_SCOPE;
01401     YY_BREAK
01402 case 27:
01403 YY_RULE_SETUP
01404 #line 196 "scanner.ll"
01405 return T_EQUAL;
01406     YY_BREAK
01407 case 28:
01408 YY_RULE_SETUP
01409 #line 197 "scanner.ll"
01410 return T_ACCESS;
01411     YY_BREAK
01412 case 29:
01413 YY_RULE_SETUP
01414 #line 198 "scanner.ll"
01415 return T_TRIPLE_DOT;
01416     YY_BREAK
01417 case 30:
01418 YY_RULE_SETUP
01419 #line 199 "scanner.ll"
01420 return T_ARRAY_OPEN;
01421     YY_BREAK
01422 case 31:
01423 YY_RULE_SETUP
01424 #line 200 "scanner.ll"
01425 return T_ARRAY_CLOSE;
01426     YY_BREAK
01427 case 32:
01428 YY_RULE_SETUP
01429 #line 201 "scanner.ll"
01430 return T_ACCESS;
01431     YY_BREAK
01432 case 33:
01433 YY_RULE_SETUP
01434 #line 202 "scanner.ll"
01435 return T_SHIFT;
01436     YY_BREAK
01437 case 34:
01438 YY_RULE_SETUP
01439 #line 203 "scanner.ll"
01440 return T_MISCOPERATOR;
01441     YY_BREAK
01442 case 35:
01443 YY_RULE_SETUP
01444 #line 206 "scanner.ll"
01445 return T_CONST;
01446     YY_BREAK
01447 case 36:
01448 YY_RULE_SETUP
01449 #line 207 "scanner.ll"
01450 return T_ENUM;
01451     YY_BREAK
01452 case 37:
01453 YY_RULE_SETUP
01454 #line 208 "scanner.ll"
01455 return T_NAMESPACE;
01456     YY_BREAK
01457 case 38:
01458 YY_RULE_SETUP
01459 #line 209 "scanner.ll"
01460 return T_USING;
01461     YY_BREAK
01462 case 39:
01463 YY_RULE_SETUP
01464 #line 210 "scanner.ll"
01465 return T_CLASS;
01466     YY_BREAK
01467 case 40:
01468 YY_RULE_SETUP
01469 #line 211 "scanner.ll"
01470 return T_STRUCT;
01471     YY_BREAK
01472 case 41:
01473 YY_RULE_SETUP
01474 #line 212 "scanner.ll"
01475 return T_FUNOPERATOR;
01476     YY_BREAK
01477 case 42:
01478 YY_RULE_SETUP
01479 #line 213 "scanner.ll"
01480 return T_VIRTUAL;
01481     YY_BREAK
01482 case 43:
01483 YY_RULE_SETUP
01484 #line 214 "scanner.ll"
01485 return T_PUBLIC;
01486     YY_BREAK
01487 case 44:
01488 YY_RULE_SETUP
01489 #line 215 "scanner.ll"
01490 return T_INLINE;
01491     YY_BREAK
01492 case 45:
01493 YY_RULE_SETUP
01494 #line 216 "scanner.ll"
01495 return T_STATIC;
01496     YY_BREAK
01497 case 46:
01498 YY_RULE_SETUP
01499 #line 217 "scanner.ll"
01500 return T_MUTABLE;
01501     YY_BREAK
01502 case 47:
01503 YY_RULE_SETUP
01504 #line 218 "scanner.ll"
01505 return T_SIGNED;
01506     YY_BREAK
01507 case 48:
01508 YY_RULE_SETUP
01509 #line 219 "scanner.ll"
01510 return T_UNSIGNED;
01511     YY_BREAK
01512 case 49:
01513 YY_RULE_SETUP
01514 #line 220 "scanner.ll"
01515 return T_SHORT;
01516     YY_BREAK
01517 case 50:
01518 YY_RULE_SETUP
01519 #line 221 "scanner.ll"
01520 return T_LONG;
01521     YY_BREAK
01522 case 51:
01523 YY_RULE_SETUP
01524 #line 222 "scanner.ll"
01525 return T_FRIEND;
01526     YY_BREAK
01527 case 52:
01528 YY_RULE_SETUP
01529 #line 223 "scanner.ll"
01530 return T_PROTECTED;
01531     YY_BREAK
01532 case 53:
01533 YY_RULE_SETUP
01534 #line 224 "scanner.ll"
01535 return T_PRIVATE;
01536     YY_BREAK
01537 case 54:
01538 YY_RULE_SETUP
01539 #line 225 "scanner.ll"
01540 return T_SIGNAL;
01541     YY_BREAK
01542 case 55:
01543 YY_RULE_SETUP
01544 #line 226 "scanner.ll"
01545 return T_RETURN;
01546     YY_BREAK
01547 case 56:
01548 YY_RULE_SETUP
01549 #line 227 "scanner.ll"
01550 return T_SLOT;
01551     YY_BREAK
01552 case 57:
01553 YY_RULE_SETUP
01554 #line 228 "scanner.ll"
01555 return T_TRUE;
01556     YY_BREAK
01557 case 58:
01558 YY_RULE_SETUP
01559 #line 229 "scanner.ll"
01560 return T_INT;
01561     YY_BREAK
01562 case 59:
01563 YY_RULE_SETUP
01564 #line 230 "scanner.ll"
01565 return T_CHAR;
01566     YY_BREAK
01567 case 60:
01568 YY_RULE_SETUP
01569 #line 231 "scanner.ll"
01570 return T_FALSE;
01571     YY_BREAK
01572 case 61:
01573 YY_RULE_SETUP
01574 #line 232 "scanner.ll"
01575 return T_TRUE;
01576     YY_BREAK
01577 case 62:
01578 YY_RULE_SETUP
01579 #line 233 "scanner.ll"
01580 return T_FALSE;
01581     YY_BREAK
01582 case 63:
01583 YY_RULE_SETUP
01584 #line 234 "scanner.ll"
01585 return T_DCOP_AREA;
01586     YY_BREAK
01587 case 64:
01588 YY_RULE_SETUP
01589 #line 235 "scanner.ll"
01590 return T_DCOP_SIGNAL_AREA;
01591     YY_BREAK
01592 case 65:
01593 YY_RULE_SETUP
01594 #line 236 "scanner.ll"
01595 return T_TYPEDEF;
01596     YY_BREAK
01597 case 66:
01598 YY_RULE_SETUP
01599 #line 237 "scanner.ll"
01600 return T_DCOP;
01601     YY_BREAK
01602 case 67:
01603 YY_RULE_SETUP
01604 #line 238 "scanner.ll"
01605 ;
01606     YY_BREAK
01607 case 68:
01608 YY_RULE_SETUP
01609 #line 239 "scanner.ll"
01610 return T_NULL;
01611     YY_BREAK
01612 case 69:
01613 YY_RULE_SETUP
01614 #line 240 "scanner.ll"
01615 return T_EXTERN;
01616     YY_BREAK
01617 case 70:
01618 YY_RULE_SETUP
01619 #line 241 "scanner.ll"
01620 return T_EXTERN_C;
01621     YY_BREAK
01622 case 71:
01623 YY_RULE_SETUP
01624 #line 243 "scanner.ll"
01625 {
01626               yylval._str = new QString( yytext );
01627               return T_IDENTIFIER;
01628             }
01629     YY_BREAK
01630 case 72:
01631 #line 249 "scanner.ll"
01632 case 73:
01633 #line 250 "scanner.ll"
01634 case 74:
01635 #line 251 "scanner.ll"
01636 case 75:
01637 #line 252 "scanner.ll"
01638 case 76:
01639 YY_RULE_SETUP
01640 #line 252 "scanner.ll"
01641 {
01642               yylval._float = ascii_to_longdouble( yytext );
01643               return T_DOUBLE_LITERAL;
01644             }
01645     YY_BREAK
01646 case 77:
01647 YY_RULE_SETUP
01648 #line 256 "scanner.ll"
01649 {
01650               yylval._int = ascii_to_longlong( 10, yytext );
01651               return T_INTEGER_LITERAL;
01652             }
01653     YY_BREAK
01654 case 78:
01655 YY_RULE_SETUP
01656 #line 260 "scanner.ll"
01657 {
01658               yylval._int = ascii_to_longlong( 8, yytext );
01659               return T_INTEGER_LITERAL;
01660             }
01661     YY_BREAK
01662 case 79:
01663 YY_RULE_SETUP
01664 #line 264 "scanner.ll"
01665 {
01666               yylval._int = ascii_to_longlong( 16, yytext + 2 );
01667               return T_INTEGER_LITERAL;
01668             }
01669     YY_BREAK
01670 case 80:
01671 YY_RULE_SETUP
01672 #line 268 "scanner.ll"
01673 {
01674                           QCString s( yytext );
01675                       s = s.mid( 1, s.length() - 2 );
01676               yylval._char = translate_char( s );
01677               return T_CHARACTER_LITERAL;
01678             }
01679     YY_BREAK
01680 case 81:
01681 YY_RULE_SETUP
01682 #line 274 "scanner.ll"
01683 {
01684                           QString s( yytext );
01685                           yylval._str = new QString( s.mid( 1, s.length() - 2 ) );
01686               return T_STRING_LITERAL;
01687             }
01688     YY_BREAK
01689 case 82:
01690 YY_RULE_SETUP
01691 #line 279 "scanner.ll"
01692 {
01693               if (function_mode)
01694                 return yylex(); // call once again
01695 
01696               qFatal("could not parse %c(%d) at line %d" , yytext[0], yytext[0], idl_line_no);
01697               return T_UNKNOWN;
01698             }
01699     YY_BREAK
01700 case 83:
01701 YY_RULE_SETUP
01702 #line 287 "scanner.ll"
01703 ECHO;
01704     YY_BREAK
01705 #line 1706 "scanner.cc"
01706             case YY_STATE_EOF(INITIAL):
01707                 yyterminate();
01708 
01709     case YY_END_OF_BUFFER:
01710         {
01711         /* Amount of text matched not including the EOB char. */
01712         int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
01713 
01714         /* Undo the effects of YY_DO_BEFORE_ACTION. */
01715         *yy_cp = (yy_hold_char);
01716         YY_RESTORE_YY_MORE_OFFSET
01717 
01718         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01719             {
01720             /* We're scanning a new file or input source.  It's
01721              * possible that this happened because the user
01722              * just pointed yyin at a new source and called
01723              * yylex().  If so, then we have to assure
01724              * consistency between YY_CURRENT_BUFFER and our
01725              * globals.  Here is the right place to do so, because
01726              * this is the first action (other than possibly a
01727              * back-up) that will match for the new input source.
01728              */
01729             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01730             YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01731             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01732             }
01733 
01734         /* Note that here we test for yy_c_buf_p "<=" to the position
01735          * of the first EOB in the buffer, since yy_c_buf_p will
01736          * already have been incremented past the NUL character
01737          * (since all states make transitions on EOB to the
01738          * end-of-buffer state).  Contrast this with the test
01739          * in input().
01740          */
01741         if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01742             { /* This was really a NUL. */
01743             yy_state_type yy_next_state;
01744 
01745             (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
01746 
01747             yy_current_state = yy_get_previous_state(  );
01748 
01749             /* Okay, we're now positioned to make the NUL
01750              * transition.  We couldn't have
01751              * yy_get_previous_state() go ahead and do it
01752              * for us because it doesn't know how to deal
01753              * with the possibility of jamming (and we don't
01754              * want to build jamming into it because then it
01755              * will run more slowly).
01756              */
01757 
01758             yy_next_state = yy_try_NUL_trans( yy_current_state );
01759 
01760             yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01761 
01762             if ( yy_next_state )
01763                 {
01764                 /* Consume the NUL. */
01765                 yy_cp = ++(yy_c_buf_p);
01766                 yy_current_state = yy_next_state;
01767                 goto yy_match;
01768                 }
01769 
01770             else
01771                 {
01772                 yy_cp = (yy_c_buf_p);
01773                 goto yy_find_action;
01774                 }
01775             }
01776 
01777         else switch ( yy_get_next_buffer(  ) )
01778             {
01779             case EOB_ACT_END_OF_FILE:
01780                 {
01781                 (yy_did_buffer_switch_on_eof) = 0;
01782 
01783                 if ( yywrap( ) )
01784                     {
01785                     /* Note: because we've taken care in
01786                      * yy_get_next_buffer() to have set up
01787                      * yytext, we can now set up
01788                      * yy_c_buf_p so that if some total
01789                      * hoser (like flex itself) wants to
01790                      * call the scanner after we return the
01791                      * YY_NULL, it'll still work - another
01792                      * YY_NULL will get returned.
01793                      */
01794                     (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
01795 
01796                     yy_act = YY_STATE_EOF(YY_START);
01797                     goto do_action;
01798                     }
01799 
01800                 else
01801                     {
01802                     if ( ! (yy_did_buffer_switch_on_eof) )
01803                         YY_NEW_FILE;
01804                     }
01805                 break;
01806                 }
01807 
01808             case EOB_ACT_CONTINUE_SCAN:
01809                 (yy_c_buf_p) =
01810                     (yytext_ptr) + yy_amount_of_matched_text;
01811 
01812                 yy_current_state = yy_get_previous_state(  );
01813 
01814                 yy_cp = (yy_c_buf_p);
01815                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01816                 goto yy_match;
01817 
01818             case EOB_ACT_LAST_MATCH:
01819                 (yy_c_buf_p) =
01820                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
01821 
01822                 yy_current_state = yy_get_previous_state(  );
01823 
01824                 yy_cp = (yy_c_buf_p);
01825                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01826                 goto yy_find_action;
01827             }
01828         break;
01829         }
01830 
01831     default:
01832         YY_FATAL_ERROR(
01833             "fatal flex scanner internal error--no action found" );
01834     } /* end of action switch */
01835         } /* end of scanning one token */
01836 } /* end of yylex */
01837 
01838 /* yy_get_next_buffer - try to read in a new buffer
01839  *
01840  * Returns a code representing an action:
01841  *  EOB_ACT_LAST_MATCH -
01842  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
01843  *  EOB_ACT_END_OF_FILE - end of file
01844  */
01845 static int yy_get_next_buffer (void)
01846 {
01847         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
01848     register char *source = (yytext_ptr);
01849     register int number_to_move, i;
01850     int ret_val;
01851 
01852     if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
01853         YY_FATAL_ERROR(
01854         "fatal flex scanner internal error--end of buffer missed" );
01855 
01856     if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
01857         { /* Don't try to fill the buffer, so this is an EOF. */
01858         if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
01859             {
01860             /* We matched a single character, the EOB, so
01861              * treat this as a final EOF.
01862              */
01863             return EOB_ACT_END_OF_FILE;
01864             }
01865 
01866         else
01867             {
01868             /* We matched some text prior to the EOB, first
01869              * process it.
01870              */
01871             return EOB_ACT_LAST_MATCH;
01872             }
01873         }
01874 
01875     /* Try to read more data. */
01876 
01877     /* First move last chars to start of buffer. */
01878     number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
01879 
01880     for ( i = 0; i < number_to_move; ++i )
01881         *(dest++) = *(source++);
01882 
01883     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01884         /* don't do the read, it's not guaranteed to return an EOF,
01885          * just force an EOF
01886          */
01887         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
01888 
01889     else
01890         {
01891             size_t num_to_read =
01892             YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
01893 
01894         while ( num_to_read <= 0 )
01895             { /* Not enough room in the buffer - grow it. */
01896 
01897             YY_FATAL_ERROR(
01898 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
01899 
01900             }
01901 
01902         if ( num_to_read > YY_READ_BUF_SIZE )
01903             num_to_read = YY_READ_BUF_SIZE;
01904 
01905         /* Read in more data. */
01906         YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
01907             (yy_n_chars), num_to_read );
01908 
01909         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
01910         }
01911 
01912     if ( (yy_n_chars) == 0 )
01913         {
01914         if ( number_to_move == YY_MORE_ADJ )
01915             {
01916             ret_val = EOB_ACT_END_OF_FILE;
01917             yyrestart(yyin  );
01918             }
01919 
01920         else
01921             {
01922             ret_val = EOB_ACT_LAST_MATCH;
01923             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
01924                 YY_BUFFER_EOF_PENDING;
01925             }
01926         }
01927 
01928     else
01929         ret_val = EOB_ACT_CONTINUE_SCAN;
01930 
01931     (yy_n_chars) += number_to_move;
01932     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
01933     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
01934 
01935     (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
01936 
01937     return ret_val;
01938 }
01939 
01940 /* yy_get_previous_state - get the state just before the EOB char was reached */
01941 
01942     static yy_state_type yy_get_previous_state (void)
01943 {
01944     register yy_state_type yy_current_state;
01945     register char *yy_cp;
01946     
01947     yy_current_state = (yy_start);
01948 
01949     (yy_state_ptr) = (yy_state_buf);
01950     *(yy_state_ptr)++ = yy_current_state;
01951 
01952     for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
01953         {
01954         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01955         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01956             {
01957             yy_current_state = (int) yy_def[yy_current_state];
01958             if ( yy_current_state >= 311 )
01959                 yy_c = yy_meta[(unsigned int) yy_c];
01960             }
01961         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01962         *(yy_state_ptr)++ = yy_current_state;
01963         }
01964 
01965     return yy_current_state;
01966 }
01967 
01968 /* yy_try_NUL_trans - try to make a transition on the NUL character
01969  *
01970  * synopsis
01971  *  next_state = yy_try_NUL_trans( current_state );
01972  */
01973     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
01974 {
01975     register int yy_is_jam;
01976     
01977     register YY_CHAR yy_c = 1;
01978     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01979         {
01980         yy_current_state = (int) yy_def[yy_current_state];
01981         if ( yy_current_state >= 311 )
01982             yy_c = yy_meta[(unsigned int) yy_c];
01983         }
01984     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01985     yy_is_jam = (yy_current_state == 310);
01986     if ( ! yy_is_jam )
01987         *(yy_state_ptr)++ = yy_current_state;
01988 
01989     return yy_is_jam ? 0 : yy_current_state;
01990 }
01991 
01992     static void yyunput (int c, register char * yy_bp )
01993 {
01994     register char *yy_cp;
01995     
01996     yy_cp = (yy_c_buf_p);
01997 
01998     /* undo effects of setting up yytext */
01999     *yy_cp = (yy_hold_char);
02000 
02001     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02002         { /* need to shift things up to make room */
02003         /* +2 for EOB chars. */
02004         register int number_to_move = (yy_n_chars) + 2;
02005         register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02006                     YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02007         register char *source =
02008                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02009 
02010         while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02011             *--dest = *--source;
02012 
02013         yy_cp += (int) (dest - source);
02014         yy_bp += (int) (dest - source);
02015         YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02016             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02017 
02018         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02019             YY_FATAL_ERROR( "flex scanner push-back overflow" );
02020         }
02021 
02022     *--yy_cp = (char) c;
02023 
02024     (yytext_ptr) = yy_bp;
02025     (yy_hold_char) = *yy_cp;
02026     (yy_c_buf_p) = yy_cp;
02027 }
02028 
02029 #ifndef YY_NO_INPUT
02030 #ifdef __cplusplus
02031     static int yyinput (void)
02032 #else
02033     static int input  (void)
02034 #endif
02035 
02036 {
02037     int c;
02038     
02039     *(yy_c_buf_p) = (yy_hold_char);
02040 
02041     if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
02042         {
02043         /* yy_c_buf_p now points to the character we want to return.
02044          * If this occurs *before* the EOB characters, then it's a
02045          * valid NUL; if not, then we've hit the end of the buffer.
02046          */
02047         if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02048             /* This was really a NUL. */
02049             *(yy_c_buf_p) = '\0';
02050 
02051         else
02052             { /* need more input */
02053             int offset = (yy_c_buf_p) - (yytext_ptr);
02054             ++(yy_c_buf_p);
02055 
02056             switch ( yy_get_next_buffer(  ) )
02057                 {
02058                 case EOB_ACT_LAST_MATCH:
02059                     /* This happens because yy_g_n_b()
02060                      * sees that we've accumulated a
02061                      * token and flags that we need to
02062                      * try matching the token before
02063                      * proceeding.  But for input(),
02064                      * there's no matching to consider.
02065                      * So convert the EOB_ACT_LAST_MATCH
02066                      * to EOB_ACT_END_OF_FILE.
02067                      */
02068 
02069                     /* Reset buffer status. */
02070                     yyrestart(yyin );
02071 
02072                     /*FALLTHROUGH*/
02073 
02074                 case EOB_ACT_END_OF_FILE:
02075                     {
02076                     if ( yywrap( ) )
02077                         return EOF;
02078 
02079                     if ( ! (yy_did_buffer_switch_on_eof) )
02080                         YY_NEW_FILE;
02081 #ifdef __cplusplus
02082                     return yyinput();
02083 #else
02084                     return input();
02085 #endif
02086                     }
02087 
02088                 case EOB_ACT_CONTINUE_SCAN:
02089                     (yy_c_buf_p) = (yytext_ptr) + offset;
02090                     break;
02091                 }
02092             }
02093         }
02094 
02095     c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
02096     *(yy_c_buf_p) = '\0';   /* preserve yytext */
02097     (yy_hold_char) = *++(yy_c_buf_p);
02098 
02099     return c;
02100 }
02101 #endif  /* ifndef YY_NO_INPUT */
02102 
02108     void yyrestart  (FILE * input_file )
02109 {
02110     
02111     if ( ! YY_CURRENT_BUFFER ){
02112         yyensure_buffer_stack ();
02113         YY_CURRENT_BUFFER_LVALUE =
02114             yy_create_buffer(yyin,YY_BUF_SIZE );
02115     }
02116 
02117     yy_init_buffer(YY_CURRENT_BUFFER,input_file );
02118     yy_load_buffer_state( );
02119 }
02120 
02125     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
02126 {
02127     
02128     /* TODO. We should be able to replace this entire function body
02129      * with
02130      *      yypop_buffer_state();
02131      *      yypush_buffer_state(new_buffer);
02132      */
02133     yyensure_buffer_stack ();
02134     if ( YY_CURRENT_BUFFER == new_buffer )
02135         return;
02136 
02137     if ( YY_CURRENT_BUFFER )
02138         {
02139         /* Flush out information for old buffer. */
02140         *(yy_c_buf_p) = (yy_hold_char);
02141         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02142         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02143         }
02144 
02145     YY_CURRENT_BUFFER_LVALUE = new_buffer;
02146     yy_load_buffer_state( );
02147 
02148     /* We don't actually know whether we did this switch during
02149      * EOF (yywrap()) processing, but the only time this flag
02150      * is looked at is after yywrap() is called, so it's safe
02151      * to go ahead and always set it.
02152      */
02153     (yy_did_buffer_switch_on_eof) = 1;
02154 }
02155 
02156 static void yy_load_buffer_state  (void)
02157 {
02158         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02159     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02160     yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02161     (yy_hold_char) = *(yy_c_buf_p);
02162 }
02163 
02170     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
02171 {
02172     YY_BUFFER_STATE b;
02173     
02174     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
02175     if ( ! b )
02176         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02177 
02178     b->yy_buf_size = size;
02179 
02180     /* yy_ch_buf has to be 2 characters longer than the size given because
02181      * we need to put in 2 end-of-buffer characters.
02182      */
02183     b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
02184     if ( ! b->yy_ch_buf )
02185         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02186 
02187     b->yy_is_our_buffer = 1;
02188 
02189     yy_init_buffer(b,file );
02190 
02191     return b;
02192 }
02193 
02198     void yy_delete_buffer (YY_BUFFER_STATE  b )
02199 {
02200     
02201     if ( ! b )
02202         return;
02203 
02204     if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02205         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02206 
02207     if ( b->yy_is_our_buffer )
02208         yyfree((void *) b->yy_ch_buf  );
02209 
02210     yyfree((void *) b  );
02211 }
02212 
02213 /* Initializes or reinitializes a buffer.
02214  * This function is sometimes called more than once on the same buffer,
02215  * such as during a yyrestart() or at EOF.
02216  */
02217     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
02218 
02219 {
02220     int oerrno = errno;
02221     
02222     yy_flush_buffer(b );
02223 
02224     b->yy_input_file = file;
02225     b->yy_fill_buffer = 1;
02226 
02227     /* If b is the current buffer, then yy_init_buffer was _probably_
02228      * called from yyrestart() or through yy_get_next_buffer.
02229      * In that case, we don't want to reset the lineno or column.
02230      */
02231     if (b != YY_CURRENT_BUFFER){
02232         b->yy_bs_lineno = 1;
02233         b->yy_bs_column = 0;
02234     }
02235 
02236         b->yy_is_interactive = 0;
02237     
02238     errno = oerrno;
02239 }
02240 
02245     void yy_flush_buffer (YY_BUFFER_STATE  b )
02246 {
02247         if ( ! b )
02248         return;
02249 
02250     b->yy_n_chars = 0;
02251 
02252     /* We always need two end-of-buffer characters.  The first causes
02253      * a transition to the end-of-buffer state.  The second causes
02254      * a jam in that state.
02255      */
02256     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02257     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02258 
02259     b->yy_buf_pos = &b->yy_ch_buf[0];
02260 
02261     b->yy_at_bol = 1;
02262     b->yy_buffer_status = YY_BUFFER_NEW;
02263 
02264     if ( b == YY_CURRENT_BUFFER )
02265         yy_load_buffer_state( );
02266 }
02267 
02274 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
02275 {
02276         if (new_buffer == NULL)
02277         return;
02278 
02279     yyensure_buffer_stack();
02280 
02281     /* This block is copied from yy_switch_to_buffer. */
02282     if ( YY_CURRENT_BUFFER )
02283         {
02284         /* Flush out information for old buffer. */
02285         *(yy_c_buf_p) = (yy_hold_char);
02286         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02287         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02288         }
02289 
02290     /* Only push if top exists. Otherwise, replace top. */
02291     if (YY_CURRENT_BUFFER)
02292         (yy_buffer_stack_top)++;
02293     YY_CURRENT_BUFFER_LVALUE = new_buffer;
02294 
02295     /* copied from yy_switch_to_buffer. */
02296     yy_load_buffer_state( );
02297     (yy_did_buffer_switch_on_eof) = 1;
02298 }
02299 
02304 void yypop_buffer_state (void)
02305 {
02306         if (!YY_CURRENT_BUFFER)
02307         return;
02308 
02309     yy_delete_buffer(YY_CURRENT_BUFFER );
02310     YY_CURRENT_BUFFER_LVALUE = NULL;
02311     if ((yy_buffer_stack_top) > 0)
02312         --(yy_buffer_stack_top);
02313 
02314     if (YY_CURRENT_BUFFER) {
02315         yy_load_buffer_state( );
02316         (yy_did_buffer_switch_on_eof) = 1;
02317     }
02318 }
02319 
02320 /* Allocates the stack if it does not exist.
02321  *  Guarantees space for at least one push.
02322  */
02323 static void yyensure_buffer_stack (void)
02324 {
02325     int num_to_alloc;
02326     
02327     if (!(yy_buffer_stack)) {
02328 
02329         /* First allocation is just for 2 elements, since we don't know if this
02330          * scanner will even need a stack. We use 2 instead of 1 to avoid an
02331          * immediate realloc on the next call.
02332          */
02333         num_to_alloc = 1;
02334         (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
02335                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02336                                 );
02337         
02338         memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02339                 
02340         (yy_buffer_stack_max) = num_to_alloc;
02341         (yy_buffer_stack_top) = 0;
02342         return;
02343     }
02344 
02345     if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
02346 
02347         /* Increase the buffer to prepare for a possible push. */
02348         int grow_size = 8 /* arbitrary grow size */;
02349 
02350         num_to_alloc = (yy_buffer_stack_max) + grow_size;
02351         (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
02352                                 ((yy_buffer_stack),
02353                                 num_to_alloc * sizeof(struct yy_buffer_state*)
02354                                 );
02355 
02356         /* zero only the new slots.*/
02357         memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
02358         (yy_buffer_stack_max) = num_to_alloc;
02359     }
02360 }
02361 
02368 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
02369 {
02370     YY_BUFFER_STATE b;
02371     
02372     if ( size < 2 ||
02373          base[size-2] != YY_END_OF_BUFFER_CHAR ||
02374          base[size-1] != YY_END_OF_BUFFER_CHAR )
02375         /* They forgot to leave room for the EOB's. */
02376         return 0;
02377 
02378     b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
02379     if ( ! b )
02380         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
02381 
02382     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
02383     b->yy_buf_pos = b->yy_ch_buf = base;
02384     b->yy_is_our_buffer = 0;
02385     b->yy_input_file = 0;
02386     b->yy_n_chars = b->yy_buf_size;
02387     b->yy_is_interactive = 0;
02388     b->yy_at_bol = 1;
02389     b->yy_fill_buffer = 0;
02390     b->yy_buffer_status = YY_BUFFER_NEW;
02391 
02392     yy_switch_to_buffer(b  );
02393 
02394     return b;
02395 }
02396 
02405 YY_BUFFER_STATE yy_scan_string (yyconst char * yy_str )
02406 {
02407     
02408     return yy_scan_bytes(yy_str,strlen(yy_str) );
02409 }
02410 
02418 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * bytes, int  len )
02419 {
02420     YY_BUFFER_STATE b;
02421     char *buf;
02422     yy_size_t n;
02423     int i;
02424     
02425     /* Get memory for full buffer, including space for trailing EOB's. */
02426     n = len + 2;
02427     buf = (char *) yyalloc(n  );
02428     if ( ! buf )
02429         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
02430 
02431     for ( i = 0; i < len; ++i )
02432         buf[i] = bytes[i];
02433 
02434     buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
02435 
02436     b = yy_scan_buffer(buf,n );
02437     if ( ! b )
02438         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
02439 
02440     /* It's okay to grow etc. this buffer, and we should throw it
02441      * away when we're done.
02442      */
02443     b->yy_is_our_buffer = 1;
02444 
02445     return b;
02446 }
02447 
02448 #ifndef YY_EXIT_FAILURE
02449 #define YY_EXIT_FAILURE 2
02450 #endif
02451 
02452 static void yy_fatal_error (yyconst char* msg )
02453 {
02454         (void) fprintf( stderr, "%s\n", msg );
02455     exit( YY_EXIT_FAILURE );
02456 }
02457 
02458 /* Redefine yyless() so it works in section 3 code. */
02459 
02460 #undef yyless
02461 #define yyless(n) \
02462     do \
02463         { \
02464         /* Undo effects of setting up yytext. */ \
02465         int yyless_macro_arg = (n); \
02466         YY_LESS_LINENO(yyless_macro_arg);\
02467         yytext[yyleng] = (yy_hold_char); \
02468         (yy_c_buf_p) = yytext + yyless_macro_arg; \
02469         (yy_hold_char) = *(yy_c_buf_p); \
02470         *(yy_c_buf_p) = '\0'; \
02471         yyleng = yyless_macro_arg; \
02472         } \
02473     while ( 0 )
02474 
02475 /* Accessor  methods (get/set functions) to struct members. */
02476 
02480 int yyget_lineno  (void)
02481 {
02482         
02483     return yylineno;
02484 }
02485 
02489 FILE *yyget_in  (void)
02490 {
02491         return yyin;
02492 }
02493 
02497 FILE *yyget_out  (void)
02498 {
02499         return yyout;
02500 }
02501 
02505 int yyget_leng  (void)
02506 {
02507         return yyleng;
02508 }
02509 
02514 char *yyget_text  (void)
02515 {
02516         return yytext;
02517 }
02518 
02523 void yyset_lineno (int  line_number )
02524 {
02525     
02526     yylineno = line_number;
02527 }
02528 
02535 void yyset_in (FILE *  in_str )
02536 {
02537         yyin = in_str ;
02538 }
02539 
02540 void yyset_out (FILE *  out_str )
02541 {
02542         yyout = out_str ;
02543 }
02544 
02545 int yyget_debug  (void)
02546 {
02547         return yy_flex_debug;
02548 }
02549 
02550 void yyset_debug (int  bdebug )
02551 {
02552         yy_flex_debug = bdebug ;
02553 }
02554 
02555 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
02556 int yylex_destroy  (void)
02557 {
02558     
02559     /* Pop the buffer stack, destroying each element. */
02560     while(YY_CURRENT_BUFFER){
02561         yy_delete_buffer(YY_CURRENT_BUFFER  );
02562         YY_CURRENT_BUFFER_LVALUE = NULL;
02563         yypop_buffer_state();
02564     }
02565 
02566     /* Destroy the stack itself. */
02567     yyfree((yy_buffer_stack) );
02568     (yy_buffer_stack) = NULL;
02569 
02570     yyfree ( (yy_state_buf) );
02571 
02572     return 0;
02573 }
02574 
02575 /*
02576  * Internal utility routines.
02577  */
02578 
02579 #ifndef yytext_ptr
02580 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
02581 {
02582     register int i;
02583         for ( i = 0; i < n; ++i )
02584         s1[i] = s2[i];
02585 }
02586 #endif
02587 
02588 #ifdef YY_NEED_STRLEN
02589 static int yy_flex_strlen (yyconst char * s )
02590 {
02591     register int n;
02592         for ( n = 0; s[n]; ++n )
02593         ;
02594 
02595     return n;
02596 }
02597 #endif
02598 
02599 void *yyalloc (yy_size_t  size )
02600 {
02601     return (void *) malloc( size );
02602 }
02603 
02604 void *yyrealloc  (void * ptr, yy_size_t  size )
02605 {
02606     /* The cast to (char *) in the following accommodates both
02607      * implementations that use char* generic pointers, and those
02608      * that use void* generic pointers.  It works with the latter
02609      * because both ANSI C and C++ allow castless assignment from
02610      * any pointer type to void*, and deal with argument conversions
02611      * as though doing an assignment.
02612      */
02613     return (void *) realloc( (char *) ptr, size );
02614 }
02615 
02616 void yyfree (void * ptr )
02617 {
02618     free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
02619 }
02620 
02621 #define YYTABLES_NAME "yytables"
02622 
02623 #undef YY_NEW_FILE
02624 #undef YY_FLUSH_BUFFER
02625 #undef yy_set_bol
02626 #undef yy_new_buffer
02627 #undef yy_set_interactive
02628 #undef yytext_ptr
02629 #undef YY_DO_BEFORE_ACTION
02630 
02631 #ifdef YY_DECL_IS_OURS
02632 #undef YY_DECL_IS_OURS
02633 #undef YY_DECL
02634 #endif
02635 #line 287 "scanner.ll"
02636 
02637 
02638 
02639 void dcopidlInitFlex( const char *_code )
02640 {
02641    comment_mode = 0;
02642    yy_switch_to_buffer(yy_scan_string(_code ) );
02643 }
02644 
KDE Logo
This file is part of the documentation for dcop Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed May 5 07:19:21 2004 by doxygen 1.3.6 written by Dimitri van Heesch, © 1997-2003