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   69
#define YY_END_OF_BUFFER   70
#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 [93]
static yyconst flex_int32_t yy_ec [256]
static yyconst flex_int32_t yy_meta [35]
static yyconst flex_int16_t yy_base [97]
static yyconst flex_int16_t yy_def [97]
static yyconst flex_int16_t yy_nxt [147]
static yyconst flex_int16_t yy_chk [147]
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:

( (yy_buffer_stack) \
                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
                          : NULL)

#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   70
 

#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   69
 

#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:

{ \
        if ( ! YY_CURRENT_BUFFER ){\
        utap_ensure_buffer_stack (); \
                YY_CURRENT_BUFFER_LVALUE =    \
            utap__create_buffer(utap_in,YY_BUF_SIZE ); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
        }

#define yy_set_interactive is_interactive   ) 
 

Value:

{ \
        if ( ! YY_CURRENT_BUFFER ){ \
        utap_ensure_buffer_stack (); \
                YY_CURRENT_BUFFER_LVALUE =    \
            utap__create_buffer(utap_in,YY_BUF_SIZE ); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
        }

#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[93] [static]
 

Initial value:

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

    }

yyconst flex_int16_t yy_base[97] [static]
 

Initial value:

    {   0,
        0,    0,   32,   33,  111,  112,  108,  106,  105,   85,
       84,   29,  112,  112,  112,   83,   25,  112,   31,  112,
       40,   86,   81,  112,   18,   37,   41,  112,   20,   49,
       40,  112,   67,  112,   80,  112,   44,  112,  112,  112,
       83,   80,   87,   85,   83,  112,  112,  112,  112,  112,
      112,  112,   63,  112,  112,  112,    0,  112,   67,  112,
       62,  112,  112,  112,  112,  112,  112,   60,  112,   65,
       58,   50,   56,   48,   70,  112,  112,  112,  112,  112,
        0,   53,  112,    0,  112,  112,  112,  112,  112,  112,
        0,  112,   92,   40,   95,   98

    }

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[147] [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,    3,    4,   12,   17,   25,   25,
       29,   25,   94,    3,    4,   19,   17,   29,    3,    4,
       12,   21,   19,   19,   30,   82,   21,   26,   26,   26,
       31,   21,   27,   27,   27,   37,   30,   31,   33,   33,
       70,   75,   75,   30,   30,   30,   37,   74,   73,   72,
       71,   68,   70,   61,   59,   53,   45,   44,   43,   70,
       70,   70,   93,   93,   93,   95,   42,   95,   96,   41,

       96,   35,   23,   22,   16,   11,   10,    9,    8,    7,
        5,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92
    }

yyconst flex_int16_t yy_def[97] [static]
 

Initial value:

    {   0,
       92,    1,   93,   93,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   92,   92,   94,   92,
       94,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   95,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       96,   92,   92,   95,   92,   92,   92,   92,   92,   92,
       96,    0,   92,   92,   92,   92

    }

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[35] [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,    1,    1,    1
    }

int yy_n_chars [static]
 

yyconst flex_int16_t yy_nxt[147] [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,   36,   37,   38,   40,   40,   48,   51,   61,   62,
       71,   63,   70,   41,   41,   53,   52,   72,   42,   42,
       49,   56,   54,   55,   70,   45,   57,   64,   65,   66,
       73,   58,   67,   68,   69,   78,   70,   74,   75,   76,
       70,   75,   76,   70,   70,   70,   79,   90,   89,   88,
       87,   86,   70,   85,   59,   83,   82,   44,   43,   70,
       70,   70,   39,   39,   39,   84,   81,   84,   91,   80,

       91,   77,   60,   59,   50,   47,   46,   45,   44,   43,
       92,    5,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
       92,   92,   92,   92,   92,   92
    }

int yy_start = 0 [static]
 


Generated on Thu Feb 17 15:20:58 2005 for libutap by  doxygen 1.4.1