llcLexer.cpp

Go to the documentation of this file.
00001 #line 2 "tools/compile/llcLexer.cpp"
00002 
00003 #line 4 "tools/compile/llcLexer.cpp"
00004 
00005 #define  YY_INT_ALIGNED short int
00006 
00007 /* A lexical scanner generated by flex */
00008 
00009 #define FLEX_SCANNER
00010 #define YY_FLEX_MAJOR_VERSION 2
00011 #define YY_FLEX_MINOR_VERSION 5
00012 #define YY_FLEX_SUBMINOR_VERSION 31
00013 #if YY_FLEX_SUBMINOR_VERSION > 0
00014 #define FLEX_BETA
00015 #endif
00016 
00017 /* %if-c++-only */
00018     /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
00019      * following macro.
00020      */
00021     #define yyFlexLexer llcFlexLexer
00022 #include "pent_include.h"
00023 /* %endif */
00024 
00025 /* %if-c-only */
00026 /* %endif */
00027 
00028 /* %if-c-only */
00029 /* %endif */
00030 
00031 /* First, we deal with  platform-specific or compiler-specific issues. */
00032 
00033 /* begin standard C headers. */
00034 /* %if-c-only */
00035 /* %endif */
00036 
00037 /* %if-tables-serialization */
00038 /* %endif */
00039 /* end standard C headers. */
00040 
00041 /* %if-c-or-c++ */
00042 /* flex integer type definitions */
00043 
00044 #ifndef FLEXINT_H
00045 #define FLEXINT_H
00046 
00047 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00048 
00049 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
00050 #include <inttypes.h>
00051 typedef int8_t flex_int8_t;
00052 typedef uint8_t flex_uint8_t;
00053 typedef int16_t flex_int16_t;
00054 typedef uint16_t flex_uint16_t;
00055 typedef int32_t flex_int32_t;
00056 typedef uint32_t flex_uint32_t;
00057 #else
00058 typedef signed char flex_int8_t;
00059 typedef short int flex_int16_t;
00060 typedef int flex_int32_t;
00061 typedef unsigned char flex_uint8_t; 
00062 typedef unsigned short int flex_uint16_t;
00063 typedef unsigned int flex_uint32_t;
00064 #endif /* ! C99 */
00065 
00066 /* Limits of integral types. */
00067 #ifndef INT8_MIN
00068 #define INT8_MIN               (-128)
00069 #endif
00070 #ifndef INT16_MIN
00071 #define INT16_MIN              (-32767-1)
00072 #endif
00073 #ifndef INT32_MIN
00074 #define INT32_MIN              (-2147483647-1)
00075 #endif
00076 #ifndef INT8_MAX
00077 #define INT8_MAX               (127)
00078 #endif
00079 #ifndef INT16_MAX
00080 #define INT16_MAX              (32767)
00081 #endif
00082 #ifndef INT32_MAX
00083 #define INT32_MAX              (2147483647)
00084 #endif
00085 #ifndef UINT8_MAX
00086 #define UINT8_MAX              (255U)
00087 #endif
00088 #ifndef UINT16_MAX
00089 #define UINT16_MAX             (65535U)
00090 #endif
00091 #ifndef UINT32_MAX
00092 #define UINT32_MAX             (4294967295U)
00093 #endif
00094 
00095 #endif /* ! FLEXINT_H */
00096 
00097 /* %endif */
00098 
00099 /* %if-c++-only */
00100 /* begin standard C++ headers. */
00101 #include <iostream> 
00102 #include <errno.h>
00103 #include <cstdlib>
00104 #include <cstring>
00105 /* end standard C++ headers. */
00106 /* %endif */
00107 
00108 #ifdef __cplusplus
00109 
00110 /* The "const" storage-class-modifier is valid. */
00111 #define YY_USE_CONST
00112 
00113 #else   /* ! __cplusplus */
00114 
00115 #if __STDC__
00116 
00117 #define YY_USE_CONST
00118 
00119 #endif  /* __STDC__ */
00120 #endif  /* ! __cplusplus */
00121 
00122 #ifdef YY_USE_CONST
00123 #define yyconst const
00124 #else
00125 #define yyconst
00126 #endif
00127 
00128 /* %not-for-header */
00129 
00130 /* Returned upon end-of-file. */
00131 #define YY_NULL 0
00132 /* %ok-for-header */
00133 
00134 /* %not-for-header */
00135 
00136 /* Promotes a possibly negative, possibly signed char to an unsigned
00137  * integer for use as an array index.  If the signed char is negative,
00138  * we want to instead treat it as an 8-bit unsigned char, hence the
00139  * double cast.
00140  */
00141 #define YY_SC_TO_UI(c) (static_cast<unsigned int>(static_cast<unsigned char>(c)))
00142 /* %ok-for-header */
00143 
00144 /* %if-reentrant */
00145 /* %endif */
00146 
00147 /* %if-not-reentrant */
00148 
00149 /* %endif */
00150 
00151 /* Enter a start condition.  This macro really ought to take a parameter,
00152  * but we do it the disgusting crufty way forced on us by the ()-less
00153  * definition of BEGIN.
00154  */
00155 #define BEGIN (yy_start) = 1 + 2 *
00156 
00157 /* Translate the current start state into a value that can be later handed
00158  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00159  * compatibility.
00160  */
00161 #define YY_START (((yy_start) - 1) / 2)
00162 #define YYSTATE YY_START
00163 
00164 /* Action number for EOF rule of a given start state. */
00165 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00166 
00167 /* Special action meaning "start processing a new file". */
00168 #define YY_NEW_FILE yyrestart( yyin  )
00169 
00170 #define YY_END_OF_BUFFER_CHAR 0
00171 
00172 /* Size of default input buffer. */
00173 #ifndef YY_BUF_SIZE
00174 #define YY_BUF_SIZE 16384
00175 #endif
00176 
00177 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00178 #define YY_TYPEDEF_YY_BUFFER_STATE
00179 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00180 #endif
00181 
00182 /* %if-not-reentrant */
00183 extern int yyleng;
00184 /* %endif */
00185 
00186 /* %if-c-only */
00187 /* %if-not-reentrant */
00188 /* %endif */
00189 /* %endif */
00190 
00191 #define EOB_ACT_CONTINUE_SCAN 0
00192 #define EOB_ACT_END_OF_FILE 1
00193 #define EOB_ACT_LAST_MATCH 2
00194 
00195     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
00196      *       access to the local variable yy_act. Since yyless() is a macro, it would break
00197      *       existing scanners that call yyless() from OUTSIDE yylex. 
00198      *       One obvious solution it to make yy_act a global. I tried that, and saw
00199      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
00200      *       normally declared as a register variable-- so it is not worth it.
00201      */
00202     #define  YY_LESS_LINENO(n) \
00203             do { \
00204                 int yyl;\
00205                 for ( yyl = n; yyl < yyleng; ++yyl )\
00206                     if ( yytext[yyl] == '\n' )\
00207                         --yylineno;\
00208             }while(0)
00209     
00210 /* Return all but the first "n" matched characters back to the input stream. */
00211 #define yyless(n) \
00212         do \
00213                 { \
00214                 /* Undo effects of setting up yytext. */ \
00215         int yyless_macro_arg = (n); \
00216         YY_LESS_LINENO(yyless_macro_arg);\
00217                 *yy_cp = (yy_hold_char); \
00218                 YY_RESTORE_YY_MORE_OFFSET \
00219                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00220                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00221                 } \
00222         while ( 0 )
00223 
00224 #define unput(c) yyunput( c, (yytext_ptr)  )
00225 
00226 /* The following is because we cannot portably get our hands on size_t
00227  * (without autoconf's help, which isn't available because we want
00228  * flex-generated scanners to compile on their own).
00229  */
00230 
00231 #ifndef YY_TYPEDEF_YY_SIZE_T
00232 #define YY_TYPEDEF_YY_SIZE_T
00233 typedef unsigned int yy_size_t;
00234 #endif
00235 
00236 #ifndef YY_STRUCT_YY_BUFFER_STATE
00237 #define YY_STRUCT_YY_BUFFER_STATE
00238 struct yy_buffer_state
00239         {
00240 /* %if-c-only */
00241 /* %endif */
00242 
00243 /* %if-c++-only */
00244         std::istream* yy_input_file;
00245 /* %endif */
00246 
00247         char *yy_ch_buf;                /* input buffer */
00248         char *yy_buf_pos;               /* current position in input buffer */
00249 
00250         /* Size of input buffer in bytes, not including room for EOB
00251          * characters.
00252          */
00253         yy_size_t yy_buf_size;
00254 
00255         /* Number of characters read into yy_ch_buf, not including EOB
00256          * characters.
00257          */
00258         int yy_n_chars;
00259 
00260         /* Whether we "own" the buffer - i.e., we know we created it,
00261          * and can realloc() it to grow it, and should free() it to
00262          * delete it.
00263          */
00264         int yy_is_our_buffer;
00265 
00266         /* Whether this is an "interactive" input source; if so, and
00267          * if we're using stdio for input, then we want to use getc()
00268          * instead of fread(), to make sure we stop fetching input after
00269          * each newline.
00270          */
00271         int yy_is_interactive;
00272 
00273         /* Whether we're considered to be at the beginning of a line.
00274          * If so, '^' rules will be active on the next match, otherwise
00275          * not.
00276          */
00277         int yy_at_bol;
00278 
00279     int yy_bs_lineno; 
00280     int yy_bs_column; 
00282         /* Whether to try to fill the input buffer when we reach the
00283          * end of it.
00284          */
00285         int yy_fill_buffer;
00286 
00287         int yy_buffer_status;
00288 
00289 #define YY_BUFFER_NEW 0
00290 #define YY_BUFFER_NORMAL 1
00291         /* When an EOF's been seen but there's still some text to process
00292          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00293          * shouldn't try reading from the input source any more.  We might
00294          * still have a bunch of tokens to match, though, because of
00295          * possible backing-up.
00296          *
00297          * When we actually see the EOF, we change the status to "new"
00298          * (via yyrestart()), so that the user can continue scanning by
00299          * just pointing yyin at a new input file.
00300          */
00301 #define YY_BUFFER_EOF_PENDING 2
00302 
00303         };
00304 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00305 
00306 /* %if-c-only Standard (non-C++) definition */
00307 /* %not-for-header */
00308 
00309 /* %if-not-reentrant */
00310 /* %endif */
00311 /* %ok-for-header */
00312 
00313 /* %endif */
00314 
00315 /* We provide macros for accessing buffer states in case in the
00316  * future we want to put the buffer states in a more general
00317  * "scanner state".
00318  *
00319  * Returns the top of the stack, or NULL.
00320  */
00321 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00322                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00323                           : NULL)
00324 
00325 /* Same as previous macro, but useful when we know that the buffer stack is not
00326  * NULL or when we need an lvalue. For internal use only.
00327  */
00328 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00329 
00330 /* %if-c-only Standard (non-C++) definition */
00331 /* %if-not-reentrant */
00332 /* %not-for-header */
00333 
00334 /* %ok-for-header */
00335 
00336 /* %endif */
00337 /* %endif */
00338 
00339 void *llcalloc (yy_size_t  );
00340 void *llcrealloc (void *,yy_size_t  );
00341 void llcfree (void *  );
00342 
00343 #define yy_new_buffer yy_create_buffer
00344 
00345 #define yy_set_interactive(is_interactive) \
00346         { \
00347         if ( ! YY_CURRENT_BUFFER ){ \
00348         yyensure_buffer_stack (); \
00349                 YY_CURRENT_BUFFER_LVALUE =    \
00350             yy_create_buffer( yyin, YY_BUF_SIZE ); \
00351         } \
00352         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00353         }
00354 
00355 #define yy_set_bol(at_bol) \
00356         { \
00357         if ( ! YY_CURRENT_BUFFER ){\
00358         yyensure_buffer_stack (); \
00359                 YY_CURRENT_BUFFER_LVALUE =    \
00360             yy_create_buffer( yyin, YY_BUF_SIZE ); \
00361         } \
00362         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00363         }
00364 
00365 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00366 
00367 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
00368 /* Begin user sect3 */
00369 
00370 #define yywrap(n) 1
00371 #define YY_SKIP_YYWRAP
00372 
00373 #define FLEX_DEBUG
00374 
00375 typedef unsigned char YY_CHAR;
00376 
00377 #define yytext_ptr yytext
00378 
00379 #include "llcLexer.h"
00380 
00381 /* %if-c-only Standard (non-C++) definition */
00382 /* %endif */
00383 
00384 /* Done after the current pattern has been matched and before the
00385  * corresponding action - sets up yytext.
00386  */
00387 #define YY_DO_BEFORE_ACTION \
00388         (yytext_ptr) = yy_bp; \
00389 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
00390         yyleng = (size_t) (yy_cp - yy_bp); \
00391         (yy_hold_char) = *yy_cp; \
00392         *yy_cp = '\0'; \
00393 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
00394         (yy_c_buf_p) = yy_cp;
00395 
00396 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
00397 #define YY_NUM_RULES 117
00398 #define YY_END_OF_BUFFER 118
00399 /* This struct is not used in this scanner,
00400    but its presence is necessary. */
00401 struct yy_trans_info
00402         {
00403         flex_int32_t yy_verify;
00404         flex_int32_t yy_nxt;
00405         };
00406 static yyconst flex_int16_t yy_acclist[469] =
00407     {   0,
00408         3,    3,  118,  116,  117,   13,  116,  117,   13,  117,
00409        70,  116,  117,  116,  117,  116,  117,   78,  116,  117,
00410       116,  117,   30,  116,  117,   31,  116,  117,   51,  116,
00411       117,   53,  116,  117,   33,  116,  117,   54,  116,  117,
00412        32,  116,  117,   52,  116,  117,    9,  116,  117,    9,
00413       116,  117,   35,  116,  117,   34,  116,  117,   72,  116,
00414       117,   65,  116,  117,   74,  116,  117,  108,  116,  117,
00415       108,  116,  117,  108,  116,  117,  108,  116,  117,  108,
00416       116,  117,  108,  116,  117,  108,  116,  117,  108,  116,
00417       117,  108,  116,  117,  108,  116,  117,  108,  116,  117,
00418 
00419        87,  116,  117,   88,  116,  117,   57,  116,  117,  108,
00420       116,  117,  108,  116,  117,  108,  116,  117,  108,  116,
00421       117,  108,  116,  117,  108,  116,  117,  108,  116,  117,
00422       108,  116,  117,  108,  116,  117,  108,  116,  117,  108,
00423       116,  117,  108,  116,  117,  108,  116,  117,  108,  116,
00424       117,  108,  116,  117,  108,  116,  117,  108,  116,  117,
00425        28,  116,  117,   79,  116,  117,   29,  116,  117,   80,
00426       116,  117,    3,  117,    4,  117,    5,  117,  115,  117,
00427       113,  115,  117,  113,  114,  117,  115,  117,   13,   77,
00428        11,   66,   81,   12,   58,   63,   60,   64,    9,   61,
00429 
00430         2,   59,   36,   85,   73,   76,   75,   86,  107,  108,
00431       108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
00432       108,   37,   38,   62,  108,  108,  108,  108,  108,  108,
00433       108,  108,  108,  108,  108,  108,  108,   89,  108,  108,
00434       108,  108,  108,   69,  108,  108,  108,  108,  108,  108,
00435       108,  108,  108,   82,   68,    3,    4,    5,    6,    5,
00436         7,  113,    1,    8,   10,   47,   48,  108,  108,  108,
00437       108,   19,  108,  108,  108,  108,  108,  108,  108,  108,
00438        67,  108,  105,  108,  108,  108,  108,  108,  108,  108,
00439       108,  108,  108, 8283,16475,  108,  108,   55,  108,   71,
00440 
00441       108,  108,  108,  108,  108,  108,  108,  108,  108,  101,
00442       108,  108, 8282,16474,   49,   50,   14,  108,   16,  108,
00443       108,  108,  108,   23,  108,  108,  108,  108,  108,   17,
00444       108,  108,  108,   96,  108,  108,  108,  108,   92,  108,
00445       108,  108,  108, 8283,  107,  108,  104,  100,  108,  108,
00446       108,  108,  108,  108,  108,  108,  108,   83,  108,  108,
00447      8282,  108,   25,  108,   18,  108,  108,  108,  108,  108,
00448       108,  108,   98,  108,  102,  108,  108,  108,  108,   84,
00449       108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
00450       108,  108,  111,  112,  110,  108,  108,  108,   21,  108,
00451 
00452       108,   27,  108,   22,  108,  108,  108,  108,  108,  108,
00453       108,   56,  108,  108,  108,  108,   46,  108,   39,  108,
00454       108,  108, 8285,16477,  109,   15,  108,  108,   20,  108,
00455        24,  108,  108,  108,   97,  108,   43,  108,   94,  108,
00456       108,  108,   42,  108,  108,   41,  108,   40,  108, 8285,
00457       107,   26,  108,   99,  108,  103,  108,   45,  108,  108,
00458       108,   95,  108,  106,  108,  108,   44,  108
00459     } ;
00460 
00461 static yyconst flex_int16_t yy_accept[334] =
00462     {   0,
00463         1,    1,    1,    2,    3,    3,    3,    4,    6,    9,
00464        11,   14,   16,   18,   21,   23,   26,   29,   32,   35,
00465        38,   41,   44,   47,   50,   53,   56,   59,   62,   65,
00466        68,   71,   74,   77,   80,   83,   86,   89,   92,   95,
00467        98,  101,  104,  107,  110,  113,  116,  119,  122,  125,
00468       128,  131,  134,  137,  140,  143,  146,  149,  152,  155,
00469       158,  161,  164,  167,  170,  173,  175,  177,  179,  181,
00470       184,  187,  189,  190,  191,  191,  192,  192,  192,  193,
00471       194,  194,  195,  196,  197,  198,  199,  200,  201,  202,
00472       202,  203,  203,  203,  204,  205,  206,  207,  208,  209,
00473 
00474       209,  210,  211,  212,  213,  214,  215,  216,  217,  218,
00475       219,  220,  221,  222,  223,  224,  225,  226,  227,  228,
00476       229,  230,  231,  232,  233,  234,  235,  236,  237,  238,
00477       240,  241,  242,  243,  244,  246,  247,  248,  249,  250,
00478       251,  252,  253,  254,  255,  256,  257,  258,  259,  260,
00479       261,  262,  263,  263,  263,  263,  263,  263,  263,  264,
00480       265,  266,  267,  268,  269,  270,  271,  272,  274,  275,
00481       276,  277,  278,  279,  280,  281,  283,  285,  286,  287,
00482       288,  289,  290,  291,  292,  293,  294,  296,  297,  297,
00483       298,  300,  302,  303,  304,  305,  306,  307,  308,  309,
00484 
00485       310,  312,  313,  313,  313,  313,  313,  315,  316,  317,
00486       319,  321,  322,  323,  324,  326,  327,  328,  329,  330,
00487       332,  333,  334,  336,  337,  338,  339,  341,  342,  343,
00488       344,  346,  347,  348,  350,  351,  352,  353,  354,  355,
00489       356,  357,  358,  360,  361,  361,  361,  361,  361,  362,
00490       363,  365,  367,  368,  369,  370,  371,  372,  373,  375,
00491       377,  378,  379,  380,  382,  383,  384,  385,  386,  387,
00492       388,  389,  390,  391,  392,  393,  394,  395,  396,  396,
00493       397,  398,  399,  401,  402,  404,  406,  407,  408,  409,
00494       410,  411,  412,  414,  415,  416,  417,  419,  421,  422,
00495 
00496       423,  425,  426,  428,  429,  431,  433,  434,  435,  437,
00497       439,  441,  442,  443,  445,  446,  448,  450,  452,  454,
00498       454,  456,  458,  460,  461,  461,  462,  464,  465,  466,
00499       467,  469,  469
00500     } ;
00501 
00502 static yyconst flex_int32_t yy_ec[256] =
00503     {   0,
00504         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00505         2,    2,    2,    1,    1,    1,    1,    1,    1,    1,
00506         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00507         1,    2,    4,    5,    6,    1,    1,    7,    8,    9,
00508        10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
00509        19,   19,   19,   19,   19,   19,   19,   20,   21,   22,
00510        23,   24,    1,    1,   25,   26,   27,   28,   29,   30,
00511        31,   31,   32,   31,   31,   33,   31,   34,   31,   35,
00512        31,   36,   37,   31,   31,   31,   38,   39,   31,   31,
00513        40,    1,   41,   42,   31,    1,   43,   44,   45,   46,
00514 
00515        47,   48,   49,   50,   51,   31,   52,   53,   54,   55,
00516        56,   57,   31,   58,   59,   60,   61,   62,   63,   64,
00517        65,   31,   66,   67,   68,   69,    1,    1,    1,    1,
00518         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00519         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00520         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00521         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00522         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00523         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00524         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00525 
00526         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00527         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00528         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00529         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00530         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00531         1,    1,    1,    1,    1
00532     } ;
00533 
00534 static yyconst flex_int32_t yy_meta[70] =
00535     {   0,
00536         1,    2,    2,    1,    1,    1,    1,    1,    2,    1,
00537         3,    1,    1,    1,    1,    1,    4,    4,    4,    1,
00538         1,    1,    1,    1,    4,    4,    4,    4,    4,    4,
00539         2,    2,    2,    2,    2,    2,    2,    2,    2,    1,
00540         1,    1,    4,    4,    4,    4,    4,    4,    2,    2,
00541         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00542         2,    2,    2,    2,    2,    1,    1,    1,    1
00543     } ;
00544 
00545 static yyconst flex_int16_t yy_base[342] =
00546     {   0,
00547         0,    0,   67,   68,   70,   72,  330, 1262,   74,   78,
00548       293,  307,   35,   76,  299, 1262, 1262,  282,   72, 1262,
00549        71, 1262,   80,   87,   83,  283, 1262,   92, 1262,   69,
00550       115,  118,  120,  130,  132,  134,  143,  145,  147,  155,
00551       157,  246,  243,  244,  168,  160,  177,  187,  179,  196,
00552       200,  208,  219,  222,  233,  235,  238,  247,  251,  259,
00553       263, 1262,   75, 1262, 1262,  260, 1262,  162, 1262,  105,
00554       189,  137,  204, 1262,  246, 1262,  165,  179, 1262, 1262,
00555       211, 1262, 1262, 1262, 1262, 1262,  252, 1262, 1262,  213,
00556      1262,  228,    0, 1262,  190, 1262, 1262, 1262,  184,  271,
00557 
00558      1262,  274,  279,  287,  295,  297,  308,  312,  320,  322,
00559       317,  325,  330, 1262, 1262, 1262,  334,  339,  342,  352,
00560       354,  363,  367,  375,  384,  388,  392,  400,  402,  405,
00561       415,  417,  425,  427,  429,  437,  439,  447,  450,  458,
00562       460,  463,  472, 1262, 1262,  197, 1262,  276, 1262,  467,
00563      1262,  255,  172,  170,  168,  127,  299,  158, 1262,  341,
00564         0,  132,  130,  477,  487,  491,  495,  499,  510,  513,
00565       522,  526,  524,  534,  536,  538,  546,  549,  557,  559,
00566       562,  580,  582,  584,  593,  596,  598,  606,  608,  610,
00567       618,  622,  630,  632,  645,  647,  655,  657,  665,  667,
00568 
00569       669,  678,  112,  103,  102,   83,  680, 1262, 1262,  682,
00570       690,  692,  694,  702,  710,  718,  721,  723,  732,  734,
00571       736,  744,  746,  754,  757,  759,  768,  770,  782,  790,
00572      1262,  786, 1262,  795,  798,  800,  803,  808,  812,  816,
00573       821,  832,  834,  836,   95,   88,   85,   67, 1262,  845,
00574       853,  855,  858,  866,  868,  878,  882,  890,  892,  895,
00575       900,  904,  908,  916,  918,  920,  930,  932,  935,  943,
00576       956,  958,  966,  970,  974, 1262, 1262, 1262,   50,  978,
00577       982,  987,  990,  995,  998, 1003, 1006, 1008, 1017, 1020,
00578      1025, 1029, 1033, 1037, 1041, 1045, 1049, 1053, 1057, 1061,
00579 
00580      1069, 1262, 1079, 1081, 1083, 1092, 1096, 1100, 1108, 1110,
00581      1112, 1120, 1122, 1124, 1133, 1135, 1137, 1262, 1146, 1148,
00582      1150, 1158, 1160, 1162,   49, 1171, 1173, 1262, 1175, 1183,
00583      1185, 1262, 1230, 1234, 1238, 1242, 1245, 1249, 1253, 1257,
00584        83
00585     } ;
00586 
00587 static yyconst flex_int16_t yy_def[342] =
00588     {   0,
00589       332,    1,  333,  333,  334,  334,  332,  332,  332,  332,
00590       332,  335,  332,  332,  336,  332,  332,  332,  332,  332,
00591       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00592       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00593       337,  332,  332,  332,  337,  337,  337,  337,  337,  337,
00594       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00595       337,  332,  332,  332,  332,  338,  332,  339,  332,  332,
00596       332,  332,  332,  332,  335,  332,  332,  332,  332,  332,
00597       336,  332,  332,  332,  332,  332,  332,  332,  332,  340,
00598       332,  332,  341,  332,  332,  332,  332,  332,  332,  332,
00599 
00600       332,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00601       337,  337,  337,  332,  332,  332,  337,  337,  337,  337,
00602       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00603       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00604       337,  337,  337,  332,  332,  338,  332,  339,  332,  339,
00605       332,  332,  332,  332,  332,  332,  332,  340,  332,  332,
00606       341,  332,  332,  337,  337,  337,  337,  337,  337,  337,
00607       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00608       337,  337,  337,  337,  337,  337,  332,  337,  332,  337,
00609       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00610 
00611       337,  337,  332,  332,  332,  332,  332,  332,  332,  337,
00612       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00613       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00614       332,  337,  332,  337,  337,  337,  337,  337,  337,  337,
00615       337,  337,  337,  337,  332,  332,  332,  332,  332,  337,
00616       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00617       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00618       337,  337,  337,  337,  337,  332,  332,  332,  332,  337,
00619       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00620       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
00621 
00622       332,  332,  337,  337,  337,  337,  337,  337,  337,  337,
00623       337,  337,  337,  337,  337,  337,  337,  332,  337,  332,
00624       337,  337,  337,  337,  332,  337,  337,  332,  337,  337,
00625       337,    0,  332,  332,  332,  332,  332,  332,  332,  332,
00626       332
00627     } ;
00628 
00629 static yyconst flex_int16_t yy_nxt[1332] =
00630     {   0,
00631         8,    9,   10,   11,   12,   13,   14,   15,   16,   17,
00632        18,   19,   20,   21,   22,   23,   24,   25,   25,   26,
00633        27,   28,   29,   30,   31,   32,   33,   34,   31,   31,
00634        31,   35,   36,   37,   38,   39,   40,   41,   31,   42,
00635        43,   44,   45,   46,   47,   48,   49,   50,   31,   31,
00636        51,   31,   52,   53,   54,   55,   56,   57,   58,   59,
00637        60,   31,   61,   31,   31,   62,   63,   64,   65,   67,
00638        67,   70,   71,   70,   71,   73,   73,   68,   68,   73,
00639        73,   77,   79,   84,   86,   78,  161,   87,   87,   87,
00640        89,   98,   99,   88,   85,   90,  328,  144,   80,   87,
00641 
00642        87,   87,   91,   87,   87,   87,  152,  152,   72,  302,
00643        72,  279,   92,   95,   96,   97,  100,  100,  278,  100,
00644       100,  100,  100,  101,  277,   93,  101,  276,  101,  248,
00645        92,  100,  100,  100,  100,  100,  100,  247,  101,  246,
00646       101,  145,  101,  245,  100,  100,  100,  100,  100,  100,
00647        93,  101,  209,  101,  208,  101,  100,  100,  100,  100,
00648       159,  100,  100,  101,  149,  101,  153,  106,  101,  100,
00649       100,  154,  150,  103,  155,  105,  101,  151,  100,  100,
00650       100,  100,  104,  206,  108,  101,  107,  101,  100,  100,
00651       152,  152,  205,  111,  204,  101,  203,  100,  100,  147,
00652 
00653       110,  100,  100,  109,  101,   73,   73,  163,  101,  100,
00654       100,  162,  113,  117,  112,  159,  101,  120,   82,  121,
00655       100,  100,  118,  100,  100,  119,  157,  101,  156,  122,
00656       101,  125,  123,  124,  100,  100,  100,  100,  127,  100,
00657       100,  101,  126,  101,  160,  160,  101,  129,  100,  100,
00658        76,  128,  100,  100,  130,  101,  152,  152,  131,  101,
00659       100,  100,  147,  132,  100,  100,  116,  101,   87,   87,
00660        87,  101,  100,  100,  133,  100,  100,  134,  149,  101,
00661       100,  100,  101,  115,  138,  114,  332,  101,  100,  100,
00662       135,  332,  137,  139,  136,  101,  100,  100,  100,  100,
00663 
00664       207,  207,   94,  101,   83,  101,   82,  140,  141,  100,
00665       100,   76,  143,  100,  100,   74,  101,  142,  100,  100,
00666       101,  100,  100,  100,  100,  101,  100,  100,  101,  332,
00667       101,  100,  100,  101,  164,  100,  100,  332,  101,  332,
00668       100,  100,  101,  100,  100,  332,  165,  101,  332,  166,
00669       101,  332,  167,  100,  100,  100,  100,  160,  160,  172,
00670       101,  332,  101,  332,  100,  100,  332,  168,  100,  100,
00671       169,  101,  171,  170,  332,  101,  100,  100,  332,  175,
00672       332,  332,  173,  101,  176,  100,  100,  174,  177,  100,
00673       100,  332,  101,  100,  100,  332,  101,  332,  178,  332,
00674 
00675       101,  100,  100,  187,  187,  180,  100,  100,  101,  332,
00676       101,  332,  179,  101,  332,  332,  189,  189,  100,  100,
00677       332,  181,  182,  101,  332,  101,  100,  100,  100,  100,
00678       100,  100,  184,  101,  332,  101,  332,  101,  100,  100,
00679       100,  100,  183,  332,  185,  101,  332,  101,  100,  100,
00680       332,  100,  100,  332,  188,  101,  332,  186,  101,  100,
00681       100,  100,  100,  332,  100,  100,  101,  332,  101,  149,
00682       191,  101,  190,  100,  100,  332,  332,  150,  100,  100,
00683       101,  332,  151,  193,  332,  101,  192,  332,  100,  100,
00684       332,  195,  100,  100,  194,  101,  100,  100,  332,  101,
00685 
00686       100,  100,  332,  101,  332,  196,  197,  101,  332,  201,
00687       198,  100,  100,  332,  100,  100,  199,  332,  101,  332,
00688       200,  101,  202,  100,  100,  100,  100,  100,  100,  210,
00689       101,  332,  101,  211,  101,  100,  100,  100,  100,  100,
00690       100,  332,  101,  332,  101,  214,  101,  100,  100,  212,
00691       100,  100,  213,  332,  101,  332,  216,  101,  100,  100,
00692       100,  100,  332,  100,  100,  101,  332,  101,  332,  215,
00693       101,  332,  332,  332,  219,  332,  217,  332,  218,  220,
00694       332,  100,  100,  100,  100,  100,  100,  332,  101,  332,
00695       101,  222,  101,  221,  100,  100,  332,  100,  100,  187,
00696 
00697       187,  101,  332,  223,  101,  332,  231,  100,  100,  189,
00698       189,  100,  100,  332,  101,  332,  101,  224,  101,  100,
00699       100,  225,  226,  100,  100,  332,  101,  332,  227,  332,
00700       101,  100,  100,  100,  100,  332,  228,  332,  101,  332,
00701       101,  332,  230,  332,  332,  332,  100,  100,  100,  100,
00702       233,  229,  232,  101,  332,  101,  100,  100,  100,  100,
00703       332,  234,  332,  101,  332,  101,  100,  100,  100,  100,
00704       100,  100,  332,  101,  332,  101,  237,  101,  235,  100,
00705       100,  207,  207,  100,  100,  332,  101,  236,  249,  332,
00706       101,  100,  100,  100,  100,  100,  100,  332,  101,  332,
00707 
00708       101,  332,  101,  100,  100,  238,  332,  239,  332,  332,
00709       101,  100,  100,  243,  332,  240,  241,  332,  101,  100,
00710       100,  242,  100,  100,  100,  100,  101,  332,  250,  101,
00711       244,  101,  332,  100,  100,  100,  100,  100,  100,  252,
00712       101,  332,  101,  332,  101,  100,  100,  100,  100,  332,
00713       253,  251,  101,  332,  101,  100,  100,  332,  100,  100,
00714       100,  100,  101,  332,  254,  101,  332,  101,  332,  100,
00715       100,  100,  100,  332,  332,  256,  101,  332,  101,  332,
00716       255,  332,  258,  100,  100,  332,  257,  100,  100,  332,
00717       101,  100,  100,  332,  101,  259,  100,  100,  101,  100,
00718 
00719       100,  100,  100,  101,  100,  100,  101,  261,  101,  100,
00720       100,  101,  260,  100,  100,  332,  101,  100,  100,  262,
00721       101,  332,  100,  100,  101,  332,  332,  332,  264,  101,
00722       263,  332,  265,  100,  100,  100,  100,  100,  100,  332,
00723       101,  332,  101,  266,  101,  332,  100,  100,  332,  269,
00724       267,  332,  268,  101,  100,  100,  100,  100,  332,  100,
00725       100,  101,  332,  101,  271,  270,  101,  100,  100,  100,
00726       100,  273,  332,  272,  101,  332,  101,  332,  274,  100,
00727       100,  332,  275,  100,  100,  332,  101,  280,  332,  332,
00728       101,  100,  100,  100,  100,  281,  100,  100,  101,  332,
00729 
00730       101,  100,  100,  101,  282,  100,  100,  332,  101,  100,
00731       100,  332,  101,  332,  284,  332,  101,  100,  100,  100,
00732       100,  100,  100,  283,  101,  332,  101,  332,  101,  332,
00733       286,  100,  100,  100,  100,  332,  100,  100,  101,  332,
00734       101,  332,  285,  101,  100,  100,  332,  332,  287,  332,
00735       332,  101,  332,  290,  288,  332,  289,  100,  100,  100,
00736       100,  332,  291,  332,  101,  332,  101,  100,  100,  332,
00737       292,  100,  100,  332,  101,  301,  301,  332,  101,  100,
00738       100,  332,  101,  100,  100,  293,  101,  294,  100,  100,
00739       101,  100,  100,  295,  332,  101,  100,  100,  101,  100,
00740 
00741       100,  296,  332,  101,  100,  100,  101,  100,  100,  100,
00742       100,  101,  298,  332,  101,  297,  101,  332,  100,  100,
00743       299,  100,  100,  332,  300,  101,  100,  100,  101,  332,
00744       100,  100,  303,  101,  100,  100,  304,  101,  100,  100,
00745       332,  101,  100,  100,  305,  101,  100,  100,  332,  101,
00746       100,  100,  306,  101,  100,  100,  332,  101,  100,  100,
00747       332,  101,  100,  100,  307,  101,  310,  332,  308,  101,
00748       301,  301,  332,  332,  311,  332,  309,  318,  332,  313,
00749       100,  100,  100,  100,  100,  100,  332,  101,  312,  101,
00750       332,  101,  332,  100,  100,  315,  332,  320,  320,  314,
00751 
00752       101,  100,  100,  316,  101,  332,  317,  332,  101,  100,
00753       100,  100,  100,  100,  100,  332,  101,  332,  101,  332,
00754       101,  100,  100,  100,  100,  100,  100,  332,  101,  332,
00755       101,  332,  101,  332,  100,  100,  100,  100,  100,  100,
00756       319,  101,  332,  101,  332,  101,  321,  100,  100,  320,
00757       320,  100,  100,  332,  101,  332,  101,  332,  101,  100,
00758       100,  100,  100,  100,  100,  332,  101,  323,  101,  332,
00759       101,  332,  100,  100,  100,  100,  100,  100,  322,  101,
00760       332,  101,  332,  101,  100,  100,  100,  100,  332,  332,
00761       332,  101,  332,  101,  324,  332,  332,  332,  332,  332,
00762 
00763       332,  332,  326,  325,  332,  332,  332,  332,  327,  332,
00764       332,  332,  332,  332,  329,  332,  332,  332,  332,  332,
00765       332,  332,  332,  332,  332,  332,  332,  330,  332,  331,
00766        66,   66,   66,   66,   69,   69,   69,   69,   75,   75,
00767        75,   75,   81,   81,   81,   81,  102,  332,  102,  146,
00768       146,  332,  146,  148,  148,  148,  148,  158,  158,  158,
00769       158,    7,  332,  332,  332,  332,  332,  332,  332,  332,
00770       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00771       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00772       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00773 
00774       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00775       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00776       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00777       332
00778     } ;
00779 
00780 static yyconst flex_int16_t yy_chk[1332] =
00781     {   0,
00782         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00783         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00784         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00785         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00786         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00787         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00788         1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
00789         4,    5,    5,    6,    6,    9,    9,    3,    4,   10,
00790        10,   13,   14,   19,   21,   13,  341,   21,   21,   21,
00791        23,   30,   30,   21,   19,   23,  325,   63,   14,   25,
00792 
00793        25,   25,   23,   24,   24,   24,   70,   70,    5,  279,
00794         6,  248,   24,   28,   28,   28,   31,   31,  247,   32,
00795        32,   33,   33,   31,  246,   24,   32,  245,   33,  206,
00796        24,   34,   34,   35,   35,   36,   36,  205,   34,  204,
00797        35,   63,   36,  203,   37,   37,   38,   38,   39,   39,
00798        24,   37,  163,   38,  162,   39,   40,   40,   41,   41,
00799       158,   46,   46,   40,   68,   41,   72,   34,   46,   45,
00800        45,   72,   68,   32,   72,   33,   45,   68,   47,   47,
00801        49,   49,   32,  156,   36,   47,   35,   49,   48,   48,
00802        71,   71,  155,   39,  154,   48,  153,   50,   50,  146,
00803 
00804        38,   51,   51,   37,   50,   73,   73,   99,   51,   52,
00805        52,   95,   41,   45,   40,   90,   52,   46,   81,   47,
00806        53,   53,   45,   54,   54,   45,   78,   53,   77,   47,
00807        54,   49,   47,   48,   55,   55,   56,   56,   50,   57,
00808        57,   55,   49,   56,   92,   92,   57,   51,   58,   58,
00809        75,   50,   59,   59,   51,   58,  152,  152,   51,   59,
00810        60,   60,   66,   52,   61,   61,   44,   60,   87,   87,
00811        87,   61,  100,  100,   53,  102,  102,   54,  148,  100,
00812       103,  103,  102,   43,   57,   42,  148,  103,  104,  104,
00813        55,  148,   56,   57,   55,  104,  105,  105,  106,  106,
00814 
00815       157,  157,   26,  105,   18,  106,   15,   58,   59,  107,
00816       107,   12,   61,  108,  108,   11,  107,   60,  111,  111,
00817       108,  109,  109,  110,  110,  111,  112,  112,  109,    7,
00818       110,  113,  113,  112,  103,  117,  117,    0,  113,    0,
00819       118,  118,  117,  119,  119,    0,  104,  118,    0,  105,
00820       119,    0,  106,  120,  120,  121,  121,  160,  160,  111,
00821       120,    0,  121,    0,  122,  122,    0,  107,  123,  123,
00822       108,  122,  110,  109,    0,  123,  124,  124,    0,  117,
00823         0,    0,  112,  124,  118,  125,  125,  113,  119,  126,
00824       126,    0,  125,  127,  127,    0,  126,    0,  120,    0,
00825 
00826       127,  128,  128,  129,  129,  122,  130,  130,  128,    0,
00827       129,    0,  121,  130,    0,    0,  131,  131,  132,  132,
00828         0,  123,  124,  131,    0,  132,  133,  133,  134,  134,
00829       135,  135,  126,  133,    0,  134,    0,  135,  136,  136,
00830       137,  137,  125,    0,  127,  136,    0,  137,  138,  138,
00831         0,  139,  139,    0,  130,  138,    0,  128,  139,  140,
00832       140,  141,  141,    0,  142,  142,  140,    0,  141,  150,
00833       133,  142,  132,  143,  143,    0,    0,  150,  164,  164,
00834       143,    0,  150,  136,    0,  164,  134,    0,  165,  165,
00835         0,  138,  166,  166,  137,  165,  167,  167,    0,  166,
00836 
00837       168,  168,    0,  167,    0,  138,  138,  168,    0,  142,
00838       139,  169,  169,    0,  170,  170,  140,    0,  169,    0,
00839       141,  170,  143,  171,  171,  173,  173,  172,  172,  164,
00840       171,    0,  173,  165,  172,  174,  174,  175,  175,  176,
00841       176,    0,  174,    0,  175,  168,  176,  177,  177,  166,
00842       178,  178,  167,    0,  177,    0,  170,  178,  179,  179,
00843       180,  180,    0,  181,  181,  179,    0,  180,    0,  169,
00844       181,    0,    0,    0,  173,    0,  171,    0,  172,  174,
00845         0,  182,  182,  183,  183,  184,  184,    0,  182,    0,
00846       183,  178,  184,  175,  185,  185,    0,  186,  186,  187,
00847 
00848       187,  185,    0,  179,  186,    0,  187,  188,  188,  189,
00849       189,  190,  190,    0,  188,    0,  189,  180,  190,  191,
00850       191,  181,  182,  192,  192,    0,  191,    0,  183,    0,
00851       192,  193,  193,  194,  194,    0,  184,    0,  193,    0,
00852       194,    0,  186,    0,    0,    0,  195,  195,  196,  196,
00853       189,  185,  188,  195,    0,  196,  197,  197,  198,  198,
00854         0,  190,    0,  197,    0,  198,  199,  199,  200,  200,
00855       201,  201,    0,  199,    0,  200,  194,  201,  191,  202,
00856       202,  207,  207,  210,  210,    0,  202,  193,  207,    0,
00857       210,  211,  211,  212,  212,  213,  213,    0,  211,    0,
00858 
00859       212,    0,  213,  214,  214,  195,    0,  196,    0,    0,
00860       214,  215,  215,  200,    0,  197,  198,    0,  215,  216,
00861       216,  199,  217,  217,  218,  218,  216,    0,  210,  217,
00862       202,  218,    0,  219,  219,  220,  220,  221,  221,  213,
00863       219,    0,  220,    0,  221,  222,  222,  223,  223,    0,
00864       214,  212,  222,    0,  223,  224,  224,    0,  225,  225,
00865       226,  226,  224,    0,  216,  225,    0,  226,    0,  227,
00866       227,  228,  228,    0,    0,  218,  227,    0,  228,    0,
00867       217,    0,  221,  229,  229,    0,  219,  232,  232,    0,
00868       229,  230,  230,    0,  232,  222,  234,  234,  230,  235,
00869 
00870       235,  236,  236,  234,  237,  237,  235,  225,  236,  238,
00871       238,  237,  224,  239,  239,    0,  238,  240,  240,  226,
00872       239,    0,  241,  241,  240,    0,    0,    0,  229,  241,
00873       228,    0,  230,  242,  242,  243,  243,  244,  244,    0,
00874       242,    0,  243,  232,  244,    0,  250,  250,    0,  237,
00875       235,    0,  236,  250,  251,  251,  252,  252,    0,  253,
00876       253,  251,    0,  252,  239,  238,  253,  254,  254,  255,
00877       255,  241,    0,  240,  254,    0,  255,    0,  242,  256,
00878       256,    0,  244,  257,  257,    0,  256,  250,    0,    0,
00879       257,  258,  258,  259,  259,  251,  260,  260,  258,    0,
00880 
00881       259,  261,  261,  260,  253,  262,  262,    0,  261,  263,
00882       263,    0,  262,    0,  255,    0,  263,  264,  264,  265,
00883       265,  266,  266,  254,  264,    0,  265,    0,  266,    0,
00884       257,  267,  267,  268,  268,    0,  269,  269,  267,    0,
00885       268,    0,  256,  269,  270,  270,    0,    0,  258,    0,
00886         0,  270,    0,  263,  261,    0,  262,  271,  271,  272,
00887       272,    0,  265,    0,  271,    0,  272,  273,  273,    0,
00888       266,  274,  274,    0,  273,  275,  275,    0,  274,  280,
00889       280,    0,  275,  281,  281,  267,  280,  268,  282,  282,
00890       281,  283,  283,  269,    0,  282,  284,  284,  283,  285,
00891 
00892       285,  270,    0,  284,  286,  286,  285,  287,  287,  288,
00893       288,  286,  272,    0,  287,  271,  288,    0,  289,  289,
00894       273,  290,  290,    0,  274,  289,  291,  291,  290,    0,
00895       292,  292,  280,  291,  293,  293,  281,  292,  294,  294,
00896         0,  293,  295,  295,  282,  294,  296,  296,    0,  295,
00897       297,  297,  284,  296,  298,  298,    0,  297,  299,  299,
00898         0,  298,  300,  300,  287,  299,  290,    0,  288,  300,
00899       301,  301,    0,    0,  291,    0,  289,  301,    0,  294,
00900       303,  303,  304,  304,  305,  305,    0,  303,  292,  304,
00901         0,  305,    0,  306,  306,  296,    0,  307,  307,  295,
00902 
00903       306,  308,  308,  299,  307,    0,  300,    0,  308,  309,
00904       309,  310,  310,  311,  311,    0,  309,    0,  310,    0,
00905       311,  312,  312,  313,  313,  314,  314,    0,  312,    0,
00906       313,    0,  314,    0,  315,  315,  316,  316,  317,  317,
00907       304,  315,    0,  316,    0,  317,  308,  319,  319,  320,
00908       320,  321,  321,    0,  319,    0,  320,    0,  321,  322,
00909       322,  323,  323,  324,  324,    0,  322,  313,  323,    0,
00910       324,    0,  326,  326,  327,  327,  329,  329,  312,  326,
00911         0,  327,    0,  329,  330,  330,  331,  331,    0,    0,
00912         0,  330,    0,  331,  315,    0,    0,    0,    0,    0,
00913 
00914         0,    0,  323,  320,    0,    0,    0,    0,  324,    0,
00915         0,    0,    0,    0,  326,    0,    0,    0,    0,    0,
00916         0,    0,    0,    0,    0,    0,    0,  329,    0,  330,
00917       333,  333,  333,  333,  334,  334,  334,  334,  335,  335,
00918       335,  335,  336,  336,  336,  336,  337,    0,  337,  338,
00919       338,    0,  338,  339,  339,  339,  339,  340,  340,  340,
00920       340,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00921       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00922       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00923       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00924 
00925       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00926       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00927       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
00928       332
00929     } ;
00930 
00931 /* Table of booleans, true if rule could match eol. */
00932 static yyconst flex_int32_t yy_rule_can_match_eol[118] =
00933     {   0,
00934 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 
00935     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00936     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00937     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00938     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 
00939     0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,     };
00940 
00941 static yyconst flex_int16_t yy_rule_linenum[117] =
00942     {   0,
00943        52,   54,   57,   58,   59,   60,   61,   68,   70,   72,
00944        74,   76,   82,   88,   89,   91,   93,   94,   99,  100,
00945       101,  103,  107,  108,  112,  113,  114,  120,  121,  122,
00946       123,  124,  125,  126,  127,  128,  129,  130,  132,  133,
00947       135,  136,  138,  140,  141,  143,  149,  150,  151,  152,
00948       158,  159,  160,  161,  162,  163,  164,  166,  167,  168,
00949       169,  170,  171,  172,  174,  180,  181,  182,  183,  184,
00950       185,  187,  188,  189,  190,  191,  192,  194,  195,  196,
00951       197,  198,  200,  201,  207,  208,  210,  211,  213,  219,
00952       220,  221,  222,  223,  224,  225,  226,  227,  228,  237,
00953 
00954       238,  244,  245,  246,  247,  248,  254,  256,  262,  265,
00955       266,  267,  268,  269,  272,  281
00956     } ;
00957 
00958 #define YY_TRAILING_MASK 0x2000
00959 #define YY_TRAILING_HEAD_MASK 0x4000
00960 #define REJECT \
00961 { \
00962 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
00963 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
00964 (yy_lp) = yy_full_lp; /* restore orig. accepting pos. */ \
00965 (yy_state_ptr) = yy_full_state; /* restore orig. state */ \
00966 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
00967 ++(yy_lp); \
00968 goto find_rule; \
00969 }
00970 
00971 #define yymore() yymore_used_but_not_detected
00972 #define YY_MORE_ADJ 0
00973 #define YY_RESTORE_YY_MORE_OFFSET
00974 #line 1 "tools/compile/llcLexer.l"
00975 #line 2 "tools/compile/llcLexer.l"
00976 #include "llcTokens.h"
00977 
00978 // just to 'simply' things
00979 // spits out a short performance warning
00980 // to make things easier I hope. *grin*
00981 // only for debugging
00982 // enable start state stacks (say *that* three times fast!)
00983 
00984 // needs to handle 'escape quoting' of '\\\"' in the string
00985 #line 985 "tools/compile/llcLexer.cpp"
00986 
00987 #define INITIAL 0
00988 #define CCOMMENT 1
00989 #define HASH_EXPECT 2
00990 
00991 /* Special case for "unistd.h", since it is non-ANSI. We include it way
00992  * down here because we want the user's section 1 to have been scanned first.
00993  * The user has a chance to override it with an option.
00994  */
00995 /* %if-c-only */
00996 /* %endif */
00997 /* %if-c++-only */
00998 #include <unistd.h>
00999 /* %endif */
01000 
01001 #ifndef YY_EXTRA_TYPE
01002 #define YY_EXTRA_TYPE void *
01003 #endif
01004 
01005 /* %if-c-only Reentrant structure and macros (non-C++). */
01006 /* %if-reentrant */
01007 /* %if-reentrant */
01008 /* %endif */
01009 /* %if-bison-bridge */
01010 /* %endif */
01011 /* %endif End reentrant structures and macros. */
01012 /* %not-for-header */
01013 
01014 /* %ok-for-header */
01015 
01016 /* %endif */
01017 
01018 #ifndef yytext_ptr
01019 static void yy_flex_strncpy (char *,yyconst char *,int );
01020 #endif
01021 
01022 #ifdef YY_NEED_STRLEN
01023 static int yy_flex_strlen (yyconst char * );
01024 #endif
01025 
01026 #ifndef YY_NO_INPUT
01027 /* %if-c-only Standard (non-C++) definition */
01028 /* %not-for-header */
01029 
01030 /* %ok-for-header */
01031 
01032 /* %endif */
01033 #endif
01034 
01035 /* %if-c-only */
01036 /* %endif */
01037 
01038 /* Amount of stuff to slurp up with each read. */
01039 #ifndef YY_READ_BUF_SIZE
01040 #define YY_READ_BUF_SIZE 8192
01041 #endif
01042 
01043 /* Copy whatever the last rule matched to the standard output. */
01044 #ifndef ECHO
01045 /* %if-c-only Standard (non-C++) definition */
01046 /* %endif */
01047 /* %if-c++-only C++ definition */
01048 #define ECHO LexerOutput( yytext, yyleng )
01049 /* %endif */
01050 #endif
01051 
01052 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01053  * is returned in "result".
01054  */
01055 #ifndef YY_INPUT
01056 #define YY_INPUT(buf,result,max_size) \
01057 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
01058 \
01059 /* %if-c++-only C++ definition \ */\
01060         if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
01061                 YY_FATAL_ERROR( "input in flex scanner failed" );
01062 /* %endif */
01063 
01064 #endif
01065 
01066 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01067  * we don't want an extra ';' after the "return" because that will cause
01068  * some compilers to complain about unreachable statements.
01069  */
01070 #ifndef yyterminate
01071 #define yyterminate() return YY_NULL
01072 #endif
01073 
01074 /* Number of entries by which start-condition stack grows. */
01075 #ifndef YY_START_STACK_INCR
01076 #define YY_START_STACK_INCR 25
01077 #endif
01078 
01079 /* Report a fatal error. */
01080 #ifndef YY_FATAL_ERROR
01081 /* %if-c-only */
01082 /* %endif */
01083 /* %if-c++-only */
01084 #define YY_FATAL_ERROR(msg) LexerError( msg )
01085 /* %endif */
01086 #endif
01087 
01088 /* %if-tables-serialization structures and prototypes */
01089 /* %not-for-header */
01090 
01091 /* %ok-for-header */
01092 
01093 /* %not-for-header */
01094 
01095 /* %tables-yydmap generated elements */
01096 /* %endif */
01097 /* end tables serialization structures and prototypes */
01098 
01099 /* %ok-for-header */
01100 
01101 /* Default declaration of generated scanner - a define so the user can
01102  * easily add parameters.
01103  */
01104 #ifndef YY_DECL
01105 #define YY_DECL_IS_OURS 1
01106 /* %if-c-only Standard (non-C++) definition */
01107 /* %endif */
01108 /* %if-c++-only C++ definition */
01109 #define YY_DECL int yyFlexLexer::yylex()
01110 /* %endif */
01111 #endif /* !YY_DECL */
01112 
01113 /* Code executed at the beginning of each rule, after yytext and yyleng
01114  * have been set up.
01115  */
01116 #ifndef YY_USER_ACTION
01117 #define YY_USER_ACTION
01118 #endif
01119 
01120 /* Code executed at the end of each rule. */
01121 #ifndef YY_BREAK
01122 #define YY_BREAK break;
01123 #endif
01124 
01125 /* %% [6.0] YY_RULE_SETUP definition goes here */
01126 #define YY_RULE_SETUP \
01127         YY_USER_ACTION
01128 
01129 /* %not-for-header */
01130 
01133 YY_DECL
01134 {
01135         register yy_state_type yy_current_state;
01136         register char *yy_cp, *yy_bp;
01137         register int yy_act;
01138     
01139 /* %% [7.0] user's declarations go here */
01140 #line 46 "tools/compile/llcLexer.l"
01141 
01142 
01143  /***************************************************************************
01144         Comment handling
01145   ***************************************************************************/
01146 
01147 #line 1147 "tools/compile/llcLexer.cpp"
01148 
01149         if ( (yy_init) )
01150                 {
01151                 (yy_init) = 0;
01152 
01153 #ifdef YY_USER_INIT
01154                 YY_USER_INIT;
01155 #endif
01156 
01157         if ( ! (yy_state_buf) )
01158             (yy_state_buf) = (yy_state_type *)llcalloc(YY_BUF_SIZE + 2  );
01159 
01160                 if ( ! (yy_start) )
01161                         (yy_start) = 1; /* first start state */
01162 
01163                 if ( ! yyin )
01164 /* %if-c-only */
01165 /* %endif */
01166 /* %if-c++-only */
01167                         yyin = & std::cin;
01168 /* %endif */
01169 
01170                 if ( ! yyout )
01171 /* %if-c-only */
01172 /* %endif */
01173 /* %if-c++-only */
01174                         yyout = & std::cout;
01175 /* %endif */
01176 
01177                 if ( ! YY_CURRENT_BUFFER ) {
01178                         yyensure_buffer_stack ();
01179                         YY_CURRENT_BUFFER_LVALUE =
01180                                 yy_create_buffer( yyin, YY_BUF_SIZE );
01181                 }
01182 
01183                 yy_load_buffer_state(  );
01184                 }
01185 
01186         while ( 1 )             /* loops until end-of-file is reached */
01187                 {
01188 /* %% [8.0] yymore()-related code goes here */
01189                 yy_cp = (yy_c_buf_p);
01190 
01191                 /* Support of yytext. */
01192                 *yy_cp = (yy_hold_char);
01193 
01194                 /* yy_bp points to the position in yy_ch_buf of the start of
01195                  * the current run.
01196                  */
01197                 yy_bp = yy_cp;
01198 
01199 /* %% [9.0] code to set up and find next match goes here */
01200                 yy_current_state = (yy_start);
01201 
01202                 (yy_state_ptr) = (yy_state_buf);
01203                 *(yy_state_ptr)++ = yy_current_state;
01204 
01205 yy_match:
01206                 do
01207                         {
01208                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01209                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01210                                 {
01211                                 yy_current_state = static_cast<int>(yy_def[yy_current_state]);
01212                                 if ( yy_current_state >= 333 )
01213                                         yy_c = yy_meta[static_cast<unsigned int>(yy_c)];
01214                                 }
01215                         yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
01216                         *(yy_state_ptr)++ = yy_current_state;
01217                         ++yy_cp;
01218                         }
01219                 while ( yy_current_state != 332 );
01220 
01221 yy_find_action:
01222 /* %% [10.0] code to find the action number goes here */
01223                 yy_current_state = *--(yy_state_ptr);
01224                 (yy_lp) = yy_accept[yy_current_state];
01225 find_rule: /* we branch to this label when backing up */
01226                 for ( ; ; ) /* until we find what rule we matched */
01227                         {
01228                         if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
01229                                 {
01230                                 yy_act = yy_acclist[(yy_lp)];
01231                                 if ( yy_act & YY_TRAILING_HEAD_MASK ||
01232                                      yy_looking_for_trail_begin )
01233                                         {
01234                                         if ( yy_act == yy_looking_for_trail_begin )
01235                                                 {
01236                                                 yy_looking_for_trail_begin = 0;
01237                                                 yy_act &= ~YY_TRAILING_HEAD_MASK;
01238                                                 break;
01239                                                 }
01240                                         }
01241                                 else if ( yy_act & YY_TRAILING_MASK )
01242                                         {
01243                                         yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
01244                                         yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
01245                                         }
01246                                 else
01247                                         {
01248                                         (yy_full_match) = yy_cp;
01249                                         yy_full_state = (yy_state_ptr);
01250                                         yy_full_lp = (yy_lp);
01251                                         break;
01252                                         }
01253                                 ++(yy_lp);
01254                                 goto find_rule;
01255                                 }
01256                         --yy_cp;
01257                         yy_current_state = *--(yy_state_ptr);
01258                         (yy_lp) = yy_accept[yy_current_state];
01259                         }
01260 
01261                 YY_DO_BEFORE_ACTION;
01262 
01263 /* %% [11.0] code for yylineno update goes here */
01264 
01265                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
01266                         {
01267                         int yyl;
01268                         for ( yyl = 0; yyl < yyleng; ++yyl )
01269                                 if ( yytext[yyl] == '\n' )
01270                                            
01271     yylineno++;
01272 ;
01273                         }
01274 
01275 do_action:      /* This label is used only to access EOF actions. */
01276 
01277 /* %% [12.0] debug code goes here */
01278                 if ( yy_flex_debug )
01279                         {
01280                         if ( yy_act == 0 )
01281                                 std::cerr << "--scanner backing up\n";
01282                         else if ( yy_act < 117 )
01283                                 std::cerr << "--accepting rule at line " << yy_rule_linenum[yy_act] <<
01284                                          "(\"" << yytext << "\")\n";
01285                         else if ( yy_act == 117 )
01286                                 std::cerr << "--accepting default rule (\"" << yytext << "\")\n";
01287                         else if ( yy_act == 118 )
01288                                 std::cerr << "--(end of buffer or a NUL)\n";
01289                         else
01290                                 std::cerr << "--EOF (start condition " << YY_START << ")\n";
01291                         }
01292 
01293                 switch ( yy_act )
01294         { /* beginning of action switch */
01295 /* %% [13.0] actions go here */
01296 case 1:
01297 /* rule 1 can match eol */
01298 YY_RULE_SETUP
01299 #line 52 "tools/compile/llcLexer.l"
01300 { }
01301         YY_BREAK
01302 case 2:
01303 YY_RULE_SETUP
01304 #line 54 "tools/compile/llcLexer.l"
01305 { BEGIN(CCOMMENT);              }
01306         YY_BREAK
01307 
01308 case 3:
01309 YY_RULE_SETUP
01310 #line 57 "tools/compile/llcLexer.l"
01311 { }
01312         YY_BREAK
01313 case 4:
01314 /* rule 4 can match eol */
01315 YY_RULE_SETUP
01316 #line 58 "tools/compile/llcLexer.l"
01317 { }
01318         YY_BREAK
01319 case 5:
01320 YY_RULE_SETUP
01321 #line 59 "tools/compile/llcLexer.l"
01322 { }
01323         YY_BREAK
01324 case 6:
01325 /* rule 6 can match eol */
01326 YY_RULE_SETUP
01327 #line 60 "tools/compile/llcLexer.l"
01328 { }
01329         YY_BREAK
01330 case 7:
01331 YY_RULE_SETUP
01332 #line 61 "tools/compile/llcLexer.l"
01333 { BEGIN(INITIAL); }
01334         YY_BREAK
01335 
01336 /***************************************************************************
01337         Constants
01338   ***************************************************************************/
01339 case 8:
01340 YY_RULE_SETUP
01341 #line 68 "tools/compile/llcLexer.l"
01342 { return LLC_INTEGER;   }
01343         YY_BREAK
01344 case 9:
01345 YY_RULE_SETUP
01346 #line 70 "tools/compile/llcLexer.l"
01347 { return LLC_INTEGER;   }
01348         YY_BREAK
01349 case 10:
01350 YY_RULE_SETUP
01351 #line 72 "tools/compile/llcLexer.l"
01352 { return LLC_INTEGER;   }
01353         YY_BREAK
01354 case 11:
01355 /* rule 11 can match eol */
01356 YY_RULE_SETUP
01357 #line 74 "tools/compile/llcLexer.l"
01358 { return LLC_STRING;    }
01359         YY_BREAK
01360 case 12:
01361 /* rule 12 can match eol */
01362 YY_RULE_SETUP
01363 #line 76 "tools/compile/llcLexer.l"
01364 { return LLC_CSTRING;   }
01365         YY_BREAK
01366 /***************************************************************************
01367         Whitespace
01368   ***************************************************************************/
01369 case 13:
01370 /* rule 13 can match eol */
01371 YY_RULE_SETUP
01372 #line 82 "tools/compile/llcLexer.l"
01373 { }
01374         YY_BREAK
01375 /***************************************************************************
01376         Variable types
01377   ***************************************************************************/
01378 case 14:
01379 YY_RULE_SETUP
01380 #line 88 "tools/compile/llcLexer.l"
01381 { return LLC_WORD;              }
01382         YY_BREAK
01383 case 15:
01384 YY_RULE_SETUP
01385 #line 89 "tools/compile/llcLexer.l"
01386 { return LLC_WORD;              }
01387         YY_BREAK
01388 case 16:
01389 YY_RULE_SETUP
01390 #line 91 "tools/compile/llcLexer.l"
01391 { return LLC_WORD;              }
01392         YY_BREAK
01393 case 17:
01394 YY_RULE_SETUP
01395 #line 93 "tools/compile/llcLexer.l"
01396 { return LLC_WORD;              }
01397         YY_BREAK
01398 case 18:
01399 YY_RULE_SETUP
01400 #line 94 "tools/compile/llcLexer.l"
01401 { return LLC_DWORD;             }
01402         YY_BREAK
01403 /* Unsure if the default 'number' should be WORD or DWORD, shall find out soon enough
01404     we shall... */
01405 case 19:
01406 YY_RULE_SETUP
01407 #line 99 "tools/compile/llcLexer.l"
01408 { return LLC_WORD;              }
01409         YY_BREAK
01410 case 20:
01411 YY_RULE_SETUP
01412 #line 100 "tools/compile/llcLexer.l"
01413 { return LLC_WORD;              }
01414         YY_BREAK
01415 case 21:
01416 YY_RULE_SETUP
01417 #line 101 "tools/compile/llcLexer.l"
01418 { return LLC_WORD;              }
01419         YY_BREAK
01420 case 22:
01421 YY_RULE_SETUP
01422 #line 103 "tools/compile/llcLexer.l"
01423 { return LLC_STRING;    }
01424         YY_BREAK
01425 /* Postfix modifiers... */
01426 case 23:
01427 YY_RULE_SETUP
01428 #line 107 "tools/compile/llcLexer.l"
01429 { return LLC_LIST;              }
01430         YY_BREAK
01431 case 24:
01432 YY_RULE_SETUP
01433 #line 108 "tools/compile/llcLexer.l"
01434 { return LLC_POINTER;   }
01435         YY_BREAK
01436 /* Prefix modifiers... */
01437 case 25:
01438 YY_RULE_SETUP
01439 #line 112 "tools/compile/llcLexer.l"
01440 { return LLC_CONST;             }
01441         YY_BREAK
01442 case 26:
01443 YY_RULE_SETUP
01444 #line 113 "tools/compile/llcLexer.l"
01445 { return LLC_CONST;             }
01446         YY_BREAK
01447 case 27:
01448 YY_RULE_SETUP
01449 #line 114 "tools/compile/llcLexer.l"
01450 { return LLC_REALLY;    }
01451         YY_BREAK
01452 /***************************************************************************
01453         Function bits
01454   ***************************************************************************/
01455 case 28:
01456 YY_RULE_SETUP
01457 #line 120 "tools/compile/llcLexer.l"
01458 { return LLC_OPEN_BRACE;                }
01459         YY_BREAK
01460 case 29:
01461 YY_RULE_SETUP
01462 #line 121 "tools/compile/llcLexer.l"
01463 { return LLC_CLOSE_BRACE;               }
01464         YY_BREAK
01465 case 30:
01466 YY_RULE_SETUP
01467 #line 122 "tools/compile/llcLexer.l"
01468 { return LLC_OPEN_PAREN;                }
01469         YY_BREAK
01470 case 31:
01471 YY_RULE_SETUP
01472 #line 123 "tools/compile/llcLexer.l"
01473 { return LLC_CLOSE_PAREN;               }
01474         YY_BREAK
01475 case 32:
01476 YY_RULE_SETUP
01477 #line 124 "tools/compile/llcLexer.l"
01478 { return LLC_DOT;                               }
01479         YY_BREAK
01480 case 33:
01481 YY_RULE_SETUP
01482 #line 125 "tools/compile/llcLexer.l"
01483 { return LLC_COMMA;                             }
01484         YY_BREAK
01485 case 34:
01486 YY_RULE_SETUP
01487 #line 126 "tools/compile/llcLexer.l"
01488 { return LLC_SEMICOLON;                 }
01489         YY_BREAK
01490 case 35:
01491 YY_RULE_SETUP
01492 #line 127 "tools/compile/llcLexer.l"
01493 { return LLC_COLON;                             }
01494         YY_BREAK
01495 case 36:
01496 YY_RULE_SETUP
01497 #line 128 "tools/compile/llcLexer.l"
01498 { return LLC_DCOLON;                    }
01499         YY_BREAK
01500 case 37:
01501 YY_RULE_SETUP
01502 #line 129 "tools/compile/llcLexer.l"
01503 { return LLC_OPEN_REFERENCE;    }
01504         YY_BREAK
01505 case 38:
01506 YY_RULE_SETUP
01507 #line 130 "tools/compile/llcLexer.l"
01508 { return LLC_CLOSE_REFERENCE;   }
01509         YY_BREAK
01510 case 39:
01511 YY_RULE_SETUP
01512 #line 132 "tools/compile/llcLexer.l"
01513 { return LLC_RETURN;                    }
01514         YY_BREAK
01515 case 40:
01516 YY_RULE_SETUP
01517 #line 133 "tools/compile/llcLexer.l"
01518 { return LLC_SUSPEND;                   }
01519         YY_BREAK
01520 case 41:
01521 YY_RULE_SETUP
01522 #line 135 "tools/compile/llcLexer.l"
01523 { return LLC_ROUTINE;                   }
01524         YY_BREAK
01525 case 42:
01526 YY_RULE_SETUP
01527 #line 136 "tools/compile/llcLexer.l"
01528 { return LLC_PROCESS;                   }
01529         YY_BREAK
01530 case 43:
01531 YY_RULE_SETUP
01532 #line 138 "tools/compile/llcLexer.l"
01533 { return LLC_EXCLUDE;                   }
01534         YY_BREAK
01535 case 44:
01536 YY_RULE_SETUP
01537 #line 140 "tools/compile/llcLexer.l"
01538 { return LLC_OVERLOAD;                  }
01539         YY_BREAK
01540 case 45:
01541 YY_RULE_SETUP
01542 #line 141 "tools/compile/llcLexer.l"
01543 { return LLC_OVERLOAD;                  }
01544         YY_BREAK
01545 case 46:
01546 YY_RULE_SETUP
01547 #line 143 "tools/compile/llcLexer.l"
01548 { return LLC_RESULT;                    }
01549         YY_BREAK
01550 /***************************************************************************
01551         Math - Shift
01552   ***************************************************************************/
01553 case 47:
01554 YY_RULE_SETUP
01555 #line 149 "tools/compile/llcLexer.l"
01556 { return LLC_LEFT_SHIFT;                        }
01557         YY_BREAK
01558 case 48:
01559 YY_RULE_SETUP
01560 #line 150 "tools/compile/llcLexer.l"
01561 { return LLC_RIGHT_SHIFT;                       }
01562         YY_BREAK
01563 case 49:
01564 YY_RULE_SETUP
01565 #line 151 "tools/compile/llcLexer.l"
01566 { return LLC_LEFT_SHIFT_EQUALS;         }
01567         YY_BREAK
01568 case 50:
01569 YY_RULE_SETUP
01570 #line 152 "tools/compile/llcLexer.l"
01571 { return LLC_RIGHT_SHIFT_EQUALS;        }
01572         YY_BREAK
01573 /***************************************************************************
01574         Math - Arith
01575   ***************************************************************************/
01576 case 51:
01577 YY_RULE_SETUP
01578 #line 158 "tools/compile/llcLexer.l"
01579 { return LLC_MUL;                               }
01580         YY_BREAK
01581 case 52:
01582 YY_RULE_SETUP
01583 #line 159 "tools/compile/llcLexer.l"
01584 { return LLC_DIV;                               }
01585         YY_BREAK
01586 case 53:
01587 YY_RULE_SETUP
01588 #line 160 "tools/compile/llcLexer.l"
01589 { return LLC_ADD;                               }
01590         YY_BREAK
01591 case 54:
01592 YY_RULE_SETUP
01593 #line 161 "tools/compile/llcLexer.l"
01594 { return LLC_SUB;                               }
01595         YY_BREAK
01596 case 55:
01597 YY_RULE_SETUP
01598 #line 162 "tools/compile/llcLexer.l"
01599 { return LLC_MOD;                               }
01600         YY_BREAK
01601 case 56:
01602 YY_RULE_SETUP
01603 #line 163 "tools/compile/llcLexer.l"
01604 { return LLC_MOD;                               }
01605         YY_BREAK
01606 case 57:
01607 YY_RULE_SETUP
01608 #line 164 "tools/compile/llcLexer.l"
01609 { return LLC_EXCLUSIVE_ADD;             }
01610         YY_BREAK
01611 case 58:
01612 YY_RULE_SETUP
01613 #line 166 "tools/compile/llcLexer.l"
01614 { return LLC_MUL_EQ;                    }
01615         YY_BREAK
01616 case 59:
01617 YY_RULE_SETUP
01618 #line 167 "tools/compile/llcLexer.l"
01619 { return LLC_DIV_EQ;                    }
01620         YY_BREAK
01621 case 60:
01622 YY_RULE_SETUP
01623 #line 168 "tools/compile/llcLexer.l"
01624 { return LLC_ADD_EQ;                    }
01625         YY_BREAK
01626 case 61:
01627 YY_RULE_SETUP
01628 #line 169 "tools/compile/llcLexer.l"
01629 { return LLC_SUB_EQ;                    }
01630         YY_BREAK
01631 case 62:
01632 YY_RULE_SETUP
01633 #line 170 "tools/compile/llcLexer.l"
01634 { return LLC_EXCLUSIVE_ADD_EQ;  }
01635         YY_BREAK
01636 case 63:
01637 YY_RULE_SETUP
01638 #line 171 "tools/compile/llcLexer.l"
01639 { return LLC_INC;                               }
01640         YY_BREAK
01641 case 64:
01642 YY_RULE_SETUP
01643 #line 172 "tools/compile/llcLexer.l"
01644 { return LLC_DEC;                               }
01645         YY_BREAK
01646 case 65:
01647 YY_RULE_SETUP
01648 #line 174 "tools/compile/llcLexer.l"
01649 { return LLC_EQUALS;                    }
01650         YY_BREAK
01651 /***************************************************************************
01652         Math - Compare
01653   ***************************************************************************/
01654 case 66:
01655 YY_RULE_SETUP
01656 #line 180 "tools/compile/llcLexer.l"
01657 { return LLC_AND;                       }
01658         YY_BREAK
01659 case 67:
01660 YY_RULE_SETUP
01661 #line 181 "tools/compile/llcLexer.l"
01662 { return LLC_AND;                       }
01663         YY_BREAK
01664 case 68:
01665 YY_RULE_SETUP
01666 #line 182 "tools/compile/llcLexer.l"
01667 { return LLC_OR;                        }
01668         YY_BREAK
01669 case 69:
01670 YY_RULE_SETUP
01671 #line 183 "tools/compile/llcLexer.l"
01672 { return LLC_OR;                        }
01673         YY_BREAK
01674 case 70:
01675 YY_RULE_SETUP
01676 #line 184 "tools/compile/llcLexer.l"
01677 { return LLC_NOT;                       }
01678         YY_BREAK
01679 case 71:
01680 YY_RULE_SETUP
01681 #line 185 "tools/compile/llcLexer.l"
01682 { return LLC_NOT;                       }
01683         YY_BREAK
01684 case 72:
01685 YY_RULE_SETUP
01686 #line 187 "tools/compile/llcLexer.l"
01687 { return LLC_LT;                        }
01688         YY_BREAK
01689 case 73:
01690 YY_RULE_SETUP
01691 #line 188 "tools/compile/llcLexer.l"
01692 { return LLC_LE;                        }
01693         YY_BREAK
01694 case 74:
01695 YY_RULE_SETUP
01696 #line 189 "tools/compile/llcLexer.l"
01697 { return LLC_GT;                        }
01698         YY_BREAK
01699 case 75:
01700 YY_RULE_SETUP
01701 #line 190 "tools/compile/llcLexer.l"
01702 { return LLC_GE;                        }
01703         YY_BREAK
01704 case 76:
01705 YY_RULE_SETUP
01706 #line 191 "tools/compile/llcLexer.l"
01707 { return LLC_NE;                        }
01708         YY_BREAK
01709 case 77:
01710 YY_RULE_SETUP
01711 #line 192 "tools/compile/llcLexer.l"
01712 { return LLC_NE;                        }
01713         YY_BREAK
01714 case 78:
01715 YY_RULE_SETUP
01716 #line 194 "tools/compile/llcLexer.l"
01717 { return LLC_BIT_AND;           }
01718         YY_BREAK
01719 case 79:
01720 YY_RULE_SETUP
01721 #line 195 "tools/compile/llcLexer.l"
01722 { return LLC_BIT_OR;            }
01723         YY_BREAK
01724 case 80:
01725 YY_RULE_SETUP
01726 #line 196 "tools/compile/llcLexer.l"
01727 { return LLC_BIT_NOT;           }
01728         YY_BREAK
01729 case 81:
01730 YY_RULE_SETUP
01731 #line 197 "tools/compile/llcLexer.l"
01732 { return LLC_BIT_AND_EQ;        }
01733         YY_BREAK
01734 case 82:
01735 YY_RULE_SETUP
01736 #line 198 "tools/compile/llcLexer.l"
01737 { return LLC_BIT_OR_EQ;         }
01738         YY_BREAK
01739 case 83:
01740 YY_RULE_SETUP
01741 #line 200 "tools/compile/llcLexer.l"
01742 { return LLC_TRUE;                      }
01743         YY_BREAK
01744 case 84:
01745 YY_RULE_SETUP
01746 #line 201 "tools/compile/llcLexer.l"
01747 { return LLC_FALSE;                     }
01748         YY_BREAK
01749 /***************************************************************************
01750         List
01751   ***************************************************************************/
01752 case 85:
01753 YY_RULE_SETUP
01754 #line 207 "tools/compile/llcLexer.l"
01755 { return LLC_LIST_OPEN;         }
01756         YY_BREAK
01757 case 86:
01758 YY_RULE_SETUP
01759 #line 208 "tools/compile/llcLexer.l"
01760 { return LLC_LIST_CLOSE;        }
01761         YY_BREAK
01762 case 87:
01763 YY_RULE_SETUP
01764 #line 210 "tools/compile/llcLexer.l"
01765 { return LLC_OPEN_INDEX;        }
01766         YY_BREAK
01767 case 88:
01768 YY_RULE_SETUP
01769 #line 211 "tools/compile/llcLexer.l"
01770 { return LLC_CLOSE_INDEX;       }
01771         YY_BREAK
01772 case 89:
01773 YY_RULE_SETUP
01774 #line 213 "tools/compile/llcLexer.l"
01775 { return LLC_IN;                        }
01776         YY_BREAK
01777 /***************************************************************************
01778         Conditionals
01779   ***************************************************************************/
01780 case 90:
01781 /* rule 90 can match eol */
01782 YY_RULE_SETUP
01783 #line 219 "tools/compile/llcLexer.l"
01784 { return LLC_HASHIF;    }
01785         YY_BREAK
01786 case 91:
01787 /* rule 91 can match eol */
01788 YY_RULE_SETUP
01789 #line 220 "tools/compile/llcLexer.l"
01790 { return LLC_IF;                }
01791         YY_BREAK
01792 case 92:
01793 YY_RULE_SETUP
01794 #line 221 "tools/compile/llcLexer.l"
01795 { return LLC_ELSE;              }
01796         YY_BREAK
01797 case 93:
01798 /* rule 93 can match eol */
01799 YY_RULE_SETUP
01800 #line 222 "tools/compile/llcLexer.l"
01801 { return LLC_WHILE;             }
01802         YY_BREAK
01803 case 94:
01804 YY_RULE_SETUP
01805 #line 223 "tools/compile/llcLexer.l"
01806 { return LLC_FOREACH;   }
01807         YY_BREAK
01808 case 95:
01809 YY_RULE_SETUP
01810 #line 224 "tools/compile/llcLexer.l"
01811 { return LLC_RECURSIVE; }
01812         YY_BREAK
01813 case 96:
01814 YY_RULE_SETUP
01815 #line 225 "tools/compile/llcLexer.l"
01816 { return LLC_CASE;              }
01817         YY_BREAK
01818 case 97:
01819 YY_RULE_SETUP
01820 #line 226 "tools/compile/llcLexer.l"
01821 { return LLC_DEFAULT;   }
01822         YY_BREAK
01823 case 98:
01824 YY_RULE_SETUP
01825 #line 227 "tools/compile/llcLexer.l"
01826 { return LLC_BREAK;             }
01827         YY_BREAK
01828 case 99:
01829 YY_RULE_SETUP
01830 #line 228 "tools/compile/llcLexer.l"
01831 { return LLC_CONTINUE;  }
01832         YY_BREAK
01833 /***************************************************************************
01834         Overloadable Function
01835   ***************************************************************************/
01836 /* Only a couple defined atm, will work out the rest later once things start
01837         get put together... */
01838 case 100:
01839 YY_RULE_SETUP
01840 #line 237 "tools/compile/llcLexer.l"
01841 { return LLC_OF_LOOK;   }
01842         YY_BREAK
01843 case 101:
01844 YY_RULE_SETUP
01845 #line 238 "tools/compile/llcLexer.l"
01846 { return LLC_OF_USE;    }
01847         YY_BREAK
01848 /***************************************************************************
01849         Misc
01850   ***************************************************************************/
01851 case 102:
01852 YY_RULE_SETUP
01853 #line 244 "tools/compile/llcLexer.l"
01854 { return LLC_CLASS;                     }
01855         YY_BREAK
01856 case 103:
01857 YY_RULE_SETUP
01858 #line 245 "tools/compile/llcLexer.l"
01859 { return LLC_INHERITS;          }
01860         YY_BREAK
01861 case 104:
01862 /* rule 104 can match eol */
01863 YY_RULE_SETUP
01864 #line 246 "tools/compile/llcLexer.l"
01865 { return LLC_IS_A;                      }
01866         YY_BREAK
01867 case 105:
01868 YY_RULE_SETUP
01869 #line 247 "tools/compile/llcLexer.l"
01870 { return LLC_ARE;                       }
01871         YY_BREAK
01872 case 106:
01873 /* rule 106 can match eol */
01874 YY_RULE_SETUP
01875 #line 248 "tools/compile/llcLexer.l"
01876 { return LLC_ADDRESS_OF;        }
01877         YY_BREAK
01878 /***************************************************************************
01879         Identifiers
01880   ***************************************************************************/
01881 case 107:
01882 /* rule 107 can match eol */
01883 YY_RULE_SETUP
01884 #line 254 "tools/compile/llcLexer.l"
01885 { return LLC_FUNC_IDENT;        }
01886         YY_BREAK
01887 case 108:
01888 YY_RULE_SETUP
01889 #line 256 "tools/compile/llcLexer.l"
01890 { return LLC_IDENT;                     }
01891         YY_BREAK
01892 /***************************************************************************
01893         Debugging/Regression Testing
01894   ***************************************************************************/
01895 case 109:
01896 YY_RULE_SETUP
01897 #line 262 "tools/compile/llcLexer.l"
01898 { BEGIN(HASH_EXPECT);           }
01899         YY_BREAK
01900 
01901 case 110:
01902 YY_RULE_SETUP
01903 #line 265 "tools/compile/llcLexer.l"
01904 { return LLC_XWARN;                     }
01905         YY_BREAK
01906 case 111:
01907 YY_RULE_SETUP
01908 #line 266 "tools/compile/llcLexer.l"
01909 { return LLC_XFAIL;                     }
01910         YY_BREAK
01911 case 112:
01912 YY_RULE_SETUP
01913 #line 267 "tools/compile/llcLexer.l"
01914 { return LLC_XPASS;                     }
01915         YY_BREAK
01916 case 113:
01917 /* rule 113 can match eol */
01918 YY_RULE_SETUP
01919 #line 268 "tools/compile/llcLexer.l"
01920 {                                                       }
01921         YY_BREAK
01922 case 114:
01923 /* rule 114 can match eol */
01924 YY_RULE_SETUP
01925 #line 269 "tools/compile/llcLexer.l"
01926 { BEGIN(INITIAL);                       }
01927         YY_BREAK
01928 /* ignore everything else, since this really isn't a 'user' function lacking
01929         random warnings isn't a problem */
01930 case 115:
01931 YY_RULE_SETUP
01932 #line 272 "tools/compile/llcLexer.l"
01933 { }
01934         YY_BREAK
01935 
01936 /***************************************************************************
01937         Catch All
01938   ***************************************************************************/
01939 case YY_STATE_EOF(INITIAL):
01940 case YY_STATE_EOF(CCOMMENT):
01941 case YY_STATE_EOF(HASH_EXPECT):
01942 #line 279 "tools/compile/llcLexer.l"
01943 { return LLC_EOF;       }
01944         YY_BREAK
01945 case 116:
01946 YY_RULE_SETUP
01947 #line 281 "tools/compile/llcLexer.l"
01948 { return LLC_ERROR;     }
01949         YY_BREAK
01950 case 117:
01951 YY_RULE_SETUP
01952 #line 283 "tools/compile/llcLexer.l"
01953 YY_FATAL_ERROR( "flex scanner jammed" );
01954         YY_BREAK
01955 #line 1955 "tools/compile/llcLexer.cpp"
01956 
01957         case YY_END_OF_BUFFER:
01958                 {
01959                 /* Amount of text matched not including the EOB char. */
01960                 int yy_amount_of_matched_text = static_cast<int>(yy_cp - (yytext_ptr)) - 1;
01961 
01962                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
01963                 *yy_cp = (yy_hold_char);
01964                 YY_RESTORE_YY_MORE_OFFSET
01965 
01966                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01967                         {
01968                         /* We're scanning a new file or input source.  It's
01969                          * possible that this happened because the user
01970                          * just pointed yyin at a new source and called
01971                          * yylex().  If so, then we have to assure
01972                          * consistency between YY_CURRENT_BUFFER and our
01973                          * globals.  Here is the right place to do so, because
01974                          * this is the first action (other than possibly a
01975                          * back-up) that will match for the new input source.
01976                          */
01977                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01978                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01979                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01980                         }
01981 
01982                 /* Note that here we test for yy_c_buf_p "<=" to the position
01983                  * of the first EOB in the buffer, since yy_c_buf_p will
01984                  * already have been incremented past the NUL character
01985                  * (since all states make transitions on EOB to the
01986                  * end-of-buffer state).  Contrast this with the test
01987                  * in input().
01988                  */
01989                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01990                         { /* This was really a NUL. */
01991                         yy_state_type yy_next_state;
01992 
01993                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
01994 
01995                         yy_current_state = yy_get_previous_state(  );
01996 
01997                         /* Okay, we're now positioned to make the NUL
01998                          * transition.  We couldn't have
01999                          * yy_get_previous_state() go ahead and do it
02000                          * for us because it doesn't know how to deal
02001                          * with the possibility of jamming (and we don't
02002                          * want to build jamming into it because then it
02003                          * will run more slowly).
02004                          */
02005 
02006                         yy_next_state = yy_try_NUL_trans( yy_current_state );
02007 
02008                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02009 
02010                         if ( yy_next_state )
02011                                 {
02012                                 /* Consume the NUL. */
02013                                 yy_cp = ++(yy_c_buf_p);
02014                                 yy_current_state = yy_next_state;
02015                                 goto yy_match;
02016                                 }
02017 
02018                         else
02019                                 {
02020 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
02021                                 yy_cp = (yy_c_buf_p);
02022                                 goto yy_find_action;
02023                                 }
02024                         }
02025 
02026                 else switch ( yy_get_next_buffer(  ) )
02027                         {
02028                         case EOB_ACT_END_OF_FILE:
02029                                 {
02030                                 (yy_did_buffer_switch_on_eof) = 0;
02031 
02032                                 if ( yywrap(  ) )
02033                                         {
02034                                         /* Note: because we've taken care in
02035                                          * yy_get_next_buffer() to have set up
02036                                          * yytext, we can now set up
02037                                          * yy_c_buf_p so that if some total
02038                                          * hoser (like flex itself) wants to
02039                                          * call the scanner after we return the
02040                                          * YY_NULL, it'll still work - another
02041                                          * YY_NULL will get returned.
02042                                          */
02043                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
02044 
02045                                         yy_act = YY_STATE_EOF(YY_START);
02046                                         goto do_action;
02047                                         }
02048 
02049                                 else
02050                                         {
02051                                         if ( ! (yy_did_buffer_switch_on_eof) )
02052                                                 YY_NEW_FILE;
02053                                         }
02054                                 break;
02055                                 }
02056 
02057                         case EOB_ACT_CONTINUE_SCAN:
02058                                 (yy_c_buf_p) =
02059                                         (yytext_ptr) + yy_amount_of_matched_text;
02060 
02061                                 yy_current_state = yy_get_previous_state(  );
02062 
02063                                 yy_cp = (yy_c_buf_p);
02064                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02065                                 goto yy_match;
02066 
02067                         case EOB_ACT_LAST_MATCH:
02068                                 (yy_c_buf_p) =
02069                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
02070 
02071                                 yy_current_state = yy_get_previous_state(  );
02072 
02073                                 yy_cp = (yy_c_buf_p);
02074                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02075                                 goto yy_find_action;
02076                         }
02077                 break;
02078                 }
02079 
02080         default:
02081                 YY_FATAL_ERROR(
02082                         "fatal flex scanner internal error--no action found" );
02083         } /* end of action switch */
02084                 } /* end of scanning one token */
02085 } /* end of yylex */
02086 /* %ok-for-header */
02087 
02088 /* %if-c++-only */
02089 /* %not-for-header */
02090 
02091 yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
02092 {
02093         yyin = arg_yyin;
02094         yyout = arg_yyout;
02095         yy_c_buf_p = 0;
02096         yy_init = 1;
02097         yy_start = 0;
02098         yy_flex_debug = 0;
02099         yylineno = 1;   // this will only get updated if %option yylineno
02100 
02101         yy_did_buffer_switch_on_eof = 0;
02102 
02103         yy_looking_for_trail_begin = 0;
02104         yy_more_flag = 0;
02105         yy_more_len = 0;
02106         yy_more_offset = yy_prev_more_offset = 0;
02107 
02108         yy_start_stack_ptr = yy_start_stack_depth = 0;
02109         yy_start_stack = 0;
02110 
02111     (yy_buffer_stack) = 0;
02112     (yy_buffer_stack_top) = 0;
02113     (yy_buffer_stack_max) = 0;
02114 
02115         yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2];
02116 
02117 }
02118 
02119 yyFlexLexer::~yyFlexLexer()
02120 {
02121         delete [] yy_state_buf;
02122         llcfree(yy_start_stack  );
02123         yy_delete_buffer( YY_CURRENT_BUFFER );
02124 }
02125 
02126 void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
02127 {
02128         if ( new_in )
02129                 {
02130                 yy_delete_buffer( YY_CURRENT_BUFFER );
02131                 yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE  ) );
02132                 }
02133 
02134         if ( new_out )
02135                 yyout = new_out;
02136 }
02137 
02138 #ifdef YY_INTERACTIVE
02139 int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
02140 #else
02141 int yyFlexLexer::LexerInput( char* buf, int max_size )
02142 #endif
02143 {
02144         if ( yyin->eof() || yyin->fail() )
02145                 return 0;
02146 
02147 #ifdef YY_INTERACTIVE
02148         yyin->get( buf[0] );
02149 
02150         if ( yyin->eof() )
02151                 return 0;
02152 
02153         if ( yyin->bad() )
02154                 return -1;
02155 
02156         return 1;
02157 
02158 #else
02159         (void) yyin->read( buf, max_size );
02160 
02161         if ( yyin->bad() )
02162                 return -1;
02163         else
02164                 return yyin->gcount();
02165 #endif
02166 }
02167 
02168 void yyFlexLexer::LexerOutput( const char* buf, int size )
02169 {
02170         (void) yyout->write( buf, size );
02171 }
02172 /* %ok-for-header */
02173 
02174 /* %endif */
02175 
02176 /* yy_get_next_buffer - try to read in a new buffer
02177  *
02178  * Returns a code representing an action:
02179  *      EOB_ACT_LAST_MATCH -
02180  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
02181  *      EOB_ACT_END_OF_FILE - end of file
02182  */
02183 /* %if-c-only */
02184 /* %endif */
02185 /* %if-c++-only */
02186 int yyFlexLexer::yy_get_next_buffer()
02187 /* %endif */
02188 {
02189         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02190         register char *source = (yytext_ptr);
02191         register int number_to_move, i;
02192         int ret_val;
02193 
02194         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
02195                 YY_FATAL_ERROR(
02196                 "fatal flex scanner internal error--end of buffer missed" );
02197 
02198         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02199                 { /* Don't try to fill the buffer, so this is an EOF. */
02200                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
02201                         {
02202                         /* We matched a single character, the EOB, so
02203                          * treat this as a final EOF.
02204                          */
02205                         return EOB_ACT_END_OF_FILE;
02206                         }
02207 
02208                 else
02209                         {
02210                         /* We matched some text prior to the EOB, first
02211                          * process it.
02212                          */
02213                         return EOB_ACT_LAST_MATCH;
02214                         }
02215                 }
02216 
02217         /* Try to read more data. */
02218 
02219         /* First move last chars to start of buffer. */
02220         number_to_move = static_cast<int>((yy_c_buf_p) - (yytext_ptr)) - 1;
02221 
02222         for ( i = 0; i < number_to_move; ++i )
02223                 *(dest++) = *(source++);
02224 
02225         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02226                 /* don't do the read, it's not guaranteed to return an EOF,
02227                  * just force an EOF
02228                  */
02229                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
02230 
02231         else
02232                 {
02233                         size_t num_to_read =
02234                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02235 
02236                 while ( num_to_read <= 0 )
02237                         { /* Not enough room in the buffer - grow it. */
02238 
02239                         YY_FATAL_ERROR(
02240 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
02241 
02242                         }
02243 
02244                 if ( num_to_read > YY_READ_BUF_SIZE )
02245                         num_to_read = YY_READ_BUF_SIZE;
02246 
02247                 /* Read in more data. */
02248                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02249                         (yy_n_chars), num_to_read );
02250 
02251                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02252                 }
02253 
02254         if ( (yy_n_chars) == 0 )
02255                 {
02256                 if ( number_to_move == YY_MORE_ADJ )
02257                         {
02258                         ret_val = EOB_ACT_END_OF_FILE;
02259                         yyrestart( yyin  );
02260                         }
02261 
02262                 else
02263                         {
02264                         ret_val = EOB_ACT_LAST_MATCH;
02265                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02266                                 YY_BUFFER_EOF_PENDING;
02267                         }
02268                 }
02269 
02270         else
02271                 ret_val = EOB_ACT_CONTINUE_SCAN;
02272 
02273         (yy_n_chars) += number_to_move;
02274         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
02275         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
02276 
02277         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02278 
02279         return ret_val;
02280 }
02281 
02282 /* yy_get_previous_state - get the state just before the EOB char was reached */
02283 
02284 /* %if-c-only */
02285 /* %not-for-header */
02286 
02287 /* %endif */
02288 /* %if-c++-only */
02289     yy_state_type yyFlexLexer::yy_get_previous_state()
02290 /* %endif */
02291 {
02292         register yy_state_type yy_current_state;
02293         register char *yy_cp;
02294     
02295 /* %% [15.0] code to get the start state into yy_current_state goes here */
02296         yy_current_state = (yy_start);
02297 
02298         (yy_state_ptr) = (yy_state_buf);
02299         *(yy_state_ptr)++ = yy_current_state;
02300 
02301         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
02302                 {
02303 /* %% [16.0] code to find the next state goes here */
02304                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02305                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02306                         {
02307                         yy_current_state = static_cast<int>(yy_def[yy_current_state]);
02308                         if ( yy_current_state >= 333 )
02309                                 yy_c = yy_meta[static_cast<unsigned int>(yy_c)];
02310                         }
02311                 yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
02312                 *(yy_state_ptr)++ = yy_current_state;
02313                 }
02314 
02315         return yy_current_state;
02316 }
02317 
02318 /* yy_try_NUL_trans - try to make a transition on the NUL character
02319  *
02320  * synopsis
02321  *      next_state = yy_try_NUL_trans( current_state );
02322  */
02323 /* %if-c-only */
02324 /* %endif */
02325 /* %if-c++-only */
02326     yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
02327 /* %endif */
02328 {
02329         register int yy_is_jam;
02330     /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
02331 
02332         register YY_CHAR yy_c = 1;
02333         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02334                 {
02335                 yy_current_state = static_cast<int>(yy_def[yy_current_state]);
02336                 if ( yy_current_state >= 333 )
02337                         yy_c = yy_meta[static_cast<unsigned int>(yy_c)];
02338                 }
02339         yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
02340         yy_is_jam = (yy_current_state == 332);
02341         if ( ! yy_is_jam )
02342                 *(yy_state_ptr)++ = yy_current_state;
02343 
02344         return yy_is_jam ? 0 : yy_current_state;
02345 }
02346 
02347 /* %if-c-only */
02348 /* %endif */
02349 /* %if-c++-only */
02350     void yyFlexLexer::yyunput( int c, register char* yy_bp)
02351 /* %endif */
02352 {
02353         register char *yy_cp;
02354     
02355     yy_cp = (yy_c_buf_p);
02356 
02357         /* undo effects of setting up yytext */
02358         *yy_cp = (yy_hold_char);
02359 
02360         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02361                 { /* need to shift things up to make room */
02362                 /* +2 for EOB chars. */
02363                 register int number_to_move = (yy_n_chars) + 2;
02364                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02365                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02366                 register char *source =
02367                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02368 
02369                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02370                         *--dest = *--source;
02371 
02372                 yy_cp += static_cast<int>(dest - source);
02373                 yy_bp += static_cast<int>(dest - source);
02374                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02375                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02376 
02377                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02378                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
02379                 }
02380 
02381         *--yy_cp = (char) c;
02382 
02383 /* %% [18.0] update yylineno here */
02384 
02385     if ( c == '\n' ){
02386         --yylineno;
02387     }
02388 
02389         (yytext_ptr) = yy_bp;
02390         (yy_hold_char) = *yy_cp;
02391         (yy_c_buf_p) = yy_cp;
02392 }
02393 /* %if-c-only */
02394 /* %endif */
02395 
02396 /* %if-c-only */
02397 /* %endif */
02398 /* %if-c++-only */
02399     int yyFlexLexer::yyinput()
02400 /* %endif */
02401 {
02402         int c;
02403     
02404         *(yy_c_buf_p) = (yy_hold_char);
02405 
02406         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
02407                 {
02408                 /* yy_c_buf_p now points to the character we want to return.
02409                  * If this occurs *before* the EOB characters, then it's a
02410                  * valid NUL; if not, then we've hit the end of the buffer.
02411                  */
02412                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02413                         /* This was really a NUL. */
02414                         *(yy_c_buf_p) = '\0';
02415 
02416                 else
02417                         { /* need more input */
02418                         int offset = (yy_c_buf_p) - (yytext_ptr);
02419                         ++(yy_c_buf_p);
02420 
02421                         switch ( yy_get_next_buffer(  ) )
02422                                 {
02423                                 case EOB_ACT_LAST_MATCH:
02424                                         /* This happens because yy_g_n_b()
02425                                          * sees that we've accumulated a
02426                                          * token and flags that we need to
02427                                          * try matching the token before
02428                                          * proceeding.  But for input(),
02429                                          * there's no matching to consider.
02430                                          * So convert the EOB_ACT_LAST_MATCH
02431                                          * to EOB_ACT_END_OF_FILE.
02432                                          */
02433 
02434                                         /* Reset buffer status. */
02435                                         yyrestart( yyin );
02436 
02437                                         /*FALLTHROUGH*/
02438 
02439                                 case EOB_ACT_END_OF_FILE:
02440                                         {
02441                                         if ( yywrap(  ) )
02442                                                 return EOF;
02443 
02444                                         if ( ! (yy_did_buffer_switch_on_eof) )
02445                                                 YY_NEW_FILE;
02446 #ifdef __cplusplus
02447                                         return yyinput();
02448 #else
02449                                         return input();
02450 #endif
02451                                         }
02452 
02453                                 case EOB_ACT_CONTINUE_SCAN:
02454                                         (yy_c_buf_p) = (yytext_ptr) + offset;
02455                                         break;
02456                                 }
02457                         }
02458                 }
02459 
02460         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
02461         *(yy_c_buf_p) = '\0';   /* preserve yytext */
02462         (yy_hold_char) = *++(yy_c_buf_p);
02463 
02464 /* %% [19.0] update BOL and yylineno */
02465         if ( c == '\n' )
02466                    
02467     yylineno++;
02468 ;
02469 
02470         return c;
02471 }
02472 /* %if-c-only */
02473 /* %endif */
02474 
02480 /* %if-c-only */
02481 /* %endif */
02482 /* %if-c++-only */
02483     void yyFlexLexer::yyrestart( std::istream* input_file )
02484 /* %endif */
02485 {
02486     
02487         if ( ! YY_CURRENT_BUFFER ){
02488         yyensure_buffer_stack ();
02489                 YY_CURRENT_BUFFER_LVALUE =
02490             yy_create_buffer( yyin, YY_BUF_SIZE );
02491         }
02492 
02493         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
02494         yy_load_buffer_state(  );
02495 }
02496 
02501 /* %if-c-only */
02502 /* %endif */
02503 /* %if-c++-only */
02504     void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
02505 /* %endif */
02506 {
02507     
02508         /* TODO. We should be able to replace this entire function body
02509          * with
02510          *              yypop_buffer_state();
02511          *              yypush_buffer_state(new_buffer);
02512      */
02513         yyensure_buffer_stack ();
02514         if ( YY_CURRENT_BUFFER == new_buffer )
02515                 return;
02516 
02517         if ( YY_CURRENT_BUFFER )
02518                 {
02519                 /* Flush out information for old buffer. */
02520                 *(yy_c_buf_p) = (yy_hold_char);
02521                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02522                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02523                 }
02524 
02525         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02526         yy_load_buffer_state(  );
02527 
02528         /* We don't actually know whether we did this switch during
02529          * EOF (yywrap()) processing, but the only time this flag
02530          * is looked at is after yywrap() is called, so it's safe
02531          * to go ahead and always set it.
02532          */
02533         (yy_did_buffer_switch_on_eof) = 1;
02534 }
02535 
02536 /* %if-c-only */
02537 /* %endif */
02538 /* %if-c++-only */
02539     void yyFlexLexer::yy_load_buffer_state()
02540 /* %endif */
02541 {
02542         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02543         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02544         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02545         (yy_hold_char) = *(yy_c_buf_p);
02546 }
02547 
02554 /* %if-c-only */
02555 /* %endif */
02556 /* %if-c++-only */
02557     YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
02558 /* %endif */
02559 {
02560         YY_BUFFER_STATE b;
02561     
02562         b = (YY_BUFFER_STATE) llcalloc(sizeof( struct yy_buffer_state )  );
02563         if ( ! b )
02564                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02565 
02566         b->yy_buf_size = size;
02567 
02568         /* yy_ch_buf has to be 2 characters longer than the size given because
02569          * we need to put in 2 end-of-buffer characters.
02570          */
02571         b->yy_ch_buf = (char *) llcalloc(b->yy_buf_size + 2  );
02572         if ( ! b->yy_ch_buf )
02573                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02574 
02575         b->yy_is_our_buffer = 1;
02576 
02577         yy_init_buffer( b, file );
02578 
02579         return b;
02580 }
02581 
02586 /* %if-c-only */
02587 /* %endif */
02588 /* %if-c++-only */
02589     void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
02590 /* %endif */
02591 {
02592     
02593         if ( ! b )
02594                 return;
02595 
02596         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02597                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02598 
02599         if ( b->yy_is_our_buffer )
02600                 llcfree((void *) b->yy_ch_buf  );
02601 
02602         llcfree((void *) b  );
02603 }
02604 
02605 /* %if-c-only */
02606 /* %endif */
02607 
02608 /* %if-c++-only */
02609 
02610 /* %endif */
02611 
02612 /* Initializes or reinitializes a buffer.
02613  * This function is sometimes called more than once on the same buffer,
02614  * such as during a yyrestart() or at EOF.
02615  */
02616 /* %if-c-only */
02617 /* %endif */
02618 /* %if-c++-only */
02619     void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
02620 /* %endif */
02621 
02622 {
02623         int oerrno = errno;
02624     
02625         yy_flush_buffer( b );
02626 
02627         b->yy_input_file = file;
02628         b->yy_fill_buffer = 1;
02629 
02630     /* If b is the current buffer, then yy_init_buffer was _probably_
02631      * called from yyrestart() or through yy_get_next_buffer.
02632      * In that case, we don't want to reset the lineno or column.
02633      */
02634     if (b != YY_CURRENT_BUFFER){
02635         b->yy_bs_lineno = 1;
02636         b->yy_bs_column = 0;
02637     }
02638 
02639 /* %if-c-only */
02640 /* %endif */
02641 /* %if-c++-only */
02642         b->yy_is_interactive = 0;
02643 /* %endif */
02644         errno = oerrno;
02645 }
02646 
02651 /* %if-c-only */
02652 /* %endif */
02653 /* %if-c++-only */
02654     void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
02655 /* %endif */
02656 {
02657         if ( ! b )
02658                 return;
02659 
02660         b->yy_n_chars = 0;
02661 
02662         /* We always need two end-of-buffer characters.  The first causes
02663          * a transition to the end-of-buffer state.  The second causes
02664          * a jam in that state.
02665          */
02666         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02667         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02668 
02669         b->yy_buf_pos = &b->yy_ch_buf[0];
02670 
02671         b->yy_at_bol = 1;
02672         b->yy_buffer_status = YY_BUFFER_NEW;
02673 
02674         if ( b == YY_CURRENT_BUFFER )
02675                 yy_load_buffer_state(  );
02676 }
02677 
02678 /* %if-c-or-c++ */
02685 /* %if-c-only */
02686 /* %endif */
02687 /* %if-c++-only */
02688 void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)
02689 /* %endif */
02690 {
02691         if (new_buffer == NULL)
02692                 return;
02693 
02694         yyensure_buffer_stack();
02695 
02696         /* This block is copied from yy_switch_to_buffer. */
02697         if ( YY_CURRENT_BUFFER )
02698                 {
02699                 /* Flush out information for old buffer. */
02700                 *(yy_c_buf_p) = (yy_hold_char);
02701                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02702                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02703                 }
02704 
02705         /* Only push if top exists. Otherwise, replace top. */
02706         if (YY_CURRENT_BUFFER)
02707                 (yy_buffer_stack_top)++;
02708         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02709 
02710         /* copied from yy_switch_to_buffer. */
02711         yy_load_buffer_state(  );
02712         (yy_did_buffer_switch_on_eof) = 1;
02713 }
02714 /* %endif */
02715 
02716 /* %if-c-or-c++ */
02721 /* %if-c-only */
02722 /* %endif */
02723 /* %if-c++-only */
02724 void yyFlexLexer::yypop_buffer_state (void)
02725 /* %endif */
02726 {
02727         if (!YY_CURRENT_BUFFER)
02728                 return;
02729 
02730         yy_delete_buffer(YY_CURRENT_BUFFER );
02731         YY_CURRENT_BUFFER_LVALUE = NULL;
02732         if ((yy_buffer_stack_top) > 0)
02733                 --(yy_buffer_stack_top);
02734 
02735         if (YY_CURRENT_BUFFER) {
02736                 yy_load_buffer_state(  );
02737                 (yy_did_buffer_switch_on_eof) = 1;
02738         }
02739 }
02740 /* %endif */
02741 
02742 /* %if-c-or-c++ */
02743 /* Allocates the stack if it does not exist.
02744  *  Guarantees space for at least one push.
02745  */
02746 /* %if-c-only */
02747 /* %endif */
02748 /* %if-c++-only */
02749 void yyFlexLexer::yyensure_buffer_stack(void)
02750 /* %endif */
02751 {
02752         int num_to_alloc;
02753     
02754         if (!(yy_buffer_stack)) {
02755 
02756                 /* First allocation is just for 2 elements, since we don't know if this
02757                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
02758                  * immediate realloc on the next call.
02759          */
02760                 num_to_alloc = 1;
02761                 (yy_buffer_stack) = (struct yy_buffer_state**)llcalloc
02762                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02763                                                                 );
02764                 
02765                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02766                                 
02767                 (yy_buffer_stack_max) = num_to_alloc;
02768                 (yy_buffer_stack_top) = 0;
02769                 return;
02770         }
02771 
02772         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
02773 
02774                 /* Increase the buffer to prepare for a possible push. */
02775                 int grow_size = 8 /* arbitrary grow size */;
02776 
02777                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
02778                 (yy_buffer_stack) = (struct yy_buffer_state**)llcrealloc
02779                                                                 ((yy_buffer_stack),
02780                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
02781                                                                 );
02782 
02783                 /* zero only the new slots.*/
02784                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
02785                 (yy_buffer_stack_max) = num_to_alloc;
02786         }
02787 }
02788 /* %endif */
02789 
02790 /* %if-c-only */
02791 /* %endif */
02792 
02793 /* %if-c-only */
02794 /* %endif */
02795 
02796 /* %if-c-only */
02797 /* %endif */
02798 
02799 /* %if-c-only */
02800 /* %endif */
02801 /* %if-c++-only */
02802     void yyFlexLexer::yy_push_state( int new_state )
02803 /* %endif */
02804 {
02805         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
02806                 {
02807                 yy_size_t new_size;
02808 
02809                 (yy_start_stack_depth) += YY_START_STACK_INCR;
02810                 new_size = (yy_start_stack_depth) * sizeof( int );
02811 
02812                 if ( ! (yy_start_stack) )
02813                         (yy_start_stack) = (int *) llcalloc(new_size  );
02814 
02815                 else
02816                         (yy_start_stack) = (int *) llcrealloc((void *) (yy_start_stack),new_size  );
02817 
02818                 if ( ! (yy_start_stack) )
02819                         YY_FATAL_ERROR(
02820                         "out of memory expanding start-condition stack" );
02821                 }
02822 
02823         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
02824 
02825         BEGIN(new_state);
02826 }
02827 
02828 /* %if-c-only */
02829 /* %endif */
02830 /* %if-c++-only */
02831     void yyFlexLexer::yy_pop_state()
02832 /* %endif */
02833 {
02834         if ( --(yy_start_stack_ptr) < 0 )
02835                 YY_FATAL_ERROR( "start-condition stack underflow" );
02836 
02837         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
02838 }
02839 
02840 /* %if-c-only */
02841 /* %endif */
02842 /* %if-c++-only */
02843     int yyFlexLexer::yy_top_state()
02844 /* %endif */
02845 {
02846         return (yy_start_stack)[(yy_start_stack_ptr) - 1];
02847 }
02848 
02849 #ifndef YY_EXIT_FAILURE
02850 #define YY_EXIT_FAILURE 2
02851 #endif
02852 
02853 /* %if-c-only */
02854 /* %endif */
02855 /* %if-c++-only */
02856 void yyFlexLexer::LexerError( yyconst char msg[] )
02857 {
02858         std::cerr << msg << std::endl;
02859         exit( YY_EXIT_FAILURE );
02860 }
02861 /* %endif */
02862 
02863 /* Redefine yyless() so it works in section 3 code. */
02864 
02865 #undef yyless
02866 #define yyless(n) \
02867         do \
02868                 { \
02869                 /* Undo effects of setting up yytext. */ \
02870         int yyless_macro_arg = (n); \
02871         YY_LESS_LINENO(yyless_macro_arg);\
02872                 yytext[yyleng] = (yy_hold_char); \
02873                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
02874                 (yy_hold_char) = *(yy_c_buf_p); \
02875                 *(yy_c_buf_p) = '\0'; \
02876                 yyleng = yyless_macro_arg; \
02877                 } \
02878         while ( 0 )
02879 
02880 /* Accessor  methods (get/set functions) to struct members. */
02881 
02882 /* %if-c-only */
02883 /* %if-reentrant */
02884 /* %endif */
02885 /* %if-reentrant */
02886 /* %endif */
02887 /* %endif */
02888 
02889 /* %if-reentrant */
02890 /* %if-bison-bridge */
02891 /* %endif */
02892 /* %endif */
02893 
02894 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
02895 /* %if-reentrant */
02896 /* %endif */
02897 /* %endif */
02898 
02899 /*
02900  * Internal utility routines.
02901  */
02902 
02903 #ifndef yytext_ptr
02904 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
02905 {
02906         register int i;
02907         for ( i = 0; i < n; ++i )
02908                 s1[i] = s2[i];
02909 }
02910 #endif
02911 
02912 #ifdef YY_NEED_STRLEN
02913 static int yy_flex_strlen (yyconst char * s )
02914 {
02915         register int n;
02916         for ( n = 0; s[n]; ++n )
02917                 ;
02918 
02919         return n;
02920 }
02921 #endif
02922 
02923 void *llcalloc (yy_size_t  size )
02924 {
02925         return (void *) malloc( size );
02926 }
02927 
02928 void *llcrealloc  (void * ptr, yy_size_t  size )
02929 {
02930         /* The cast to (char *) in the following accommodates both
02931          * implementations that use char* generic pointers, and those
02932          * that use void* generic pointers.  It works with the latter
02933          * because both ANSI C and C++ allow castless assignment from
02934          * any pointer type to void*, and deal with argument conversions
02935          * as though doing an assignment.
02936          */
02937         return (void *) realloc( (char *) ptr, size );
02938 }
02939 
02940 void llcfree (void * ptr )
02941 {
02942         free( (char *) ptr );   /* see llcrealloc() for (char *) cast */
02943 }
02944 
02945 /* %if-tables-serialization definitions */
02946 /* %define-yytables   The name for this specific scanner's tables. */
02947 #define YYTABLES_NAME "yytables"
02948 /* %endif */
02949 
02950 /* %ok-for-header */
02951 
02952 #undef YY_NEW_FILE
02953 #undef YY_FLUSH_BUFFER
02954 #undef yy_set_bol
02955 #undef yy_new_buffer
02956 #undef yy_set_interactive
02957 #undef yytext_ptr
02958 #undef YY_DO_BEFORE_ACTION
02959 
02960 #ifdef YY_DECL_IS_OURS
02961 #undef YY_DECL_IS_OURS
02962 #undef YY_DECL
02963 #endif
02964 #line 283 "tools/compile/llcLexer.l"
02965 
02966 
02967 
02968 

Generated on Fri Jul 27 22:27:23 2007 for pentagram by  doxygen 1.4.7