LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Lexer.cpp File Reference

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include "ParserInternals.h"
#include "llvm/Module.h"
#include <list>
#include "llvmAsmParser.h"
#include <cctype>
#include <cstdlib>
#include <unistd.h>

Include dependency graph for Lexer.cpp:

Go to the source code of this file.

Namespaces

namespace  llvm

Classes

struct  yy_buffer_state
struct  yy_trans_info

Defines

#define YY_INT_ALIGNED   short int
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION   2
#define YY_FLEX_MINOR_VERSION   5
#define YY_FLEX_SUBMINOR_VERSION   31
#define FLEX_BETA
#define INT8_MIN   (-128)
#define INT16_MIN   (-32767-1)
#define INT32_MIN   (-2147483647-1)
#define INT8_MAX   (127)
#define INT16_MAX   (32767)
#define INT32_MAX   (2147483647)
#define UINT8_MAX   (255U)
#define UINT16_MAX   (65535U)
#define UINT32_MAX   (4294967295U)
#define yyconst
#define YY_NULL   0
#define YY_SC_TO_UI(c)   ((unsigned int) (unsigned char) c)
#define BEGIN   (yy_start) = 1 + 2 *
#define YY_START   (((yy_start) - 1) / 2)
#define YYSTATE   YY_START
#define YY_STATE_EOF(state)   (YY_END_OF_BUFFER + state + 1)
#define YY_NEW_FILE   llvmAsmrestart(llvmAsmin )
#define YY_END_OF_BUFFER_CHAR   0
#define YY_BUF_SIZE   (16384*64)
#define EOB_ACT_CONTINUE_SCAN   0
#define EOB_ACT_END_OF_FILE   1
#define EOB_ACT_LAST_MATCH   2
#define YY_LESS_LINENO(n)
#define yyless(n)
#define unput(c)   yyunput( c, (yytext_ptr) )
#define YY_BUFFER_NEW   0
#define YY_BUFFER_NORMAL   1
#define YY_BUFFER_EOF_PENDING   2
#define YY_CURRENT_BUFFER
#define YY_CURRENT_BUFFER_LVALUE   (yy_buffer_stack)[(yy_buffer_stack_top)]
#define YY_FLUSH_BUFFER   llvmAsm_flush_buffer(YY_CURRENT_BUFFER )
#define yy_new_buffer   llvmAsm_create_buffer
#define yy_set_interactive(is_interactive)
#define yy_set_bol(at_bol)
#define YY_AT_BOL()   (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
#define llvmAsmwrap(n)   1
#define YY_SKIP_YYWRAP
#define yytext_ptr   llvmAsmtext
#define YY_DO_BEFORE_ACTION
#define YY_NUM_RULES   93
#define YY_END_OF_BUFFER   94
#define REJECT   reject_used_but_not_detected
#define yymore()   yymore_used_but_not_detected
#define YY_MORE_ADJ   0
#define YY_RESTORE_YY_MORE_OFFSET
#define RET_TOK(type, Enum, sym)   llvmAsmlval.type = Instruction::Enum; return sym
#define YY_NEVER_INTERACTIVE   1
#define INITIAL   0
#define YY_EXTRA_TYPE   void *
#define YY_READ_BUF_SIZE   8192
#define ECHO   (void) fwrite( llvmAsmtext, llvmAsmleng, 1, llvmAsmout )
#define YY_INPUT(buf, result, max_size)
#define yyterminate()   return YY_NULL
#define YY_START_STACK_INCR   25
#define YY_FATAL_ERROR(msg)   yy_fatal_error( msg )
#define YY_DECL_IS_OURS   1
#define YY_DECL   int llvmAsmlex (void)
#define YY_BREAK   break;
#define YY_RULE_SETUP   YY_USER_ACTION
#define YY_EXIT_FAILURE   2
#define yyless(n)
#define YYTABLES_NAME   "yytables"

Typedefs

typedef signed char flex_int8_t
typedef short int flex_int16_t
typedef int flex_int32_t
typedef unsigned char flex_uint8_t
typedef unsigned short int flex_uint16_t
typedef unsigned int flex_uint32_t
typedef yy_buffer_stateYY_BUFFER_STATE
typedef unsigned int yy_size_t
typedef unsigned char YY_CHAR
typedef int yy_state_type

Functions

