LLVM API Documentation

Lexer.cpp

Go to the documentation of this file.
00001 #line 2 "Lexer.cpp"
00002 
00003 #line 4 "Lexer.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 33
00013 #if YY_FLEX_SUBMINOR_VERSION > 0
00014 #define FLEX_BETA
00015 #endif
00016 
00017 /* First, we deal with  platform-specific or compiler-specific issues. */
00018 
00019 /* begin standard C headers. */
00020 #include <stdio.h>
00021 #include <string.h>
00022 #include <errno.h>
00023 #include <stdlib.h>
00024 
00025 /* end standard C headers. */
00026 
00027 /* flex integer type definitions */
00028 
00029 #ifndef FLEXINT_H
00030 #define FLEXINT_H
00031 
00032 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00033 
00034 #if __STDC_VERSION__ >= 199901L
00035 
00036 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
00037  * if you want the limit (max/min) macros for int types. 
00038  */
00039 #ifndef __STDC_LIMIT_MACROS
00040 #define __STDC_LIMIT_MACROS 1
00041 #endif
00042 
00043 #include <inttypes.h>
00044 typedef int8_t flex_int8_t;
00045 typedef uint8_t flex_uint8_t;
00046 typedef int16_t flex_int16_t;
00047 typedef uint16_t flex_uint16_t;
00048 typedef int32_t flex_int32_t;
00049 typedef uint32_t flex_uint32_t;
00050 #else
00051 typedef signed char flex_int8_t;
00052 typedef short int flex_int16_t;
00053 typedef int flex_int32_t;
00054 typedef unsigned char flex_uint8_t; 
00055 typedef unsigned short int flex_uint16_t;
00056 typedef unsigned int flex_uint32_t;
00057 #endif /* ! C99 */
00058 
00059 /* Limits of integral types. */
00060 #ifndef INT8_MIN
00061 #define INT8_MIN               (-128)
00062 #endif
00063 #ifndef INT16_MIN
00064 #define INT16_MIN              (-32767-1)
00065 #endif
00066 #ifndef INT32_MIN
00067 #define INT32_MIN              (-2147483647-1)
00068 #endif
00069 #ifndef INT8_MAX
00070 #define INT8_MAX               (127)
00071 #endif
00072 #ifndef INT16_MAX
00073 #define INT16_MAX              (32767)
00074 #endif
00075 #ifndef INT32_MAX
00076 #define INT32_MAX              (2147483647)
00077 #endif
00078 #ifndef UINT8_MAX
00079 #define UINT8_MAX              (255U)
00080 #endif
00081 #ifndef UINT16_MAX
00082 #define UINT16_MAX             (65535U)
00083 #endif
00084 #ifndef UINT32_MAX
00085 #define UINT32_MAX             (4294967295U)
00086 #endif
00087 
00088 #endif /* ! FLEXINT_H */
00089 
00090 #ifdef __cplusplus
00091 
00092 /* The "const" storage-class-modifier is valid. */
00093 #define YY_USE_CONST
00094 
00095 #else /* ! __cplusplus */
00096 
00097 #if __STDC__
00098 
00099 #define YY_USE_CONST
00100 
00101 #endif  /* __STDC__ */
00102 #endif  /* ! __cplusplus */
00103 
00104 #ifdef YY_USE_CONST
00105 #define yyconst const
00106 #else
00107 #define yyconst
00108 #endif
00109 
00110 /* Returned upon end-of-file. */
00111 #define YY_NULL 0
00112 
00113 /* Promotes a possibly negative, possibly signed char to an unsigned
00114  * integer for use as an array index.  If the signed char is negative,
00115  * we want to instead treat it as an 8-bit unsigned char, hence the
00116  * double cast.
00117  */
00118 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00119 
00120 /* Enter a start condition.  This macro really ought to take a parameter,
00121  * but we do it the disgusting crufty way forced on us by the ()-less
00122  * definition of BEGIN.
00123  */
00124 #define BEGIN (yy_start) = 1 + 2 *
00125 
00126 /* Translate the current start state into a value that can be later handed
00127  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00128  * compatibility.
00129  */
00130 #define YY_START (((yy_start) - 1) / 2)
00131 #define YYSTATE YY_START
00132 
00133 /* Action number for EOF rule of a given start state. */
00134 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00135 
00136 /* Special action meaning "start processing a new file". */
00137 #define YY_NEW_FILE llvmAsmrestart(llvmAsmin  )
00138 
00139 #define YY_END_OF_BUFFER_CHAR 0
00140 
00141 /* Size of default input buffer. */
00142 #ifndef YY_BUF_SIZE
00143 #define YY_BUF_SIZE (16384*64)
00144 #endif
00145 
00146 /* The state buf must be large enough to hold one state per character in the main buffer.
00147  */
00148 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00149 
00150 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00151 #define YY_TYPEDEF_YY_BUFFER_STATE
00152 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00153 #endif
00154 
00155 extern int llvmAsmleng;
00156 
00157 extern FILE *llvmAsmin, *llvmAsmout;
00158 
00159 #define EOB_ACT_CONTINUE_SCAN 0
00160 #define EOB_ACT_END_OF_FILE 1
00161 #define EOB_ACT_LAST_MATCH 2
00162 
00163     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
00164      *       access to the local variable yy_act. Since yyless() is a macro, it would break
00165      *       existing scanners that call yyless() from OUTSIDE llvmAsmlex. 
00166      *       One obvious solution it to make yy_act a global. I tried that, and saw
00167      *       a 5% performance hit in a non-llvmAsmlineno scanner, because yy_act is
00168      *       normally declared as a register variable-- so it is not worth it.
00169      */
00170     #define  YY_LESS_LINENO(n) \
00171             do { \
00172                 int yyl;\
00173                 for ( yyl = n; yyl < llvmAsmleng; ++yyl )\
00174                     if ( llvmAsmtext[yyl] == '\n' )\
00175                         --llvmAsmlineno;\
00176             }while(0)
00177     
00178 /* Return all but the first "n" matched characters back to the input stream. */
00179 #define yyless(n) \
00180   do \
00181     { \
00182     /* Undo effects of setting up llvmAsmtext. */ \
00183         int yyless_macro_arg = (n); \
00184         YY_LESS_LINENO(yyless_macro_arg);\
00185     *yy_cp = (yy_hold_char); \
00186     YY_RESTORE_YY_MORE_OFFSET \
00187     (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00188     YY_DO_BEFORE_ACTION; /* set up llvmAsmtext again */ \
00189     } \
00190   while ( 0 )
00191 
00192 #define unput(c) yyunput( c, (yytext_ptr)  )
00193 
00194 /* The following is because we cannot portably get our hands on size_t
00195  * (without autoconf's help, which isn't available because we want
00196  * flex-generated scanners to compile on their own).
00197  */
00198 
00199 #ifndef YY_TYPEDEF_YY_SIZE_T
00200 #define YY_TYPEDEF_YY_SIZE_T
00201 typedef unsigned int yy_size_t;
00202 #endif
00203 
00204 #ifndef YY_STRUCT_YY_BUFFER_STATE
00205 #define YY_STRUCT_YY_BUFFER_STATE
00206 struct yy_buffer_state
00207   {
00208   FILE *yy_input_file;
00209 
00210   char *yy_ch_buf;    /* input buffer */
00211   char *yy_buf_pos;   /* current position in input buffer */
00212 
00213   /* Size of input buffer in bytes, not including room for EOB
00214    * characters.
00215    */
00216   yy_size_t yy_buf_size;
00217 
00218   /* Number of characters read into yy_ch_buf, not including EOB
00219    * characters.
00220    */
00221   int yy_n_chars;
00222 
00223   /* Whether we "own" the buffer - i.e., we know we created it,
00224    * and can realloc() it to grow it, and should free() it to
00225    * delete it.
00226    */
00227   int yy_is_our_buffer;
00228 
00229   /* Whether this is an "interactive" input source; if so, and
00230    * if we're using stdio for input, then we want to use getc()
00231    * instead of fread(), to make sure we stop fetching input after
00232    * each newline.
00233    */
00234   int yy_is_interactive;
00235 
00236   /* Whether we're considered to be at the beginning of a line.
00237    * If so, '^' rules will be active on the next match, otherwise
00238    * not.
00239    */
00240   int yy_at_bol;
00241 
00242     int yy_bs_lineno; /**< The line count. */
00243     int yy_bs_column; /**< The column count. */
00244     
00245   /* Whether to try to fill the input buffer when we reach the
00246    * end of it.
00247    */
00248   int yy_fill_buffer;
00249 
00250   int yy_buffer_status;
00251 
00252 #define YY_BUFFER_NEW 0
00253 #define YY_BUFFER_NORMAL 1
00254   /* When an EOF's been seen but there's still some text to process
00255    * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00256    * shouldn't try reading from the input source any more.  We might
00257    * still have a bunch of tokens to match, though, because of
00258    * possible backing-up.
00259    *
00260    * When we actually see the EOF, we change the status to "new"
00261    * (via llvmAsmrestart()), so that the user can continue scanning by
00262    * just pointing llvmAsmin at a new input file.
00263    */
00264 #define YY_BUFFER_EOF_PENDING 2
00265 
00266   };
00267 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00268 
00269 /* Stack of input buffers. */
00270 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
00271 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
00272 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
00273 
00274 /* We provide macros for accessing buffer states in case in the
00275  * future we want to put the buffer states in a more general
00276  * "scanner state".
00277  *
00278  * Returns the top of the stack, or NULL.
00279  */
00280 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00281                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00282                           : NULL)
00283 
00284 /* Same as previous macro, but useful when we know that the buffer stack is not
00285  * NULL or when we need an lvalue. For internal use only.
00286  */
00287 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00288 
00289 /* yy_hold_char holds the character lost when llvmAsmtext is formed. */
00290 static char yy_hold_char;
00291 static int yy_n_chars;    /* number of characters read into yy_ch_buf */
00292 int llvmAsmleng;
00293 
00294 /* Points to current character in buffer. */
00295 static char *yy_c_buf_p = (char *) 0;
00296 static int yy_init = 0;   /* whether we need to initialize */
00297 static int yy_start = 0;  /* start state number */
00298 
00299 /* Flag which is used to allow llvmAsmwrap()'s to do buffer switches
00300  * instead of setting up a fresh llvmAsmin.  A bit of a hack ...
00301  */
00302 static int yy_did_buffer_switch_on_eof;
00303 
00304 void llvmAsmrestart (FILE *input_file  );
00305 void llvmAsm_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00306 YY_BUFFER_STATE llvmAsm_create_buffer (FILE *file,int size  );
00307 void llvmAsm_delete_buffer (YY_BUFFER_STATE b  );
00308 void llvmAsm_flush_buffer (YY_BUFFER_STATE b  );
00309 void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer  );
00310 void llvmAsmpop_buffer_state (void );
00311 
00312 static void llvmAsmensure_buffer_stack (void );
00313 static void llvmAsm_load_buffer_state (void );
00314 static void llvmAsm_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00315 
00316 #define YY_FLUSH_BUFFER llvmAsm_flush_buffer(YY_CURRENT_BUFFER )
00317 
00318 YY_BUFFER_STATE llvmAsm_scan_buffer (char *base,yy_size_t size  );
00319 YY_BUFFER_STATE llvmAsm_scan_string (yyconst char *yy_str  );
00320 YY_BUFFER_STATE llvmAsm_scan_bytes (yyconst char *bytes,int len  );
00321 
00322 void *llvmAsmalloc (yy_size_t  );
00323 void *llvmAsmrealloc (void *,yy_size_t  );
00324 void llvmAsmfree (void *  );
00325 
00326 #define yy_new_buffer llvmAsm_create_buffer
00327 
00328 #define yy_set_interactive(is_interactive) \
00329   { \
00330   if ( ! YY_CURRENT_BUFFER ){ \
00331         llvmAsmensure_buffer_stack (); \
00332     YY_CURRENT_BUFFER_LVALUE =    \
00333             llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
00334   } \
00335   YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00336   }
00337 
00338 #define yy_set_bol(at_bol) \
00339   { \
00340   if ( ! YY_CURRENT_BUFFER ){\
00341         llvmAsmensure_buffer_stack (); \
00342     YY_CURRENT_BUFFER_LVALUE =    \
00343             llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
00344   } \
00345   YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00346   }
00347 
00348 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00349 
00350 /* Begin user sect3 */
00351 
00352 #define llvmAsmwrap() 1
00353 #define YY_SKIP_YYWRAP
00354 
00355 typedef unsigned char YY_CHAR;
00356 
00357 FILE *llvmAsmin = (FILE *) 0, *llvmAsmout = (FILE *) 0;
00358 
00359 typedef int yy_state_type;
00360 
00361 extern int llvmAsmlineno;
00362 
00363 int llvmAsmlineno = 1;
00364 
00365 extern char *llvmAsmtext;
00366 #define yytext_ptr llvmAsmtext
00367 
00368 static yy_state_type yy_get_previous_state (void );
00369 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
00370 static int yy_get_next_buffer (void );
00371 static void yy_fatal_error (yyconst char msg[]  );
00372 
00373 /* Done after the current pattern has been matched and before the
00374  * corresponding action - sets up llvmAsmtext.
00375  */
00376 #define YY_DO_BEFORE_ACTION \
00377   (yytext_ptr) = yy_bp; \
00378   llvmAsmleng = (size_t) (yy_cp - yy_bp); \
00379   (yy_hold_char) = *yy_cp; \
00380   *yy_cp = '\0'; \
00381   (yy_c_buf_p) = yy_cp;
00382 
00383 #define YY_NUM_RULES 107
00384 #define YY_END_OF_BUFFER 108
00385 /* This struct is not used in this scanner,
00386    but its presence is necessary. */
00387 struct yy_trans_info
00388   {
00389   flex_int32_t yy_verify;
00390   flex_int32_t yy_nxt;
00391   };
00392 static yyconst flex_int16_t yy_accept[454] =
00393     {   0,
00394         0,    0,  108,  106,  105,  105,  106,  106,  106,  106,
00395       106,  106,   98,   98,    1,  106,  106,  106,  106,  106,
00396       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
00397       106,  106,  106,  106,  106,  106,    0,   97,    0,   95,
00398        94,   94,  101,    0,   99,    0,  103,   98,    0,    1,
00399         0,    0,    0,    0,    0,    0,    0,    0,   80,    0,
00400        37,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00401         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00402         0,    0,    0,   62,    0,    0,    0,    0,    0,    0,
00403         0,    0,    0,    0,    0,    0,   20,    0,    0,    0,
00404 
00405         0,    0,    0,    0,    0,    0,    0,    0,    0,   97,
00406        94,   94,  103,   17,  103,    0,  104,   56,    0,    0,
00407        61,    0,   35,    0,   30,    0,    0,    0,   38,    0,
00408         0,    0,    0,   59,    0,    3,    0,    0,    0,    0,
00409         0,    0,    0,    0,    0,    0,   47,    0,    0,    0,
00410         0,    0,    0,    0,    0,   58,   22,    0,    0,   70,
00411         0,   60,   79,    0,    0,    0,    0,    0,   74,    0,
00412        75,    0,    0,    0,   57,    0,    0,    0,    0,    0,
00413         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00414         0,    0,    0,    0,    0,   63,    0,   96,  103,    0,
00415 
00416         0,    0,  103,    0,    0,    0,    0,   42,   71,   72,
00417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00418         0,    0,   87,    0,    0,    0,    0,    0,    0,    0,
00419         0,    0,   88,   49,    0,    0,   19,    0,    0,  100,
00420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00421         0,    0,   23,    0,    0,    4,   54,    0,   48,    0,
00422         0,    0,    0,    0,    0,    0,    0,    0,   41,    0,
00423        11,    0,  103,   32,    0,    0,    2,    0,    0,    0,
00424         0,    0,    0,    0,    0,    0,    5,    0,   51,    0,
00425         0,    0,    0,    0,    0,   53,    0,    0,    0,    0,
00426 
00427         0,    0,   43,    0,    0,   65,   69,   67,   68,   66,
00428        64,   45,    0,    0,   89,    0,    0,    0,   44,   50,
00429        18,    0,    0,    0,    0,    0,   77,    0,    0,    0,
00430        86,    0,   40,    0,    0,    0,   52,   27,   21,    0,
00431         0,   39,    0,    7,    0,    0,    0,   82,    0,   29,
00432        85,   34,   55,    0,    0,   73,    0,    0,   81,   24,
00433        25,    0,    0,   83,   46,   78,   76,    0,    0,    0,
00434         0,    6,   26,    0,    0,    0,    0,    0,    0,    0,
00435         0,   33,    0,    0,    0,    0,    0,    0,    0,    8,
00436        14,    0,    0,    0,    0,    9,   10,    0,    0,    0,
00437 
00438         0,    0,   31,    0,   12,    0,    0,    0,    0,    0,
00439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00440         0,   36,    0,    0,    0,    0,    0,    0,    0,   28,
00441         0,    0,   84,    0,    0,    0,    0,    0,    0,    0,
00442         0,    0,   90,    0,   92,   93,   13,    0,   91,   15,
00443         0,   16,    0
00444     } ;
00445 
00446 static yyconst flex_int32_t yy_ec[256] =
00447     {   0,
00448         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00449         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
00450         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00451         1,    2,    1,    4,    1,    5,    6,    1,    1,    1,
00452         1,    1,    7,    1,    8,    9,    1,   10,   11,   11,
00453        11,   11,   11,   11,   11,   11,   11,   12,   13,    1,
00454         1,    1,    1,    1,   14,   14,   14,   14,   15,   14,
00455         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
00456         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
00457         1,    1,    1,    1,   16,    1,   17,   18,   19,   20,
00458 
00459        21,   22,   23,   24,   25,    5,   26,   27,   28,   29,
00460        30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
00461        40,   41,    1,    1,    1,    1,    1,    1,    1,    1,
00462         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00463         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00464         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00465         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00466         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00467         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00468         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00469 
00470         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00471         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00472         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00473         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00474         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00475         1,    1,    1,    1,    1
00476     } ;
00477 
00478 static yyconst flex_int32_t yy_meta[42] =
00479     {   0,
00480         1,    1,    2,    1,    3,    1,    1,    3,    3,    3,
00481         3,    4,    1,    3,    3,    3,    3,    3,    3,    3,
00482         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00483         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00484         3
00485     } ;
00486 
00487 static yyconst flex_int16_t yy_base[459] =
00488     {   0,
00489         0,    0,  948,  949,  949,  949,  943,  934,   34,   36,
00490        38,   42,   46,   50,    0,   52,   57,   54,   68,   62,
00491        80,   82,   76,   94,   98,   40,   83,   88,   56,  125,
00492       108,  154,  109,   87,  110,  111,  941,  949,  932,  949,
00493         0,  119,  134,  142,  145,  124,  159,  166,  179,    0,
00494        55,  180,  147,  153,  119,  150,  183,  156,  931,  175,
00495       191,  192,  196,   90,  146,  200,  199,  201,  202,  204,
00496       205,  211,  212,  210,  218,  217,  221,  227,  236,  230,
00497       214,  239,  241,  930,  243,  247,  248,  225,  249,  250,
00498       251,  253,  258,  262,  267,  270,  929,  274,  259,  279,
00499 
00500       282,  263,  284,   41,  285,  288,  295,   84,  293,  928,
00501         0,  310,  313,  927,  320,  332,    0,  926,  304,  306,
00502       925,  317,  924,  321,  923,  325,  333,  313,  922,  286,
00503       335,  337,  338,  921,  339,  341,  342,  346,  343,  347,
00504       344,  350,  360,  356,  358,  363,  366,  361,  368,  364,
00505       371,  374,  376,  380,  381,  920,  919,  383,   31,  918,
00506       384,  917,  916,  408,  385,  386,  388,  412,  915,  399,
00507       914,  390,  393,  403,  913,  396,  389,  422,  425,  426,
00508       428,  430,  431,  432,  434,  438,  436,  439,  440,  441,
00509       442,  447,  451,  457,  450,  912,  448,  949,  462,  474,
00510 
00511       393,  476,  479,  467,  480,  468,  481,  911,  910,  909,
00512       482,  483,  486,  488,  490,  492,  493,  494,  495,  499,
00513       496,  502,  908,  504,  509,  507,  510,  511,  513,  518,
00514       517,  521,  907,  906,  520,  522,  905,  523,  526,    0,
00515       530,  528,  543,  524,  542,  545,  546,  529,  548,  553,
00516       557,  556,  904,  560,  559,  903,  902,  561,  901,  564,
00517       567,  571,  573,  572,  576,  579,  580,  581,  900,  582,
00518       899,  583,  587,  898,  587,  590,  897,  588,  594,  593,
00519       534,  601,  602,  603,  604,  606,  896,  609,  895,  611,
00520       607,  612,  615,  617,  618,  894,  623,  624,  625,  630,
00521 
00522       635,  636,  893,  629,  631,  892,  891,  890,  889,  888,
00523       887,  886,  637,  641,  885,  643,  642,  648,  884,  883,
00524       882,  646,  649,  650,  653,  659,  881,  660,  661,  662,
00525       880,  664,  879,  663,  666,  667,  878,  877,  876,  668,
00526       671,  875,  672,  874,  678,  681,  686,  873,  685,  872,
00527       871,  870,  869,  682,  684,  868,  693,  695,  867,  866,
00528       865,  696,  698,  864,  863,  862,  861,  697,  700,  699,
00529       704,  860,  857,  706,  708,  711,  707,  714,  715,  719,
00530       718,  848,  722,  723,  726,  733,  725,  735,  737,  847,
00531       845,  736,  739,  741,  743,  843,  842,  742,  744,  750,
00532 
00533       745,  759,  841,  749,  840,  754,  746,  761,  767,  768,
00534       770,  771,  772,  773,  774,  775,  776,  778,  780,  781,
00535       782,  838,  784,  787,  792,  793,  786,  798,  799,  835,
00536       800,  803,  834,  804,  806,  808,  810,  814,  815,  819,
00537       820,  821,  832,  822,  831,  830,  826,  824,  296,  255,
00538       825,  219,  949,  861,  863,  182,  867,  139
00539     } ;
00540 
00541 static yyconst flex_int16_t yy_def[459] =
00542     {   0,
00543       453,    1,  453,  453,  453,  453,  454,  455,  456,  453,
00544       455,  455,  455,  455,  457,  455,  455,  455,  455,  455,
00545       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00546       455,  455,  455,  455,  455,  455,  454,  453,  455,  453,
00547       458,  458,  453,  453,  455,  455,  455,  455,  455,  457,
00548       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00549       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00550       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00551       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00552       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00553 
00554       455,  455,  455,  455,  455,  455,  455,  455,  455,  453,
00555       458,  458,  453,  455,  455,  455,   49,  455,  455,  455,
00556       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00557       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00558       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00559       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00560       455,  455,  455,   49,  455,  455,  455,  455,  455,  455,
00561       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00562       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00563       455,  455,  455,  455,  455,  455,  455,  453,  453,  453,
00564 
00565       453,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00566       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00567       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00568       455,  455,  455,  455,  455,  455,  455,  455,  455,  164,
00569       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00570       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00571       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00572       455,  455,  453,  455,  455,  455,  455,  455,  455,  455,
00573       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00574       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00575 
00576       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00577       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00578       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00579       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00580       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00581       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00582       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00583       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00584       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00585       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00586 
00587       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00588       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00589       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00590       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00591       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
00592       455,  455,    0,  453,  453,  453,  453,  453
00593     } ;
00594 
00595 static yyconst flex_int16_t yy_nxt[991] =
00596     {   0,
00597         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
00598        14,    4,   15,    8,    8,    8,   16,   17,   18,   19,
00599        20,   21,   22,    8,   23,    8,   24,   25,   26,   27,
00600        28,    8,   29,   30,   31,   32,   33,   34,   35,    8,
00601        36,   42,   40,   43,   43,   44,   44,   45,   45,   40,
00602        46,   40,   40,   40,   47,   48,   48,   40,   47,   48,
00603        48,   40,  238,   40,  189,   40,   40,   40,   40,   81,
00604        60,   51,   61,   40,  118,   82,   87,   56,   52,   40,
00605        53,   57,   54,   62,   49,   55,   58,   40,   63,   59,
00606        66,   40,   64,   40,   40,   40,   68,   65,   40,   40,
00607 
00608        67,   40,   71,   73,   74,   40,   69,  107,   72,   40,
00609        75,   85,   70,   83,   78,   84,  196,   86,   76,   40,
00610        40,   40,   40,   77,   96,  105,  134,   79,  112,  112,
00611        40,  109,  114,   80,   88,   40,   40,   97,  106,  108,
00612        98,  111,   89,   43,   43,   90,  123,   99,   91,   92,
00613       113,   44,   44,   47,   45,   45,   40,   40,   40,   93,
00614        94,   40,   95,   88,   40,   40,  121,   40,  115,  115,
00615        40,  100,  124,  116,   47,   48,   48,   40,  101,  116,
00616       102,  135,  103,  122,   41,  126,   40,  104,  117,  117,
00617        40,   40,  117,  117,   40,  117,  117,  117,  117,  117,
00618 
00619       117,  127,   40,   40,  119,  125,  120,   40,  128,  129,
00620        40,   40,   40,   40,  132,   40,   40,  137,  130,  136,
00621       131,   40,   40,   40,  142,   40,  133,  139,   40,   40,
00622        40,  141,   40,  138,  140,  149,   40,  152,   40,  143,
00623       144,   40,  145,  146,  147,  150,  148,   40,  157,  153,
00624        40,  151,   40,  154,   40,  155,  156,  159,   40,   40,
00625        40,   40,   40,  164,   40,  158,   40,  160,  166,   40,
00626        40,  161,  173,   40,   40,  162,  167,  169,   40,  175,
00627       170,   40,  163,  171,  168,   40,  172,  174,  165,  181,
00628        40,  176,  184,   40,  177,   40,   40,   40,  179,   40,
00629 
00630       190,  191,  178,  185,   40,  211,   40,   40,  186,  180,
00631       183,  195,  193,  192,  194,   40,  187,   40,  182,  112,
00632       112,  188,  199,  199,   40,  197,  204,  200,   40,  115,
00633       115,   40,   40,  200,  116,  205,   40,  206,  201,  202,
00634       116,  203,  203,   40,   40,  207,   40,  210,   40,   40,
00635        40,  208,   40,   40,   40,   40,  215,   40,   40,  209,
00636       222,   40,  217,  213,  214,  216,  218,   40,  212,   40,
00637       223,   40,   40,  225,   40,   40,  220,   40,  219,   40,
00638       224,  221,   40,  227,  226,   40,  228,   40,  230,  231,
00639       229,   40,   40,  233,   40,   40,   40,   40,  234,   40,
00640 
00641        40,   40,  273,  273,   40,  232,  235,   40,  243,  237,
00642        40,  249,  239,  250,   40,  253,  236,  240,  240,  241,
00643       242,  240,  240,   40,  240,  240,  240,  240,  240,  240,
00644       252,  248,  244,   40,  245,  251,   40,   40,  246,   40,
00645       247,   40,   40,   40,  254,   40,  256,   40,  257,   40,
00646        40,   40,   40,   40,  261,  255,  263,  266,   40,   40,
00647       260,   40,   40,  264,  258,  259,  262,  268,   40,  265,
00648       269,  199,  199,  270,  267,  271,  200,  272,   40,   40,
00649       201,  201,  200,  273,  273,  203,  203,   40,  203,  203,
00650        40,   40,   40,   40,   40,  274,  276,   40,  275,   40,
00651 
00652       278,   40,  280,   40,   40,   40,   40,   40,  283,  277,
00653        40,  286,  281,   40,  288,   40,  282,  279,   40,  287,
00654        40,   40,   40,  284,   40,  291,  285,  292,   40,   40,
00655       290,   40,   40,   40,   40,   40,  289,   40,  295,   40,
00656        40,   40,  293,  294,  296,   40,  297,  298,  300,  299,
00657       303,  336,  304,   40,   40,  306,   40,   40,  301,   40,
00658       302,  305,  307,  312,   40,  309,  311,   40,   40,  313,
00659        40,   40,   40,  314,  316,   40,  308,  315,   40,  310,
00660       317,  319,   40,   40,   40,  318,  320,   40,  321,  323,
00661        40,   40,   40,   40,   40,  322,  273,  273,   40,   40,
00662 
00663       324,   40,  327,  331,   40,   40,  333,  330,  325,  332,
00664       334,  326,   40,   40,   40,   40,  329,   40,   40,  328,
00665        40,  337,   40,   40,  341,  335,   40,  342,   40,   40,
00666       338,  343,  340,  344,   40,   40,   40,  339,  348,  345,
00667        40,   40,   40,  351,  350,  347,   40,   40,   40,  346,
00668       352,  349,   40,   40,   40,  353,  354,   40,  355,   40,
00669        40,   40,  358,  357,   40,  356,  359,  363,  361,  364,
00670        40,   40,   40,   40,   40,   40,  360,   40,   40,   40,
00671       362,  366,   40,   40,  374,  368,  372,  365,  370,   40,
00672       369,  371,   40,   40,  367,   40,   40,   40,  377,  376,
00673 
00674       373,  378,  379,  380,   40,  375,   40,   40,   40,   40,
00675        40,   40,  382,  383,  381,   40,  384,   40,   40,   40,
00676       385,  386,   40,  387,  388,   40,   40,  389,  392,   40,
00677        40,  393,  391,   40,   40,  394,   40,   40,  390,  397,
00678       395,  396,  401,  400,   40,  403,   40,   40,   40,  402,
00679        40,  398,   40,   40,   40,   40,   40,   40,  399,  405,
00680        40,   40,  406,  409,  411,   40,  410,  407,  412,  404,
00681        40,  413,   40,  415,  416,  408,  414,  418,   40,   40,
00682       417,   40,   40,   40,   40,   40,   40,   40,  421,   40,
00683       425,   40,   40,   40,  419,   40,  423,   40,   40,  424,
00684 
00685       429,  430,  426,   40,   40,  422,  427,  433,  420,   40,
00686        40,   40,  428,  435,   40,   40,  431,   40,  434,   40,
00687       436,   40,  437,  440,  432,   40,   40,  438,  441,  439,
00688        40,   40,   40,   40,  442,   40,   40,   40,  447,  444,
00689       443,   40,   40,   40,  451,   40,   40,  446,  445,   40,
00690       450,   40,   40,   40,   40,  449,   40,  452,   40,   40,
00691       448,   37,   37,   37,   37,   39,   39,   50,   40,   50,
00692        50,   40,   40,   40,   40,   40,   40,   40,   40,   40,
00693        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
00694        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
00695 
00696        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
00697        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
00698        40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
00699        40,   40,   40,   40,   40,   40,   40,   40,   40,  198,
00700        40,   40,   40,   40,  110,   40,   38,  453,    3,  453,
00701       453,  453,  453,  453,  453,  453,  453,  453,  453,  453,
00702       453,  453,  453,  453,  453,  453,  453,  453,  453,  453,
00703       453,  453,  453,  453,  453,  453,  453,  453,  453,  453,
00704       453,  453,  453,  453,  453,  453,  453,  453,  453,  453
00705     } ;
00706 
00707 static yyconst flex_int16_t yy_chk[991] =
00708     {   0,
00709         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00710         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00711         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00712         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00713         1,    9,  159,    9,    9,   10,   10,   11,   11,   11,
00714        12,   26,  104,   12,   13,   13,   13,   13,   14,   14,
00715        14,   14,  159,   16,  104,   18,   51,   29,   17,   26,
00716        18,   16,   18,   20,   51,   26,   29,   17,   16,   19,
00717        16,   17,   16,   18,   13,   16,   17,   23,   19,   17,
00718        20,   21,   19,   22,   27,  108,   21,   19,   34,   28,
00719 
00720        20,   64,   22,   23,   23,   24,   21,   34,   22,   25,
00721        24,   28,   21,   27,   25,   27,  108,   28,   24,   31,
00722        33,   35,   36,   24,   31,   33,   64,   25,   42,   42,
00723        55,   36,   46,   25,   30,   46,   30,   31,   33,   35,
00724        31,  458,   30,   43,   43,   30,   55,   31,   30,   30,
00725        44,   44,   44,   45,   45,   45,   45,   65,   53,   30,
00726        30,   56,   30,   32,   54,   32,   53,   58,   47,   47,
00727        47,   32,   56,   47,   48,   48,   48,   48,   32,   47,
00728        32,   65,   32,   54,  456,   58,   60,   32,   49,   49,
00729        49,   52,   49,   49,   57,   49,   49,   49,   49,   49,
00730 
00731        49,   60,   61,   62,   52,   57,   52,   63,   60,   61,
00732        67,   66,   68,   69,   63,   70,   71,   67,   62,   66,
00733        62,   74,   72,   73,   70,   81,   63,   68,   76,   75,
00734       452,   69,   77,   67,   68,   75,   88,   77,   78,   71,
00735        72,   80,   73,   74,   74,   76,   74,   79,   81,   77,
00736        82,   76,   83,   78,   85,   79,   80,   83,   86,   87,
00737        89,   90,   91,   88,   92,   82,  450,   85,   90,   93,
00738        99,   86,   92,   94,  102,   87,   90,   91,   95,   94,
00739        91,   96,   87,   91,   90,   98,   91,   93,   89,   99,
00740       100,   95,  102,  101,   96,  103,  105,  130,   98,  106,
00741 
00742       105,  105,   96,  103,  109,  130,  107,  449,  103,   98,
00743       101,  107,  106,  105,  106,  119,  103,  120,  100,  112,
00744       112,  103,  113,  113,  128,  109,  119,  113,  122,  115,
00745       115,  115,  124,  113,  115,  120,  126,  122,  116,  116,
00746       115,  116,  116,  116,  127,  124,  131,  128,  132,  133,
00747       135,  126,  136,  137,  139,  141,  135,  138,  140,  127,
00748       141,  142,  137,  132,  133,  136,  138,  144,  131,  145,
00749       142,  143,  148,  144,  146,  150,  139,  147,  138,  149,
00750       143,  140,  151,  146,  145,  152,  147,  153,  149,  150,
00751       148,  154,  155,  152,  158,  161,  165,  166,  153,  167,
00752 
00753       177,  172,  201,  201,  173,  151,  154,  176,  167,  158,
00754       170,  172,  161,  173,  174,  177,  155,  164,  164,  165,
00755       166,  164,  164,  168,  164,  164,  164,  164,  164,  164,
00756       176,  170,  168,  178,  168,  174,  179,  180,  168,  181,
00757       168,  182,  183,  184,  178,  185,  180,  187,  181,  186,
00758       188,  189,  190,  191,  185,  179,  187,  190,  192,  197,
00759       184,  195,  193,  188,  182,  183,  186,  192,  194,  189,
00760       193,  199,  199,  194,  191,  195,  199,  197,  204,  206,
00761       200,  200,  199,  200,  200,  202,  202,  202,  203,  203,
00762       203,  205,  207,  211,  212,  204,  206,  213,  205,  214,
00763 
00764       211,  215,  213,  216,  217,  218,  219,  221,  216,  207,
00765       220,  219,  214,  222,  221,  224,  215,  212,  226,  220,
00766       225,  227,  228,  217,  229,  225,  218,  226,  231,  230,
00767       224,  235,  232,  236,  238,  244,  222,  239,  229,  242,
00768       248,  241,  227,  228,  230,  281,  231,  232,  236,  235,
00769       241,  281,  242,  245,  243,  244,  246,  247,  238,  249,
00770       239,  243,  245,  248,  250,  246,  247,  252,  251,  249,
00771       255,  254,  258,  250,  252,  260,  245,  251,  261,  246,
00772       254,  258,  262,  264,  263,  255,  260,  265,  261,  263,
00773       266,  267,  268,  270,  272,  262,  273,  273,  275,  278,
00774 
00775       264,  276,  267,  275,  280,  279,  278,  272,  265,  276,
00776       279,  266,  282,  283,  284,  285,  270,  286,  291,  268,
00777       288,  282,  290,  292,  286,  280,  293,  288,  294,  295,
00778       283,  290,  285,  291,  297,  298,  299,  284,  295,  292,
00779       304,  300,  305,  299,  298,  294,  301,  302,  313,  293,
00780       300,  297,  314,  317,  316,  301,  302,  322,  304,  318,
00781       323,  324,  314,  313,  325,  305,  316,  323,  318,  324,
00782       326,  328,  329,  330,  334,  332,  317,  335,  336,  340,
00783       322,  326,  341,  343,  340,  329,  335,  325,  332,  345,
00784       330,  334,  346,  354,  328,  355,  349,  347,  345,  343,
00785 
00786       336,  346,  347,  349,  357,  341,  358,  362,  368,  363,
00787       370,  369,  355,  357,  354,  371,  358,  374,  377,  375,
00788       362,  363,  376,  368,  369,  378,  379,  370,  375,  381,
00789       380,  376,  374,  383,  384,  377,  387,  385,  371,  380,
00790       378,  379,  385,  384,  386,  387,  388,  392,  389,  386,
00791       393,  381,  394,  398,  395,  399,  401,  407,  383,  389,
00792       404,  400,  392,  395,  399,  406,  398,  393,  400,  388,
00793       402,  401,  408,  404,  406,  394,  402,  408,  409,  410,
00794       407,  411,  412,  413,  414,  415,  416,  417,  411,  418,
00795       415,  419,  420,  421,  409,  423,  413,  427,  424,  414,
00796 
00797       419,  420,  416,  425,  426,  412,  417,  424,  410,  428,
00798       429,  431,  418,  426,  432,  434,  421,  435,  425,  436,
00799       427,  437,  428,  432,  423,  438,  439,  429,  434,  431,
00800       440,  441,  442,  444,  435,  448,  451,  447,  440,  437,
00801       436,  446,  445,  443,  448,  433,  430,  439,  438,  422,
00802       444,  405,  403,  397,  396,  442,  391,  451,  390,  382,
00803       441,  454,  454,  454,  454,  455,  455,  457,  373,  457,
00804       457,  372,  367,  366,  365,  364,  361,  360,  359,  356,
00805       353,  352,  351,  350,  348,  344,  342,  339,  338,  337,
00806       333,  331,  327,  321,  320,  319,  315,  312,  311,  310,
00807 
00808       309,  308,  307,  306,  303,  296,  289,  287,  277,  274,
00809       271,  269,  259,  257,  256,  253,  237,  234,  233,  223,
00810       210,  209,  208,  196,  175,  171,  169,  163,  162,  160,
00811       157,  156,  134,  129,  125,  123,  121,  118,  114,  110,
00812        97,   84,   59,   39,   37,    8,    7,    3,  453,  453,
00813       453,  453,  453,  453,  453,  453,  453,  453,  453,  453,
00814       453,  453,  453,  453,  453,  453,  453,  453,  453,  453,
00815       453,  453,  453,  453,  453,  453,  453,  453,  453,  453,
00816       453,  453,  453,  453,  453,  453,  453,  453,  453,  453
00817     } ;
00818 
00819 /* Table of booleans, true if rule could match eol. */
00820 static yyconst flex_int32_t yy_rule_can_match_eol[108] =
00821     {   0,
00822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00823     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00824     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00825     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
00826     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 
00827     0, 0, 0, 0, 0, 1, 0, 0,     };
00828 
00829 static yy_state_type yy_last_accepting_state;
00830 static char *yy_last_accepting_cpos;
00831 
00832 extern int llvmAsm_flex_debug;
00833 int llvmAsm_flex_debug = 0;
00834 
00835 /* The intent behind this definition is that it'll catch
00836  * any uses of REJECT which flex missed.
00837  */
00838 #define REJECT reject_used_but_not_detected
00839 #define yymore() yymore_used_but_not_detected
00840 #define YY_MORE_ADJ 0
00841 #define YY_RESTORE_YY_MORE_OFFSET
00842 char *llvmAsmtext;
00843 #line 1 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
00844 /*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
00845 //
00846 //                     The LLVM Compiler Infrastructure
00847 //
00848 // This file was developed by the LLVM research group and is distributed under
00849 // the University of Illinois Open Source License. See LICENSE.TXT for details.
00850 //
00851 //===----------------------------------------------------------------------===//
00852 //
00853 //  This file implements the flex scanner for LLVM assembly languages files.
00854 //
00855 //===----------------------------------------------------------------------===*/
00856 #line 28 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
00857 #include "ParserInternals.h"
00858 #include "llvm/Module.h"
00859 #include <list>
00860 #include "llvmAsmParser.h"
00861 #include <cctype>
00862 #include <cstdlib>
00863 
00864 void set_scan_file(FILE * F){
00865   llvmAsm_switch_to_buffer(llvmAsm_create_buffer(F,YY_BUF_SIZE ) );
00866 }
00867 void set_scan_string (const char * str) {
00868   llvmAsm_scan_string (str);
00869 }
00870 
00871 #define RET_TOK(type, Enum, sym) \
00872   llvmAsmlval.type = Instruction::Enum; return sym
00873 
00874 namespace llvm {
00875 
00876 // TODO: All of the static identifiers are figured out by the lexer,
00877 // these should be hashed to reduce the lexer size
00878 
00879 
00880 // atoull - Convert an ascii string of decimal digits into the unsigned long
00881 // long representation... this does not have to do input error checking,
00882 // because we know that the input will be matched by a suitable regex...
00883 //
00884 static uint64_t atoull(const char *Buffer) {
00885   uint64_t Result = 0;
00886   for (; *Buffer; Buffer++) {
00887     uint64_t OldRes = Result;
00888     Result *= 10;
00889     Result += *Buffer-'0';
00890     if (Result < OldRes)   // Uh, oh, overflow detected!!!
00891       ThrowException("constant bigger than 64 bits detected!");
00892   }
00893   return Result;
00894 }
00895 
00896 static uint64_t HexIntToVal(const char *Buffer) {
00897   uint64_t Result = 0;
00898   for (; *Buffer; ++Buffer) {
00899     uint64_t OldRes = Result;
00900     Result *= 16;
00901     char C = *Buffer;
00902     if (C >= '0' && C <= '9')
00903       Result += C-'0';
00904     else if (C >= 'A' && C <= 'F')
00905       Result += C-'A'+10;
00906     else if (C >= 'a' && C <= 'f')
00907       Result += C-'a'+10;
00908 
00909     if (Result < OldRes)   // Uh, oh, overflow detected!!!
00910       ThrowException("constant bigger than 64 bits detected!");
00911   }
00912   return Result;
00913 }
00914 
00915 
00916 // HexToFP - Convert the ascii string in hexidecimal format to the floating
00917 // point representation of it.
00918 //
00919 static double HexToFP(const char *Buffer) {
00920   // Behave nicely in the face of C TBAA rules... see:
00921   // http://www.nullstone.com/htmls/category/aliastyp.htm
00922   union {
00923     uint64_t UI;
00924     double FP;
00925   } UIntToFP;
00926   UIntToFP.UI = HexIntToVal(Buffer);
00927 
00928   assert(sizeof(double) == sizeof(uint64_t) &&
00929          "Data sizes incompatible on this target!");
00930   return UIntToFP.FP;   // Cast Hex constant to double
00931 }
00932 
00933 
00934 // UnEscapeLexed - Run through the specified buffer and change \xx codes to the
00935 // appropriate character.  If AllowNull is set to false, a \00 value will cause
00936 // an exception to be thrown.
00937 //
00938 // If AllowNull is set to true, the return value of the function points to the
00939 // last character of the string in memory.
00940 //
00941 char *UnEscapeLexed(char *Buffer, bool AllowNull) {
00942   char *BOut = Buffer;
00943   for (char *BIn = Buffer; *BIn; ) {
00944     if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
00945       char Tmp = BIn[3]; BIn[3] = 0;     // Terminate string
00946       *BOut = (char)strtol(BIn+1, 0, 16);  // Convert to number
00947       if (!AllowNull && !*BOut)
00948         ThrowException("String literal cannot accept \\00 escape!");
00949 
00950       BIn[3] = Tmp;                  // Restore character
00951       BIn += 3;                      // Skip over handled chars
00952       ++BOut;
00953     } else {
00954       *BOut++ = *BIn++;
00955     }
00956   }
00957 
00958   return BOut;
00959 }
00960 
00961 } // End llvm namespace
00962 
00963 using namespace llvm;
00964 
00965 #define YY_NEVER_INTERACTIVE 1
00966 /* Comments start with a ; and go till end of line */
00967 /* Variable(Value) identifiers start with a % sign */
00968 /* Label identifiers end with a colon */
00969 /* Quoted names can contain any character except " and \ */
00970 /* [PN]Integer: match positive and negative literal integer values that
00971  * are preceeded by a '%' character.  These represent unnamed variable slots.
00972  */
00973 /* E[PN]Integer: match positive and negative literal integer values */
00974 /* FPConstant - A Floating point constant.
00975  */
00976 /* HexFPConstant - Floating point constant represented in IEEE format as a
00977  *  hexadecimal number for when exponential notation is not precise enough.
00978  */
00979 /* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
00980  * it to deal with 64 bit numbers.
00981  */
00982 #line 983 "Lexer.cpp"
00983 
00984 #define INITIAL 0
00985 
00986 #ifndef YY_NO_UNISTD_H
00987 /* Special case for "unistd.h", since it is non-ANSI. We include it way
00988  * down here because we want the user's section 1 to have been scanned first.
00989  * The user has a chance to override it with an option.
00990  */
00991 #include <unistd.h>
00992 #endif
00993 
00994 #ifndef YY_EXTRA_TYPE
00995 #define YY_EXTRA_TYPE void *
00996 #endif
00997 
00998 static int yy_init_globals (void );
00999 
01000 /* Macros after this point can all be overridden by user definitions in
01001  * section 1.
01002  */
01003 
01004 #ifndef YY_SKIP_YYWRAP
01005 #ifdef __cplusplus
01006 extern "C" int llvmAsmwrap (void );
01007 #else
01008 extern int llvmAsmwrap (void );
01009 #endif
01010 #endif
01011 
01012     static inline void yyunput (int c,char *buf_ptr  );
01013     
01014 #ifndef yytext_ptr
01015 static void yy_flex_strncpy (char *,yyconst char *,int );
01016 #endif
01017 
01018 #ifdef YY_NEED_STRLEN
01019 static int yy_flex_strlen (yyconst char * );
01020 #endif
01021 
01022 #ifndef YY_NO_INPUT
01023 
01024 #ifdef __cplusplus
01025 static int yyinput (void );
01026 #else
01027 static int input (void );
01028 #endif
01029 
01030 #endif
01031 
01032 /* Amount of stuff to slurp up with each read. */
01033 #ifndef YY_READ_BUF_SIZE
01034 #define YY_READ_BUF_SIZE 8192
01035 #endif
01036 
01037 /* Copy whatever the last rule matched to the standard output. */
01038 #ifndef ECHO
01039 /* This used to be an fputs(), but since the string might contain NUL's,
01040  * we now use fwrite().
01041  */
01042 #define ECHO (void) fwrite( llvmAsmtext, llvmAsmleng, 1, llvmAsmout )
01043 #endif
01044 
01045 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01046  * is returned in "result".
01047  */
01048 #ifndef YY_INPUT
01049 #define YY_INPUT(buf,result,max_size) \
01050   if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
01051     { \
01052     int c = '*'; \
01053     size_t n; \
01054     for ( n = 0; n < max_size && \
01055            (c = getc( llvmAsmin )) != EOF && c != '\n'; ++n ) \
01056       buf[n] = (char) c; \
01057     if ( c == '\n' ) \
01058       buf[n++] = (char) c; \
01059     if ( c == EOF && ferror( llvmAsmin ) ) \
01060       YY_FATAL_ERROR( "input in flex scanner failed" ); \
01061     result = n; \
01062     } \
01063   else \
01064     { \
01065     errno=0; \
01066     while ( (result = fread(buf, 1, max_size, llvmAsmin))==0 && ferror(llvmAsmin)) \
01067       { \
01068       if( errno != EINTR) \
01069         { \
01070         YY_FATAL_ERROR( "input in flex scanner failed" ); \
01071         break; \
01072         } \
01073       errno=0; \
01074       clearerr(llvmAsmin); \
01075       } \
01076     }\
01077 \
01078 
01079 #endif
01080 
01081 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01082  * we don't want an extra ';' after the "return" because that will cause
01083  * some compilers to complain about unreachable statements.
01084  */
01085 #ifndef yyterminate
01086 #define yyterminate() return YY_NULL
01087 #endif
01088 
01089 /* Number of entries by which start-condition stack grows. */
01090 #ifndef YY_START_STACK_INCR
01091 #define YY_START_STACK_INCR 25
01092 #endif
01093 
01094 /* Report a fatal error. */
01095 #ifndef YY_FATAL_ERROR
01096 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
01097 #endif
01098 
01099 /* end tables serialization structures and prototypes */
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 
01107 extern int llvmAsmlex (void);
01108 
01109 #define YY_DECL int llvmAsmlex (void)
01110 #endif /* !YY_DECL */
01111 
01112 /* Code executed at the beginning of each rule, after llvmAsmtext and llvmAsmleng
01113  * have been set up.
01114  */
01115 #ifndef YY_USER_ACTION
01116 #define YY_USER_ACTION
01117 #endif
01118 
01119 /* Code executed at the end of each rule. */
01120 #ifndef YY_BREAK
01121 #define YY_BREAK break;
01122 #endif
01123 
01124 #define YY_RULE_SETUP \
01125   YY_USER_ACTION
01126 
01127 /** The main scanner function which does all the work.
01128  */
01129 YY_DECL
01130 {
01131   register yy_state_type yy_current_state;
01132   register char *yy_cp, *yy_bp;
01133   register int yy_act;
01134     
01135 #line 179 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01136 
01137 
01138 #line 1139 "Lexer.cpp"
01139 
01140   if ( !(yy_init) )
01141     {
01142     (yy_init) = 1;
01143 
01144 #ifdef YY_USER_INIT
01145     YY_USER_INIT;
01146 #endif
01147 
01148     if ( ! (yy_start) )
01149       (yy_start) = 1; /* first start state */
01150 
01151     if ( ! llvmAsmin )
01152       llvmAsmin = stdin;
01153 
01154     if ( ! llvmAsmout )
01155       llvmAsmout = stdout;
01156 
01157     if ( ! YY_CURRENT_BUFFER ) {
01158       llvmAsmensure_buffer_stack ();
01159       YY_CURRENT_BUFFER_LVALUE =
01160         llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
01161     }
01162 
01163     llvmAsm_load_buffer_state( );
01164     }
01165 
01166   while ( 1 )   /* loops until end-of-file is reached */
01167     {
01168     yy_cp = (yy_c_buf_p);
01169 
01170     /* Support of llvmAsmtext. */
01171     *yy_cp = (yy_hold_char);
01172 
01173     /* yy_bp points to the position in yy_ch_buf of the start of
01174      * the current run.
01175      */
01176     yy_bp = yy_cp;
01177 
01178     yy_current_state = (yy_start);
01179 yy_match:
01180     do
01181       {
01182       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01183       if ( yy_accept[yy_current_state] )
01184         {
01185         (yy_last_accepting_state) = yy_current_state;
01186         (yy_last_accepting_cpos) = yy_cp;
01187         }
01188       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01189         {
01190         yy_current_state = (int) yy_def[yy_current_state];
01191         if ( yy_current_state >= 454 )
01192           yy_c = yy_meta[(unsigned int) yy_c];
01193         }
01194       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01195       ++yy_cp;
01196       }
01197     while ( yy_current_state != 453 );
01198     yy_cp = (yy_last_accepting_cpos);
01199     yy_current_state = (yy_last_accepting_state);
01200 
01201 yy_find_action:
01202     yy_act = yy_accept[yy_current_state];
01203 
01204     YY_DO_BEFORE_ACTION;
01205 
01206     if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
01207       {
01208       int yyl;
01209       for ( yyl = 0; yyl < llvmAsmleng; ++yyl )
01210         if ( llvmAsmtext[yyl] == '\n' )
01211              
01212     llvmAsmlineno++;
01213 ;
01214       }
01215 
01216 do_action:  /* This label is used only to access EOF actions. */
01217 
01218     switch ( yy_act )
01219   { /* beginning of action switch */
01220       case 0: /* must back up */
01221       /* undo the effects of YY_DO_BEFORE_ACTION */
01222       *yy_cp = (yy_hold_char);
01223       yy_cp = (yy_last_accepting_cpos);
01224       yy_current_state = (yy_last_accepting_state);
01225       goto yy_find_action;
01226 
01227 case 1:
01228 YY_RULE_SETUP
01229 #line 181 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01230 { /* Ignore comments for now */ }
01231   YY_BREAK
01232 case 2:
01233 YY_RULE_SETUP
01234 #line 183 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01235 { return BEGINTOK; }
01236   YY_BREAK
01237 case 3:
01238 YY_RULE_SETUP
01239 #line 184 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01240 { return ENDTOK; }
01241   YY_BREAK
01242 case 4:
01243 YY_RULE_SETUP
01244 #line 185 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01245 { return TRUETOK;  }
01246   YY_BREAK
01247 case 5:
01248 YY_RULE_SETUP
01249 #line 186 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01250 { return FALSETOK; }
01251   YY_BREAK
01252 case 6:
01253 YY_RULE_SETUP
01254 #line 187 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01255 { return DECLARE; }
01256   YY_BREAK
01257 case 7:
01258 YY_RULE_SETUP
01259 #line 188 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01260 { return GLOBAL; }
01261   YY_BREAK
01262 case 8:
01263 YY_RULE_SETUP
01264 #line 189 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01265 { return CONSTANT; }
01266   YY_BREAK
01267 case 9:
01268 YY_RULE_SETUP
01269 #line 190 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01270 { return INTERNAL; }
01271   YY_BREAK
01272 case 10:
01273 YY_RULE_SETUP
01274 #line 191 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01275 { return LINKONCE; }
01276   YY_BREAK
01277 case 11:
01278 YY_RULE_SETUP
01279 #line 192 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01280 { return WEAK; }
01281   YY_BREAK
01282 case 12:
01283 YY_RULE_SETUP
01284 #line 193 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01285 { return APPENDING; }
01286   YY_BREAK
01287 case 13:
01288 YY_RULE_SETUP
01289 #line 194 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01290 { return EXTERNAL; }    /* Deprecated, turn into external */
01291   YY_BREAK
01292 case 14:
01293 YY_RULE_SETUP
01294 #line 195 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01295 { return EXTERNAL; }
01296   YY_BREAK
01297 case 15:
01298 YY_RULE_SETUP
01299 #line 196 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01300 { return IMPLEMENTATION; }
01301   YY_BREAK
01302 case 16:
01303 YY_RULE_SETUP
01304 #line 197 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01305 { return ZEROINITIALIZER; }
01306   YY_BREAK
01307 case 17:
01308 YY_RULE_SETUP
01309 #line 198 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01310 { return DOTDOTDOT; }
01311   YY_BREAK
01312 case 18:
01313 YY_RULE_SETUP
01314 #line 199 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01315 { return UNDEF; }
01316   YY_BREAK
01317 case 19:
01318 YY_RULE_SETUP
01319 #line 200 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01320 { return NULL_TOK; }
01321   YY_BREAK
01322 case 20:
01323 YY_RULE_SETUP
01324 #line 201 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01325 { return TO; }
01326   YY_BREAK
01327 case 21:
01328 YY_RULE_SETUP
01329 #line 202 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01330 { RET_TOK(TermOpVal, Unwind, UNWIND); }
01331   YY_BREAK
01332 case 22:
01333 YY_RULE_SETUP
01334 #line 203 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01335 { return NOT; }  /* Deprecated, turned into XOR */
01336   YY_BREAK
01337 case 23:
01338 YY_RULE_SETUP
01339 #line 204 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01340 { return TAIL; }
01341   YY_BREAK
01342 case 24:
01343 YY_RULE_SETUP
01344 #line 205 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01345 { return TARGET; }
01346   YY_BREAK
01347 case 25:
01348 YY_RULE_SETUP
01349 #line 206 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01350 { return TRIPLE; }
01351   YY_BREAK
01352 case 26:
01353 YY_RULE_SETUP
01354 #line 207 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01355 { return DEPLIBS; }
01356   YY_BREAK
01357 case 27:
01358 YY_RULE_SETUP
01359 #line 208 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01360 { return ENDIAN; }
01361   YY_BREAK
01362 case 28:
01363 YY_RULE_SETUP
01364 #line 209 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01365 { return POINTERSIZE; }
01366   YY_BREAK
01367 case 29:
01368 YY_RULE_SETUP
01369 #line 210 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01370 { return LITTLE; }
01371   YY_BREAK
01372 case 30:
01373 YY_RULE_SETUP
01374 #line 211 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01375 { return BIG; }
01376   YY_BREAK
01377 case 31:
01378 YY_RULE_SETUP
01379 #line 212 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01380 { return VOLATILE; }
01381   YY_BREAK
01382 case 32:
01383 YY_RULE_SETUP
01384 #line 213 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01385 { return ALIGN;  }
01386   YY_BREAK
01387 case 33:
01388 YY_RULE_SETUP
01389 #line 214 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01390 { return SECTION; }
01391   YY_BREAK
01392 case 34:
01393 YY_RULE_SETUP
01394 #line 215 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01395 { return MODULE; }
01396   YY_BREAK
01397 case 35:
01398 YY_RULE_SETUP
01399 #line 216 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01400 { return ASM_TOK; }
01401   YY_BREAK
01402 case 36:
01403 YY_RULE_SETUP
01404 #line 217 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01405 { return SIDEEFFECT; }
01406   YY_BREAK
01407 case 37:
01408 YY_RULE_SETUP
01409 #line 219 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01410 { return CC_TOK; }
01411   YY_BREAK
01412 case 38:
01413 YY_RULE_SETUP
01414 #line 220 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01415 { return CCC_TOK; }
01416   YY_BREAK
01417 case 39:
01418 YY_RULE_SETUP
01419 #line 221 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01420 { return FASTCC_TOK; }
01421   YY_BREAK
01422 case 40:
01423 YY_RULE_SETUP
01424 #line 222 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01425 { return COLDCC_TOK; }
01426   YY_BREAK
01427 case 41:
01428 YY_RULE_SETUP
01429 #line 224 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01430 { llvmAsmlval.PrimType = Type::VoidTy  ; return VOID;   }
01431   YY_BREAK
01432 case 42:
01433 YY_RULE_SETUP
01434 #line 225 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01435 { llvmAsmlval.PrimType = Type::BoolTy  ; return BOOL;   }
01436   YY_BREAK
01437 case 43:
01438 YY_RULE_SETUP
01439 #line 226 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01440 { llvmAsmlval.PrimType = Type::SByteTy ; return SBYTE;  }
01441   YY_BREAK
01442 case 44:
01443 YY_RULE_SETUP
01444 #line 227 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01445 { llvmAsmlval.PrimType = Type::UByteTy ; return UBYTE;  }
01446   YY_BREAK
01447 case 45:
01448 YY_RULE_SETUP
01449 #line 228 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01450 { llvmAsmlval.PrimType = Type::ShortTy ; return SHORT;  }
01451   YY_BREAK
01452 case 46:
01453 YY_RULE_SETUP
01454 #line 229 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01455 { llvmAsmlval.PrimType = Type::UShortTy; return USHORT; }
01456   YY_BREAK
01457 case 47:
01458 YY_RULE_SETUP
01459 #line 230 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01460 { llvmAsmlval.PrimType = Type::IntTy   ; return INT;    }
01461   YY_BREAK
01462 case 48:
01463 YY_RULE_SETUP
01464 #line 231 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01465 { llvmAsmlval.PrimType = Type::UIntTy  ; return UINT;   }
01466   YY_BREAK
01467 case 49:
01468 YY_RULE_SETUP
01469 #line 232 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01470 { llvmAsmlval.PrimType = Type::LongTy  ; return LONG;   }
01471   YY_BREAK
01472 case 50:
01473 YY_RULE_SETUP
01474 #line 233 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01475 { llvmAsmlval.PrimType = Type::ULongTy ; return ULONG;  }
01476   YY_BREAK
01477 case 51:
01478 YY_RULE_SETUP
01479 #line 234 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01480 { llvmAsmlval.PrimType = Type::FloatTy ; return FLOAT;  }
01481   YY_BREAK
01482 case 52:
01483 YY_RULE_SETUP
01484 #line 235 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01485 { llvmAsmlval.PrimType = Type::DoubleTy; return DOUBLE; }
01486   YY_BREAK
01487 case 53:
01488 YY_RULE_SETUP
01489 #line 236 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01490 { llvmAsmlval.PrimType = Type::LabelTy ; return LABEL;  }
01491   YY_BREAK
01492 case 54:
01493 YY_RULE_SETUP
01494 #line 237 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01495 { return TYPE;   }
01496   YY_BREAK
01497 case 55:
01498 YY_RULE_SETUP
01499 #line 238 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01500 { return OPAQUE; }
01501   YY_BREAK
01502 case 56:
01503 YY_RULE_SETUP
01504 #line 240 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01505 { RET_TOK(BinaryOpVal, Add, ADD); }
01506   YY_BREAK
01507 case 57:
01508 YY_RULE_SETUP
01509 #line 241 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01510 { RET_TOK(BinaryOpVal, Sub, SUB); }
01511   YY_BREAK
01512 case 58:
01513 YY_RULE_SETUP
01514 #line 242 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01515 { RET_TOK(BinaryOpVal, Mul, MUL); }
01516   YY_BREAK
01517 case 59:
01518 YY_RULE_SETUP
01519 #line 243 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01520 { RET_TOK(BinaryOpVal, Div, DIV); }
01521   YY_BREAK
01522 case 60:
01523 YY_RULE_SETUP
01524 #line 244 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01525 { RET_TOK(BinaryOpVal, Rem, REM); }
01526   YY_BREAK
01527 case 61:
01528 YY_RULE_SETUP
01529 #line 245 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01530 { RET_TOK(BinaryOpVal, And, AND); }
01531   YY_BREAK
01532 case 62:
01533 YY_RULE_SETUP
01534 #line 246 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01535 { RET_TOK(BinaryOpVal, Or , OR ); }
01536   YY_BREAK
01537 case 63:
01538 YY_RULE_SETUP
01539 #line 247 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01540 { RET_TOK(BinaryOpVal, Xor, XOR); }
01541   YY_BREAK
01542 case 64:
01543 YY_RULE_SETUP
01544 #line 248 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01545 { RET_TOK(BinaryOpVal, SetNE, SETNE); }
01546   YY_BREAK
01547 case 65:
01548 YY_RULE_SETUP
01549 #line 249 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01550 { RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
01551   YY_BREAK
01552 case 66:
01553 YY_RULE_SETUP
01554 #line 250 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01555 { RET_TOK(BinaryOpVal, SetLT, SETLT); }
01556   YY_BREAK
01557 case 67:
01558 YY_RULE_SETUP
01559 #line 251 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01560 { RET_TOK(BinaryOpVal, SetGT, SETGT); }
01561   YY_BREAK
01562 case 68:
01563 YY_RULE_SETUP
01564 #line 252 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01565 { RET_TOK(BinaryOpVal, SetLE, SETLE); }
01566   YY_BREAK
01567 case 69:
01568 YY_RULE_SETUP
01569 #line 253 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01570 { RET_TOK(BinaryOpVal, SetGE, SETGE); }
01571   YY_BREAK
01572 case 70:
01573 YY_RULE_SETUP
01574 #line 255 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01575 { RET_TOK(OtherOpVal, PHI, PHI_TOK); }
01576   YY_BREAK
01577 case 71:
01578 YY_RULE_SETUP
01579 #line 256 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01580 { RET_TOK(OtherOpVal, Call, CALL); }
01581   YY_BREAK
01582 case 72:
01583 YY_RULE_SETUP
01584 #line 257 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01585 { RET_TOK(OtherOpVal, Cast, CAST); }
01586   YY_BREAK
01587 case 73:
01588 YY_RULE_SETUP
01589 #line 258 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01590 { RET_TOK(OtherOpVal, Select, SELECT); }
01591   YY_BREAK
01592 case 74:
01593 YY_RULE_SETUP
01594 #line 259 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01595 { RET_TOK(OtherOpVal, Shl, SHL); }
01596   YY_BREAK
01597 case 75:
01598 YY_RULE_SETUP
01599 #line 260 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01600 { RET_TOK(OtherOpVal, Shr, SHR); }
01601   YY_BREAK
01602 case 76:
01603 YY_RULE_SETUP
01604 #line 261 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01605 { return VANEXT_old; }
01606   YY_BREAK
01607 case 77:
01608 YY_RULE_SETUP
01609 #line 262 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01610 { return VAARG_old; }
01611   YY_BREAK
01612 case 78:
01613 YY_RULE_SETUP
01614 #line 263 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01615 { RET_TOK(OtherOpVal, VAArg , VAARG); }
01616   YY_BREAK
01617 case 79:
01618 YY_RULE_SETUP
01619 #line 264 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01620 { RET_TOK(TermOpVal, Ret, RET); }
01621   YY_BREAK
01622 case 80:
01623 YY_RULE_SETUP
01624 #line 265 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01625 { RET_TOK(TermOpVal, Br, BR); }
01626   YY_BREAK
01627 case 81:
01628 YY_RULE_SETUP
01629 #line 266 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01630 { RET_TOK(TermOpVal, Switch, SWITCH); }
01631   YY_BREAK
01632 case 82:
01633 YY_RULE_SETUP
01634 #line 267 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01635 { RET_TOK(TermOpVal, Invoke, INVOKE); }
01636   YY_BREAK
01637 case 83:
01638 YY_RULE_SETUP
01639 #line 268 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01640 { RET_TOK(TermOpVal, Unwind, UNWIND); }
01641   YY_BREAK
01642 case 84:
01643 YY_RULE_SETUP
01644 #line 269 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01645 { RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
01646   YY_BREAK
01647 case 85:
01648 YY_RULE_SETUP
01649 #line 271 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01650 { RET_TOK(MemOpVal, Malloc, MALLOC); }
01651   YY_BREAK
01652 case 86:
01653 YY_RULE_SETUP
01654 #line 272 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01655 { RET_TOK(MemOpVal, Alloca, ALLOCA); }
01656   YY_BREAK
01657 case 87:
01658 YY_RULE_SETUP
01659 #line 273 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01660 { RET_TOK(MemOpVal, Free, FREE); }
01661   YY_BREAK
01662 case 88:
01663 YY_RULE_SETUP
01664 #line 274 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01665 { RET_TOK(MemOpVal, Load, LOAD); }
01666   YY_BREAK
01667 case 89:
01668 YY_RULE_SETUP
01669 #line 275 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01670 { RET_TOK(MemOpVal, Store, STORE); }
01671   YY_BREAK
01672 case 90:
01673 YY_RULE_SETUP
01674 #line 276 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01675 { RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
01676   YY_BREAK
01677 case 91:
01678 YY_RULE_SETUP
01679 #line 278 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01680 { RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
01681   YY_BREAK
01682 case 92:
01683 YY_RULE_SETUP
01684 #line 279 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01685 { RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
01686   YY_BREAK
01687 case 93:
01688 YY_RULE_SETUP
01689 #line 280 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01690 { RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
01691   YY_BREAK
01692 case 94:
01693 YY_RULE_SETUP
01694 #line 283 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01695 {
01696                   UnEscapeLexed(llvmAsmtext+1);
01697                   llvmAsmlval.StrVal = strdup(llvmAsmtext+1);             // Skip %
01698                   return VAR_ID;
01699                 }
01700   YY_BREAK
01701 case 95:
01702 YY_RULE_SETUP
01703 #line 288 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01704 {
01705                   llvmAsmtext[strlen(llvmAsmtext)-1] = 0;  // nuke colon
01706                   UnEscapeLexed(llvmAsmtext);
01707                   llvmAsmlval.StrVal = strdup(llvmAsmtext);
01708                   return LABELSTR;
01709                 }
01710   YY_BREAK
01711 case 96:
01712 /* rule 96 can match eol */
01713 YY_RULE_SETUP
01714 #line 294 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01715 {
01716                   llvmAsmtext[strlen(llvmAsmtext)-2] = 0;  // nuke colon, end quote
01717                   UnEscapeLexed(llvmAsmtext+1);
01718                   llvmAsmlval.StrVal = strdup(llvmAsmtext+1);
01719                   return LABELSTR;
01720                 }
01721   YY_BREAK
01722 case 97:
01723 /* rule 97 can match eol */
01724 YY_RULE_SETUP
01725 #line 301 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01726 { // Note that we cannot unescape a string constant here!  The
01727                    // string constant might contain a \00 which would not be
01728                    // understood by the string stuff.  It is valid to make a
01729                    // [sbyte] c"Hello World\00" constant, for example.
01730                    //
01731                    llvmAsmtext[strlen(llvmAsmtext)-1] = 0;           // nuke end quote
01732                    llvmAsmlval.StrVal = strdup(llvmAsmtext+1);  // Nuke start quote
01733                    return STRINGCONSTANT;
01734                  }
01735   YY_BREAK
01736 case 98:
01737 YY_RULE_SETUP
01738 #line 312 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01739 { llvmAsmlval.UInt64Val = atoull(llvmAsmtext); return EUINT64VAL; }
01740   YY_BREAK
01741 case 99:
01742 YY_RULE_SETUP
01743 #line 313 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01744 {
01745                   uint64_t Val = atoull(llvmAsmtext+1);
01746                   // +1:  we have bigger negative range
01747                   if (Val > (uint64_t)INT64_MAX+1)
01748                     ThrowException("Constant too large for signed 64 bits!");
01749                   llvmAsmlval.SInt64Val = -Val;
01750                   return ESINT64VAL;
01751                 }
01752   YY_BREAK
01753 case 100:
01754 YY_RULE_SETUP
01755 #line 321 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01756 {
01757                    llvmAsmlval.UInt64Val = HexIntToVal(llvmAsmtext+3);
01758                    return llvmAsmtext[0] == 's' ? ESINT64VAL : EUINT64VAL;
01759                  }
01760   YY_BREAK
01761 case 101:
01762 YY_RULE_SETUP
01763 #line 326 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01764 {
01765                   uint64_t Val = atoull(llvmAsmtext+1);
01766                   if ((unsigned)Val != Val)
01767                     ThrowException("Invalid value number (too large)!");
01768                   llvmAsmlval.UIntVal = unsigned(Val);
01769                   return UINTVAL;
01770                 }
01771   YY_BREAK
01772 case 102:
01773 YY_RULE_SETUP
01774 #line 333 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01775 {
01776                   uint64_t Val = atoull(llvmAsmtext+2);
01777                   // +1:  we have bigger negative range
01778                   if (Val > (uint64_t)INT32_MAX+1)
01779                     ThrowException("Constant too large for signed 32 bits!");
01780                   llvmAsmlval.SIntVal = (int)-Val;
01781                   return SINTVAL;
01782                 }
01783   YY_BREAK
01784 case 103:
01785 YY_RULE_SETUP
01786 #line 342 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01787 { llvmAsmlval.FPVal = atof(llvmAsmtext); return FPVAL; }
01788   YY_BREAK
01789 case 104:
01790 YY_RULE_SETUP
01791 #line 343 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01792 { llvmAsmlval.FPVal = HexToFP(llvmAsmtext); return FPVAL; }
01793   YY_BREAK
01794 case YY_STATE_EOF(INITIAL):
01795 #line 345 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01796 {
01797                   /* Make sure to free the internal buffers for flex when we are
01798                    * done reading our input!
01799                    */
01800                   llvmAsm_delete_buffer(YY_CURRENT_BUFFER);
01801                   return EOF;
01802                 }
01803   YY_BREAK
01804 case 105:
01805 /* rule 105 can match eol */
01806 YY_RULE_SETUP
01807 #line 353 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01808 { /* Ignore whitespace */ }
01809   YY_BREAK
01810 case 106:
01811 YY_RULE_SETUP
01812 #line 354 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01813 { return llvmAsmtext[0]; }
01814   YY_BREAK
01815 case 107:
01816 YY_RULE_SETUP
01817 #line 356 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
01818 YY_FATAL_ERROR( "flex scanner jammed" );
01819   YY_BREAK
01820 #line 1821 "Lexer.cpp"
01821 
01822   case YY_END_OF_BUFFER:
01823     {
01824     /* Amount of text matched not including the EOB char. */
01825     int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
01826 
01827     /* Undo the effects of YY_DO_BEFORE_ACTION. */
01828     *yy_cp = (yy_hold_char);
01829     YY_RESTORE_YY_MORE_OFFSET
01830 
01831     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01832       {
01833       /* We're scanning a new file or input source.  It's
01834        * possible that this happened because the user
01835        * just pointed llvmAsmin at a new source and called
01836        * llvmAsmlex().  If so, then we have to assure
01837        * consistency between YY_CURRENT_BUFFER and our
01838        * globals.  Here is the right place to do so, because
01839        * this is the first action (other than possibly a
01840        * back-up) that will match for the new input source.
01841        */
01842       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01843       YY_CURRENT_BUFFER_LVALUE->yy_input_file = llvmAsmin;
01844       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01845       }
01846 
01847     /* Note that here we test for yy_c_buf_p "<=" to the position
01848      * of the first EOB in the buffer, since yy_c_buf_p will
01849      * already have been incremented past the NUL character
01850      * (since all states make transitions on EOB to the
01851      * end-of-buffer state).  Contrast this with the test
01852      * in input().
01853      */
01854     if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
01855       { /* This was really a NUL. */
01856       yy_state_type yy_next_state;
01857 
01858       (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
01859 
01860       yy_current_state = yy_get_previous_state(  );
01861 
01862       /* Okay, we're now positioned to make the NUL
01863        * transition.  We couldn't have
01864        * yy_get_previous_state() go ahead and do it
01865        * for us because it doesn't know how to deal
01866        * with the possibility of jamming (and we don't
01867        * want to build jamming into it because then it
01868        * will run more slowly).
01869        */
01870 
01871       yy_next_state = yy_try_NUL_trans( yy_current_state );
01872 
01873       yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01874 
01875       if ( yy_next_state )
01876         {
01877         /* Consume the NUL. */
01878         yy_cp = ++(yy_c_buf_p);
01879         yy_current_state = yy_next_state;
01880         goto yy_match;
01881         }
01882 
01883       else
01884         {
01885         yy_cp = (yy_last_accepting_cpos);
01886         yy_current_state = (yy_last_accepting_state);
01887         goto yy_find_action;
01888         }
01889       }
01890 
01891     else switch ( yy_get_next_buffer(  ) )
01892       {
01893       case EOB_ACT_END_OF_FILE:
01894         {
01895         (yy_did_buffer_switch_on_eof) = 0;
01896 
01897         if ( llvmAsmwrap( ) )
01898           {
01899           /* Note: because we've taken care in
01900            * yy_get_next_buffer() to have set up
01901            * llvmAsmtext, we can now set up
01902            * yy_c_buf_p so that if some total
01903            * hoser (like flex itself) wants to
01904            * call the scanner after we return the
01905            * YY_NULL, it'll still work - another
01906            * YY_NULL will get returned.
01907            */
01908           (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
01909 
01910           yy_act = YY_STATE_EOF(YY_START);
01911           goto do_action;
01912           }
01913 
01914         else
01915           {
01916           if ( ! (yy_did_buffer_switch_on_eof) )
01917             YY_NEW_FILE;
01918           }
01919         break;
01920         }
01921 
01922       case EOB_ACT_CONTINUE_SCAN:
01923         (yy_c_buf_p) =
01924           (yytext_ptr) + yy_amount_of_matched_text;
01925 
01926         yy_current_state = yy_get_previous_state(  );
01927 
01928         yy_cp = (yy_c_buf_p);
01929         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01930         goto yy_match;
01931 
01932       case EOB_ACT_LAST_MATCH:
01933         (yy_c_buf_p) =
01934         &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
01935 
01936         yy_current_state = yy_get_previous_state(  );
01937 
01938         yy_cp = (yy_c_buf_p);
01939         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
01940         goto yy_find_action;
01941       }
01942     break;
01943     }
01944 
01945   default:
01946     YY_FATAL_ERROR(
01947       "fatal flex scanner internal error--no action found" );
01948   } /* end of action switch */
01949     } /* end of scanning one token */
01950 } /* end of llvmAsmlex */
01951 
01952 /* yy_get_next_buffer - try to read in a new buffer
01953  *
01954  * Returns a code representing an action:
01955  *  EOB_ACT_LAST_MATCH -
01956  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
01957  *  EOB_ACT_END_OF_FILE - end of file
01958  */
01959 static int yy_get_next_buffer (void)
01960 {
01961       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
01962   register char *source = (yytext_ptr);
01963   register int number_to_move, i;
01964   int ret_val;
01965 
01966   if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
01967     YY_FATAL_ERROR(
01968     "fatal flex scanner internal error--end of buffer missed" );
01969 
01970   if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
01971     { /* Don't try to fill the buffer, so this is an EOF. */
01972     if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
01973       {
01974       /* We matched a single character, the EOB, so
01975        * treat this as a final EOF.
01976        */
01977       return EOB_ACT_END_OF_FILE;
01978       }
01979 
01980     else
01981       {
01982       /* We matched some text prior to the EOB, first
01983        * process it.
01984        */
01985       return EOB_ACT_LAST_MATCH;
01986       }
01987     }
01988 
01989   /* Try to read more data. */
01990 
01991   /* First move last chars to start of buffer. */
01992   number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
01993 
01994   for ( i = 0; i < number_to_move; ++i )
01995     *(dest++) = *(source++);
01996 
01997   if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01998     /* don't do the read, it's not guaranteed to return an EOF,
01999      * just force an EOF
02000      */
02001     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
02002 
02003   else
02004     {
02005       int num_to_read =
02006       YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02007 
02008     while ( num_to_read <= 0 )
02009       { /* Not enough room in the buffer - grow it. */
02010 
02011       /* just a shorter name for the current buffer */
02012       YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02013 
02014       int yy_c_buf_p_offset =
02015         (int) ((yy_c_buf_p) - b->yy_ch_buf);
02016 
02017       if ( b->yy_is_our_buffer )
02018         {
02019         int new_size = b->yy_buf_size * 2;
02020 
02021         if ( new_size <= 0 )
02022           b->yy_buf_size += b->yy_buf_size / 8;
02023         else
02024           b->yy_buf_size *= 2;
02025 
02026         b->yy_ch_buf = (char *)
02027           /* Include room in for 2 EOB chars. */
02028           llvmAsmrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
02029         }
02030       else
02031         /* Can't grow it, we don't own it. */
02032         b->yy_ch_buf = 0;
02033 
02034       if ( ! b->yy_ch_buf )
02035         YY_FATAL_ERROR(
02036         "fatal error - scanner input buffer overflow" );
02037 
02038       (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
02039 
02040       num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02041             number_to_move - 1;
02042 
02043       }
02044 
02045     if ( num_to_read > YY_READ_BUF_SIZE )
02046       num_to_read = YY_READ_BUF_SIZE;
02047 
02048     /* Read in more data. */
02049     YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02050       (yy_n_chars), num_to_read );
02051 
02052     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02053     }
02054 
02055   if ( (yy_n_chars) == 0 )
02056     {
02057     if ( number_to_move == YY_MORE_ADJ )
02058       {
02059       ret_val = EOB_ACT_END_OF_FILE;
02060       llvmAsmrestart(llvmAsmin  );
02061       }
02062 
02063     else
02064       {
02065       ret_val = EOB_ACT_LAST_MATCH;
02066       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02067         YY_BUFFER_EOF_PENDING;
02068       }
02069     }
02070 
02071   else
02072     ret_val = EOB_ACT_CONTINUE_SCAN;
02073 
02074   (yy_n_chars) += number_to_move;
02075   YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
02076   YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
02077 
02078   (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02079 
02080   return ret_val;
02081 }
02082 
02083 /* yy_get_previous_state - get the state just before the EOB char was reached */
02084 
02085     static yy_state_type yy_get_previous_state (void)
02086 {
02087   register yy_state_type yy_current_state;
02088   register char *yy_cp;
02089     
02090   yy_current_state = (yy_start);
02091 
02092   for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
02093     {
02094     register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02095     if ( yy_accept[yy_current_state] )
02096       {
02097       (yy_last_accepting_state) = yy_current_state;
02098       (yy_last_accepting_cpos) = yy_cp;
02099       }
02100     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02101       {
02102       yy_current_state = (int) yy_def[yy_current_state];
02103       if ( yy_current_state >= 454 )
02104         yy_c = yy_meta[(unsigned int) yy_c];
02105       }
02106     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02107     }
02108 
02109   return yy_current_state;
02110 }
02111 
02112 /* yy_try_NUL_trans - try to make a transition on the NUL character
02113  *
02114  * synopsis
02115  *  next_state = yy_try_NUL_trans( current_state );
02116  */
02117     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
02118 {
02119   register int yy_is_jam;
02120       register char *yy_cp = (yy_c_buf_p);
02121 
02122   register YY_CHAR yy_c = 1;
02123   if ( yy_accept[yy_current_state] )
02124     {
02125     (yy_last_accepting_state) = yy_current_state;
02126     (yy_last_accepting_cpos) = yy_cp;
02127     }
02128   while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02129     {
02130     yy_current_state = (int) yy_def[yy_current_state];
02131     if ( yy_current_state >= 454 )
02132       yy_c = yy_meta[(unsigned int) yy_c];
02133     }
02134   yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02135   yy_is_jam = (yy_current_state == 453);
02136 
02137   return yy_is_jam ? 0 : yy_current_state;
02138 }
02139 
02140     static inline void yyunput (int c, register char * yy_bp )
02141 {
02142   register char *yy_cp;
02143     
02144     yy_cp = (yy_c_buf_p);
02145 
02146   /* undo effects of setting up llvmAsmtext */
02147   *yy_cp = (yy_hold_char);
02148 
02149   if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02150     { /* need to shift things up to make room */
02151     /* +2 for EOB chars. */
02152     register int number_to_move = (yy_n_chars) + 2;
02153     register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02154           YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02155     register char *source =
02156         &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02157 
02158     while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02159       *--dest = *--source;
02160 
02161     yy_cp += (int) (dest - source);
02162     yy_bp += (int) (dest - source);
02163     YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02164       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02165 
02166     if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02167       YY_FATAL_ERROR( "flex scanner push-back overflow" );
02168     }
02169 
02170   *--yy_cp = (char) c;
02171 
02172     if ( c == '\n' ){
02173         --llvmAsmlineno;
02174     }
02175 
02176   (yytext_ptr) = yy_bp;
02177   (yy_hold_char) = *yy_cp;
02178   (yy_c_buf_p) = yy_cp;
02179 }
02180 
02181 #ifndef YY_NO_INPUT
02182 #ifdef __cplusplus
02183     static int yyinput (void)
02184 #else
02185     static int input  (void)
02186 #endif
02187 
02188 {
02189   int c;
02190     
02191   *(yy_c_buf_p) = (yy_hold_char);
02192 
02193   if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
02194     {
02195     /* yy_c_buf_p now points to the character we want to return.
02196      * If this occurs *before* the EOB characters, then it's a
02197      * valid NUL; if not, then we've hit the end of the buffer.
02198      */
02199     if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02200       /* This was really a NUL. */
02201       *(yy_c_buf_p) = '\0';
02202 
02203     else
02204       { /* need more input */
02205       int offset = (yy_c_buf_p) - (yytext_ptr);
02206       ++(yy_c_buf_p);
02207 
02208       switch ( yy_get_next_buffer(  ) )
02209         {
02210         case EOB_ACT_LAST_MATCH:
02211           /* This happens because yy_g_n_b()
02212            * sees that we've accumulated a
02213            * token and flags that we need to
02214            * try matching the token before
02215            * proceeding.  But for input(),
02216            * there's no matching to consider.
02217            * So convert the EOB_ACT_LAST_MATCH
02218            * to EOB_ACT_END_OF_FILE.
02219            */
02220 
02221           /* Reset buffer status. */
02222           llvmAsmrestart(llvmAsmin );
02223 
02224           /*FALLTHROUGH*/
02225 
02226         case EOB_ACT_END_OF_FILE:
02227           {
02228           if ( llvmAsmwrap( ) )
02229             return EOF;
02230 
02231           if ( ! (yy_did_buffer_switch_on_eof) )
02232             YY_NEW_FILE;
02233 #ifdef __cplusplus
02234           return yyinput();
02235 #else
02236           return input();
02237 #endif
02238           }
02239 
02240         case EOB_ACT_CONTINUE_SCAN:
02241           (yy_c_buf_p) = (yytext_ptr) + offset;
02242           break;
02243         }
02244       }
02245     }
02246 
02247   c = *(unsigned char *) (yy_c_buf_p);  /* cast for 8-bit char's */
02248   *(yy_c_buf_p) = '\0'; /* preserve llvmAsmtext */
02249   (yy_hold_char) = *++(yy_c_buf_p);
02250 
02251   if ( c == '\n' )
02252        
02253     llvmAsmlineno++;
02254 ;
02255 
02256   return c;
02257 }
02258 #endif  /* ifndef YY_NO_INPUT */
02259 
02260 /** Immediately switch to a different input stream.
02261  * @param input_file A readable stream.
02262  * 
02263  * @note This function does not reset the start condition to @c INITIAL .
02264  */
02265     void llvmAsmrestart  (FILE * input_file )
02266 {
02267     
02268   if ( ! YY_CURRENT_BUFFER ){
02269         llvmAsmensure_buffer_stack ();
02270     YY_CURRENT_BUFFER_LVALUE =
02271             llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
02272   }
02273 
02274   llvmAsm_init_buffer(YY_CURRENT_BUFFER,input_file );
02275   llvmAsm_load_buffer_state( );
02276 }
02277 
02278 /** Switch to a different input buffer.
02279  * @param new_buffer The new input buffer.
02280  * 
02281  */
02282     void llvmAsm_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
02283 {
02284     
02285   /* TODO. We should be able to replace this entire function body
02286    * with
02287    *    llvmAsmpop_buffer_state();
02288    *    llvmAsmpush_buffer_state(new_buffer);
02289      */
02290   llvmAsmensure_buffer_stack ();
02291   if ( YY_CURRENT_BUFFER == new_buffer )
02292     return;
02293 
02294   if ( YY_CURRENT_BUFFER )
02295     {
02296     /* Flush out information for old buffer. */
02297     *(yy_c_buf_p) = (yy_hold_char);
02298     YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02299     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02300     }
02301 
02302   YY_CURRENT_BUFFER_LVALUE = new_buffer;
02303   llvmAsm_load_buffer_state( );
02304 
02305   /* We don't actually know whether we did this switch during
02306    * EOF (llvmAsmwrap()) processing, but the only time this flag
02307    * is looked at is after llvmAsmwrap() is called, so it's safe
02308    * to go ahead and always set it.
02309    */
02310   (yy_did_buffer_switch_on_eof) = 1;
02311 }
02312 
02313 static void llvmAsm_load_buffer_state  (void)
02314 {
02315       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02316   (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02317   llvmAsmin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02318   (yy_hold_char) = *(yy_c_buf_p);
02319 }
02320 
02321 /** Allocate and initialize an input buffer state.
02322  * @param file A readable stream.
02323  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
02324  * 
02325  * @return the allocated buffer state.
02326  */
02327     YY_BUFFER_STATE llvmAsm_create_buffer  (FILE * file, int  size )
02328 {
02329   YY_BUFFER_STATE b;
02330     
02331   b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state )  );
02332   if ( ! b )
02333     YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
02334 
02335   b->yy_buf_size = size;
02336 
02337   /* yy_ch_buf has to be 2 characters longer than the size given because
02338    * we need to put in 2 end-of-buffer characters.
02339    */
02340   b->yy_ch_buf = (char *) llvmAsmalloc(b->yy_buf_size + 2  );
02341   if ( ! b->yy_ch_buf )
02342     YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
02343 
02344   b->yy_is_our_buffer = 1;
02345 
02346   llvmAsm_init_buffer(b,file );
02347 
02348   return b;
02349 }
02350 
02351 /** Destroy the buffer.
02352  * @param b a buffer created with llvmAsm_create_buffer()
02353  * 
02354  */
02355     void llvmAsm_delete_buffer (YY_BUFFER_STATE  b )
02356 {
02357     
02358   if ( ! b )
02359     return;
02360 
02361   if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02362     YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02363 
02364   if ( b->yy_is_our_buffer )
02365     llvmAsmfree((void *) b->yy_ch_buf  );
02366 
02367   llvmAsmfree((void *) b  );
02368 }
02369 
02370 /* Initializes or reinitializes a buffer.
02371  * This function is sometimes called more than once on the same buffer,
02372  * such as during a llvmAsmrestart() or at EOF.
02373  */
02374     static void llvmAsm_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
02375 
02376 {
02377   int oerrno = errno;
02378     
02379   llvmAsm_flush_buffer(b );
02380 
02381   b->yy_input_file = file;
02382   b->yy_fill_buffer = 1;
02383 
02384     /* If b is the current buffer, then llvmAsm_init_buffer was _probably_
02385      * called from llvmAsmrestart() or through yy_get_next_buffer.
02386      * In that case, we don't want to reset the lineno or column.
02387      */
02388     if (b != YY_CURRENT_BUFFER){
02389         b->yy_bs_lineno = 1;
02390         b->yy_bs_column = 0;
02391     }
02392 
02393         b->yy_is_interactive = 0;
02394     
02395   errno = oerrno;
02396 }
02397 
02398 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
02399  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
02400  * 
02401  */
02402     void llvmAsm_flush_buffer (YY_BUFFER_STATE  b )
02403 {
02404       if ( ! b )
02405     return;
02406 
02407   b->yy_n_chars = 0;
02408 
02409   /* We always need two end-of-buffer characters.  The first causes
02410    * a transition to the end-of-buffer state.  The second causes
02411    * a jam in that state.
02412    */
02413   b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02414   b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02415 
02416   b->yy_buf_pos = &b->yy_ch_buf[0];
02417 
02418   b->yy_at_bol = 1;
02419   b->yy_buffer_status = YY_BUFFER_NEW;
02420 
02421   if ( b == YY_CURRENT_BUFFER )
02422     llvmAsm_load_buffer_state( );
02423 }
02424 
02425 /** Pushes the new state onto the stack. The new state becomes
02426  *  the current state. This function will allocate the stack
02427  *  if necessary.
02428  *  @param new_buffer The new state.
02429  *  
02430  */
02431 void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer )
02432 {
02433       if (new_buffer == NULL)
02434     return;
02435 
02436   llvmAsmensure_buffer_stack();
02437 
02438   /* This block is copied from llvmAsm_switch_to_buffer. */
02439   if ( YY_CURRENT_BUFFER )
02440     {
02441     /* Flush out information for old buffer. */
02442     *(yy_c_buf_p) = (yy_hold_char);
02443     YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02444     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02445     }
02446 
02447   /* Only push if top exists. Otherwise, replace top. */
02448   if (YY_CURRENT_BUFFER)
02449     (yy_buffer_stack_top)++;
02450   YY_CURRENT_BUFFER_LVALUE = new_buffer;
02451 
02452   /* copied from llvmAsm_switch_to_buffer. */
02453   llvmAsm_load_buffer_state( );
02454   (yy_did_buffer_switch_on_eof) = 1;
02455 }
02456 
02457 /** Removes and deletes the top of the stack, if present.
02458  *  The next element becomes the new top.
02459  *  
02460  */
02461 void llvmAsmpop_buffer_state (void)
02462 {
02463       if (!YY_CURRENT_BUFFER)
02464     return;
02465 
02466   llvmAsm_delete_buffer(YY_CURRENT_BUFFER );
02467   YY_CURRENT_BUFFER_LVALUE = NULL;
02468   if ((yy_buffer_stack_top) > 0)
02469     --(yy_buffer_stack_top);
02470 
02471   if (YY_CURRENT_BUFFER) {
02472     llvmAsm_load_buffer_state( );
02473     (yy_did_buffer_switch_on_eof) = 1;
02474   }
02475 }
02476 
02477 /* Allocates the stack if it does not exist.
02478  *  Guarantees space for at least one push.
02479  */
02480 static void llvmAsmensure_buffer_stack (void)
02481 {
02482   int num_to_alloc;
02483     
02484   if (!(yy_buffer_stack)) {
02485 
02486     /* First allocation is just for 2 elements, since we don't know if this
02487      * scanner will even need a stack. We use 2 instead of 1 to avoid an
02488      * immediate realloc on the next call.
02489          */
02490     num_to_alloc = 1;
02491     (yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmalloc
02492                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02493                 );
02494     
02495     memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02496         
02497     (yy_buffer_stack_max) = num_to_alloc;
02498     (yy_buffer_stack_top) = 0;
02499     return;
02500   }
02501 
02502   if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
02503 
02504     /* Increase the buffer to prepare for a possible push. */
02505     int grow_size = 8 /* arbitrary grow size */;
02506 
02507     num_to_alloc = (yy_buffer_stack_max) + grow_size;
02508     (yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmrealloc
02509                 ((yy_buffer_stack),
02510                 num_to_alloc * sizeof(struct yy_buffer_state*)
02511                 );
02512 
02513     /* zero only the new slots.*/
02514     memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
02515     (yy_buffer_stack_max) = num_to_alloc;
02516   }
02517 }
02518 
02519 /** Setup the input buffer state to scan directly from a user-specified character buffer.
02520  * @param base the character buffer
02521  * @param size the size in bytes of the character buffer
02522  * 
02523  * @return the newly allocated buffer state object. 
02524  */
02525 YY_BUFFER_STATE llvmAsm_scan_buffer  (char * base, yy_size_t  size )
02526 {
02527   YY_BUFFER_STATE b;
02528     
02529   if ( size < 2 ||
02530        base[size-2] != YY_END_OF_BUFFER_CHAR ||
02531        base[size-1] != YY_END_OF_BUFFER_CHAR )
02532     /* They forgot to leave room for the EOB's. */
02533     return 0;
02534 
02535   b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state )  );
02536   if ( ! b )
02537     YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_buffer()" );
02538 
02539   b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
02540   b->yy_buf_pos = b->yy_ch_buf = base;
02541   b->yy_is_our_buffer = 0;
02542   b->yy_input_file = 0;
02543   b->yy_n_chars = b->yy_buf_size;
02544   b->yy_is_interactive = 0;
02545   b->yy_at_bol = 1;
02546   b->yy_fill_buffer = 0;
02547   b->yy_buffer_status = YY_BUFFER_NEW;
02548 
02549   llvmAsm_switch_to_buffer(b  );
02550 
02551   return b;
02552 }
02553 
02554 /** Setup the input buffer state to scan a string. The next call to llvmAsmlex() will
02555  * scan from a @e copy of @a str.
02556  * @param yystr a NUL-terminated string to scan
02557  * 
02558  * @return the newly allocated buffer state object.
02559  * @note If you want to scan bytes that may contain NUL values, then use
02560  *       llvmAsm_scan_bytes() instead.
02561  */
02562 YY_BUFFER_STATE llvmAsm_scan_string (yyconst char * yystr )
02563 {
02564     
02565   return llvmAsm_scan_bytes(yystr,strlen(yystr) );
02566 }
02567 
02568 /** Setup the input buffer state to scan the given bytes. The next call to llvmAsmlex() will
02569  * scan from a @e copy of @a bytes.
02570  * @param bytes the byte buffer to scan
02571  * @param len the number of bytes in the buffer pointed to by @a bytes.
02572  * 
02573  * @return the newly allocated buffer state object.
02574  */
02575 YY_BUFFER_STATE llvmAsm_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
02576 {
02577   YY_BUFFER_STATE b;
02578   char *buf;
02579   yy_size_t n;
02580   int i;
02581     
02582   /* Get memory for full buffer, including space for trailing EOB's. */
02583   n = _yybytes_len + 2;
02584   buf = (char *) llvmAsmalloc(n  );
02585   if ( ! buf )
02586     YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_bytes()" );
02587 
02588   for ( i = 0; i < _yybytes_len; ++i )
02589     buf[i] = yybytes[i];
02590 
02591   buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
02592 
02593   b = llvmAsm_scan_buffer(buf,n );
02594   if ( ! b )
02595     YY_FATAL_ERROR( "bad buffer in llvmAsm_scan_bytes()" );
02596 
02597   /* It's okay to grow etc. this buffer, and we should throw it
02598    * away when we're done.
02599    */
02600   b->yy_is_our_buffer = 1;
02601 
02602   return b;
02603 }
02604 
02605 #ifndef YY_EXIT_FAILURE
02606 #define YY_EXIT_FAILURE 2
02607 #endif
02608 
02609 static void yy_fatal_error (yyconst char* msg )
02610 {
02611       (void) fprintf( stderr, "%s\n", msg );
02612   exit( YY_EXIT_FAILURE );
02613 }
02614 
02615 /* Redefine yyless() so it works in section 3 code. */
02616 
02617 #undef yyless
02618 #define yyless(n) \
02619   do \
02620     { \
02621     /* Undo effects of setting up llvmAsmtext. */ \
02622         int yyless_macro_arg = (n); \
02623         YY_LESS_LINENO(yyless_macro_arg);\
02624     llvmAsmtext[llvmAsmleng] = (yy_hold_char); \
02625     (yy_c_buf_p) = llvmAsmtext + yyless_macro_arg; \
02626     (yy_hold_char) = *(yy_c_buf_p); \
02627     *(yy_c_buf_p) = '\0'; \
02628     llvmAsmleng = yyless_macro_arg; \
02629     } \
02630   while ( 0 )
02631 
02632 /* Accessor  methods (get/set functions) to struct members. */
02633 
02634 /** Get the current line number.
02635  * 
02636  */
02637 int llvmAsmget_lineno  (void)
02638 {
02639         
02640     return llvmAsmlineno;
02641 }
02642 
02643 /** Get the input stream.
02644  * 
02645  */
02646 FILE *llvmAsmget_in  (void)
02647 {
02648         return llvmAsmin;
02649 }
02650 
02651 /** Get the output stream.
02652  * 
02653  */
02654 FILE *llvmAsmget_out  (void)
02655 {
02656         return llvmAsmout;
02657 }
02658 
02659 /** Get the length of the current token.
02660  * 
02661  */
02662 int llvmAsmget_leng  (void)
02663 {
02664         return llvmAsmleng;
02665 }
02666 
02667 /** Get the current token.
02668  * 
02669  */
02670 
02671 char *llvmAsmget_text  (void)
02672 {
02673         return llvmAsmtext;
02674 }
02675 
02676 /** Set the current line number.
02677  * @param line_number
02678  * 
02679  */
02680 void llvmAsmset_lineno (int  line_number )
02681 {
02682     
02683     llvmAsmlineno = line_number;
02684 }
02685 
02686 /** Set the input stream. This does not discard the current
02687  * input buffer.
02688  * @param in_str A readable stream.
02689  * 
02690  * @see llvmAsm_switch_to_buffer
02691  */
02692 void llvmAsmset_in (FILE *  in_str )
02693 {
02694         llvmAsmin = in_str ;
02695 }
02696 
02697 void llvmAsmset_out (FILE *  out_str )
02698 {
02699         llvmAsmout = out_str ;
02700 }
02701 
02702 int llvmAsmget_debug  (void)
02703 {
02704         return llvmAsm_flex_debug;
02705 }
02706 
02707 void llvmAsmset_debug (int  bdebug )
02708 {
02709         llvmAsm_flex_debug = bdebug ;
02710 }
02711 
02712 static int yy_init_globals (void)
02713 {
02714         /* Initialization is the same as for the non-reentrant scanner.
02715      * This function is called from llvmAsmlex_destroy(), so don't allocate here.
02716      */
02717 
02718     /* We do not touch llvmAsmlineno unless the option is enabled. */
02719     llvmAsmlineno =  1;
02720     
02721     (yy_buffer_stack) = 0;
02722     (yy_buffer_stack_top) = 0;
02723     (yy_buffer_stack_max) = 0;
02724     (yy_c_buf_p) = (char *) 0;
02725     (yy_init) = 0;
02726     (yy_start) = 0;
02727 
02728 /* Defined in main.c */
02729 #ifdef YY_STDINIT
02730     llvmAsmin = stdin;
02731     llvmAsmout = stdout;
02732 #else
02733     llvmAsmin = (FILE *) 0;
02734     llvmAsmout = (FILE *) 0;
02735 #endif
02736 
02737     /* For future reference: Set errno on error, since we are called by
02738      * llvmAsmlex_init()
02739      */
02740     return 0;
02741 }
02742 
02743 /* llvmAsmlex_destroy is for both reentrant and non-reentrant scanners. */
02744 int llvmAsmlex_destroy  (void)
02745 {
02746     
02747     /* Pop the buffer stack, destroying each element. */
02748   while(YY_CURRENT_BUFFER){
02749     llvmAsm_delete_buffer(YY_CURRENT_BUFFER  );
02750     YY_CURRENT_BUFFER_LVALUE = NULL;
02751     llvmAsmpop_buffer_state();
02752   }
02753 
02754   /* Destroy the stack itself. */
02755   llvmAsmfree((yy_buffer_stack) );
02756   (yy_buffer_stack) = NULL;
02757 
02758     /* Reset the globals. This is important in a non-reentrant scanner so the next time
02759      * llvmAsmlex() is called, initialization will occur. */
02760     yy_init_globals( );
02761 
02762     return 0;
02763 }
02764 
02765 /*
02766  * Internal utility routines.
02767  */
02768 
02769 #ifndef yytext_ptr
02770 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
02771 {
02772   register int i;
02773   for ( i = 0; i < n; ++i )
02774     s1[i] = s2[i];
02775 }
02776 #endif
02777 
02778 #ifdef YY_NEED_STRLEN
02779 static int yy_flex_strlen (yyconst char * s )
02780 {
02781   register int n;
02782   for ( n = 0; s[n]; ++n )
02783     ;
02784 
02785   return n;
02786 }
02787 #endif
02788 
02789 void *llvmAsmalloc (yy_size_t  size )
02790 {
02791   return (void *) malloc( size );
02792 }
02793 
02794 void *llvmAsmrealloc  (void * ptr, yy_size_t  size )
02795 {
02796   /* The cast to (char *) in the following accommodates both
02797    * implementations that use char* generic pointers, and those
02798    * that use void* generic pointers.  It works with the latter
02799    * because both ANSI C and C++ allow castless assignment from
02800    * any pointer type to void*, and deal with argument conversions
02801    * as though doing an assignment.
02802    */
02803   return (void *) realloc( (char *) ptr, size );
02804 }
02805 
02806 void llvmAsmfree (void * ptr )
02807 {
02808   free( (char *) ptr ); /* see llvmAsmrealloc() for (char *) cast */
02809 }
02810 
02811 #define YYTABLES_NAME "yytables"
02812 
02813 #line 356 "/build/buildd/llvm-1.7/llvm/lib/AsmParser/Lexer.l"
02814 
02815 
02816 
02817