• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • dcop
 

dcop

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

dcop

Skip menu "dcop"
  • Main Page
  • Modules
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

dcop

Skip menu "dcop"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for dcop by doxygen 1.7.6.1
This website is maintained by Timothy Pearson.