void llvmAsmrestart (FILE *input_file)
void llvmAsm_switch_to_buffer (YY_BUFFER_STATE new_buffer)
YY_BUFFER_STATE llvmAsm_create_buffer (FILE *file, int size)
void llvmAsm_delete_buffer (YY_BUFFER_STATE b)
void llvmAsm_flush_buffer (YY_BUFFER_STATE b)
void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer)
void llvmAsmpop_buffer_state (void)
static void llvmAsmensure_buffer_stack (void)
static void llvmAsm_load_buffer_state (void)
static void llvmAsm_init_buffer (YY_BUFFER_STATE b, FILE *file)
YY_BUFFER_STATE llvmAsm_scan_buffer (char *base, yy_size_t size)
YY_BUFFER_STATE llvmAsm_scan_string (yyconst char *yy_str)
YY_BUFFER_STATE llvmAsm_scan_bytes (yyconst char *bytes, int len)
void * llvmAsmalloc (yy_size_t)
void * llvmAsmrealloc (void *, yy_size_t)
void llvmAsmfree (void *)
static yy_state_type yy_get_previous_state (void)
static yy_state_type yy_try_NUL_trans (yy_state_type current_state)
static int yy_get_next_buffer (void)
static void yy_fatal_error (yyconst char msg[])
static uint64_t llvm::atoull (const char *Buffer)
static uint64_t llvm::HexIntToVal (const char *Buffer)
static double llvm::HexToFP (const char *Buffer)
char * llvm::UnEscapeLexed (char *Buffer, bool AllowNull)
static void yyunput (int c, char *buf_ptr)
static int input (void)
int llvmAsmlex (void)

Variables

int llvmAsmleng
FILE * llvmAsmin = (FILE *) 0
FILE * llvmAsmout = (FILE *) 0
static size_t yy_buffer_stack_top = 0
static size_t yy_buffer_stack_max = 0
static YY_BUFFER_STATEyy_buffer_stack = 0
static char yy_hold_char
static int yy_n_chars
static char * yy_c_buf_p = (char *) 0
static int yy_init = 1
static int yy_start = 0
static int yy_did_buffer_switch_on_eof
int llvmAsmlineno = 1
char * llvmAsmtext
static yyconst flex_int16_t yy_accept [383]
static yyconst flex_int32_t yy_ec [256]
static yyconst flex_int32_t yy_meta [42]
static yyconst flex_int16_t yy_base [388]
static yyconst flex_int16_t yy_def [388]
static yyconst flex_int16_t yy_nxt [852]
static yyconst flex_int16_t yy_chk [852]
static yyconst flex_int32_t yy_rule_can_match_eol [94]
static yy_state_type yy_last_accepting_state
static char * yy_last_accepting_cpos
int llvmAsm_flex_debug = 0


Define Documentation

#define BEGIN   (yy_start) = 1 + 2 *
 

Definition at line 116 of file Lexer.cpp.

#define ECHO   (void) fwrite( llvmAsmtext, llvmAsmleng, 1, llvmAsmout )
 

Definition at line 968 of file Lexer.cpp.

#define EOB_ACT_CONTINUE_SCAN   0
 

Definition at line 147 of file Lexer.cpp.

#define EOB_ACT_END_OF_FILE   1
 

Definition at line 148 of file Lexer.cpp.

#define EOB_ACT_LAST_MATCH   2
 

Definition at line 149 of file Lexer.cpp.

#define FLEX_BETA
 

Definition at line 14 of file Lexer.cpp.

#define FLEX_SCANNER
 

Definition at line 9 of file Lexer.cpp.

#define INITIAL   0
 

Definition at line 912 of file Lexer.cpp.

#define INT16_MAX   (32767)
 

Definition at line 65 of file Lexer.cpp.

#define INT16_MIN   (-32767-1)
 

Definition at line 56 of file Lexer.cpp.

Referenced by llvm::ConstantSInt::isValueValidForType().

#define INT32_MAX   (2147483647)
 

Definition at line 68 of file Lexer.cpp.

#define INT32_MIN   (-2147483647-1)
 

Definition at line 59 of file Lexer.cpp.

Referenced by llvm::ConstantSInt::isValueValidForType().

#define INT8_MAX   (127)
 

Definition at line 62 of file Lexer.cpp.

#define INT8_MIN   (-128)
 

Definition at line 53 of file Lexer.cpp.

Referenced by llvm::ConstantSInt::isValueValidForType().

#define llvmAsmwrap  )     1
 

Definition at line 340 of file Lexer.cpp.

#define REJECT   reject_used_but_not_detected
 

Definition at line 773 of file Lexer.cpp.

#define RET_TOK type,
Enum,
sym   )     llvmAsmlval.type = Instruction::Enum; return sym
 

Definition at line 799 of file Lexer.cpp.

#define UINT16_MAX   (65535U)
 

