• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

dcop

scanner.cc

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

dcop

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

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal