Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

lexer.cc File Reference

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <iostream>
#include "keywords.cc"
#include <unistd.h>

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   utap_restart(utap_in )
#define YY_END_OF_BUFFER_CHAR   0
#define YY_BUF_SIZE   16384
#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   utap__flush_buffer(YY_CURRENT_BUFFER )
#define yy_new_buffer   utap__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 yytext_ptr   utap_text
#define YY_DO_BEFORE_ACTION
#define YY_NUM_RULES   70
#define YY_END_OF_BUFFER   71
#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 YY_DECL   int lexer_flex(void)
#define YY_USER_INIT   yylloc.reset();
 Location tracking inside scanner, taken from http://www.lrde.epita.fr/people/akim/compil/gnuprog2/Advanced-Use-of-Flex.html.
#define YY_USER_ACTION   yylloc.step(); yylloc.last_column+=utap_leng;
#define YY_FATAL_ERROR(msg)   { throw TypeException(msg); }
#define INITIAL   0
#define comment   1
#define YY_EXTRA_TYPE   void *
#define YY_READ_BUF_SIZE   8192
#define ECHO   (void) fwrite( utap_text, utap_leng, 1, utap_out )
#define YY_INPUT(buf, result, max_size)
#define yyterminate()   return YY_NULL
#define YY_START_STACK_INCR   25
#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_state * YY_BUFFER_STATE
typedef unsigned int yy_size_t
typedef unsigned char YY_CHAR
typedef int yy_state_type

Functions

void utap_restart (FILE *input_file)
void utap__switch_to_buffer (YY_BUFFER_STATE new_buffer)
YY_BUFFER_STATE utap__create_buffer (FILE *file, int size)
void utap__delete_buffer (YY_BUFFER_STATE b)
void utap__flush_buffer (YY_BUFFER_STATE b)
void utap_push_buffer_state (YY_BUFFER_STATE new_buffer)
void utap_pop_buffer_state (void)
static void utap_ensure_buffer_stack (void)
static void utap__load_buffer_state (void)
static void utap__init_buffer (YY_BUFFER_STATE b, FILE *file)
YY_BUFFER_STATE utap__scan_buffer (char *base, yy_size_t size)
YY_BUFFER_STATE utap__scan_string (yyconst char *yy_str)
YY_BUFFER_STATE utap__scan_bytes (yyconst char *bytes, int len)
void * utap_alloc (yy_size_t)
void * utap_realloc (void *, yy_size_t)
void utap_free (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[])
int utap_wrap (void)
 The main scanner function which does all the work.
static int input (void)

Variables

int utap_leng
FILE * utap_in = (FILE *) 0
FILE * utap_out = (FILE *) 0
static size_t yy_buffer_stack_top = 0
 index of top of stack.
static size_t yy_buffer_stack_max = 0
 capacity of stack.
static YY_BUFFER_STATEyy_buffer_stack = 0
 Stack as an array.
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 utap_lineno = 1
char * utap_text
static yyconst flex_int16_t yy_accept [96]
static yyconst flex_int32_t yy_ec [256]
static yyconst flex_int32_t yy_meta [36]
static yyconst flex_int16_t yy_base [100]
static yyconst flex_int16_t yy_def [100]
static yyconst flex_int16_t yy_nxt [144]
static yyconst flex_int16_t yy_chk [144]
static yy_state_type yy_last_accepting_state
static char * yy_last_accepting_cpos
int utap__flex_debug = 0

Define Documentation

#define BEGIN   (yy_start) = 1 + 2 *
 

#define comment   1
 

#define ECHO   (void) fwrite( utap_text, utap_leng, 1, utap_out )
 

#define EOB_ACT_CONTINUE_SCAN   0
 

#define EOB_ACT_END_OF_FILE   1
 

#define EOB_ACT_LAST_MATCH   2
 

#define FLEX_BETA
 

#define FLEX_SCANNER
 

#define INITIAL   0
 

#define INT16_MAX   (32767)
 

#define INT16_MIN   (-32767-1)
 

#define INT32_MAX   (2147483647)
 

#define INT32_MIN   (-2147483647-1)
 

#define INT8_MAX   (127)
 

#define INT8_MIN   (-128)
 

#define REJECT   reject_used_but_not_detected
 

#define UINT16_MAX   (65535U)
 

#define UINT32_MAX   (4294967295U)
 

#define UINT8_MAX   (255U)
 

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

 
#define YY_AT_BOL  )     (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 

#define YY_BREAK   break;
 

#define YY_BUF_SIZE   16384
 

#define YY_BUFFER_EOF_PENDING   2
 

#define YY_BUFFER_NEW   0
 

#define YY_BUFFER_NORMAL   1
 