Definition at line 74 of file Lexer.cpp.

Referenced by llvm::ConstantUInt::isValueValidForType().

#define UINT32_MAX   (4294967295U)
 

Definition at line 77 of file Lexer.cpp.

Referenced by llvm::ConstantUInt::isValueValidForType().

#define UINT8_MAX   (255U)
 

Definition at line 71 of file Lexer.cpp.

Referenced by llvm::ConstantUInt::isValueValidForType().

#define unput  )     yyunput( c, (yytext_ptr) )
 

Definition at line 180 of file Lexer.cpp.

 
#define YY_AT_BOL  )     (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 

Definition at line 336 of file Lexer.cpp.

#define YY_BREAK   break;
 

Definition at line 1047 of file Lexer.cpp.

#define YY_BUF_SIZE   (16384*64)
 

Definition at line 135 of file Lexer.cpp.

#define YY_BUFFER_EOF_PENDING   2
 

Definition at line 252 of file Lexer.cpp.

#define YY_BUFFER_NEW   0
 

Definition at line 240 of file Lexer.cpp.

#define YY_BUFFER_NORMAL   1
 

Definition at line 241 of file Lexer.cpp.

#define YY_CURRENT_BUFFER
 

Value:

Definition at line 268 of file Lexer.cpp.

#define YY_CURRENT_BUFFER_LVALUE   (yy_buffer_stack)[(yy_buffer_stack_top)]
 

Definition at line 275 of file Lexer.cpp.

#define YY_DECL   int llvmAsmlex (void)
 

Definition at line 1035 of file Lexer.cpp.

#define YY_DECL_IS_OURS   1
 

Definition at line 1031 of file Lexer.cpp.

#define YY_DO_BEFORE_ACTION
 

Value:

(yytext_ptr) = yy_bp; \
  llvmAsmleng = (size_t) (yy_cp - yy_bp); \
  (yy_hold_char) = *yy_cp; \
  *yy_cp = '\0'; \
  (yy_c_buf_p) = yy_cp;

Definition at line 364 of file Lexer.cpp.

#define YY_END_OF_BUFFER   94
 

Definition at line 372 of file Lexer.cpp.

#define YY_END_OF_BUFFER_CHAR   0
 

Definition at line 131 of file Lexer.cpp.

#define YY_EXIT_FAILURE   2
 

#define YY_EXTRA_TYPE   void *
 

Definition at line 923 of file Lexer.cpp.

#define YY_FATAL_ERROR msg   )     yy_fatal_error( msg )
 

Definition at line 1022 of file Lexer.cpp.

#define YY_FLEX_MAJOR_VERSION   2
 

Definition at line 10 of file Lexer.cpp.

#define YY_FLEX_MINOR_VERSION   5
 

Definition at line 11 of file Lexer.cpp.

#define YY_FLEX_SUBMINOR_VERSION   31
 

Definition at line 12 of file Lexer.cpp.

#define YY_FLUSH_BUFFER   llvmAsm_flush_buffer(YY_CURRENT_BUFFER )
 

Definition at line 304 of file Lexer.cpp.

#define YY_INPUT buf,
result,
max_size   ) 
 

Value:

if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
    { \
    int c = '*'; \
    size_t n; \
    for ( n = 0; n < max_size && \
           (c = getc( llvmAsmin )) != EOF && c != '\n'; ++n ) \
      buf[n] = (char) c; \
    if ( c == '\n' ) \
      buf[n++] = (char) c; \
    if ( c == EOF && ferror( llvmAsmin ) ) \
      YY_FATAL_ERROR( "input in flex scanner failed" ); \
    result = n; \
    } \
  else \
    { \
    errno=0; \
    while ( (result = fread(buf, 1, max_size, llvmAsmin))==0 && ferror(llvmAsmin)) \
      { \
      if( errno != EINTR) \
        { \
        YY_FATAL_ERROR( "input in flex scanner failed" ); \
        break; \
        } \
      errno=0; \
      clearerr(llvmAsmin); \
      } \
    }\
\

Definition at line 975 of file Lexer.cpp.

#define YY_INT_ALIGNED   short int
 

Definition at line 5 of file Lexer.cpp.

#define YY_LESS_LINENO  ) 
 

Value:

do { \
                int yyl;\
                for ( yyl = n; yyl < llvmAsmleng; ++yyl )\
                    if ( llvmAsmtext[yyl] == '\n' )\
                        --llvmAsmlineno;\
            }while(0)

Definition at line 158 of file Lexer.cpp.

#define YY_MORE_ADJ   0
 

Definition at line 775 of file Lexer.cpp.

#define YY_NEVER_INTERACTIVE   1
 

Definition at line 893 of file Lexer.cpp.

#define yy_new_buffer   llvmAsm_create_buffer
 

Definition at line 314 of file Lexer.cpp.

#define YY_NEW_FILE   llvmAsmrestart(llvmAsmin )
 

Definition at line 129 of file Lexer.cpp.

#define YY_NULL   0
 

Definition at line 103 of file Lexer.cpp.

#define YY_NUM_RULES   93
 

Definition at line 371 of file Lexer.cpp.

#define YY_READ_BUF_SIZE   8192
 

Definition at line 960 of file Lexer.cpp.

#define YY_RESTORE_YY_MORE_OFFSET
 

Definition at line 776 of file Lexer.cpp.

#define YY_RULE_SETUP   YY_USER_ACTION
 

Definition at line 1050 of file Lexer.cpp.

#define YY_SC_TO_UI  )     ((unsigned int) (unsigned char) c)
 

Definition at line 110 of file Lexer.cpp.

#define yy_set_bol at_bol   ) 
 

Value:

Definition at line 326 of file Lexer.cpp.

#define yy_set_interactive is_interactive   ) 
 

Value:

Definition at line 316 of file Lexer.cpp.

#define YY_SKIP_YYWRAP
 

Definition at line 341 of file Lexer.cpp.

#define YY_START   (((yy_start) - 1) / 2)
 

Definition at line 122 of file Lexer.cpp.

#define YY_START_STACK_INCR   25
 

Definition at line 1017 of file Lexer.cpp.

#define YY_STATE_EOF state   )     (YY_END_OF_BUFFER + state + 1)
 

Definition at line 126 of file Lexer.cpp.

#define yyconst
 

Definition at line 99 of file Lexer.cpp.

#define yyless  ) 
 

Value:

do \
    { \
    /* Undo effects of setting up llvmAsmtext. */ \
        int yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
    llvmAsmtext[llvmAsmleng] = (yy_hold_char); \
    (yy_c_buf_p) = llvmAsmtext + yyless_macro_arg; \
    (yy_hold_char) = *(yy_c_buf_p); \
    *(yy_c_buf_p) = '\0'; \
    llvmAsmleng = yyless_macro_arg; \
    } \
  while ( 0 )

Definition at line 167 of file Lexer.cpp.

#define yyless  ) 
 

Value:

do \
    { \
    /* Undo effects of setting up llvmAsmtext. */ \
        int yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
    *yy_cp = (yy_hold_char); \
    YY_RESTORE_YY_MORE_OFFSET \
    (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
    YY_DO_BEFORE_ACTION; /* set up llvmAsmtext again */ \
    } \
  while ( 0 )

Definition at line 167 of file Lexer.cpp.

 
#define yymore  )     yymore_used_but_not_detected
 

Definition at line 774 of file Lexer.cpp.

#define YYSTATE   YY_START
 

Definition at line 123 of file Lexer.cpp.

#define YYTABLES_NAME   "yytables"
 

 
#define yyterminate  )     return YY_NULL
 

Definition at line 1012 of file Lexer.cpp.

#define yytext_ptr   llvmAsmtext
 

Definition at line 354 of file Lexer.cpp.


Typedef Documentation

typedef short int flex_int16_t
 

Definition at line 44 of file Lexer.cpp.

typedef int flex_int32_t
 

Definition at line 45 of file Lexer.cpp.

typedef signed char flex_int8_t
 

Definition at line 43 of file Lexer.cpp.

typedef unsigned short int flex_uint16_t
 

Definition at line 47 of file Lexer.cpp.

typedef unsigned int flex_uint32_t
 

Definition at line 48 of file Lexer.cpp.

typedef unsigned char flex_uint8_t
 

Definition at line 46 of file Lexer.cpp.

typedef struct yy_buffer_state* YY_BUFFER_STATE
 

Definition at line 140 of file Lexer.cpp.

typedef unsigned char YY_CHAR
 

Definition at line 343 of file Lexer.cpp.

typedef unsigned int yy_size_t
 

Definition at line 189 of file Lexer.cpp.

typedef int yy_state_type
 

Definition at line 347 of file Lexer.cpp.


Function Documentation

static int input void   )  [static]
 

YY_BUFFER_STATE llvmAsm_create_buffer FILE *  file,
int  size
 

void llvmAsm_delete_buffer YY_BUFFER_STATE  b  ) 
 

void llvmAsm_flush_buffer YY_BUFFER_STATE  b  ) 
 

