Go to the source code of this file.
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 33 |
| #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 yyrestart(yyin ) |
| #define | YY_END_OF_BUFFER_CHAR 0 |
| #define | YY_BUF_SIZE 16384 |
| #define | YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) |
| #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 yy_flush_buffer(YY_CURRENT_BUFFER ) |
| #define | yy_new_buffer yy_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 | yywrap(n) 1 |
| #define | YY_SKIP_YYWRAP |
| #define | yytext_ptr yytext |
| #define | YY_DO_BEFORE_ACTION |
| #define | YY_NUM_RULES 180 |
| #define | YY_END_OF_BUFFER 181 |
| #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 | ECHO lassert2(false, "ECHO should not be used.") |
| avoiding implicit rules | |
| #define | yyterminate() return pp_token::create(LOCGET,pp_token::TOK_FILE_END) |
| Handles encountering real EOF, which should not happen, formal definition. | |
| #define | YY_USER_ACTION |
| Defines action triggered for each rule. | |
| #define | YY_INPUT(buf, result, max_size) |
| Defines flex input function. | |
| #define | YY_DECL ptr<pp_token> lexer_parse(bool line_start) |
| Defines prototype for flex parser function. | |
| #define | ADVANCE current_utb->advance(yyleng) |
| Skips all tokens comprising the current rule. | |
| #define | SKIP(num) current_utb->advance(num) |
| Skips supplied count of tokens. | |
| #define | PEEK current_utb->peek_front() |
| Returns next token from buffer. | |
| #define | LOCSAVE current_ppl->location_save() |
| Saves location of the next token in buffer. | |
| #define | LOCGET current_ppl->location_create() |
| Returns the saved location. | |
| #define | EXTRACT_UNTIL(stop) current_utb->extract_until(stop) |
| Extracts ordinary sequence until stop character from buffer. | |
| #define | EXTRACT_ORDINARY(len) current_utb->extract_ordinary(len) |
| Extracts ordinary sequence of length len from buffer. | |
| #define | EXTRACT_UCN_IDENTIFIER(len) current_utb->extract_simple_ucn(len,true) |
| Extracts identifier with ucn of length len from buffer. | |
| #define | EXTRACT_UCN_NUMBER(len) current_utb->extract_simple_ucn(len,false) |
| Extracts number with ucn of length len from buffer. | |
| #define | EXTRACT_BAD_IDENTIFIER(len) current_utb->extract_invalid_ucn(len,true) |
| Extracts identifier with bad ucn of length len from buffer. | |
| #define | EXTRACT_BAD_NUMBER(len) current_utb->extract_invalid_ucn(len,false) |
| Extracts number with bad ucn of length len from buffer. | |
| #define | EXTRACT_UCN_LITERAL(len) current_utb->extract_ucn_literal(len) |
| Extracts literal of length len from buffer. | |
| #define | EXTRACT_BAD_LITERAL(len) current_utb->extract_bad_literal(len) |
| Extracts literal with invalid escape sequences of length len from buffer. | |
| #define | YY_NO_INPUT 1 |
| #define | INITIAL 0 |
| #define | include 1 |
| #define | line 2 |
| #define | directive 3 |
| #define | directive_name 4 |
| #define | YY_EXTRA_TYPE void * |
| #define | YY_READ_BUF_SIZE 8192 |
| #define | YY_START_STACK_INCR 25 |
| #define | YY_FATAL_ERROR(msg) yy_fatal_error( msg ) |
| #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 | yyrestart (FILE *input_file) |
| void | yy_switch_to_buffer (YY_BUFFER_STATE new_buffer) |
| YY_BUFFER_STATE | yy_create_buffer (FILE *file, int size) |
| void | yy_delete_buffer (YY_BUFFER_STATE b) |
| void | yy_flush_buffer (YY_BUFFER_STATE b) |
| void | yypush_buffer_state (YY_BUFFER_STATE new_buffer) |
| void | yypop_buffer_state (void) |
| static void | yyensure_buffer_stack (void) |
| static void | yy_load_buffer_state (void) |
| static void | yy_init_buffer (YY_BUFFER_STATE b, FILE *file) |
| YY_BUFFER_STATE | yy_scan_buffer (char *base, yy_size_t size) |
| YY_BUFFER_STATE | yy_scan_string (char *yy_str) |
| YY_BUFFER_STATE | yy_scan_bytes (char *bytes, int len) |
| void * | yyalloc (yy_size_t) |
| void * | yyrealloc (void *, yy_size_t) |
| void | yyfree (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 (char msg[]) |
| lstring | escape_nonprintable (const lstring &inp) |
| ptr< pp_token > | lexer_parse (bool line_start) |
| static int | yy_init_globals (void) |
| static void | yy_fatal_error (char *msg) |
| int | yyget_lineno (void) |
| FILE * | yyget_in (void) |
| FILE * | yyget_out (void) |
| int | yyget_leng (void) |
| char * | yyget_text (void) |
| void | yyset_lineno (int line_number) |
| void | yyset_in (FILE *in_str) |
| void | yyset_out (FILE *out_str) |
| int | yyget_debug (void) |
| void | yyset_debug (int bdebug) |
| int | yylex_destroy (void) |
Variables | |
| int | yyleng |
| FILE * | yyin |
| FILE * | yyout |
| static size_t | yy_buffer_stack_top = 0 |
| static size_t | yy_buffer_stack_max = 0 |
| static YY_BUFFER_STATE * | yy_buffer_stack = 0 |
| static char | yy_hold_char |
| static int | yy_n_chars |
| int | yyleng |
| static char * | yy_c_buf_p = (char *) 0 |
| static int | yy_init = 0 |
| static int | yy_start = 0 |
| static int | yy_did_buffer_switch_on_eof |
| FILE * | yyin = (FILE *) 0 |
| FILE * | yyout = (FILE *) 0 |
| int | yylineno |
| int | yylineno = 1 |
| char * | yytext |
| static flex_int16_t | yy_accept [1094] |
| static flex_int32_t | yy_ec [256] |
| static flex_int32_t | yy_meta [100] |
| static flex_int16_t | yy_base [1204] |
| static flex_int16_t | yy_def [1204] |
| static flex_int16_t | yy_nxt [15282] |
| static flex_int16_t | yy_chk [15282] |
| static yy_state_type | yy_last_accepting_state |
| static char * | yy_last_accepting_cpos |
| int | yy_flex_debug |
| int | yy_flex_debug = 0 |
| char * | yytext |
| static pp_lex * | current_ppl |
| Current wrapper class, which will be live when used. | |
| static ucn_token_buffer * | current_utb |
| Current ucn token buffer, which will be live when used. | |
Performs lexical analysis of incoming text, forming preprocessor tokens. Should only be called by pp_lex objects, which ensure proper connection.
Because flex can only handle 7 bit input, ucn tokens are stored outside in an synchronized buffer and flex processes only the corresponding character classes: end of file, translated ucn and each basic source character is represented in its own class. Basic source characters character classes values are encoded in ASCII, independently on the character set flex operates in.
Definition in file pp_lex_guts.yy.cc.
| #define ADVANCE current_utb->advance(yyleng) |
Skips all tokens comprising the current rule.
Definition at line 4314 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define BEGIN (yy_start) = 1 + 2 * |
Definition at line 112 of file pp_lex_guts.yy.cc.
| #define directive 3 |
Definition at line 4389 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse(), and lestes::lang::cplus::lex::evaluator::process_directive().
| #define directive_name 4 |
| #define ECHO lassert2(false, "ECHO should not be used.") |
| #define EOB_ACT_CONTINUE_SCAN 0 |
Definition at line 147 of file pp_lex_guts.yy.cc.
| #define EOB_ACT_END_OF_FILE 1 |
Definition at line 148 of file pp_lex_guts.yy.cc.
| #define EOB_ACT_LAST_MATCH 2 |
Definition at line 149 of file pp_lex_guts.yy.cc.
| #define EXTRACT_BAD_IDENTIFIER | ( | len | ) | current_utb->extract_invalid_ucn(len,true) |
Extracts identifier with bad ucn of length len from buffer.
Definition at line 4332 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define EXTRACT_BAD_LITERAL | ( | len | ) | current_utb->extract_bad_literal(len) |
Extracts literal with invalid escape sequences of length len from buffer.
Definition at line 4338 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define EXTRACT_BAD_NUMBER | ( | len | ) | current_utb->extract_invalid_ucn(len,false) |
Extracts number with bad ucn of length len from buffer.
Definition at line 4334 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define EXTRACT_ORDINARY | ( | len | ) | current_utb->extract_ordinary(len) |
Extracts ordinary sequence of length len from buffer.
Definition at line 4326 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define EXTRACT_UCN_IDENTIFIER | ( | len | ) | current_utb->extract_simple_ucn(len,true) |
Extracts identifier with ucn of length len from buffer.
Definition at line 4328 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define EXTRACT_UCN_LITERAL | ( | len | ) | current_utb->extract_ucn_literal(len) |
Extracts literal of length len from buffer.
Definition at line 4336 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define EXTRACT_UCN_NUMBER | ( | len | ) | current_utb->extract_simple_ucn(len,false) |
Extracts number with ucn of length len from buffer.
Definition at line 4330 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define EXTRACT_UNTIL | ( | stop | ) | current_utb->extract_until(stop) |
Extracts ordinary sequence until stop character from buffer.
Definition at line 4324 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define FLEX_BETA |
Definition at line 13 of file pp_lex_guts.yy.cc.
| #define FLEX_SCANNER |
Definition at line 8 of file pp_lex_guts.yy.cc.
| #define include 1 |
| #define INITIAL 0 |
Definition at line 4386 of file pp_lex_guts.yy.cc.
| #define INT16_MAX (32767) |
Definition at line 61 of file pp_lex_guts.yy.cc.
| #define INT16_MIN (-32767-1) |
Definition at line 52 of file pp_lex_guts.yy.cc.
| #define INT32_MAX (2147483647) |
Definition at line 64 of file pp_lex_guts.yy.cc.
| #define INT32_MIN (-2147483647-1) |
Definition at line 55 of file pp_lex_guts.yy.cc.
| #define INT8_MAX (127) |
Definition at line 58 of file pp_lex_guts.yy.cc.
| #define INT8_MIN (-128) |
Definition at line 49 of file pp_lex_guts.yy.cc.
| #define line 2 |
| #define LOCGET current_ppl->location_create() |
Returns the saved location.
Definition at line 4322 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define LOCSAVE current_ppl->location_save() |
Saves location of the next token in buffer.
Definition at line 4320 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define PEEK current_utb->peek_front() |
Returns next token from buffer.
Definition at line 4318 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define REJECT reject_used_but_not_detected |
Definition at line 4192 of file pp_lex_guts.yy.cc.
| #define SKIP | ( | num | ) | current_utb->advance(num) |
Skips supplied count of tokens.
Definition at line 4316 of file pp_lex_guts.yy.cc.
Referenced by lexer_parse().
| #define UINT16_MAX (65535U) |
Definition at line 70 of file pp_lex_guts.yy.cc.
| #define UINT32_MAX (4294967295U) |
Definition at line 73 of file pp_lex_guts.yy.cc.
| #define UINT8_MAX (255U) |
Definition at line 67 of file pp_lex_guts.yy.cc.
| #define unput | ( | c | ) | yyunput( c, (yytext_ptr) ) |
Definition at line 167 of file pp_lex_guts.yy.cc.
| #define YY_AT_BOL | ( | ) | (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) |
Definition at line 323 of file pp_lex_guts.yy.cc.
| #define YY_BREAK break; |
Definition at line 4525 of file pp_lex_guts.yy.cc.
| #define YY_BUF_SIZE 16384 |
Definition at line 131 of file pp_lex_guts.yy.cc.
| #define YY_BUFFER_EOF_PENDING 2 |
Definition at line 239 of file pp_lex_guts.yy.cc.
| #define YY_BUFFER_NEW 0 |
Definition at line 227 of file pp_lex_guts.yy.cc.
| #define YY_BUFFER_NORMAL 1 |
Definition at line 228 of file pp_lex_guts.yy.cc.
| #define YY_CURRENT_BUFFER |
Value:
( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL)
Definition at line 255 of file pp_lex_guts.yy.cc.
| #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] |
Definition at line 262 of file pp_lex_guts.yy.cc.
| #define YY_DECL ptr<pp_token> lexer_parse(bool line_start) |
| #define YY_DO_BEFORE_ACTION |
Value:
(yytext_ptr) = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp;
Definition at line 351 of file pp_lex_guts.yy.cc.
| #define YY_END_OF_BUFFER 181 |
Definition at line 359 of file pp_lex_guts.yy.cc.
| #define YY_END_OF_BUFFER_CHAR 0 |
Definition at line 127 of file pp_lex_guts.yy.cc.
| #define YY_EXIT_FAILURE 2 |
Definition at line 7394 of file pp_lex_guts.yy.cc.
| #define YY_EXTRA_TYPE void * |
Definition at line 4401 of file pp_lex_guts.yy.cc.
| #define YY_FATAL_ERROR | ( | msg | ) | yy_fatal_error( msg ) |
Definition at line 4500 of file pp_lex_guts.yy.cc.
| #define YY_FLEX_MAJOR_VERSION 2 |
Definition at line 9 of file pp_lex_guts.yy.cc.
| #define YY_FLEX_MINOR_VERSION 5 |
Definition at line 10 of file pp_lex_guts.yy.cc.
| #define YY_FLEX_SUBMINOR_VERSION 33 |
Definition at line 11 of file pp_lex_guts.yy.cc.
| #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) |
Definition at line 291 of file pp_lex_guts.yy.cc.
| #define YY_INPUT | ( | buf, | |||
| result, | |||||
| max_size | ) |
Value:
{ \
result = current_ppl->yy_input(buf,max_size); \
}
Definition at line 4305 of file pp_lex_guts.yy.cc.
| #define YY_INT_ALIGNED short int |
Definition at line 4 of file pp_lex_guts.yy.cc.
| #define YY_LESS_LINENO | ( | n | ) |
Definition at line 151 of file pp_lex_guts.yy.cc.
| #define YY_MORE_ADJ 0 |
Definition at line 4194 of file pp_lex_guts.yy.cc.
| #define yy_new_buffer yy_create_buffer |
Definition at line 301 of file pp_lex_guts.yy.cc.
| #define YY_NEW_FILE yyrestart(yyin ) |
Definition at line 125 of file pp_lex_guts.yy.cc.
| #define YY_NO_INPUT 1 |
Definition at line 4348 of file pp_lex_guts.yy.cc.
| #define YY_NULL 0 |
Definition at line 99 of file pp_lex_guts.yy.cc.
| #define YY_NUM_RULES 180 |
Definition at line 358 of file pp_lex_guts.yy.cc.
| #define YY_READ_BUF_SIZE 8192 |
Definition at line 4438 of file pp_lex_guts.yy.cc.
| #define YY_RESTORE_YY_MORE_OFFSET |
Definition at line 4195 of file pp_lex_guts.yy.cc.
| #define YY_RULE_SETUP YY_USER_ACTION |
Definition at line 4528 of file pp_lex_guts.yy.cc.
| #define YY_SC_TO_UI | ( | c | ) | ((unsigned int) (unsigned char) c) |
Definition at line 106 of file pp_lex_guts.yy.cc.
| #define yy_set_bol | ( | at_bol | ) |
Value:
{ \
if ( ! YY_CURRENT_BUFFER ){\
yyensure_buffer_stack (); \
YY_CURRENT_BUFFER_LVALUE = \
yy_create_buffer(yyin,YY_BUF_SIZE ); \
} \
YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
}
Definition at line 313 of file pp_lex_guts.yy.cc.
| #define yy_set_interactive | ( | is_interactive | ) |
Value:
{ \
if ( ! YY_CURRENT_BUFFER ){ \
yyensure_buffer_stack (); \
YY_CURRENT_BUFFER_LVALUE = \
yy_create_buffer(yyin,YY_BUF_SIZE ); \
} \
YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
}
Definition at line 303 of file pp_lex_guts.yy.cc.
| #define YY_SKIP_YYWRAP |
Definition at line 328 of file pp_lex_guts.yy.cc.
| #define YY_START (((yy_start) - 1) / 2) |
Definition at line 118 of file pp_lex_guts.yy.cc.
| #define YY_START_STACK_INCR 25 |
Definition at line 4495 of file pp_lex_guts.yy.cc.
| #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) |
Definition at line 136 of file pp_lex_guts.yy.cc.
| #define YY_STATE_EOF | ( | state | ) | (YY_END_OF_BUFFER + state + 1) |
Definition at line 122 of file pp_lex_guts.yy.cc.
| #define YY_USER_ACTION |
Value:
{ \
/* avoid the warning: address requested for `yy_act', which is declared `register' */ \
int copy_yy_act = yy_act ; \
pp_lex_guts_logger << "Rule #" << copy_yy_act << " matched `" << escape_nonprintable(yytext) << "'\n" << msg::eolog; \
}
Definition at line 4297 of file pp_lex_guts.yy.cc.
| #define yyconst |
Definition at line 95 of file pp_lex_guts.yy.cc.
| #define yyless | ( | n | ) |
Value:
do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 )
Definition at line 7407 of file pp_lex_guts.yy.cc.
| #define yyless | ( | n | ) |
Value:
do \ { \ /* Undo effects of setting up yytext. */ \ 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 yytext again */ \ } \ while ( 0 )
Definition at line 7407 of file pp_lex_guts.yy.cc.
| #define yymore | ( | ) | yymore_used_but_not_detected |
Definition at line 4193 of file pp_lex_guts.yy.cc.
| #define YYSTATE YY_START |
Definition at line 119 of file pp_lex_guts.yy.cc.
| #define YYTABLES_NAME "yytables" |
Definition at line 7597 of file pp_lex_guts.yy.cc.
| #define yyterminate | ( | ) | return pp_token::create(LOCGET,pp_token::TOK_FILE_END) |
Handles encountering real EOF, which should not happen, formal definition.
Definition at line 4279 of file pp_lex_guts.yy.cc.
| #define yytext_ptr yytext |
Definition at line 341 of file pp_lex_guts.yy.cc.
| #define yywrap | ( | n | ) | 1 |
Definition at line 327 of file pp_lex_guts.yy.cc.
| typedef short int flex_int16_t |
Definition at line 40 of file pp_lex_guts.yy.cc.
| typedef int flex_int32_t |
Definition at line 41 of file pp_lex_guts.yy.cc.
| typedef signed char flex_int8_t |
Definition at line 39 of file pp_lex_guts.yy.cc.
| typedef unsigned short int flex_uint16_t |
Definition at line 43 of file pp_lex_guts.yy.cc.
| typedef unsigned int flex_uint32_t |
Definition at line 44 of file pp_lex_guts.yy.cc.
| typedef unsigned char flex_uint8_t |
Definition at line 42 of file pp_lex_guts.yy.cc.
| typedef struct yy_buffer_state* YY_BUFFER_STATE |
Definition at line 140 of file pp_lex_guts.yy.cc.
| typedef unsigned char YY_CHAR |
Definition at line 330 of file pp_lex_guts.yy.cc.
| typedef unsigned int yy_size_t |
Definition at line 176 of file pp_lex_guts.yy.cc.
| typedef int yy_state_type |
Definition at line 334 of file pp_lex_guts.yy.cc.
| lstring escape_nonprintable | ( | const lstring & | inp | ) |
Definition at line 4281 of file pp_lex_guts.yy.cc.
04282 { 04283 ::std::stringbuf sb; 04284 ::std::ostream os(&sb); 04285 04286 for (lstring::const_iterator it = inp.begin(), end = inp.end(); it != end; ++it) { 04287 char c = *it; 04288 if (isprint(c)) 04289 os << c; 04290 else 04291 os << "\\x" << ::std::hex << ::std::setfill('0') << ::std::setw(2) << (ulint)c; 04292 } 04293 return sb.str(); 04294 }
| ptr< pp_token > lexer_parse | ( | bool | line_start | ) |
The main scanner function which does all the work.
Definition at line 4533 of file pp_lex_guts.yy.cc.
References ADVANCE, BEGIN, directive, directive_name, ECHO, lestes::lang::cplus::lex::empty_character_constant(), EOB_ACT_CONTINUE_SCAN, EOB_ACT_END_OF_FILE, EOB_ACT_LAST_MATCH, lestes::msg::eolog, EXTRACT_BAD_IDENTIFIER, EXTRACT_BAD_LITERAL, EXTRACT_BAD_NUMBER, EXTRACT_ORDINARY, EXTRACT_UCN_IDENTIFIER, EXTRACT_UCN_LITERAL, EXTRACT_UCN_NUMBER, EXTRACT_UNTIL, include, INITIAL, line, loc, LOCGET, LOCSAVE, lestes::lang::cplus::lex::missing_terminating_dquote(), lestes::lang::cplus::lex::missing_terminating_quote(), PEEK, lestes::report(), SKIP, TOK_AMP, TOK_AMP_AMP, TOK_AMP_EQ, TOK_ASM, TOK_AUTO, TOK_BOOL, TOK_BREAK, TOK_CASE, TOK_CATCH, TOK_CHAR, TOK_CLASS, TOK_COLON, TOK_COLON_COLON, TOK_COMMA, TOK_CONST, TOK_CONST_CAST, TOK_CONTINUE, TOK_DEFAULT, TOK_DELETE, TOK_DO, TOK_DOT, TOK_DOT_DOT_DOT, TOK_DOT_STAR, TOK_DOUBLE, TOK_DYNAMIC_CAST, TOK_ELSE, TOK_ENUM, TOK_EQ, TOK_EQ_EQ, TOK_ERROR, TOK_EXPLICIT, TOK_EXPORT, TOK_EXTERN, TOK_FLOAT, TOK_FOR, TOK_FRIEND, TOK_GOTO, TOK_GT, TOK_GT_EQ, TOK_GT_GT, TOK_GT_GT_EQ, TOK_HAT, TOK_HAT_EQ, TOK_IDENT, TOK_IF, TOK_INLINE, TOK_INT, TOK_LEFT_BRACE, TOK_LEFT_BRACKET, TOK_LEFT_PAR, TOK_LONG, TOK_LT, TOK_LT_EQ, TOK_LT_LT, TOK_LT_LT_EQ, TOK_MINUS, TOK_MINUS_EQ, TOK_MINUS_GT, TOK_MINUS_GT_STAR, TOK_MINUS_MINUS, TOK_MUTABLE, TOK_NAMESPACE, TOK_NEW, TOK_OPERATOR, TOK_PERCENT, TOK_PERCENT_EQ, TOK_PLUS, TOK_PLUS_EQ, TOK_PLUS_PLUS, TOK_PRIVATE, TOK_PROTECTED, TOK_PUBLIC, TOK_QMARK, TOK_REGISTER, TOK_REINTERPRET_CAST, TOK_RETURN, TOK_RIGHT_BRACE, TOK_RIGHT_BRACKET, TOK_RIGHT_PAR, TOK_SEMICOLON, TOK_SHORT, TOK_SIGNED, TOK_SIZEOF, TOK_SLASH, TOK_SLASH_EQ, TOK_STAR, TOK_STAR_EQ, TOK_STATIC, TOK_STATIC_CAST, TOK_STRUCT, TOK_SWITCH, TOK_TEMPLATE, TOK_THIS, TOK_THROW, TOK_TILDE, TOK_TRY, TOK_TYPEDEF, TOK_TYPEID, TOK_TYPENAME, TOK_UNION, TOK_UNSIGNED, TOK_USING, TOK_VBAR, TOK_VBAR_EQ, TOK_VBAR_VBAR, TOK_VIRTUAL, TOK_VOID, TOK_VOLATILE, TOK_WHILE, lestes::lang::cplus::lex::unterminated_comment(), YY_BREAK, YY_BUF_SIZE, YY_BUFFER_NEW, YY_BUFFER_NORMAL, yy_c_buf_p, yy_create_buffer(), YY_CURRENT_BUFFER, YY_CURRENT_BUFFER_LVALUE, yy_did_buffer_switch_on_eof, YY_DO_BEFORE_ACTION, YY_END_OF_BUFFER, YY_FATAL_ERROR, yy_get_next_buffer(), yy_get_previous_state(), yy_hold_char, yy_init, yy_load_buffer_state(), YY_MORE_ADJ, yy_n_chars, YY_NEW_FILE, YY_RESTORE_YY_MORE_OFFSET, YY_RULE_SETUP, YY_SC_TO_UI, YY_START, yy_start, YY_STATE_EOF, yy_try_NUL_trans(), yyensure_buffer_stack(), yyin, yyleng, yyless, yyout, yyterminate, yytext_ptr, and yywrap.
Referenced by lestes::lang::cplus::lex::pp_lex::read().
04534 { 04535 register yy_state_type yy_current_state; 04536 register char *yy_cp, *yy_bp; 04537 register int yy_act; 04538 04539 if (line_start) 04540 BEGIN(directive); 04541 04542 if ( !(yy_init) ) 04543 { 04544 (yy_init) = 1; 04545 04546 #ifdef YY_USER_INIT 04547 YY_USER_INIT; 04548 #endif 04549 04550 if ( ! (yy_start) ) 04551 (yy_start) = 1; /* first start state */ 04552 04553 if ( ! yyin ) 04554 yyin = stdin; 04555 04556 if ( ! yyout ) 04557 yyout = stdout; 04558 04559 if ( ! YY_CURRENT_BUFFER ) { 04560 yyensure_buffer_stack (); 04561 YY_CURRENT_BUFFER_LVALUE = 04562 yy_create_buffer(yyin,YY_BUF_SIZE ); 04563 } 04564 04565 yy_load_buffer_state( ); 04566 } 04567 04568 while ( 1 ) /* loops until end-of-file is reached */ 04569 { 04570 yy_cp = (yy_c_buf_p); 04571 04572 /* Support of yytext. */ 04573 *yy_cp = (yy_hold_char); 04574 04575 /* yy_bp points to the position in yy_ch_buf of the start of 04576 * the current run. 04577 */ 04578 yy_bp = yy_cp; 04579 04580 yy_current_state = (yy_start); 04581 yy_match: 04582 do 04583 { 04584 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 04585 if ( yy_accept[yy_current_state] ) 04586 { 04587 (yy_last_accepting_state) = yy_current_state; 04588 (yy_last_accepting_cpos) = yy_cp; 04589 } 04590 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 04591 { 04592 yy_current_state = (int) yy_def[yy_current_state]; 04593 if ( yy_current_state >= 1094 ) 04594 yy_c = yy_meta[(unsigned int) yy_c]; 04595 } 04596 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 04597 ++yy_cp; 04598 } 04599 while ( yy_base[yy_current_state] != 15182 ); 04600 04601 yy_find_action: 04602 yy_act = yy_accept[yy_current_state]; 04603 if ( yy_act == 0 ) 04604 { /* have to back up */ 04605 yy_cp = (yy_last_accepting_cpos); 04606 yy_current_state = (yy_last_accepting_state); 04607 yy_act = yy_accept[yy_current_state]; 04608 } 04609 04610 YY_DO_BEFORE_ACTION; 04611 04612 do_action: /* This label is used only to access EOF actions. */ 04613 04614 switch ( yy_act ) 04615 { /* beginning of action switch */ 04616 case 0: /* must back up */ 04617 /* undo the effects of YY_DO_BEFORE_ACTION */ 04618 *yy_cp = (yy_hold_char); 04619 yy_cp = (yy_last_accepting_cpos); 04620 yy_current_state = (yy_last_accepting_state); 04621 goto yy_find_action; 04622 04623 case 1: 04624 /* rule 1 can match eol */ 04625 YY_RULE_SETUP 04626 { 04627 pp_lex_guts_logger << "line comment\n" << msg::eolog; 04628 04629 LOCSAVE; 04630 /* leave newline in buffer */ 04631 ulint len = yyleng - 1; 04632 yyless(len); 04633 SKIP(len); 04634 return pp_token::create(LOCGET,pp_token::TOK_BLANK); 04635 } 04636 YY_BREAK 04637 case 2: 04638 /* rule 2 can match eol */ 04639 YY_RULE_SETUP 04640 { 04641 pp_lex_guts_logger << "long comment\n" << msg::eolog; 04642 04643 LOCSAVE; 04644 ADVANCE; 04645 return pp_token::create(LOCGET,pp_token::TOK_BLANK); 04646 } 04647 YY_BREAK 04648 case 3: 04649 /* rule 3 can match eol */ 04650 YY_RULE_SETUP 04651 { 04652 pp_lex_guts_logger << "unterminated long comment\n" << msg::eolog; 04653 04654 LOCSAVE; 04655 04656 /* leave the implicit new line and EOF in buffer */ 04657 ulint len = yyleng - 2; 04658 yyless(len); 04659 SKIP(len); 04660 04661 ptr<source_location> loc = LOCGET; 04662 04663 /* error: eof within comment == unterminated comment */ 04664 report << unterminated_comment << loc; 04665 04666 return pp_token::create(loc,pp_token::TOK_BLANK); 04667 } 04668 YY_BREAK 04669 /* character literal without ucn escape sequences */ 04670 case 4: 04671 YY_RULE_SETUP 04672 { 04673 pp_lex_guts_logger << "character literal without escaped ucn\n" << msg::eolog; 04674 04675 LOCSAVE; 04676 /* the beginning quote */ 04677 SKIP(1); 04678 ptr<token_value> tv(EXTRACT_ORDINARY(yyleng - 2)); 04679 /* the ending quote */ 04680 SKIP(1); 04681 return pp_token::create(LOCGET,pp_token::TOK_CHAR_LIT,tv); 04682 } 04683 YY_BREAK 04684 /* wide character literal without ucn escape sequences */ 04685 case 5: 04686 YY_RULE_SETUP 04687 { 04688 pp_lex_guts_logger << "wide character literal without escaped ucn\n" << msg::eolog; 04689 04690 LOCSAVE; 04691 /* the beginning L and quote */ 04692 SKIP(2); 04693 ptr<token_value> tv(EXTRACT_ORDINARY(yyleng - 3)); 04694 /* the ending quote */ 04695 SKIP(1); 04696 return pp_token::create(LOCGET,pp_token::TOK_WCHAR_LIT,tv); 04697 } 04698 YY_BREAK 04699 /* character literal with ucn escape sequences */ 04700 case 6: 04701 YY_RULE_SETUP 04702 { 04703 pp_lex_guts_logger << "character literal with escaped ucn\n" << msg::eolog; 04704 04705 LOCSAVE; 04706 /* the beginning quote */ 04707 SKIP(1); 04708 ptr<token_value> tv(EXTRACT_UCN_LITERAL(yyleng - 2)); 04709 /* the ending quote */ 04710 SKIP(1); 04711 return pp_token::create(LOCGET,pp_token::TOK_CHAR_LIT,tv); 04712 } 04713 YY_BREAK 04714 /* wide character literal with ucn escape sequences */ 04715 case 7: 04716 YY_RULE_SETUP 04717 { 04718 pp_lex_guts_logger << "wide character literal with escaped ucn\n" << msg::eolog; 04719 04720 LOCSAVE; 04721 /* the beginning L and quote */ 04722 SKIP(2); 04723 ptr<token_value> tv(EXTRACT_UCN_LITERAL(yyleng - 3)); 04724 /* the ending quote */ 04725 SKIP(1); 04726 return pp_token::create(LOCGET,pp_token::TOK_WCHAR_LIT,tv); 04727 } 04728 YY_BREAK 04729 /* empty, malformed or unterminated character literal */ 04730 case 8: 04731 /* rule 8 can match eol */ 04732 YY_RULE_SETUP 04733 { 04734 pp_lex_guts_logger << "character literal with errors\n" << msg::eolog; 04735 04736 LOCSAVE; 04737 04738 ptr<source_location> loc = LOCGET; 04739 04740 bool empty = false; 04741 /* the beginning quote */ 04742 SKIP(1); 04743 ptr<token_value> tv; 04744 if (yyleng == 2) { 04745 /* empty character literal */ 04746 report << empty_character_constant << loc; 04747 empty = true; 04748 } else { 04749 tv = EXTRACT_BAD_LITERAL(yyleng - 2); 04750 empty = tv->content_get().size() == 0; 04751 } 04752 04753 if (empty) { 04754 /* make nonempty character literal */ 04755 tv = token_value::create("\\0"); 04756 } 04757 04758 ptr<ucn_token> ut = PEEK; 04759 /* check ending quote */ 04760 if (ut->type_get() == ucn_token::TOK_BASIC && 04761 ut->value_get() == character::ascii_quote) { 04762 /* skip the quote */ 04763 SKIP(1); 04764 } else { 04765 /* return the last character */ 04766 yyless(yyleng - 1); 04767 /* missing terminating ' character */ 04768 report << missing_terminating_quote << loc; 04769 } 04770 04771 return pp_token::create(loc,pp_token::TOK_CHAR_LIT,tv); 04772 } 04773 YY_BREAK 04774 /* empty, malformed or unterminated wide character literal */ 04775 case 9: 04776 /* rule 9 can match eol */ 04777 YY_RULE_SETUP 04778 { 04779 pp_lex_guts_logger << "wide character literal with errors\n" << msg::eolog; 04780 04781 LOCSAVE; 04782 ptr<source_location> loc = LOCGET; 04783 04784 bool empty = false; 04785 /* the beginning L and quote */ 04786 SKIP(2); 04787 ptr<token_value> tv; 04788 if (yyleng == 3) { 04789 /* empty character constant */ 04790 report << empty_character_constant << loc; 04791 empty = true; 04792 } else { 04793 tv = EXTRACT_BAD_LITERAL(yyleng - 3); 04794 empty = tv->content_get().size() == 0; 04795 } 04796 04797 if (empty) { 04798 /* make nonempty wide character literal */ 04799 tv = token_value::create("\\0"); 04800 } 04801 04802 ptr<ucn_token> ut = PEEK; 04803 /* check ending quote */ 04804 if (ut->type_get() == ucn_token::TOK_BASIC && 04805 ut->value_get() == character::ascii_quote) { 04806 /* skip the quote */ 04807 SKIP(1); 04808 } else { 04809 /* return the last character */ 04810 yyless(yyleng - 1); 04811 /* missing terminating ' character */ 04812 report << missing_terminating_quote << loc; 04813 } 04814 04815 return pp_token::create(LOCGET,pp_token::TOK_WCHAR_LIT,tv); 04816 } 04817 YY_BREAK 04818 /* string literal without ucn escape sequences */ 04819 case 10: 04820 YY_RULE_SETUP 04821 { 04822 pp_lex_guts_logger << "string literal without escaped ucn\n" << msg::eolog; 04823 04824 LOCSAVE; 04825 /* the beginning dquote */ 04826 SKIP(1); 04827 ptr<token_value> tv(EXTRACT_ORDINARY(yyleng - 2)); 04828 /* the ending dquote */ 04829 SKIP(1); 04830 return pp_token::create(LOCGET,pp_token::TOK_STRING_LIT,tv); 04831 } 04832 YY_BREAK 04833 /* wide string literal without ucn escape sequences */ 04834 case 11: 04835 YY_RULE_SETUP 04836 { 04837 pp_lex_guts_logger << "wide string literal without escaped ucn\n" << msg::eolog; 04838 04839 LOCSAVE; 04840 /* the beginning L and dquote */ 04841 SKIP(2); 04842 ptr<token_value> tv(EXTRACT_ORDINARY(yyleng - 3)); 04843 /* the ending dquote */ 04844 SKIP(1); 04845 return pp_token::create(LOCGET,pp_token::TOK_WSTRING_LIT,tv); 04846 } 04847 YY_BREAK 04848 /* string literal with ucn escape sequences */ 04849 case 12: 04850 YY_RULE_SETUP 04851 { 04852 pp_lex_guts_logger << "string literal with escaped ucn\n" << msg::eolog; 04853 04854 LOCSAVE; 04855 /* the beginning dquote */ 04856 SKIP(1); 04857 ptr<token_value> tv(EXTRACT_UCN_LITERAL(yyleng - 2)); 04858 /* the ending dquote */ 04859 SKIP(1); 04860 return pp_token::create(LOCGET,pp_token::TOK_STRING_LIT,tv); 04861 } 04862 YY_BREAK 04863 /* wide string literal with ucn escape sequences */ 04864 case 13: 04865 YY_RULE_SETUP 04866 { 04867 pp_lex_guts_logger << "wide string literal with escaped ucn\n" << msg::eolog; 04868 04869 LOCSAVE; 04870 /* the beginning L and dquote */ 04871 SKIP(2); 04872 ptr<token_value> tv(EXTRACT_UCN_LITERAL(yyleng - 3)); 04873 /* the ending dquote */ 04874 SKIP(1); 04875 return pp_token::create(LOCGET,pp_token::TOK_WSTRING_LIT,tv); 04876 } 04877 YY_BREAK 04878 /* malformed or unterminated string literal */ 04879 case 14: 04880 /* rule 14 can match eol */ 04881 YY_RULE_SETUP 04882 { 04883 pp_lex_guts_logger << "wide string literal with errors\n" << msg::eolog; 04884 04885 LOCSAVE; 04886 ptr<source_location> loc = LOCGET; 04887 04888 /* the beginning dquote */ 04889 SKIP(1); 04890 ptr<token_value> tv(EXTRACT_BAD_LITERAL(yyleng - 2)); 04891 04892 ptr<ucn_token> ut = PEEK; 04893 /* check ending dquote */ 04894 if (ut->type_get() == ucn_token::TOK_BASIC && 04895 ut->value_get() == character::ascii_dquote) { 04896 /* skip the dquote */ 04897 SKIP(1); 04898 } else { 04899 /* return the last character */ 04900 yyless(yyleng - 1); 04901 /* missing terminating " character */ 04902 report << missing_terminating_dquote << loc; 04903 } 04904 04905 return pp_token::create(loc,pp_token::TOK_STRING_LIT,tv); 04906 } 04907 YY_BREAK 04908 /* malformed or unterminated wide string literal */ 04909 case 15: 04910 /* rule 15 can match eol */ 04911 YY_RULE_SETUP 04912 { 04913 pp_lex_guts_logger << "wide string literal with errors\n" << msg::eolog; 04914 04915 LOCSAVE; 04916 ptr<source_location> loc = LOCGET; 04917 04918 /* the beginning L and dquote */ 04919 SKIP(2); 04920 ptr<token_value> tv(EXTRACT_BAD_LITERAL(yyleng - 3)); 04921 04922 ptr<ucn_token> ut = PEEK; 04923 /* check ending dquote */ 04924 if (ut->type_get() == ucn_token::TOK_BASIC && 04925 ut->value_get() == character::ascii_dquote) { 04926 /* skip the dquote */ 04927 SKIP(1); 04928 } else { 04929 /* return the last character */ 04930 yyless(yyleng - 1); 04931 /* missing terminating " character */ 04932 report << missing_terminating_dquote << loc; 04933 } 04934 04935 return pp_token::create(loc,pp_token::TOK_WSTRING_LIT,tv); 04936 } 04937 YY_BREAK 04938 case 16: 04939 YY_RULE_SETUP 04940 { 04941 pp_lex_guts_logger << "blanks\n" << msg::eolog; 04942 04943 LOCSAVE; 04944 ADVANCE; 04945 return pp_token::create(LOCGET,pp_token::TOK_BLANK); 04946 } 04947 YY_BREAK 04948 case 17: 04949 /* rule 17 can match eol */ 04950 YY_RULE_SETUP 04951 { 04952 pp_lex_guts_logger << "new line\n" << msg::eolog; 04953 04954 LOCSAVE; 04955 ADVANCE; 04956 return pp_token::create(LOCGET,pp_token::TOK_LINE_END); 04957 } 04958 YY_BREAK 04959 case 18: 04960 YY_RULE_SETUP 04961 { 04962 pp_lex_guts_logger << "left_bracket\n" << msg::eolog; 04963 04964 LOCSAVE; 04965 ADVANCE; 04966 return pp_token::create(LOCGET,pp_token::TOK_LEFT_BRACKET); 04967 } 04968 YY_BREAK 04969 case 19: 04970 YY_RULE_SETUP 04971 { 04972 pp_lex_guts_logger << "left_bracket\n" << msg::eolog; 04973 04974 LOCSAVE; 04975 ADVANCE; 04976 return pp_token::create_alternative(LOCGET,pp_token::TOK_LEFT_BRACKET); 04977 } 04978 YY_BREAK 04979 case 20: 04980 YY_RULE_SETUP 04981 { 04982 pp_lex_guts_logger << "right_bracket\n" << msg::eolog; 04983 04984 LOCSAVE; 04985 ADVANCE; 04986 return pp_token::create(LOCGET,pp_token::TOK_RIGHT_BRACKET); 04987 } 04988 YY_BREAK 04989 case 21: 04990 YY_RULE_SETUP 04991 { 04992 pp_lex_guts_logger << "right_bracket\n" << msg::eolog; 04993 04994 LOCSAVE; 04995 ADVANCE; 04996 return pp_token::create_alternative(LOCGET,pp_token::TOK_RIGHT_BRACKET); 04997 } 04998 YY_BREAK 04999 case 22: 05000 YY_RULE_SETUP 05001 { 05002 pp_lex_guts_logger << "left_brace\n" << msg::eolog; 05003 05004 LOCSAVE; 05005 ADVANCE; 05006 return pp_token::create(LOCGET,pp_token::TOK_LEFT_BRACE); 05007 } 05008 YY_BREAK 05009 case 23: 05010 YY_RULE_SETUP 05011 { 05012 pp_lex_guts_logger << "left_brace\n" << msg::eolog; 05013 05014 LOCSAVE; 05015 ADVANCE; 05016 return pp_token::create_alternative(LOCGET,pp_token::TOK_LEFT_BRACE); 05017 } 05018 YY_BREAK 05019 case 24: 05020 YY_RULE_SETUP 05021 { 05022 pp_lex_guts_logger << "right_brace\n" << msg::eolog; 05023 05024 LOCSAVE; 05025 ADVANCE; 05026 return pp_token::create(LOCGET,pp_token::TOK_RIGHT_BRACE); 05027 } 05028 YY_BREAK 05029 case 25: 05030 YY_RULE_SETUP 05031 { 05032 pp_lex_guts_logger << "right_brace\n" << msg::eolog; 05033 05034 LOCSAVE; 05035 ADVANCE; 05036 return pp_token::create_alternative(LOCGET,pp_token::TOK_RIGHT_BRACE); 05037 } 05038 YY_BREAK 05039 case 26: 05040 YY_RULE_SETUP 05041 { 05042 pp_lex_guts_logger << "hash\n" << msg::eolog; 05043 05044 LOCSAVE; 05045 ADVANCE; 05046 return pp_token::create(LOCGET,pp_token::TOK_HASH); 05047 } 05048 YY_BREAK 05049 case 27: 05050 YY_RULE_SETUP 05051 { 05052 pp_lex_guts_logger << "hash\n" << msg::eolog; 05053 05054 LOCSAVE; 05055 ADVANCE; 05056 return pp_token::create_alternative(LOCGET,pp_token::TOK_HASH); 05057 } 05058 YY_BREAK 05059 case 28: 05060 YY_RULE_SETUP 05061 { 05062 pp_lex_guts_logger << "hash_hash\n" << msg::eolog; 05063 05064 LOCSAVE; 05065 ADVANCE; 05066 return pp_token::create(LOCGET,pp_token::TOK_HASH_HASH); 05067 } 05068 YY_BREAK 05069 case 29: 05070 YY_RULE_SETUP 05071 { 05072 pp_lex_guts_logger << "hash_hash\n" << msg::eolog; 05073 05074 LOCSAVE; 05075 ADVANCE; 05076 return pp_token::create_alternative(LOCGET,pp_token::TOK_HASH_HASH); 05077 } 05078 YY_BREAK 05079 case 30: 05080 YY_RULE_SETUP 05081 { 05082 pp_lex_guts_logger << "left_par\n" << msg::eolog; 05083 05084 LOCSAVE; 05085 ADVANCE; 05086 return pp_token::create(LOCGET,pp_token::TOK_LEFT_PAR); 05087 } 05088 YY_BREAK 05089 case 31: 05090 YY_RULE_SETUP 05091 { 05092 pp_lex_guts_logger << "right_par\n" << msg::eolog; 05093 05094 LOCSAVE; 05095 ADVANCE; 05096 return pp_token::create(LOCGET,pp_token::TOK_RIGHT_PAR); 05097 } 05098 YY_BREAK 05099 case 32: 05100 YY_RULE_SETUP 05101 { 05102 pp_lex_guts_logger << "semicolon\n" << msg::eolog; 05103 05104 LOCSAVE; 05105 ADVANCE; 05106 return pp_token::create(LOCGET,pp_token::TOK_SEMICOLON); 05107 } 05108 YY_BREAK 05109 case 33: 05110 YY_RULE_SETUP 05111 { 05112 pp_lex_guts_logger << "colon\n" << msg::eolog; 05113 05114 LOCSAVE; 05115 ADVANCE; 05116 return pp_token::create(LOCGET,pp_token::TOK_COLON); 05117 } 05118 YY_BREAK 05119 case 34: 05120 YY_RULE_SETUP 05121 { 05122 pp_lex_guts_logger << "qmark\n" << msg::eolog; 05123 05124 LOCSAVE; 05125 ADVANCE; 05126 return pp_token::create(LOCGET,pp_token::TOK_QMARK); 05127 } 05128 YY_BREAK 05129 case 35: 05130 YY_RULE_SETUP 05131 { 05132 pp_lex_guts_logger << "dot\n" << msg::eolog; 05133 05134 LOCSAVE; 05135 ADVANCE; 05136 return pp_token::create(LOCGET,pp_token::TOK_DOT); 05137 } 05138 YY_BREAK 05139 case 36: 05140 YY_RULE_SETUP 05141 { 05142 pp_lex_guts_logger << "plus\n" << msg::eolog; 05143 05144 LOCSAVE; 05145 ADVANCE; 05146 return pp_token::create(LOCGET,pp_token::TOK_PLUS); 05147 } 05148 YY_BREAK 05149 case 37: 05150 YY_RULE_SETUP 05151 { 05152 pp_lex_guts_logger << "star\n" << msg::eolog; 05153 05154 LOCSAVE; 05155 ADVANCE; 05156 return pp_token::create(LOCGET,pp_token::TOK_STAR); 05157 } 05158 YY_BREAK 05159 case 38: 05160 YY_RULE_SETUP 05161 { 05162 pp_lex_guts_logger << "percent\n" << msg::eolog; 05163 05164 LOCSAVE; 05165 ADVANCE; 05166 return pp_token::create(LOCGET,pp_token::TOK_PERCENT); 05167 } 05168 YY_BREAK 05169 case 39: 05170 YY_RULE_SETUP 05171 { 05172 pp_lex_guts_logger << "slash\n" << msg::eolog; 05173 05174 LOCSAVE; 05175 ADVANCE; 05176 return pp_token::create(LOCGET,pp_token::TOK_SLASH); 05177 } 05178 YY_BREAK 05179 case 40: 05180 YY_RULE_SETUP 05181 { 05182 pp_lex_guts_logger << "hat\n" << msg::eolog; 05183 05184 LOCSAVE; 05185 ADVANCE; 05186 return pp_token::create(LOCGET,pp_token::TOK_HAT); 05187 } 05188 YY_BREAK 05189 case 41: 05190 YY_RULE_SETUP 05191 { 05192 pp_lex_guts_logger << "hat\n" << msg::eolog; 05193 05194 LOCSAVE; 05195 ADVANCE; 05196 return pp_token::create_alternative(LOCGET,pp_token::TOK_HAT); 05197 } 05198 YY_BREAK 05199 case 42: 05200 YY_RULE_SETUP 05201 { 05202 pp_lex_guts_logger << "amp\n" << msg::eolog; 05203 05204 LOCSAVE; 05205 ADVANCE; 05206 return pp_token::create(LOCGET,pp_token::TOK_AMP); 05207 } 05208 YY_BREAK 05209 case 43: 05210 YY_RULE_SETUP 05211 { 05212 pp_lex_guts_logger << "amp\n" << msg::eolog; 05213 05214 LOCSAVE; 05215 ADVANCE; 05216 return pp_token::create_alternative(LOCGET,pp_token::TOK_AMP); 05217 } 05218 YY_BREAK 05219 case 44: 05220 YY_RULE_SETUP 05221 { 05222 pp_lex_guts_logger << "vbar\n" << msg::eolog; 05223 05224 LOCSAVE; 05225 ADVANCE; 05226 return pp_token::create(LOCGET,pp_token::TOK_VBAR); 05227 } 05228 YY_BREAK 05229 case 45: 05230 YY_RULE_SETUP 05231 { 05232 pp_lex_guts_logger << "vbar\n" << msg::eolog; 05233 05234 LOCSAVE; 05235 ADVANCE; 05236 return pp_token::create_alternative(LOCGET,pp_token::TOK_VBAR); 05237 } 05238 YY_BREAK 05239 case 46: 05240 YY_RULE_SETUP 05241 { 05242 pp_lex_guts_logger << "tilde\n" << msg::eolog; 05243 05244 LOCSAVE; 05245 ADVANCE; 05246 return pp_token::create(LOCGET,pp_token::TOK_TILDE); 05247 } 05248 YY_BREAK 05249 case 47: 05250 YY_RULE_SETUP 05251 { 05252 pp_lex_guts_logger << "tilde\n" << msg::eolog; 05253 05254 LOCSAVE; 05255 ADVANCE; 05256 return pp_token::create_alternative(LOCGET,pp_token::TOK_TILDE); 05257 } 05258 YY_BREAK 05259 case 48: 05260 YY_RULE_SETUP 05261 { 05262 pp_lex_guts_logger << "emark\n" << msg::eolog; 05263 05264 LOCSAVE; 05265 ADVANCE; 05266 return pp_token::create(LOCGET,pp_token::TOK_EMARK); 05267 } 05268 YY_BREAK 05269 case 49: 05270 YY_RULE_SETUP 05271 { 05272 pp_lex_guts_logger << "emark\n" << msg::eolog; 05273 05274 LOCSAVE; 05275 ADVANCE; 05276 return pp_token::create_alternative(LOCGET,pp_token::TOK_EMARK); 05277 } 05278 YY_BREAK 05279 case 50: 05280 YY_RULE_SETUP 05281 { 05282 pp_lex_guts_logger << "eq\n" << msg::eolog; 05283 05284 LOCSAVE; 05285 ADVANCE; 05286 return pp_token::create(LOCGET,pp_token::TOK_EQ); 05287 } 05288 YY_BREAK 05289 case 51: 05290 YY_RULE_SETUP 05291 { 05292 pp_lex_guts_logger << "lt\n" << msg::eolog; 05293 05294 LOCSAVE; 05295 ADVANCE; 05296 return pp_token::create(LOCGET,pp_token::TOK_LT); 05297 } 05298 YY_BREAK 05299 case 52: 05300 YY_RULE_SETUP 05301 { 05302 pp_lex_guts_logger << "gt\n" << msg::eolog; 05303 05304 LOCSAVE; 05305 ADVANCE; 05306 return pp_token::create(LOCGET,pp_token::TOK_GT); 05307 } 05308 YY_BREAK 05309 case 53: 05310 YY_RULE_SETUP 05311 { 05312 pp_lex_guts_logger << "comma\n" << msg::eolog; 05313 05314 LOCSAVE; 05315 ADVANCE; 05316 return pp_token::create(LOCGET,pp_token::TOK_COMMA); 05317 } 05318 YY_BREAK 05319 case 54: 05320 YY_RULE_SETUP 05321 { 05322 pp_lex_guts_logger << "minus\n" << msg::eolog; 05323 05324 LOCSAVE; 05325 ADVANCE; 05326 return pp_token::create(LOCGET,pp_token::TOK_MINUS); 05327 } 05328 YY_BREAK 05329 case 55: 05330 YY_RULE_SETUP 05331 { 05332 pp_lex_guts_logger << "colon_colon\n" << msg::eolog; 05333 05334 LOCSAVE; 05335 ADVANCE; 05336 return pp_token::create(LOCGET,pp_token::TOK_COLON_COLON); 05337 } 05338 YY_BREAK 05339 case 56: 05340 YY_RULE_SETUP 05341 { 05342 pp_lex_guts_logger << "dot_star\n" << msg::eolog; 05343 05344 LOCSAVE; 05345 ADVANCE; 05346 return pp_token::create(LOCGET,pp_token::TOK_DOT_STAR); 05347 } 05348 YY_BREAK 05349 case 57: 05350 YY_RULE_SETUP 05351 { 05352 pp_lex_guts_logger << "plus_eq\n" << msg::eolog; 05353 05354 LOCSAVE; 05355 ADVANCE; 05356 return pp_token::create(LOCGET,pp_token::TOK_PLUS_EQ); 05357 } 05358 YY_BREAK 05359 case 58: 05360 YY_RULE_SETUP 05361 { 05362 pp_lex_guts_logger << "minus_eq\n" << msg::eolog; 05363 05364 LOCSAVE; 05365 ADVANCE; 05366 return pp_token::create(LOCGET,pp_token::TOK_MINUS_EQ); 05367 } 05368 YY_BREAK 05369 case 59: 05370 YY_RULE_SETUP 05371 { 05372 pp_lex_guts_logger << "star_eq\n" << msg::eolog; 05373 05374 LOCSAVE; 05375 ADVANCE; 05376 return pp_token::create(LOCGET,pp_token::TOK_STAR_EQ); 05377 } 05378 YY_BREAK 05379 case 60: 05380 YY_RULE_SETUP 05381 { 05382 pp_lex_guts_logger << "slash_eq\n" << msg::eolog; 05383 05384 LOCSAVE; 05385 ADVANCE; 05386 return pp_token::create(LOCGET,pp_token::TOK_SLASH_EQ); 05387 } 05388 YY_BREAK 05389 case 61: 05390 YY_RULE_SETUP 05391 { 05392 pp_lex_guts_logger << "percent_eq\n" << msg::eolog; 05393 05394 LOCSAVE; 05395 ADVANCE; 05396 return pp_token::create(LOCGET,pp_token::TOK_PERCENT_EQ); 05397 } 05398 YY_BREAK 05399 case 62: 05400 YY_RULE_SETUP 05401 { 05402 pp_lex_guts_logger << "hat_eq\n" << msg::eolog; 05403 05404 LOCSAVE; 05405 ADVANCE; 05406 return pp_token::create(LOCGET,pp_token::TOK_HAT_EQ); 05407 } 05408 YY_BREAK 05409 case 63: 05410 YY_RULE_SETUP 05411 { 05412 pp_lex_guts_logger << "hat_eq\n" << msg::eolog; 05413 05414 LOCSAVE; 05415 ADVANCE; 05416 return pp_token::create_alternative(LOCGET,pp_token::TOK_HAT_EQ); 05417 } 05418 YY_BREAK 05419 case 64: 05420 YY_RULE_SETUP 05421 { 05422 pp_lex_guts_logger << "amp_eq\n" << msg::eolog; 05423 05424 LOCSAVE; 05425 ADVANCE; 05426 return pp_token::create(LOCGET,pp_token::TOK_AMP_EQ); 05427 } 05428 YY_BREAK 05429 case 65: 05430 YY_RULE_SETUP 05431 { 05432 pp_lex_guts_logger << "amp_eq\n" << msg::eolog; 05433 05434 LOCSAVE; 05435 ADVANCE; 05436 return pp_token::create_alternative(LOCGET,pp_token::TOK_AMP_EQ); 05437 } 05438 YY_BREAK 05439 case 66: 05440 YY_RULE_SETUP 05441 { 05442 pp_lex_guts_logger << "vbar_eq\n" << msg::eolog; 05443 05444 LOCSAVE; 05445 ADVANCE; 05446 return pp_token::create(LOCGET,pp_token::TOK_VBAR_EQ); 05447 } 05448 YY_BREAK 05449 case 67: 05450 YY_RULE_SETUP 05451 { 05452 pp_lex_guts_logger << "vbar_eq\n" << msg::eolog; 05453 05454 LOCSAVE; 05455 ADVANCE; 05456 return pp_token::create_alternative(LOCGET,pp_token::TOK_VBAR_EQ); 05457 } 05458 YY_BREAK 05459 case 68: 05460 YY_RULE_SETUP 05461 { 05462 pp_lex_guts_logger << "lt_lt\n" << msg::eolog; 05463 05464 LOCSAVE; 05465 ADVANCE; 05466 return pp_token::create(LOCGET,pp_token::TOK_LT_LT); 05467 } 05468 YY_BREAK 05469 case 69: 05470 YY_RULE_SETUP 05471 { 05472 pp_lex_guts_logger << "gt_gt\n" << msg::eolog; 05473 05474 LOCSAVE; 05475 ADVANCE; 05476 return pp_token::create(LOCGET,pp_token::TOK_GT_GT); 05477 } 05478 YY_BREAK 05479 case 70: 05480 YY_RULE_SETUP 05481 { 05482 pp_lex_guts_logger << "gt_gt_eq\n" << msg::eolog; 05483 05484 LOCSAVE; 05485 ADVANCE; 05486 return pp_token::create(LOCGET,pp_token::TOK_GT_GT_EQ); 05487 } 05488 YY_BREAK 05489 case 71: 05490 YY_RULE_SETUP 05491 { 05492 pp_lex_guts_logger << "lt_lt_eq\n" << msg::eolog; 05493 05494 LOCSAVE; 05495 ADVANCE; 05496 return pp_token::create(LOCGET,pp_token::TOK_LT_LT_EQ); 05497 } 05498 YY_BREAK 05499 case 72: 05500 YY_RULE_SETUP 05501 { 05502 pp_lex_guts_logger << "eq_eq\n" << msg::eolog; 05503 05504 LOCSAVE; 05505 ADVANCE; 05506 return pp_token::create(LOCGET,pp_token::TOK_EQ_EQ); 05507 } 05508 YY_BREAK 05509 case 73: 05510 YY_RULE_SETUP 05511 { 05512 pp_lex_guts_logger << "emark_eq\n" << msg::eolog; 05513 05514 LOCSAVE; 05515 ADVANCE; 05516 return pp_token::create(LOCGET,pp_token::TOK_EMARK_EQ); 05517 } 05518 YY_BREAK 05519 case 74: 05520 YY_RULE_SETUP 05521 { 05522 pp_lex_guts_logger << "emark_eq\n" << msg::eolog; 05523 05524 LOCSAVE; 05525 ADVANCE; 05526 return pp_token::create_alternative(LOCGET,pp_token::TOK_EMARK_EQ); 05527 } 05528 YY_BREAK 05529 case 75: 05530 YY_RULE_SETUP 05531 { 05532 pp_lex_guts_logger << "lt_eq\n" << msg::eolog; 05533 05534 LOCSAVE; 05535 ADVANCE; 05536 return pp_token::create(LOCGET,pp_token::TOK_LT_EQ); 05537 } 05538 YY_BREAK 05539 case 76: 05540 YY_RULE_SETUP 05541 { 05542 pp_lex_guts_logger << "gt_eq\n" << msg::eolog; 05543 05544 LOCSAVE; 05545 ADVANCE; 05546 return pp_token::create(LOCGET,pp_token::TOK_GT_EQ); 05547 } 05548 YY_BREAK 05549 case 77: 05550 YY_RULE_SETUP 05551 { 05552 pp_lex_guts_logger << "amp_amp\n" << msg::eolog; 05553 05554 LOCSAVE; 05555 ADVANCE; 05556 return pp_token::create(LOCGET,pp_token::TOK_AMP_AMP); 05557 } 05558 YY_BREAK 05559 case 78: 05560 YY_RULE_SETUP 05561 { 05562 pp_lex_guts_logger << "amp_amp\n" << msg::eolog; 05563 05564 LOCSAVE; 05565 ADVANCE; 05566 return pp_token::create_alternative(LOCGET,pp_token::TOK_AMP_AMP); 05567 } 05568 YY_BREAK 05569 case 79: 05570 YY_RULE_SETUP 05571 { 05572 pp_lex_guts_logger << "vbar_vbar\n" << msg::eolog; 05573 05574 LOCSAVE; 05575 ADVANCE; 05576 return pp_token::create(LOCGET,pp_token::TOK_VBAR_VBAR); 05577 } 05578 YY_BREAK 05579 case 80: 05580 YY_RULE_SETUP 05581 { 05582 pp_lex_guts_logger << "vbar_vbar\n" << msg::eolog; 05583 05584 LOCSAVE; 05585 ADVANCE; 05586 return pp_token::create_alternative(LOCGET,pp_token::TOK_VBAR_VBAR); 05587 } 05588 YY_BREAK 05589 case 81: 05590 YY_RULE_SETUP 05591 { 05592 pp_lex_guts_logger << "plus_plus\n" << msg::eolog; 05593 05594 LOCSAVE; 05595 ADVANCE; 05596 return pp_token::create(LOCGET,pp_token::TOK_PLUS_PLUS); 05597 } 05598 YY_BREAK 05599 case 82: 05600 YY_RULE_SETUP 05601 { 05602 pp_lex_guts_logger << "minus_minus\n" << msg::eolog; 05603 05604 LOCSAVE; 05605 ADVANCE; 05606 return pp_token::create(LOCGET,pp_token::TOK_MINUS_MINUS); 05607 } 05608 YY_BREAK 05609 case 83: 05610 YY_RULE_SETUP 05611 { 05612 pp_lex_guts_logger << "minus_gt_star\n" << msg::eolog; 05613 05614 LOCSAVE; 05615 ADVANCE; 05616 return pp_token::create(LOCGET,pp_token::TOK_MINUS_GT_STAR); 05617 } 05618 YY_BREAK 05619 case 84: 05620 YY_RULE_SETUP 05621 { 05622 pp_lex_guts_logger << "minus_gt\n" << msg::eolog; 05623 05624 LOCSAVE; 05625 ADVANCE; 05626 return pp_token::create(LOCGET,pp_token::TOK_MINUS_GT); 05627 } 05628 YY_BREAK 05629 case 85: 05630 YY_RULE_SETUP 05631 { 05632 pp_lex_guts_logger << "dot_dot_dot\n" << msg::eolog; 05633 05634 LOCSAVE; 05635 ADVANCE; 05636 return pp_token::create(LOCGET,pp_token::TOK_DOT_DOT_DOT); 05637 } 05638 YY_BREAK 05639 case 86: 05640 YY_RULE_SETUP 05641 { 05642 pp_lex_guts_logger << "asm\n" << msg::eolog; 05643 05644 LOCSAVE; 05645 ADVANCE; 05646 return pp_token::create(LOCGET,pp_token::TOK_ASM); 05647 } 05648 YY_BREAK 05649 case 87: 05650 YY_RULE_SETUP 05651 { 05652 pp_lex_guts_logger << "auto\n" << msg::eolog; 05653 05654 LOCSAVE; 05655 ADVANCE; 05656 return pp_token::create(LOCGET,pp_token::TOK_AUTO); 05657 } 05658 YY_BREAK 05659 case 88: 05660 YY_RULE_SETUP 05661 { 05662 pp_lex_guts_logger << "bool\n" << msg::eolog; 05663 05664 LOCSAVE; 05665 ADVANCE; 05666 return pp_token::create(LOCGET,pp_token::TOK_BOOL); 05667 } 05668 YY_BREAK 05669 case 89: 05670 YY_RULE_SETUP 05671 { 05672 pp_lex_guts_logger << "break\n" << msg::eolog; 05673 05674 LOCSAVE; 05675 ADVANCE; 05676 return pp_token::create(LOCGET,pp_token::TOK_BREAK); 05677 } 05678 YY_BREAK 05679 case 90: 05680 YY_RULE_SETUP 05681 { 05682 pp_lex_guts_logger << "case\n" << msg::eolog; 05683 05684 LOCSAVE; 05685 ADVANCE; 05686 return pp_token::create(LOCGET,pp_token::TOK_CASE); 05687 } 05688 YY_BREAK 05689 case 91: 05690 YY_RULE_SETUP 05691 { 05692 pp_lex_guts_logger << "catch\n" << msg::eolog; 05693 05694 LOCSAVE; 05695 ADVANCE; 05696 return pp_token::create(LOCGET,pp_token::TOK_CATCH); 05697 } 05698 YY_BREAK 05699 case 92: 05700 YY_RULE_SETUP 05701 { 05702 pp_lex_guts_logger << "char\n" << msg::eolog; 05703 05704 LOCSAVE; 05705 ADVANCE; 05706 return pp_token::create(LOCGET,pp_token::TOK_CHAR); 05707 } 05708 YY_BREAK 05709 case 93: 05710 YY_RULE_SETUP 05711 { 05712 pp_lex_guts_logger << "class\n" << msg::eolog; 05713 05714 LOCSAVE; 05715 ADVANCE; 05716 return pp_token::create(LOCGET,pp_token::TOK_CLASS); 05717 } 05718 YY_BREAK 05719 case 94: 05720 YY_RULE_SETUP 05721 { 05722 pp_lex_guts_logger << "const\n" << msg::eolog; 05723 05724 LOCSAVE; 05725 ADVANCE; 05726 return pp_token::create(LOCGET,pp_token::TOK_CONST); 05727 } 05728 YY_BREAK 05729 case 95: 05730 YY_RULE_SETUP 05731 { 05732 pp_lex_guts_logger << "const_cast\n" << msg::eolog; 05733 05734 LOCSAVE; 05735 ADVANCE; 05736 return pp_token::create(LOCGET,pp_token::TOK_CONST_CAST); 05737 } 05738 YY_BREAK 05739 case 96: 05740 YY_RULE_SETUP 05741 { 05742 pp_lex_guts_logger << "continue\n" << msg::eolog; 05743 05744 LOCSAVE; 05745 ADVANCE; 05746 return pp_token::create(LOCGET,pp_token::TOK_CONTINUE); 05747 } 05748 YY_BREAK 05749 case 97: 05750 YY_RULE_SETUP 05751 { 05752 pp_lex_guts_logger << "default\n" << msg::eolog; 05753 05754 LOCSAVE; 05755 ADVANCE; 05756 return pp_token::create(LOCGET,pp_token::TOK_DEFAULT); 05757 } 05758 YY_BREAK 05759 case 98: 05760 YY_RULE_SETUP 05761 { 05762 pp_lex_guts_logger << "delete\n" << msg::eolog; 05763 05764 LOCSAVE; 05765 ADVANCE; 05766 return pp_token::create(LOCGET,pp_token::TOK_DELETE); 05767 } 05768 YY_BREAK 05769 case 99: 05770 YY_RULE_SETUP 05771 { 05772 pp_lex_guts_logger << "do\n" << msg::eolog; 05773 05774 LOCSAVE; 05775 ADVANCE; 05776 return pp_token::create(LOCGET,pp_token::TOK_DO); 05777 } 05778 YY_BREAK 05779 case 100: 05780 YY_RULE_SETUP 05781 { 05782 pp_lex_guts_logger << "double\n" << msg::eolog; 05783 05784 LOCSAVE; 05785 ADVANCE; 05786 return pp_token::create(LOCGET,pp_token::TOK_DOUBLE); 05787 } 05788 YY_BREAK 05789 case 101: 05790 YY_RULE_SETUP 05791 { 05792 pp_lex_guts_logger << "dynamic_cast\n" << msg::eolog; 05793 05794 LOCSAVE; 05795 ADVANCE; 05796 return pp_token::create(LOCGET,pp_token::TOK_DYNAMIC_CAST); 05797 } 05798 YY_BREAK 05799 case 102: 05800 YY_RULE_SETUP 05801 { 05802 pp_lex_guts_logger << "else\n" << msg::eolog; 05803 05804 LOCSAVE; 05805 ADVANCE; 05806 return pp_token::create(LOCGET,pp_token::TOK_ELSE); 05807 } 05808 YY_BREAK 05809 case 103: 05810 YY_RULE_SETUP 05811 { 05812 pp_lex_guts_logger << "enum\n" << msg::eolog; 05813 05814 LOCSAVE; 05815 ADVANCE; 05816 return pp_token::create(LOCGET,pp_token::TOK_ENUM); 05817 } 05818 YY_BREAK 05819 case 104: 05820 YY_RULE_SETUP 05821 { 05822 pp_lex_guts_logger << "explicit\n" << msg::eolog; 05823 05824 LOCSAVE; 05825 ADVANCE; 05826 return pp_token::create(LOCGET,pp_token::TOK_EXPLICIT); 05827 } 05828 YY_BREAK 05829 case 105: 05830 YY_RULE_SETUP 05831 { 05832 pp_lex_guts_logger << "export\n" << msg::eolog; 05833 05834 LOCSAVE; 05835 ADVANCE; 05836 return pp_token::create(LOCGET,pp_token::TOK_EXPORT); 05837 } 05838 YY_BREAK 05839 case 106: 05840 YY_RULE_SETUP 05841 { 05842 pp_lex_guts_logger << "extern\n" << msg::eolog; 05843 05844 LOCSAVE; 05845 ADVANCE; 05846 return pp_token::create(LOCGET,pp_token::TOK_EXTERN); 05847 } 05848 YY_BREAK 05849 case 107: 05850 YY_RULE_SETUP 05851 { 05852 pp_lex_guts_logger << "float\n" << msg::eolog; 05853 05854 LOCSAVE; 05855 ADVANCE; 05856 return pp_token::create(LOCGET,pp_token::TOK_FLOAT); 05857 } 05858 YY_BREAK 05859 case 108: 05860 YY_RULE_SETUP 05861 { 05862 pp_lex_guts_logger << "for\n" << msg::eolog; 05863 05864 LOCSAVE; 05865 ADVANCE; 05866 return pp_token::create(LOCGET,pp_token::TOK_FOR); 05867 } 05868 YY_BREAK 05869 case 109: 05870 YY_RULE_SETUP 05871 { 05872 pp_lex_guts_logger << "friend\n" << msg::eolog; 05873 05874 LOCSAVE; 05875 ADVANCE; 05876 return pp_token::create(LOCGET,pp_token::TOK_FRIEND); 05877 } 05878 YY_BREAK 05879 case 110: 05880 YY_RULE_SETUP 05881 { 05882 pp_lex_guts_logger << "goto\n" << msg::eolog; 05883 05884 LOCSAVE; 05885 ADVANCE; 05886 return pp_token::create(LOCGET,pp_token::TOK_GOTO); 05887 } 05888 YY_BREAK 05889 case 111: 05890 YY_RULE_SETUP 05891 { 05892 pp_lex_guts_logger << "if\n" << msg::eolog; 05893 05894 LOCSAVE; 05895 ADVANCE; 05896 return pp_token::create(LOCGET,pp_token::TOK_IF); 05897 } 05898 YY_BREAK 05899 case 112: 05900 YY_RULE_SETUP 05901 { 05902 pp_lex_guts_logger << "inline\n" << msg::eolog; 05903 05904 LOCSAVE; 05905 ADVANCE; 05906 return pp_token::create(LOCGET,pp_token::TOK_INLINE); 05907 } 05908 YY_BREAK 05909 case 113: 05910 YY_RULE_SETUP 05911 { 05912 pp_lex_guts_logger << "int\n" << msg::eolog; 05913 05914 LOCSAVE; 05915 ADVANCE; 05916 return pp_token::create(LOCGET,pp_token::TOK_INT); 05917 } 05918 YY_BREAK 05919 case 114: 05920 YY_RULE_SETUP 05921 { 05922 pp_lex_guts_logger << "long\n" << msg::eolog; 05923 05924 LOCSAVE; 05925 ADVANCE; 05926 return pp_token::create(LOCGET,pp_token::TOK_LONG); 05927 } 05928 YY_BREAK 05929 case 115: 05930 YY_RULE_SETUP 05931 { 05932 pp_lex_guts_logger << "mutable\n" << msg::eolog; 05933 05934 LOCSAVE; 05935 ADVANCE; 05936 return pp_token::create(LOCGET,pp_token::TOK_MUTABLE); 05937 } 05938 YY_BREAK 05939 case 116: 05940 YY_RULE_SETUP 05941 { 05942 pp_lex_guts_logger << "namespace\n" << msg::eolog; 05943 05944 LOCSAVE; 05945 ADVANCE; 05946 return pp_token::create(LOCGET,pp_token::TOK_NAMESPACE); 05947 } 05948 YY_BREAK 05949 case 117: 05950 YY_RULE_SETUP 05951 { 05952 pp_lex_guts_logger << "new\n" << msg::eolog; 05953 05954 LOCSAVE; 05955 ADVANCE; 05956 return pp_token::create(LOCGET,pp_token::TOK_NEW); 05957 } 05958 YY_BREAK 05959 case 118: 05960 YY_RULE_SETUP 05961 { 05962 pp_lex_guts_logger << "operator\n" << msg::eolog; 05963 05964 LOCSAVE; 05965 ADVANCE; 05966 return pp_token::create(LOCGET,pp_token::TOK_OPERATOR); 05967 } 05968 YY_BREAK 05969 case 119: 05970 YY_RULE_SETUP 05971 { 05972 pp_lex_guts_logger << "private\n" << msg::eolog; 05973 05974 LOCSAVE; 05975 ADVANCE; 05976 return pp_token::create(LOCGET,pp_token::TOK_PRIVATE); 05977 } 05978 YY_BREAK 05979 case 120: 05980 YY_RULE_SETUP 05981 { 05982 LOCSAVE; 05983 ADVANCE; 05984 return pp_token::create(LOCGET,pp_token::TOK_PROTECTED); 05985 pp_lex_guts_logger << "protected\n" << msg::eolog; 05986 } 05987 YY_BREAK 05988 case 121: 05989 YY_RULE_SETUP 05990 { 05991 pp_lex_guts_logger << "public\n" << msg::eolog; 05992 05993 LOCSAVE; 05994 ADVANCE; 05995 return pp_token::create(LOCGET,pp_token::TOK_PUBLIC); 05996 } 05997 YY_BREAK 05998 case 122: 05999 YY_RULE_SETUP 06000 { 06001 pp_lex_guts_logger << "register\n" << msg::eolog; 06002 06003 LOCSAVE; 06004 ADVANCE; 06005 return pp_token::create(LOCGET,pp_token::TOK_REGISTER); 06006 } 06007 YY_BREAK 06008 case 123: 06009 YY_RULE_SETUP 06010 { 06011 pp_lex_guts_logger << "reinterpret_cast\n" << msg::eolog; 06012 06013 LOCSAVE; 06014 ADVANCE; 06015 return pp_token::create(LOCGET,pp_token::TOK_REINTERPRET_CAST); 06016 } 06017 YY_BREAK 06018 case 124: 06019 YY_RULE_SETUP 06020 { 06021 pp_lex_guts_logger << "return\n" << msg::eolog; 06022 06023 LOCSAVE; 06024 ADVANCE; 06025 return pp_token::create(LOCGET,pp_token::TOK_RETURN); 06026 } 06027 YY_BREAK 06028 case 125: 06029 YY_RULE_SETUP 06030 { 06031 pp_lex_guts_logger << "short\n" << msg::eolog; 06032 06033 LOCSAVE; 06034 ADVANCE; 06035 return pp_token::create(LOCGET,pp_token::TOK_SHORT); 06036 } 06037 YY_BREAK 06038 case 126: 06039 YY_RULE_SETUP 06040 { 06041 pp_lex_guts_logger << "signed\n" << msg::eolog; 06042 06043 LOCSAVE; 06044 ADVANCE; 06045 return pp_token::create(LOCGET,pp_token::TOK_SIGNED); 06046 } 06047 YY_BREAK 06048 case 127: 06049 YY_RULE_SETUP 06050 { 06051 pp_lex_guts_logger << "sizeof\n" << msg::eolog; 06052 06053 LOCSAVE; 06054 ADVANCE; 06055 return pp_token::create(LOCGET,pp_token::TOK_SIZEOF); 06056 } 06057 YY_BREAK 06058 case 128: 06059 YY_RULE_SETUP 06060 { 06061 pp_lex_guts_logger << "static\n" << msg::eolog; 06062 06063 LOCSAVE; 06064 ADVANCE; 06065 return pp_token::create(LOCGET,pp_token::TOK_STATIC); 06066 } 06067 YY_BREAK 06068 case 129: 06069 YY_RULE_SETUP 06070 { 06071 pp_lex_guts_logger << "static_cast\n" << msg::eolog; 06072 06073 LOCSAVE; 06074 ADVANCE; 06075 return pp_token::create(LOCGET,pp_token::TOK_STATIC_CAST); 06076 } 06077 YY_BREAK 06078 case 130: 06079 YY_RULE_SETUP 06080 { 06081 pp_lex_guts_logger << "struct\n" << msg::eolog; 06082 06083 LOCSAVE; 06084 ADVANCE; 06085 return pp_token::create(LOCGET,pp_token::TOK_STRUCT); 06086 } 06087 YY_BREAK 06088 case 131: 06089 YY_RULE_SETUP 06090 { 06091 pp_lex_guts_logger << "switch\n" << msg::eolog; 06092 06093 LOCSAVE; 06094 ADVANCE; 06095 return pp_token::create(LOCGET,pp_token::TOK_SWITCH); 06096 } 06097 YY_BREAK 06098 case 132: 06099 YY_RULE_SETUP 06100 { 06101 pp_lex_guts_logger << "template\n" << msg::eolog; 06102 06103 LOCSAVE; 06104 ADVANCE; 06105 return pp_token::create(LOCGET,pp_token::TOK_TEMPLATE); 06106 } 06107 YY_BREAK 06108 case 133: 06109 YY_RULE_SETUP 06110 { 06111 pp_lex_guts_logger << "this\n" << msg::eolog; 06112 06113 LOCSAVE; 06114 ADVANCE; 06115 return pp_token::create(LOCGET,pp_token::TOK_THIS); 06116 } 06117 YY_BREAK 06118 case 134: 06119 YY_RULE_SETUP 06120 { 06121 pp_lex_guts_logger << "throw\n" << msg::eolog; 06122 06123 LOCSAVE; 06124 ADVANCE; 06125 return pp_token::create(LOCGET,pp_token::TOK_THROW); 06126 } 06127 YY_BREAK 06128 case 135: 06129 YY_RULE_SETUP 06130 { 06131 pp_lex_guts_logger << "try\n" << msg::eolog; 06132 06133 LOCSAVE; 06134 ADVANCE; 06135 return pp_token::create(LOCGET,pp_token::TOK_TRY); 06136 } 06137 YY_BREAK 06138 case 136: 06139 YY_RULE_SETUP 06140 { 06141 pp_lex_guts_logger << "typedef\n" << msg::eolog; 06142 06143 LOCSAVE; 06144 ADVANCE; 06145 return pp_token::create(LOCGET,pp_token::TOK_TYPEDEF); 06146 } 06147 YY_BREAK 06148 case 137: 06149 YY_RULE_SETUP 06150 { 06151 pp_lex_guts_logger << "typeid\n" << msg::eolog; 06152 06153 LOCSAVE; 06154 ADVANCE; 06155 return pp_token::create(LOCGET,pp_token::TOK_TYPEID); 06156 } 06157 YY_BREAK 06158 case 138: 06159 YY_RULE_SETUP 06160 { 06161 pp_lex_guts_logger << "typename\n" << msg::eolog; 06162 06163 LOCSAVE; 06164 ADVANCE; 06165 return pp_token::create(LOCGET,pp_token::TOK_TYPENAME); 06166 } 06167 YY_BREAK 06168 case 139: 06169 YY_RULE_SETUP 06170 { 06171 pp_lex_guts_logger << "union\n" << msg::eolog; 06172 06173 LOCSAVE; 06174 ADVANCE; 06175 return pp_token::create(LOCGET,pp_token::TOK_UNION); 06176 } 06177 YY_BREAK 06178 case 140: 06179 YY_RULE_SETUP 06180 { 06181 pp_lex_guts_logger << "unsigned\n" << msg::eolog; 06182 06183 LOCSAVE; 06184 ADVANCE; 06185 return pp_token::create(LOCGET,pp_token::TOK_UNSIGNED); 06186 } 06187 YY_BREAK 06188 case 141: 06189 YY_RULE_SETUP 06190 { 06191 pp_lex_guts_logger << "using\n" << msg::eolog; 06192 06193 LOCSAVE; 06194 ADVANCE; 06195 return pp_token::create(LOCGET,pp_token::TOK_USING); 06196 } 06197 YY_BREAK 06198 case 142: 06199 YY_RULE_SETUP 06200 { 06201 pp_lex_guts_logger << "virtual\n" << msg::eolog; 06202 06203 LOCSAVE; 06204 ADVANCE; 06205 return pp_token::create(LOCGET,pp_token::TOK_VIRTUAL); 06206 } 06207 YY_BREAK 06208 case 143: 06209 YY_RULE_SETUP 06210 { 06211 pp_lex_guts_logger << "void\n" << msg::eolog; 06212 06213 LOCSAVE; 06214 ADVANCE; 06215 return pp_token::create(LOCGET,pp_token::TOK_VOID); 06216 } 06217 YY_BREAK 06218 case 144: 06219 YY_RULE_SETUP 06220 { 06221 pp_lex_guts_logger << "volatile\n" << msg::eolog; 06222 06223 LOCSAVE; 06224 ADVANCE; 06225 return pp_token::create(LOCGET,pp_token::TOK_VOLATILE); 06226 } 06227 YY_BREAK 06228 case 145: 06229 YY_RULE_SETUP 06230 { 06231 pp_lex_guts_logger << "wchar\n" << msg::eolog; 06232 06233 LOCSAVE; 06234 ADVANCE; 06235 return pp_token::create(LOCGET,pp_token::TOK_WCHAR); 06236 } 06237 YY_BREAK 06238 case 146: 06239 YY_RULE_SETUP 06240 { 06241 pp_lex_guts_logger << "while\n" << msg::eolog; 06242 06243 LOCSAVE; 06244 ADVANCE; 06245 return pp_token::create(LOCGET,pp_token::TOK_WHILE); 06246 } 06247 YY_BREAK 06248 case 147: 06249 YY_RULE_SETUP 06250 { 06251 pp_lex_guts_logger << "false\n" << msg::eolog; 06252 06253 LOCSAVE; 06254 ADVANCE; 06255 return pp_token::create(LOCGET,pp_token::TOK_BOOL_LIT,token_value::create("false")); 06256 } 06257 YY_BREAK 06258 case 148: 06259 YY_RULE_SETUP 06260 { 06261 pp_lex_guts_logger << "false\n" << msg::eolog; 06262 06263 LOCSAVE; 06264 ADVANCE; 06265 return pp_token::create(LOCGET,pp_token::TOK_BOOL_LIT,token_value::create("true")); 06266 } 06267 YY_BREAK 06268 /* 06269 {i}{n}{c}{l}{u}{d}{e} { 06270 pp_lex_guts_logger << "include\n" << msg::eolog; 06271 06272 LOCSAVE; 06273 ADVANCE; 06274 return pp_token::create(LOCGET,pp_token::TOK_INCLUDE); 06275 } 06276 06277 {d}{e}{f}{i}{n}{e} { 06278 pp_lex_guts_logger << "define\n" << msg::eolog; 06279 06280 LOCSAVE; 06281 ADVANCE; 06282 return pp_token::create(LOCGET,pp_token::TOK_DEFINE); 06283 } 06284 06285 {u}{n}{d}{e}{f} { 06286 pp_lex_guts_logger << "undef\n" << msg::eolog; 06287 06288 LOCSAVE; 06289 ADVANCE; 06290 return pp_token::create(LOCGET,pp_token::TOK_UNDEF); 06291 } 06292 06293 {l}{i}{n}{e} { 06294 pp_lex_guts_logger << "line\n" << msg::eolog; 06295 06296 LOCSAVE; 06297 ADVANCE; 06298 return pp_token::create(LOCGET,pp_token::TOK_LINE); 06299 } 06300 06301 {p}{r}{a}{g}{m}{a} { 06302 pp_lex_guts_logger << "pragma\n" << msg::eolog; 06303 06304 LOCSAVE; 06305 ADVANCE; 06306 return pp_token::create(LOCGET,pp_token::TOK_PRAGMA); 06307 } 06308 06309 {e}{r}{r}{o}{r} { 06310 pp_lex_guts_logger << "error\n" << msg::eolog; 06311 06312 LOCSAVE; 06313 ADVANCE; 06314 return pp_token::create(LOCGET,pp_token::TOK_ERROR); 06315 } 06316 06317 {d}{e}{f}{i}{n}{e}{d} { 06318 pp_lex_guts_logger << "defined\n" << msg::eolog; 06319 06320 LOCSAVE; 06321 ADVANCE; 06322 return pp_token::create(LOCGET,pp_token::TOK_DEFINED); 06323 } 06324 06325 {i}{f}{d}{e}{f} { 06326 pp_lex_guts_logger << "ifdef\n" << msg::eolog; 06327 06328 LOCSAVE; 06329 ADVANCE; 06330 return pp_token::create(LOCGET,pp_token::TOK_IFDEF); 06331 } 06332 06333 {i}{f}{n}{d}{e}{f} { 06334 pp_lex_guts_logger << "ifndef\n" << msg::eolog; 06335 06336 LOCSAVE; 06337 ADVANCE; 06338 return pp_token::create(LOCGET,pp_token::TOK_IFNDEF); 06339 } 06340 06341 {e}{l}{i}{f} { 06342 pp_lex_guts_logger << "elif\n" << msg::eolog; 06343 06344 LOCSAVE; 06345 ADVANCE; 06346 return pp_token::create(LOCGET,pp_token::TOK_ELIF); 06347 } 06348 06349 {e}{n}{d}{i}{f} { 06350 pp_lex_guts_logger << "endif\n" << msg::eolog; 06351 06352 LOCSAVE; 06353 ADVANCE; 06354 return pp_token::create(LOCGET,pp_token::TOK_ENDIF); 06355 } 06356 */ 06357 /* pp number, can contain underscore */ 06358 case 149: 06359 YY_RULE_SETUP 06360 { 06361 pp_lex_guts_logger << "preprocessing number\n" << msg::eolog; 06362 06363 LOCSAVE; 06364 return pp_token::create(LOCGET,pp_token::TOK_NUMBER_LIT,EXTRACT_ORDINARY(yyleng)); 06365 } 06366 YY_BREAK 06367 /* pp number with ucn */ 06368 case 150: 06369 YY_RULE_SETUP 06370 { 06371 pp_lex_guts_logger << "preprocessing number with ucn\n" << msg::eolog; 06372 06373 LOCSAVE; 06374 return pp_token::create(LOCGET,pp_token::TOK_NUMBER_LIT,EXTRACT_UCN_NUMBER(yyleng)); 06375 } 06376 YY_BREAK 06377 /* pp number with bad ucn */ 06378 case 151: 06379 YY_RULE_SETUP 06380 { 06381 pp_lex_guts_logger << "preprocessing number with bad ucn\n" << msg::eolog; 06382 06383 LOCSAVE; 06384 return pp_token::create(LOCGET,pp_token::TOK_NUMBER_LIT,EXTRACT_BAD_NUMBER(yyleng)); 06385 } 06386 YY_BREAK 06387 /* pp alphanumeric identifier */ 06388 case 152: 06389 YY_RULE_SETUP 06390 { 06391 pp_lex_guts_logger << "identifier without ucn\n" << msg::eolog; 06392 06393 LOCSAVE; 06394 return pp_token::create(LOCGET,pp_token::TOK_IDENT,EXTRACT_ORDINARY(yyleng)); 06395 } 06396 YY_BREAK 06397 /* pp identifier with ucn */ 06398 case 153: 06399 YY_RULE_SETUP 06400 { 06401 pp_lex_guts_logger << "identifier with ucn\n" << msg::eolog; 06402 06403 LOCSAVE; 06404 return pp_token::create(LOCGET,pp_token::TOK_IDENT,EXTRACT_UCN_IDENTIFIER(yyleng)); 06405 } 06406 YY_BREAK 06407 /* pp identifier ucn */ 06408 case 154: 06409 YY_RULE_SETUP 06410 { 06411 pp_lex_guts_logger << "identifier with bad ucn\n" << msg::eolog; 06412 06413 LOCSAVE; 06414 return pp_token::create(LOCGET,pp_token::TOK_IDENT,EXTRACT_BAD_IDENTIFIER(yyleng)); 06415 } 06416 YY_BREAK 06417 /* start of recognition of directives */ 06418 case 155: 06419 /* rule 155 can match eol */ 06420 YY_RULE_SETUP 06421 { 06422 pp_lex_guts_logger << "hash in directive\n" << msg::eolog; 06423 06424 BEGIN(directive_name); 06425 06426 SKIP(yyleng - 1); 06427 /* save the location of the # */ 06428 LOCSAVE; 06429 SKIP(1); 06430 06431 return pp_token::create(LOCGET,pp_token::TOK_HASH); 06432 } 06433 YY_BREAK 06434 /* ## is longer than # and requires special rule */ 06435 case 156: 06436 /* rule 156 can match eol */ 06437 YY_RULE_SETUP 06438 { 06439 pp_lex_guts_logger << "hash_hash in directive\n" << msg::eolog; 06440 06441 BEGIN(INITIAL); 06442 /* return the characters */ 06443 yyless(0); 06444 06445 } 06446 YY_BREAK 06447 /* not a directive */ 06448 case 157: 06449 /* rule 157 can match eol */ 06450 YY_RULE_SETUP 06451 { 06452 pp_lex_guts_logger << "any char in directive\n" << msg::eolog; 06453 06454 BEGIN(INITIAL); 06455 /* return the character */ 06456 yyless(0); 06457 } 06458 YY_BREAK 06459 /* skip padding */ 06460 case 158: 06461 /* rule 158 can match eol */ 06462 YY_RULE_SETUP 06463 { 06464 pp_lex_guts_logger << "blanks and comments in directive name\n" << msg::eolog; 06465 06466 ADVANCE; 06467 /* continue scanning */ 06468 } 06469 YY_BREAK 06470 case 159: 06471 YY_RULE_SETUP 06472 { 06473 pp_lex_guts_logger << "define in directive name\n" << msg::eolog; 06474 06475 BEGIN(INITIAL); 06476 LOCSAVE; 06477 ADVANCE; 06478 return pp_token::create(LOCGET,pp_token::TOK_DEFINE); 06479 } 06480 YY_BREAK 06481 case 160: 06482 YY_RULE_SETUP 06483 { 06484 pp_lex_guts_logger << "undef in directive name\n" << msg::eolog; 06485 06486 BEGIN(INITIAL); 06487 LOCSAVE; 06488 ADVANCE; 06489 return pp_token::create(LOCGET,pp_token::TOK_UNDEF); 06490 } 06491 YY_BREAK 06492 case 161: 06493 YY_RULE_SETUP 06494 { 06495 pp_lex_guts_logger << "pragma in directive name\n" << msg::eolog; 06496 06497 BEGIN(INITIAL); 06498 LOCSAVE; 06499 ADVANCE; 06500 return pp_token::create(LOCGET,pp_token::TOK_PRAGMA); 06501 } 06502 YY_BREAK 06503 case 162: 06504 YY_RULE_SETUP 06505 { 06506 pp_lex_guts_logger << "error in directive name\n" << msg::eolog; 06507 06508 BEGIN(INITIAL); 06509 LOCSAVE; 06510 ADVANCE; 06511 return pp_token::create(LOCGET,pp_token::TOK_ERROR); 06512 } 06513 YY_BREAK 06514 case 163: 06515 YY_RULE_SETUP 06516 { 06517 pp_lex_guts_logger << "defined in directive name\n" << msg::eolog; 06518 06519 BEGIN(INITIAL); 06520 LOCSAVE; 06521 ADVANCE; 06522 return pp_token::create(LOCGET,pp_token::TOK_DEFINED); 06523 } 06524 YY_BREAK 06525 case 164: 06526 YY_RULE_SETUP 06527 { 06528 pp_lex_guts_logger << "if in directive name\n" << msg::eolog; 06529 06530 BEGIN(INITIAL); 06531 LOCSAVE; 06532 ADVANCE; 06533 return pp_token::create(LOCGET,pp_token::TOK_IF); 06534 } 06535 YY_BREAK 06536 case 165: 06537 YY_RULE_SETUP 06538 { 06539 pp_lex_guts_logger << "ifdef in directive name\n" << msg::eolog; 06540 06541 BEGIN(INITIAL); 06542 LOCSAVE; 06543 ADVANCE; 06544 return pp_token::create(LOCGET,pp_token::TOK_IFDEF); 06545 } 06546 YY_BREAK 06547 case 166: 06548 YY_RULE_SETUP 06549 { 06550 pp_lex_guts_logger << "ifndef in directive name\n" << msg::eolog; 06551 06552 BEGIN(INITIAL); 06553 LOCSAVE; 06554 ADVANCE; 06555 return pp_token::create(LOCGET,pp_token::TOK_IFNDEF); 06556 } 06557 YY_BREAK 06558 case 167: 06559 YY_RULE_SETUP 06560 { 06561 pp_lex_guts_logger << "elif in directive name\n" << msg::eolog; 06562 06563 BEGIN(INITIAL); 06564 LOCSAVE; 06565 ADVANCE; 06566 return pp_token::create(LOCGET,pp_token::TOK_ELIF); 06567 } 06568 YY_BREAK 06569 case 168: 06570 YY_RULE_SETUP 06571 { 06572 pp_lex_guts_logger << "else in directive name\n" << msg::eolog; 06573 06574 BEGIN(INITIAL); 06575 LOCSAVE; 06576 ADVANCE; 06577 return pp_token::create(LOCGET,pp_token::TOK_ELSE); 06578 } 06579 YY_BREAK 06580 case 169: 06581 YY_RULE_SETUP 06582 { 06583 pp_lex_guts_logger << "endif in directive name\n" << msg::eolog; 06584 06585 BEGIN(INITIAL); 06586 LOCSAVE; 06587 ADVANCE; 06588 return pp_token::create(LOCGET,pp_token::TOK_ENDIF); 06589 } 06590 YY_BREAK 06591 case 170: 06592 YY_RULE_SETUP 06593 { 06594 pp_lex_guts_logger << "include in directive name\n" << msg::eolog; 06595 06596 BEGIN(include); 06597 LOCSAVE; 06598 ADVANCE; 06599 return pp_token::create(LOCGET,pp_token::TOK_INCLUDE); 06600 } 06601 YY_BREAK 06602 case 171: 06603 YY_RULE_SETUP 06604 { 06605 pp_lex_guts_logger << "line in directive name\n" << msg::eolog; 06606 06607 LOCSAVE; 06608 ADVANCE; 06609 return pp_token::create(LOCGET,pp_token::TOK_LINE); 06610 } 06611 YY_BREAK 06612 /* some other or longer identifier */ 06613 case 172: 06614 YY_RULE_SETUP 06615 { 06616 pp_lex_guts_logger << "other identifier in directive name\n" << msg::eolog; 06617 06618 BEGIN(INITIAL); 06619 /* return the identifier */ 06620 yyless(0); 06621 } 06622 YY_BREAK 06623 /* something else than the above */ 06624 case 173: 06625 /* rule 173 can match eol */ 06626 YY_RULE_SETUP 06627 { 06628 pp_lex_guts_logger << "any char in directive name\n" << msg::eolog; 06629 06630 BEGIN(INITIAL); 06631 /* return the character */ 06632 yyless(0); 06633 } 06634 YY_BREAK 06635 /* skip spaces and comments to simplify processing of the following */ 06636 case 174: 06637 /* rule 174 can match eol */ 06638 YY_RULE_SETUP 06639 { 06640 pp_lex_guts_logger << "blanks and comments in include\n" << msg::eolog; 06641 06642 ADVANCE; 06643 /* continue scanning */ 06644 } 06645 YY_BREAK 06646 /* angle bracketed name */ 06647 case 175: 06648 /* rule 175 can match eol */ 06649 YY_RULE_SETUP 06650 { 06651 pp_lex_guts_logger << "angle bracketed name in include\n" << msg::eolog; 06652 06653 BEGIN(INITIAL); 06654 LOCSAVE; 06655 06656 SKIP(1); 06657 /* everything between the '<' '>' is significant */ 06658 ptr<token_value> tv(EXTRACT_UNTIL(character::ascii_gt)); 06659 /* skip the '>' and everything but the newline */ 06660 ulint len = yyleng - tv->content_get().size() - 2; 06661 SKIP(len); 06662 06663 /* return only the newline */ 06664 yyless(yyleng - 1); 06665 06666 return pp_token::create(LOCGET,pp_token::TOK_INCL_HCHAR,tv); 06667 } 06668 YY_BREAK 06669 /* double quoted name */ 06670 case 176: 06671 /* rule 176 can match eol */ 06672 YY_RULE_SETUP 06673 { 06674 pp_lex_guts_logger << "double quoted name in include\n" << msg::eolog; 06675 06676 BEGIN(INITIAL); 06677 LOCSAVE; 06678 06679 SKIP(1); 06680 /* everything between the "" is significant, no support for escape sequences */ 06681 ptr<token_value> tv(EXTRACT_UNTIL(character::ascii_dquote)); 06682 /* skip the '"' and everything till but the newline */ 06683 ulint len = yyleng - tv->content_get().size() - 2; 06684 SKIP(len); 06685 06686 /* return only the newline */ 06687 yyless(yyleng - 1); 06688 06689 return pp_token::create(LOCGET,pp_token::TOK_INCL_QCHAR,tv); 06690 } 06691 YY_BREAK 06692 /* catches errors and third type include, which is handled by normal parser */ 06693 case 177: 06694 /* rule 177 can match eol */ 06695 YY_RULE_SETUP 06696 { 06697 pp_lex_guts_logger << "any char in include\n" << msg::eolog; 06698 06699 BEGIN(INITIAL); 06700 LOCSAVE; 06701 /* return the character */ 06702 yyless(0); 06703 return pp_token::create(LOCGET,pp_token::TOK_INCL_SIG); 06704 } 06705 YY_BREAK 06706 /* special end of file class, not the flex <<EOF>> */ 06707 case 178: 06708 YY_RULE_SETUP 06709 { 06710 pp_lex_guts_logger << "eof\n" << msg::eolog; 06711 06712 LOCSAVE; 06713 ADVANCE; 06714 return pp_token::create(LOCGET,pp_token::TOK_FILE_END); 06715 } 06716 YY_BREAK 06717 /* anything which is not a part of a token; " or ' will not appear here */ 06718 case 179: 06719 /* rule 179 can match eol */ 06720 YY_RULE_SETUP 06721 { 06722 pp_lex_guts_logger << "other\n" << msg::eolog; 06723 06724 LOCSAVE; 06725 return pp_token::create(LOCGET,pp_token::TOK_OTHER,EXTRACT_ORDINARY(yyleng)); 06726 } 06727 YY_BREAK 06728 case 180: 06729 YY_RULE_SETUP 06730 ECHO; 06731 YY_BREAK 06732 case YY_STATE_EOF(INITIAL): 06733 case YY_STATE_EOF(include): 06734 case YY_STATE_EOF(line): 06735 case YY_STATE_EOF(directive): 06736 case YY_STATE_EOF(directive_name): 06737 yyterminate(); 06738 06739 case YY_END_OF_BUFFER: 06740 { 06741 /* Amount of text matched not including the EOB char. */ 06742 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 06743 06744 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 06745 *yy_cp = (yy_hold_char); 06746 YY_RESTORE_YY_MORE_OFFSET 06747 06748 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 06749 { 06750 /* We're scanning a new file or input source. It's 06751 * possible that this happened because the user 06752 * just pointed yyin at a new source and called 06753 * yylex(). If so, then we have to assure 06754 * consistency between YY_CURRENT_BUFFER and our 06755 * globals. Here is the right place to do so, because 06756 * this is the first action (other than possibly a 06757 * back-up) that will match for the new input source. 06758 */ 06759 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 06760 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; 06761 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 06762 } 06763 06764 /* Note that here we test for yy_c_buf_p "<=" to the position 06765 * of the first EOB in the buffer, since yy_c_buf_p will 06766 * already have been incremented past the NUL character 06767 * (since all states make transitions on EOB to the 06768 * end-of-buffer state). Contrast this with the test 06769 * in input(). 06770 */ 06771 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 06772 { /* This was really a NUL. */ 06773 yy_state_type yy_next_state; 06774 06775 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 06776 06777 yy_current_state = yy_get_previous_state( ); 06778 06779 /* Okay, we're now positioned to make the NUL 06780 * transition. We couldn't have 06781 * yy_get_previous_state() go ahead and do it 06782 * for us because it doesn't know how to deal 06783 * with the possibility of jamming (and we don't 06784 * want to build jamming into it because then it 06785 * will run more slowly). 06786 */ 06787 06788 yy_next_state = yy_try_NUL_trans( yy_current_state ); 06789 06790 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 06791 06792 if ( yy_next_state ) 06793 { 06794 /* Consume the NUL. */ 06795 yy_cp = ++(yy_c_buf_p); 06796 yy_current_state = yy_next_state; 06797 goto yy_match; 06798 } 06799 06800 else 06801 { 06802 yy_cp = (yy_c_buf_p); 06803 goto yy_find_action; 06804 } 06805 } 06806 06807 else switch ( yy_get_next_buffer( ) ) 06808 { 06809 case EOB_ACT_END_OF_FILE: 06810 { 06811 (yy_did_buffer_switch_on_eof) = 0; 06812 06813 if ( yywrap( ) ) 06814 { 06815 /* Note: because we've taken care in 06816 * yy_get_next_buffer() to have set up 06817 * yytext, we can now set up 06818 * yy_c_buf_p so that if some total 06819 * hoser (like flex itself) wants to 06820 * call the scanner after we return the 06821 * YY_NULL, it'll still work - another 06822 * YY_NULL will get returned. 06823 */ 06824 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 06825 06826 yy_act = YY_STATE_EOF(YY_START); 06827 goto do_action; 06828 } 06829 06830 else 06831 { 06832 if ( ! (yy_did_buffer_switch_on_eof) ) 06833 YY_NEW_FILE; 06834 } 06835 break; 06836 } 06837 06838 case EOB_ACT_CONTINUE_SCAN: 06839 (yy_c_buf_p) = 06840 (yytext_ptr) + yy_amount_of_matched_text; 06841 06842 yy_current_state = yy_get_previous_state( ); 06843 06844 yy_cp = (yy_c_buf_p); 06845 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 06846 goto yy_match; 06847 06848 case EOB_ACT_LAST_MATCH: 06849 (yy_c_buf_p) = 06850 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 06851 06852 yy_current_state = yy_get_previous_state( ); 06853 06854 yy_cp = (yy_c_buf_p); 06855 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 06856 goto yy_find_action; 06857 } 06858 break; 06859 } 06860 06861 default: 06862 YY_FATAL_ERROR( 06863 "fatal flex scanner internal error--no action found" ); 06864 } /* end of action switch */ 06865 } /* end of scanning one token */ 06866 } /* end of yylex */
| YY_BUFFER_STATE yy_create_buffer | ( | FILE * | file, | |
| int | size | |||
| ) |
Allocate and initialize an input buffer state.
| file | A readable stream. | |
| size | The character buffer size in bytes. When in doubt, use YY_BUF_SIZE. |
| void yy_delete_buffer | ( | YY_BUFFER_STATE | b | ) |
Destroy the buffer.
| b | a buffer created with yy_create_buffer() |
| static void yy_fatal_error | ( | char * | msg | ) | [static] |
Definition at line 7397 of file pp_lex_guts.yy.cc.
References YY_EXIT_FAILURE.
07398 { 07399 /* (void) fprintf( stderr, "%s\n", msg ); */ 07400 (void)msg; 07401 exit( YY_EXIT_FAILURE ); 07402 }
| static void yy_fatal_error | ( | char | msg[] | ) | [static] |
| void yy_flush_buffer | ( | YY_BUFFER_STATE | b | ) |
Discard all buffered characters. On the next scan, YY_INPUT will be called.
| b | the buffer state to be flushed, usually YY_CURRENT_BUFFER. |
| static int yy_get_next_buffer | ( | void | ) | [static] |
Definition at line 6875 of file pp_lex_guts.yy.cc.
References b, EOB_ACT_END_OF_FILE, EOB_ACT_LAST_MATCH, YY_BUFFER_EOF_PENDING, yy_c_buf_p, YY_CURRENT_BUFFER, YY_CURRENT_BUFFER_LVALUE, YY_FATAL_ERROR, YY_MORE_ADJ, yy_n_chars, yyrealloc(), and yytext_ptr.
06876 { 06877 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 06878 register char *source = (yytext_ptr); 06879 register int number_to_move, i; 06880 int ret_val; 06881 06882 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 06883 YY_FATAL_ERROR( 06884 "fatal flex scanner internal error--end of buffer missed" ); 06885 06886 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 06887 { /* Don't try to fill the buffer, so this is an EOF. */ 06888 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 06889 { 06890 /* We matched a single character, the EOB, so 06891 * treat this as a final EOF. 06892 */ 06893 return EOB_ACT_END_OF_FILE; 06894 } 06895 06896 else 06897 { 06898 /* We matched some text prior to the EOB, first 06899 * process it. 06900 */ 06901 return EOB_ACT_LAST_MATCH; 06902 } 06903 } 06904 06905 /* Try to read more data. */ 06906 06907 /* First move last chars to start of buffer. */ 06908 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; 06909 06910 for ( i = 0; i < number_to_move; ++i ) 06911 *(dest++) = *(source++); 06912 06913 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 06914 /* don't do the read, it's not guaranteed to return an EOF, 06915 * just force an EOF 06916 */ 06917 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 06918 06919 else 06920 { 06921 int num_to_read = 06922 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 06923 06924 while ( num_to_read <= 0 ) 06925 { /* Not enough room in the buffer - grow it. */ 06926 06927 /* just a shorter name for the current buffer */ 06928 YY_BUFFER_STATE b = YY_CURRENT_BUFFER; 06929 06930 int yy_c_buf_p_offset = 06931 (int) ((yy_c_buf_p) - b->yy_ch_buf); 06932 06933 if ( b->yy_is_our_buffer ) 06934 { 06935 int new_size = b->yy_buf_size * 2; 06936 06937 if ( new_size <= 0 ) 06938 b->yy_buf_size += b->yy_buf_size / 8; 06939 else 06940 b->yy_buf_size *= 2; 06941 06942 b->yy_ch_buf = (char *) 06943 /* Include room in for 2 EOB chars. */ 06944 yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); 06945 } 06946 else 06947 /* Can't grow it, we don't own it. */ 06948 b->yy_ch_buf = 0; 06949 06950 if ( ! b->yy_ch_buf ) 06951 YY_FATAL_ERROR( 06952 "fatal error - scanner input buffer overflow" ); 06953 06954 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 06955 06956 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 06957 number_to_move - 1; 06958 06959 } 06960 06961 if ( num_to_read > YY_READ_BUF_SIZE ) 06962 num_to_read = YY_READ_BUF_SIZE; 06963 06964 /* Read in more data. */ 06965 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 06966 (yy_n_chars), num_to_read ); 06967 06968 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 06969 } 06970 06971 if ( (yy_n_chars) == 0 ) 06972 { 06973 if ( number_to_move == YY_MORE_ADJ ) 06974 { 06975 ret_val = EOB_ACT_END_OF_FILE; 06976 yyrestart(yyin ); 06977 } 06978 06979 else 06980 { 06981 ret_val = EOB_ACT_LAST_MATCH; 06982 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 06983 YY_BUFFER_EOF_PENDING; 06984 } 06985 } 06986 06987 else 06988 ret_val = EOB_ACT_CONTINUE_SCAN; 06989 06990 (yy_n_chars) += number_to_move; 06991 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 06992 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 06993 06994 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 06995 06996 return ret_val; 06997 }
| static yy_state_type yy_get_previous_state | ( | void | ) | [static] |
Definition at line 7001 of file pp_lex_guts.yy.cc.
References yy_c_buf_p, YY_MORE_ADJ, YY_SC_TO_UI, yy_start, and yytext_ptr.
07002 { 07003 register yy_state_type yy_current_state; 07004 register char *yy_cp; 07005 07006 yy_current_state = (yy_start); 07007 07008 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 07009 { 07010 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 99); 07011 if ( yy_accept[yy_current_state] ) 07012 { 07013 (yy_last_accepting_state) = yy_current_state; 07014 (yy_last_accepting_cpos) = yy_cp; 07015 } 07016 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 07017 { 07018 yy_current_state = (int) yy_def[yy_current_state]; 07019 if ( yy_current_state >= 1094 ) 07020 yy_c = yy_meta[(unsigned int) yy_c]; 07021 } 07022 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 07023 } 07024 07025 return yy_current_state; 07026 }
| static void yy_init_buffer | ( | YY_BUFFER_STATE | b, | |
| FILE * | file | |||
| ) | [static] |
Definition at line 7244 of file pp_lex_guts.yy.cc.
References b, YY_CURRENT_BUFFER, and yy_flush_buffer().
07246 { 07247 #if 0 07248 int oerrno = errno; 07249 #endif 07250 07251 yy_flush_buffer(b ); 07252 07253 b->yy_input_file = file; 07254 b->yy_fill_buffer = 1; 07255 07256 /* If b is the current buffer, then yy_init_buffer was _probably_ 07257 * called from yyrestart() or through yy_get_next_buffer. 07258 * In that case, we don't want to reset the lineno or column. 07259 */ 07260 if (b != YY_CURRENT_BUFFER){ 07261 b->yy_bs_lineno = 1; 07262 b->yy_bs_column = 0; 07263 } 07264 07265 b->yy_is_interactive = 1; 07266 07267 #if 0 07268 errno = oerrno; 07269 #endif 07270 }
| static int yy_init_globals | ( | void | ) | [static] |
Definition at line 7501 of file pp_lex_guts.yy.cc.
References yy_buffer_stack, yy_buffer_stack_max, yy_buffer_stack_top, yy_init, yy_start, yyin, and yyout.
07502 { 07503 /* Initialization is the same as for the non-reentrant scanner. 07504 * This function is called from yylex_destroy(), so don't allocate here. 07505 */ 07506 07507 (yy_buffer_stack) = 0; 07508 (yy_buffer_stack_top) = 0; 07509 (yy_buffer_stack_max) = 0; 07510 (yy_c_buf_p) = (char *) 0; 07511 (yy_init) = 0; 07512 (yy_start) = 0; 07513 07514 /* Defined in main.c */ 07515 #ifdef YY_STDINIT 07516 yyin = stdin; 07517 yyout = stdout; 07518 #else 07519 yyin = (FILE *) 0; 07520 yyout = (FILE *) 0; 07521 #endif 07522 07523 /* For future reference: Set errno on error, since we are called by 07524 * yylex_init() 07525 */ 07526 return 0; 07527 }
| static void yy_load_buffer_state | ( | void | ) | [static] |
Definition at line 7183 of file pp_lex_guts.yy.cc.
References YY_CURRENT_BUFFER_LVALUE, yy_hold_char, yy_n_chars, yyin, and yytext_ptr.
07184 { 07185 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 07186 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 07187 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 07188 (yy_hold_char) = *(yy_c_buf_p); 07189 }
| YY_BUFFER_STATE yy_scan_buffer | ( | char * | base, | |
| yy_size_t | size | |||
| ) |
| YY_BUFFER_STATE yy_scan_bytes | ( | char * | bytes, | |
| int | len | |||
| ) |
| YY_BUFFER_STATE yy_scan_string | ( | char * | yy_str | ) |
| void yy_switch_to_buffer | ( | YY_BUFFER_STATE | new_buffer | ) |
Switch to a different input buffer.
| new_buffer | The new input buffer. |
| static yy_state_type yy_try_NUL_trans | ( | yy_state_type | current_state | ) | [static] |
Definition at line 7033 of file pp_lex_guts.yy.cc.
References yy_c_buf_p.
07034 { 07035 register int yy_is_jam; 07036 register char *yy_cp = (yy_c_buf_p); 07037 07038 register YY_CHAR yy_c = 99; 07039 if ( yy_accept[yy_current_state] ) 07040 { 07041 (yy_last_accepting_state) = yy_current_state; 07042 (yy_last_accepting_cpos) = yy_cp; 07043 } 07044 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 07045 { 07046 yy_current_state = (int) yy_def[yy_current_state]; 07047 if ( yy_current_state >= 1094 ) 07048 yy_c = yy_meta[(unsigned int) yy_c]; 07049 } 07050 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 07051 yy_is_jam = (yy_current_state == 1093); 07052 07053 return yy_is_jam ? 0 : yy_current_state; 07054 }
| static void yyensure_buffer_stack | ( | void | ) | [static] |
Definition at line 7354 of file pp_lex_guts.yy.cc.
References yy_buffer_stack, yy_buffer_stack_max, yy_buffer_stack_top, yyalloc(), and yyrealloc().
07355 { 07356 int num_to_alloc; 07357 07358 if (!(yy_buffer_stack)) { 07359 07360 /* First allocation is just for 2 elements, since we don't know if this 07361 * scanner will even need a stack. We use 2 instead of 1 to avoid an 07362 * immediate realloc on the next call. 07363 */ 07364 num_to_alloc = 1; 07365 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc 07366 (num_to_alloc * sizeof(struct yy_buffer_state*) 07367 ); 07368 07369 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 07370 07371 (yy_buffer_stack_max) = num_to_alloc; 07372 (yy_buffer_stack_top) = 0; 07373 return; 07374 } 07375 07376 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 07377 07378 /* Increase the buffer to prepare for a possible push. */ 07379 int grow_size = 8 /* arbitrary grow size */; 07380 07381 num_to_alloc = (yy_buffer_stack_max) + grow_size; 07382 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc 07383 ((yy_buffer_stack), 07384 num_to_alloc * sizeof(struct yy_buffer_state*) 07385 ); 07386 07387 /* zero only the new slots.*/ 07388 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 07389 (yy_buffer_stack_max) = num_to_alloc; 07390 } 07391 }
| void yyfree | ( | void * | ) |
| int yyget_debug | ( | void | ) |
| FILE* yyget_in | ( | void | ) |
Get the input stream.
Definition at line 7435 of file pp_lex_guts.yy.cc.
References yyin.
07436 { 07437 return yyin; 07438 }
| int yyget_leng | ( | void | ) |
Get the length of the current token.
Definition at line 7451 of file pp_lex_guts.yy.cc.
References yyleng.
07452 { 07453 return yyleng; 07454 }
| int yyget_lineno | ( | void | ) |
Get the current line number.
Definition at line 7426 of file pp_lex_guts.yy.cc.
07427 { 07428 07429 return yylineno; 07430 }
| FILE* yyget_out | ( | void | ) |
Get the output stream.
Definition at line 7443 of file pp_lex_guts.yy.cc.
References yyout.
07444 { 07445 return yyout; 07446 }
| char* yyget_text | ( | void | ) |
Get the current token.
Definition at line 7460 of file pp_lex_guts.yy.cc.
07461 { 07462 return yytext; 07463 }
| int yylex_destroy | ( | void | ) |
Definition at line 7530 of file pp_lex_guts.yy.cc.
References yy_buffer_stack, YY_CURRENT_BUFFER, YY_CURRENT_BUFFER_LVALUE, yy_delete_buffer(), yy_init_globals(), yyfree(), and yypop_buffer_state().
07531 { 07532 07533 /* Pop the buffer stack, destroying each element. */ 07534 while(YY_CURRENT_BUFFER){ 07535 yy_delete_buffer(YY_CURRENT_BUFFER ); 07536 YY_CURRENT_BUFFER_LVALUE = NULL; 07537 yypop_buffer_state(); 07538 } 07539 07540 /* Destroy the stack itself. */ 07541 yyfree((yy_buffer_stack) ); 07542 (yy_buffer_stack) = NULL; 07543 07544 /* Reset the globals. This is important in a non-reentrant scanner so the next time 07545 * yylex() is called, initialization will occur. */ 07546 yy_init_globals( ); 07547 07548 return 0; 07549 }
| void yypop_buffer_state | ( | void | ) |
Removes and deletes the top of the stack, if present. The next element becomes the new top.
| void yypush_buffer_state | ( | YY_BUFFER_STATE | new_buffer | ) |
Pushes the new state onto the stack. The new state becomes the current state. This function will allocate the stack if necessary.
| new_buffer | The new state. |
| void* yyrealloc | ( | void * | , | |
| yy_size_t | ||||
| ) |
| void yyrestart | ( | FILE * | input_file | ) |
Immediately switch to a different input stream.
| input_file | A readable stream. |
INITIAL . | void yyset_debug | ( | int | bdebug | ) |
| void yyset_in | ( | FILE * | in_str | ) |
Set the input stream. This does not discard the current input buffer.
| in_str | A readable stream. |
Definition at line 7481 of file pp_lex_guts.yy.cc.
References yyin.
07482 { 07483 yyin = in_str ; 07484 }
| void yyset_lineno | ( | int | line_number | ) |
Set the current line number.
| line_number |
Definition at line 7469 of file pp_lex_guts.yy.cc.
07470 { 07471 07472 yylineno = line_number; 07473 }
| void yyset_out | ( | FILE * | out_str | ) |
Definition at line 7486 of file pp_lex_guts.yy.cc.
References yyout.
07487 { 07488 yyout = out_str ; 07489 }
pp_lex* current_ppl [static] |
Current wrapper class, which will be live when used.
Definition at line 4273 of file pp_lex_guts.yy.cc.
Referenced by lestes::lang::cplus::lex::pp_lex::activate(), and lestes::lang::cplus::lex::pp_lex::read().
ucn_token_buffer* current_utb [static] |
Current ucn token buffer, which will be live when used.
Definition at line 4276 of file pp_lex_guts.yy.cc.
Referenced by lestes::lang::cplus::lex::pp_lex::activate().
flex_int16_t yy_accept[1094] [static] |
Definition at line 367 of file pp_lex_guts.yy.cc.
flex_int16_t yy_base[1204] [static] |
Definition at line 539 of file pp_lex_guts.yy.cc.
YY_BUFFER_STATE* yy_buffer_stack = 0 [static] |
Stack as an array.
Definition at line 247 of file pp_lex_guts.yy.cc.
size_t yy_buffer_stack_max = 0 [static] |
capacity of stack.
Definition at line 246 of file pp_lex_guts.yy.cc.
size_t yy_buffer_stack_top = 0 [static] |
index of top of stack.
Definition at line 245 of file pp_lex_guts.yy.cc.
char* yy_c_buf_p = (char *) 0 [static] |
Definition at line 270 of file pp_lex_guts.yy.cc.
flex_int16_t yy_chk[15282] [static] |
Definition at line 2498 of file pp_lex_guts.yy.cc.
flex_int16_t yy_def[1204] [static] |
Definition at line 676 of file pp_lex_guts.yy.cc.
int yy_did_buffer_switch_on_eof [static] |
Definition at line 277 of file pp_lex_guts.yy.cc.
flex_int32_t yy_ec[256] [static] |
Definition at line 492 of file pp_lex_guts.yy.cc.
| int yy_flex_debug = 0 |
Definition at line 4187 of file pp_lex_guts.yy.cc.
| int yy_flex_debug |
Definition at line 1265 of file concat_guts.yy.cc.
char yy_hold_char [static] |
Definition at line 265 of file pp_lex_guts.yy.cc.
int yy_init = 0 [static] |
Definition at line 271 of file pp_lex_guts.yy.cc.
char* yy_last_accepting_cpos [static] |
Definition at line 4184 of file pp_lex_guts.yy.cc.
yy_state_type yy_last_accepting_state [static] |
Definition at line 4183 of file pp_lex_guts.yy.cc.
flex_int32_t yy_meta[100] [static] |
Initial value:
{ 0,
1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
1, 1, 3, 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, 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, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 4
}
Definition at line 524 of file pp_lex_guts.yy.cc.
int yy_n_chars [static] |
Definition at line 266 of file pp_lex_guts.yy.cc.
flex_int16_t yy_nxt[15282] [static] |
Definition at line 813 of file pp_lex_guts.yy.cc.
int yy_start = 0 [static] |
Definition at line 272 of file pp_lex_guts.yy.cc.
| FILE* yyin = (FILE *) 0 |
Definition at line 332 of file pp_lex_guts.yy.cc.
| FILE* yyin |
Definition at line 332 of file concat_guts.yy.cc.
| int yyleng |
Definition at line 267 of file pp_lex_guts.yy.cc.
| int yyleng |
Definition at line 267 of file concat_guts.yy.cc.
| int yylineno = 1 |
Definition at line 338 of file pp_lex_guts.yy.cc.
| int yylineno |
Definition at line 338 of file concat_guts.yy.cc.
| FILE * yyout = (FILE *) 0 |
Definition at line 332 of file pp_lex_guts.yy.cc.
| FILE * yyout |
Definition at line 332 of file concat_guts.yy.cc.
| char* yytext |
Definition at line 4196 of file pp_lex_guts.yy.cc.
| char* yytext |
Definition at line 1274 of file concat_guts.yy.cc.
1.5.1-20070107