#define YY_CURRENT_BUFFER
 

Value:

#define YY_CURRENT_BUFFER_LVALUE   (yy_buffer_stack)[(yy_buffer_stack_top)]
 

#define YY_DECL   int lexer_flex(void)
 

#define YY_DO_BEFORE_ACTION
 

Value:

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

#define YY_END_OF_BUFFER   71
 

#define YY_END_OF_BUFFER_CHAR   0
 

#define YY_EXIT_FAILURE   2
 

#define YY_EXTRA_TYPE   void *
 

#define YY_FATAL_ERROR msg   )     { throw TypeException(msg); }
 

#define YY_FLEX_MAJOR_VERSION   2
 

#define YY_FLEX_MINOR_VERSION   5
 

#define YY_FLEX_SUBMINOR_VERSION   31
 

#define YY_FLUSH_BUFFER   utap__flush_buffer(YY_CURRENT_BUFFER )
 

#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( utap_in )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
                if ( c == '\n' ) \
                        buf[n++] = (char) c; \
                if ( c == EOF && ferror( utap_in ) ) \
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
                result = n; \
                } \
        else \
                { \
                errno=0; \
                while ( (result = fread(buf, 1, max_size, utap_in))==0 && ferror(utap_in)) \
                        { \
                        if( errno != EINTR) \
                                { \
                                YY_FATAL_ERROR( "input in flex scanner failed" ); \
                                break; \
                                } \
                        errno=0; \
                        clearerr(utap_in); \
                        } \
                }\
\

#define YY_INT_ALIGNED   short int
 

#define YY_LESS_LINENO  ) 
 

#define YY_MORE_ADJ   0
 

#define yy_new_buffer   utap__create_buffer
 

#define YY_NEW_FILE   utap_restart(utap_in )
 

#define YY_NULL   0
 

#define YY_NUM_RULES   70
 

#define YY_READ_BUF_SIZE   8192
 

#define YY_RESTORE_YY_MORE_OFFSET
 

#define YY_RULE_SETUP   YY_USER_ACTION
 

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

#define yy_set_bol at_bol   ) 
 

Value:

#define yy_set_interactive is_interactive   ) 
 

Value:

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

#define YY_START_STACK_INCR   25
 

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

#define YY_USER_ACTION   yylloc.step(); yylloc.last_column+=utap_leng;
 

#define YY_USER_INIT   yylloc.reset();
 

Location tracking inside scanner, taken from http://www.lrde.epita.fr/people/akim/compil/gnuprog2/Advanced-Use-of-Flex.html.

#define yyconst
 

#define yyless  ) 
 

Value:

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

#define yyless  ) 
 

Value:

do \
                { \
                /* Undo effects of setting up utap_text. */ \
        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 utap_text again */ \
                } \
        while ( 0 )

 
#define yymore  )     yymore_used_but_not_detected
 

#define YYSTATE   YY_START
 

#define YYTABLES_NAME   "yytables"
 

 
#define yyterminate  )     return YY_NULL
 

#define yytext_ptr   utap_text
 


Typedef Documentation

typedef short int flex_int16_t
 

typedef int flex_int32_t
 

typedef signed char flex_int8_t
 

typedef unsigned short int flex_uint16_t
 

typedef unsigned int flex_uint32_t
 

typedef unsigned char flex_uint8_t
 

typedef struct yy_buffer_state* YY_BUFFER_STATE
 

typedef unsigned char YY_CHAR
 

typedef unsigned int yy_size_t
 

typedef int yy_state_type
 


Function Documentation

static int input void   )  [static]
 

YY_BUFFER_STATE utap__create_buffer FILE *  file,
int  size
 

void utap__delete_buffer YY_BUFFER_STATE  b  ) 
 

void utap__flush_buffer YY_BUFFER_STATE  b  ) 
 

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

static void utap__load_buffer_state void   )  [static]
 

YY_BUFFER_STATE utap__scan_buffer char *  base,
yy_size_t  size
 

YY_BUFFER_STATE utap__scan_bytes yyconst char *  bytes,
int  len
 

YY_BUFFER_STATE utap__scan_string yyconst char *  yy_str  ) 
 

void utap__switch_to_buffer YY_BUFFER_STATE  new_buffer  ) 
 

void* utap_alloc yy_size_t   ) 
 

static void utap_ensure_buffer_stack void   )  [static]
 

void utap_free void *   ) 
 

void utap_pop_buffer_state void   ) 
 

void utap_push_buffer_state YY_BUFFER_STATE  new_buffer  ) 
 

void* utap_realloc void *  ,
yy_size_t 
 

void utap_restart FILE *  input_file  ) 
 

int utap_wrap void   ) 
 