static void llvmAsm_init_buffer YY_BUFFER_STATE  b,
FILE *  file
[static]
 

static void llvmAsm_load_buffer_state void   )  [static]
 

YY_BUFFER_STATE llvmAsm_scan_buffer char *  base,
yy_size_t  size
 

YY_BUFFER_STATE llvmAsm_scan_bytes yyconst char *  bytes,
int  len
 

YY_BUFFER_STATE llvmAsm_scan_string yyconst char *  yy_str  ) 
 

void llvmAsm_switch_to_buffer YY_BUFFER_STATE  new_buffer  ) 
 

void* llvmAsmalloc yy_size_t   ) 
 

static void llvmAsmensure_buffer_stack void   )  [static]
 

void llvmAsmfree void *   ) 
 

int llvmAsmlex void   ) 
 

void llvmAsmpop_buffer_state void   ) 
 

void llvmAsmpush_buffer_state YY_BUFFER_STATE  new_buffer  ) 
 

void* llvmAsmrealloc void *  ,
yy_size_t 
 

void llvmAsmrestart FILE *  input_file  ) 
 

static void yy_fatal_error yyconst char  msg[]  )  [static]
 

static int yy_get_next_buffer void   )  [static]
 

static yy_state_type yy_get_previous_state void   )  [static]
 

static yy_state_type yy_try_NUL_trans yy_state_type  current_state  )  [static]
 

static void yyunput int  c,
char *  buf_ptr
[inline, static]
 


Variable Documentation

int llvmAsm_flex_debug = 0
 

Definition at line 768 of file Lexer.cpp.

FILE * llvmAsmin = (FILE *) 0
 

Definition at line 345 of file Lexer.cpp.

Referenced by llvm::RunVMAsmParser().

int llvmAsmleng
 

Definition at line 280 of file Lexer.cpp.

Referenced by yyerror().

int llvmAsmlineno = 1
 

Definition at line 351 of file Lexer.cpp.

Referenced by getBBVal(), getVal(), llvm::RunVMAsmParser(), llvm::ThrowException(), and yyerror().

FILE * llvmAsmout = (FILE *) 0
 

Definition at line 345 of file Lexer.cpp.

char * llvmAsmtext
 

Definition at line 777 of file Lexer.cpp.

Referenced by yyerror().

yyconst flex_int16_t yy_accept[383] [static]
 

Definition at line 380 of file Lexer.cpp.

yyconst flex_int16_t yy_base[388] [static]
 

Definition at line 467 of file Lexer.cpp.

YY_BUFFER_STATE* yy_buffer_stack = 0 [static]
 

Stack as an array.

Definition at line 260 of file Lexer.cpp.

size_t yy_buffer_stack_max = 0 [static]
 

capacity of stack.

Definition at line 259 of file Lexer.cpp.

size_t yy_buffer_stack_top = 0 [static]
 

index of top of stack.

Definition at line 258 of file Lexer.cpp.

char* yy_c_buf_p = (char *) 0 [static]
 

Definition at line 283 of file Lexer.cpp.

yyconst flex_int16_t yy_chk[852] [static]
 

Definition at line 657 of file Lexer.cpp.

yyconst flex_int16_t yy_def[388] [static]
 

Definition at line 513 of file Lexer.cpp.

int yy_did_buffer_switch_on_eof [static]
 

Definition at line 290 of file Lexer.cpp.

yyconst flex_int32_t yy_ec[256] [static]
 

Definition at line 426 of file Lexer.cpp.

char yy_hold_char [static]
 

Definition at line 278 of file Lexer.cpp.

int yy_init = 1 [static]
 

Definition at line 284 of file Lexer.cpp.

char* yy_last_accepting_cpos [static]
 

Definition at line 765 of file Lexer.cpp.

yy_state_type yy_last_accepting_state [static]
 

Definition at line 764 of file Lexer.cpp.

yyconst flex_int32_t yy_meta[42] [static]
 

Initial value:

    {   0,
        1,    1,    2,    1,    3,    1,    1,    3,    3,    3,
        3,    4,    1,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3
    }

Definition at line 458 of file Lexer.cpp.

int yy_n_chars [static]
 

Definition at line 279 of file Lexer.cpp.

yyconst flex_int16_t yy_nxt[852] [static]
 

Definition at line 559 of file Lexer.cpp.

yyconst flex_int32_t yy_rule_can_match_eol[94] [static]
 

Initial value:

    {   0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,     }

Definition at line 756 of file Lexer.cpp.

int yy_start = 0 [static]
 

Definition at line 285 of file Lexer.cpp.