The main scanner function which does all the work.

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]
 


Variable Documentation

int utap__flex_debug = 0
 

FILE * utap_in = (FILE *) 0
 

int utap_leng
 

int utap_lineno = 1
 

FILE * utap_out = (FILE *) 0
 

char * utap_text
 

yyconst flex_int16_t yy_accept[96] [static]
 

Initial value:

    {   0,
        0,    0,    0,    0,   71,   69,    7,    9,   69,   23,
       44,   46,   22,   19,   20,   42,   40,   12,   41,   11,
       43,   68,   14,   13,   56,   26,   57,   21,   67,   67,
       67,   17,   69,   18,   47,   15,   45,   16,    4,    1,
        4,    4,    7,    9,   10,   59,   32,   51,   34,   30,
       60,   28,   61,   29,   24,    0,    8,    6,   31,   68,
       27,   48,   52,   38,   54,   58,   55,   53,   49,   39,
       67,    0,    0,    0,    0,    0,    5,   35,   33,   50,
        2,    3,    0,   66,    0,    6,   36,   37,   62,   63,
       64,   65,    3,   25,    0

    }

yyconst flex_int16_t yy_base[100] [static]
 

Initial value:

    {   0,
        0,    0,   33,   34,  107,  108,  104,  102,  101,   81,
       80,   30,  108,  108,  108,   79,   26,  108,   32,  108,
       41,   82,   77,  108,   19,   38,   43,  108,   21,   41,
       47,  108,   54,  108,   76,  108,   48,  108,  108,  108,
       80,   79,   93,   91,   89,  108,  108,  108,  108,  108,
      108,  108,   69,  108,  108,   75,  108,    0,  108,   69,
      108,   59,  108,  108,  108,  108,  108,  108,   58,  108,
        0,   56,   48,   54,   46,   69,  108,  108,  108,  108,
      108,    0,   71,  108,   50,    0,  108,  108,  108,  108,
      108,  108,    0,  108,  108,   82,   41,   85,   88

    }

YY_BUFFER_STATE* yy_buffer_stack = 0 [static]
 

Stack as an array.

size_t yy_buffer_stack_max = 0 [static]
 

capacity of stack.

size_t yy_buffer_stack_top = 0 [static]
 

index of top of stack.

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

yyconst flex_int16_t yy_chk[144] [static]
 

Initial value:

    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    3,    4,   12,   17,   25,
       25,   29,   25,   97,    3,    4,   19,   17,   29,    3,
        4,   12,   21,   19,   19,   33,   33,   21,   26,   26,
       26,   30,   21,   19,   27,   27,   27,   31,   30,   37,
       76,   76,   85,   83,   31,   75,   74,   73,   72,   69,
       62,   37,   96,   96,   96,   98,   60,   98,   99,   56,
       99,   53,   45,   44,   43,   42,   41,   35,   23,   22,

       16,   11,   10,    9,    8,    7,    5,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95
    }

yyconst flex_int16_t yy_def[100] [static]
 

Initial value:

    {   0,
       95,    1,   96,   96,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   97,   97,
       97,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   98,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       30,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   99,   95,   95,   95,   98,   95,   95,   95,   95,
       95,   95,   99,   95,    0,   95,   95,   95,   95

    }

int yy_did_buffer_switch_on_eof [static]
 

yyconst flex_int32_t yy_ec[256] [static]
 

char yy_hold_char [static]
 

int yy_init = 1 [static]
 

char* yy_last_accepting_cpos [static]
 

yy_state_type yy_last_accepting_state [static]
 

yyconst flex_int32_t yy_meta[36] [static]
 

Initial value:

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

int yy_n_chars [static]
 

yyconst flex_int16_t yy_nxt[144] [static]
 

Initial value:

    {   0,
        6,    7,    8,    9,   10,    6,   11,   12,   13,   14,
       15,   16,   17,   18,   19,   20,   21,   22,   23,   24,
       25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
       35,   30,   36,   37,   38,   40,   40,   48,   51,   62,
       63,   72,   64,   71,   41,   41,   53,   52,   73,   42,
       42,   49,   57,   54,   55,   76,   77,   58,   65,   66,
       67,   95,   59,   56,   68,   69,   70,   74,   95,   79,
       76,   77,   94,   45,   75,   92,   91,   90,   89,   88,
       87,   80,   39,   39,   39,   86,   60,   86,   93,   85,
       93,   84,   83,   44,   43,   82,   81,   78,   61,   60,

       50,   47,   46,   45,   44,   43,   95,    5,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95
    }

int yy_start = 0 [static]
 


Generated on Thu Nov 10 13:16:12 2005 for libutap by  doxygen 1.4.2