From 4debc6f1d03824f496c73baec28242e624480080 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Thu, 3 Nov 2016 14:18:12 +0100 Subject: [PATCH] [master] Regen with older but correct flex --- src/lib/eval/lexer.cc | 831 ++++++++++++++++++++++-------------------- src/lib/eval/lexer.ll | 1 + 2 files changed, 439 insertions(+), 393 deletions(-) diff --git a/src/lib/eval/lexer.cc b/src/lib/eval/lexer.cc index 6408cc86fe..1ac0bffb72 100644 --- a/src/lib/eval/lexer.cc +++ b/src/lib/eval/lexer.cc @@ -1,12 +1,13 @@ -#line 1 "lexer.cc" +#line 2 "lexer.cc" -#line 3 "lexer.cc" +#line 4 "lexer.cc" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ /* %not-for-header */ + /* %if-c-only */ /* %if-not-reentrant */ #define yy_create_buffer eval_create_buffer @@ -35,7 +36,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 2 +#define YY_FLEX_SUBMINOR_VERSION 0 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -135,25 +136,41 @@ typedef unsigned int flex_uint32_t; /* %if-c++-only */ /* %endif */ -/* TODO: this is always defined, so inline it */ -#define yyconst const +#ifdef __cplusplus -#if defined(__GNUC__) && __GNUC__ >= 3 -#define yynoreturn __attribute__((__noreturn__)) +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const #else -#define yynoreturn +#define yyconst #endif /* %not-for-header */ + /* Returned upon end-of-file. */ #define YY_NULL 0 /* %ok-for-header */ /* %not-for-header */ -/* Promotes a possibly negative, possibly signed char to an - * integer in range [0..255] for use as an array index. + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. */ -#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* %ok-for-header */ /* %if-reentrant */ @@ -168,16 +185,20 @@ typedef unsigned int flex_uint32_t; * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * + /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START + /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE evalrestart(evalin ) + #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -208,7 +229,7 @@ typedef size_t yy_size_t; #endif /* %if-not-reentrant */ -extern int evalleng; +extern yy_size_t evalleng; /* %endif */ /* %if-c-only */ @@ -220,7 +241,7 @@ extern FILE *evalin, *evalout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires * access to the local variable yy_act. Since yyless() is a macro, it would break * existing scanners that call yyless() from OUTSIDE evallex. @@ -256,6 +277,7 @@ extern FILE *evalin, *evalout; YY_DO_BEFORE_ACTION; /* set up evaltext again */ \ } \ while ( 0 ) + #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -275,12 +297,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - int yy_buf_size; + yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -330,12 +352,13 @@ struct yy_buffer_state /* %if-c-only Standard (non-C++) definition */ /* %not-for-header */ + /* %if-not-reentrant */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* %endif */ /* %ok-for-header */ @@ -350,6 +373,7 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) + /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -359,13 +383,14 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* %if-not-reentrant */ /* %not-for-header */ + /* yy_hold_char holds the character lost when evaltext is formed. */ static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int evalleng; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t evalleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = NULL; +static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -377,30 +402,32 @@ static int yy_did_buffer_switch_on_eof; /* %endif */ -void evalrestart ( FILE *input_file ); -void eval_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE eval_create_buffer ( FILE *file, int size ); -void eval_delete_buffer ( YY_BUFFER_STATE b ); -void eval_flush_buffer ( YY_BUFFER_STATE b ); -void evalpush_buffer_state ( YY_BUFFER_STATE new_buffer ); -void evalpop_buffer_state ( void ); +void evalrestart (FILE *input_file ); +void eval_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE eval_create_buffer (FILE *file,int size ); +void eval_delete_buffer (YY_BUFFER_STATE b ); +void eval_flush_buffer (YY_BUFFER_STATE b ); +void evalpush_buffer_state (YY_BUFFER_STATE new_buffer ); +void evalpop_buffer_state (void ); + +static void evalensure_buffer_stack (void ); +static void eval_load_buffer_state (void ); +static void eval_init_buffer (YY_BUFFER_STATE b,FILE *file ); -static void evalensure_buffer_stack ( void ); -static void eval_load_buffer_state ( void ); -static void eval_init_buffer ( YY_BUFFER_STATE b, FILE *file ); #define YY_FLUSH_BUFFER eval_flush_buffer(YY_CURRENT_BUFFER ) -YY_BUFFER_STATE eval_scan_buffer ( char *base, yy_size_t size ); -YY_BUFFER_STATE eval_scan_string ( const char *yy_str ); -YY_BUFFER_STATE eval_scan_bytes ( const char *bytes, int len ); +YY_BUFFER_STATE eval_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE eval_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE eval_scan_bytes (yyconst char *bytes,yy_size_t len ); /* %endif */ -void *evalalloc ( yy_size_t ); -void *evalrealloc ( void *, yy_size_t ); -void evalfree ( void * ); +void *evalalloc (yy_size_t ); +void *evalrealloc (void *,yy_size_t ); +void evalfree (void * ); #define yy_new_buffer eval_create_buffer + #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -410,6 +437,7 @@ void evalfree ( void * ); } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } + #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -419,6 +447,7 @@ void evalfree ( void * ); } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } + #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* %% [1.0] evaltext/evalin/evalout/yy_state_type/evallineno etc. def's & init go here */ @@ -428,13 +457,15 @@ void evalfree ( void * ); #define YY_SKIP_YYWRAP #define FLEX_DEBUG -typedef flex_uint8_t YY_CHAR; -FILE *evalin = NULL, *evalout = NULL; +typedef unsigned char YY_CHAR; + +FILE *evalin = (FILE *) 0, *evalout = (FILE *) 0; typedef int yy_state_type; extern int evallineno; + int evallineno = 1; extern char *evaltext; @@ -447,10 +478,13 @@ extern char *evaltext; /* %if-c-only Standard (non-C++) definition */ -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 yynoreturn yy_fatal_error ( const char* msg ); +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 ); +#if defined(__GNUC__) && __GNUC__ >= 3 +__attribute__((__noreturn__)) +#endif +static void yy_fatal_error (yyconst char msg[] ); /* %endif */ @@ -460,14 +494,15 @@ static void yynoreturn yy_fatal_error ( const char* msg ); #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ /* %% [2.0] code to fiddle evaltext and evalleng for yymore() goes here \ */\ - evalleng = (int) (yy_cp - yy_bp); \ + evalleng = (size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ /* %% [3.0] code to copy yytext_ptr to evaltext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; + /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 50 -#define YY_END_OF_BUFFER 51 +#define YY_NUM_RULES 51 +#define YY_END_OF_BUFFER 52 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -475,67 +510,67 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_acclist[278] = +static yyconst flex_int16_t yy_acclist[280] = { 0, - 51, 49, 50, 1, 49, 50, 50, 49, 50, 43, - 49, 50, 44, 49, 50, 48, 49, 50, 47, 49, - 50, 49, 50, 42, 49, 50, 4, 49, 50, 4, - 49, 50, 49, 50, 49, 50, 49, 50,16389, 49, - 50,16389, 45, 49, 50, 46, 49, 50, 49, 50, - 16389, 49, 50,16389, 49, 50,16389, 49, 50,16389, - 49, 50,16389, 49, 50,16389, 49, 50,16389, 49, - 50,16389, 49, 50,16389, 49, 50,16389, 49, 50, - 16389, 49, 50,16389, 49, 50,16389, 49, 50,16389, - 49, 50,16389, 49, 50,16389, 49, 50,16389, 1, - - 2, 4, 4, 6, 7,16389,16389, 8197,16389,16389, - 16389,16389,16389,16389,16389,16389,16389,16389,16389,16389, - 16389,16389,16389,16389,16389,16389,16389, 41,16389,16389, - 16389,16389,16389,16389,16389,16389,16389,16389,16389, 3, - 6, 37,16389, 40,16389,16389,16389,16389, 19,16389, - 16389,16389,16389, 14,16389,16389,16389,16389, 20,16389, - 16389, 22,16389,16389, 39,16389,16389,16389, 16,16389, - 16389,16389, 18,16389,16389,16389,16389,16389,16389,16389, - 16389, 34,16389,16389,16389,16389, 23,16389,16389,16389, - 16389,16389,16389,16389, 21,16389, 29,16389,16389,16389, - - 16389, 13,16389,16389,16389,16389,16389,16389,16389,16389, - 16389, 24,16389, 17,16389,16389,16389,16389,16389,16389, - 16389,16389,16389,16389,16389, 25,16389, 38,16389,16389, - 15,16389, 26,16389,16389,16389, 8,16389,16389, 9, - 16389, 10,16389, 28,16389,16389,16389, 32,16389, 27, - 16389, 6,16389,16389, 30,16389,16389,16389, 31,16389, - 16389, 12,16389, 11,16389,16389,16389,16389, 36,16389, - 16389, 35,16389,16389,16389, 33,16389 + 52, 50, 51, 1, 50, 51, 2, 51, 50, 51, + 44, 50, 51, 45, 50, 51, 49, 50, 51, 48, + 50, 51, 50, 51, 43, 50, 51, 5, 50, 51, + 5, 50, 51, 50, 51, 50, 51, 50, 51,16390, + 50, 51,16390, 46, 50, 51, 47, 50, 51, 50, + 51,16390, 50, 51,16390, 50, 51,16390, 50, 51, + 16390, 50, 51,16390, 50, 51,16390, 50, 51,16390, + 50, 51,16390, 50, 51,16390, 50, 51,16390, 50, + 51,16390, 50, 51,16390, 50, 51,16390, 50, 51, + 16390, 50, 51,16390, 50, 51,16390, 50, 51,16390, + + 1, 2, 3, 5, 5, 7, 8,16390,16390, 8198, + 16390,16390,16390,16390,16390,16390,16390,16390,16390,16390, + 16390,16390,16390,16390,16390,16390,16390,16390,16390, 42, + 16390,16390,16390,16390,16390,16390,16390,16390,16390,16390, + 16390, 4, 7, 38,16390, 41,16390,16390,16390,16390, + 20,16390,16390,16390,16390, 15,16390,16390,16390,16390, + 21,16390,16390, 23,16390,16390, 40,16390,16390,16390, + 17,16390,16390,16390, 19,16390,16390,16390,16390,16390, + 16390,16390,16390, 35,16390,16390,16390,16390, 24,16390, + 16390,16390,16390,16390,16390,16390, 22,16390, 30,16390, + + 16390,16390,16390, 14,16390,16390,16390,16390,16390,16390, + 16390,16390,16390, 25,16390, 18,16390,16390,16390,16390, + 16390,16390,16390,16390,16390,16390,16390, 26,16390, 39, + 16390,16390, 16,16390, 27,16390,16390,16390, 9,16390, + 16390, 10,16390, 11,16390, 29,16390,16390,16390, 33, + 16390, 28,16390, 7,16390,16390, 31,16390,16390,16390, + 32,16390,16390, 13,16390, 12,16390,16390,16390,16390, + 37,16390,16390, 36,16390,16390,16390, 34,16390 } ; -static const flex_int16_t yy_accept[198] = +static yyconst flex_int16_t yy_accept[199] = { 0, - 1, 1, 1, 2, 4, 7, 8, 10, 13, 16, - 19, 22, 24, 27, 30, 33, 35, 37, 40, 43, - 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, - 76, 79, 82, 85, 88, 91, 94, 97, 100, 101, - 101, 102, 103, 103, 104, 104, 104, 104, 104, 105, - 106, 106, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 140, 141, 142, 144, - 146, 147, 148, 149, 151, 152, 153, 154, 156, 157, - - 158, 159, 161, 162, 164, 165, 167, 168, 169, 171, - 172, 173, 175, 176, 177, 178, 179, 180, 180, 181, - 182, 184, 185, 186, 187, 189, 190, 191, 192, 193, - 194, 195, 197, 199, 200, 201, 202, 204, 205, 206, - 207, 207, 208, 209, 210, 211, 212, 214, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 226, - 228, 230, 231, 233, 235, 236, 237, 239, 240, 242, - 244, 246, 247, 248, 250, 252, 253, 254, 255, 257, - 258, 259, 261, 261, 262, 264, 266, 267, 268, 269, - 271, 272, 274, 275, 276, 278, 278 + 1, 1, 1, 2, 4, 7, 9, 11, 14, 17, + 20, 23, 25, 28, 31, 34, 36, 38, 41, 44, + 47, 50, 53, 56, 59, 62, 65, 68, 71, 74, + 77, 80, 83, 86, 89, 92, 95, 98, 101, 102, + 103, 103, 104, 105, 105, 106, 106, 106, 106, 106, + 107, 108, 108, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 142, 143, 144, + 146, 148, 149, 150, 151, 153, 154, 155, 156, 158, + + 159, 160, 161, 163, 164, 166, 167, 169, 170, 171, + 173, 174, 175, 177, 178, 179, 180, 181, 182, 182, + 183, 184, 186, 187, 188, 189, 191, 192, 193, 194, + 195, 196, 197, 199, 201, 202, 203, 204, 206, 207, + 208, 209, 209, 210, 211, 212, 213, 214, 216, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 228, 230, 232, 233, 235, 237, 238, 239, 241, 242, + 244, 246, 248, 249, 250, 252, 254, 255, 256, 257, + 259, 260, 261, 263, 263, 264, 266, 268, 269, 270, + 271, 273, 274, 276, 277, 278, 280, 280 } ; -static const YY_CHAR yy_ec[256] = +static yyconst YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -567,7 +602,7 @@ static const YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1 } ; -static const YY_CHAR yy_meta[45] = +static yyconst YY_CHAR yy_meta[45] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4, 5, 1, 4, 1, 1, 1, @@ -576,104 +611,104 @@ static const YY_CHAR yy_meta[45] = 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[202] = +static yyconst flex_uint16_t yy_base[203] = { 0, - 0, 0, 308, 309, 305, 309, 302, 309, 309, 309, - 309, 34, 309, 39, 36, 290, 288, 81, 115, 309, - 309, 24, 37, 37, 26, 272, 45, 274, 43, 48, - 265, 43, 59, 273, 106, 50, 272, 267, 295, 292, - 309, 122, 137, 112, 280, 279, 0, 278, 0, 309, - 143, 150, 0, 0, 309, 259, 265, 267, 254, 248, - 247, 246, 254, 261, 240, 255, 237, 257, 244, 243, - 252, 247, 235, 234, 0, 246, 232, 238, 247, 244, - 244, 224, 243, 230, 241, 146, 0, 0, 0, 0, - 237, 237, 238, 0, 233, 220, 232, 0, 222, 219, - - 230, 0, 222, 0, 213, 0, 221, 213, 148, 227, - 223, 0, 209, 207, 211, 219, 218, 154, 217, 219, - 0, 203, 200, 213, 0, 211, 210, 213, 191, 198, - 210, 0, 0, 188, 205, 190, 0, 190, 192, 201, - 162, 188, 185, 187, 184, 184, 0, 0, 195, 173, - 172, 180, 156, 167, 165, 171, 163, 162, 166, 0, - 0, 161, 0, 0, 172, 170, 0, 170, 0, 0, - 0, 164, 168, 184, 0, 170, 161, 153, 0, 152, - 154, 0, 183, 149, 0, 0, 158, 130, 127, 0, - 78, 0, 58, 50, 0, 309, 208, 210, 212, 71, - - 215 + 0, 0, 310, 311, 307, 305, 303, 311, 311, 311, + 311, 34, 311, 39, 36, 291, 289, 81, 115, 311, + 311, 24, 37, 37, 26, 273, 45, 275, 43, 48, + 266, 43, 59, 274, 106, 50, 273, 268, 296, 294, + 292, 311, 122, 137, 112, 280, 279, 0, 278, 0, + 311, 143, 150, 0, 0, 311, 259, 265, 267, 254, + 248, 247, 246, 254, 261, 240, 255, 237, 257, 244, + 243, 252, 247, 235, 234, 0, 246, 232, 238, 247, + 244, 244, 224, 243, 230, 241, 146, 0, 0, 0, + 0, 237, 237, 238, 0, 233, 220, 232, 0, 222, + + 219, 230, 0, 222, 0, 213, 0, 221, 213, 148, + 227, 223, 0, 209, 207, 211, 219, 218, 154, 217, + 219, 0, 203, 200, 213, 0, 211, 210, 213, 191, + 198, 210, 0, 0, 188, 205, 190, 0, 190, 192, + 201, 162, 188, 185, 187, 184, 184, 0, 0, 195, + 173, 172, 180, 156, 167, 165, 171, 163, 162, 166, + 0, 0, 161, 0, 0, 172, 170, 0, 170, 0, + 0, 0, 164, 168, 184, 0, 170, 161, 153, 0, + 152, 154, 0, 183, 149, 0, 0, 158, 130, 127, + 0, 78, 0, 58, 50, 0, 311, 208, 210, 212, + + 71, 215 } ; -static const flex_int16_t yy_def[202] = +static yyconst flex_int16_t yy_def[203] = { 0, - 196, 1, 196, 196, 196, 196, 197, 196, 196, 196, - 196, 196, 196, 196, 14, 198, 196, 196, 18, 196, - 196, 18, 18, 18, 18, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 196, 197, - 196, 196, 196, 14, 198, 199, 200, 198, 201, 196, - 196, 19, 18, 19, 196, 19, 19, 19, 19, 18, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 197, 1, 197, 197, 197, 197, 198, 197, 197, 197, + 197, 197, 197, 197, 14, 199, 197, 197, 18, 197, + 197, 18, 18, 18, 18, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 197, 197, + 198, 197, 197, 197, 14, 199, 200, 201, 199, 202, + 197, 197, 19, 18, 19, 197, 19, 19, 19, 19, + 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 196, 200, 201, 19, 19, + 19, 19, 19, 19, 19, 19, 197, 201, 202, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 196, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 197, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 196, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 196, 19, + 19, 197, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 197, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 196, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 197, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 0, 196, 196, 196, 196, + 19, 19, 19, 19, 19, 19, 0, 197, 197, 197, - 196 + 197, 197 } ; -static const flex_int16_t yy_nxt[354] = +static yyconst flex_uint16_t yy_nxt[356] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 16, 17, 18, 19, 19, 20, 21, 4, 22, 18, 23, 24, 25, 18, 26, 27, 28, 19, 29, 30, 31, 32, 33, 34, 35, 36, - 19, 37, 19, 38, 42, 42, 42, 42, 43, 44, - 44, 44, 44, 45, 196, 46, 56, 47, 57, 60, - 62, 46, 46, 46, 46, 46, 46, 58, 63, 69, - 71, 65, 59, 70, 87, 61, 82, 66, 196, 74, - 75, 47, 51, 51, 67, 76, 72, 83, 195, 52, - 77, 53, 53, 53, 53, 45, 194, 53, 54, 54, - - 193, 55, 52, 53, 53, 53, 53, 53, 53, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 196, - 196, 54, 42, 42, 42, 42, 79, 54, 54, 54, - 54, 54, 54, 80, 51, 51, 81, 86, 86, 86, - 86, 196, 196, 192, 196, 118, 86, 86, 86, 86, - 132, 133, 191, 55, 141, 141, 141, 141, 169, 170, - 196, 159, 141, 141, 141, 141, 176, 176, 176, 176, - 176, 176, 176, 176, 196, 196, 190, 189, 187, 186, - 185, 184, 183, 182, 181, 180, 179, 178, 177, 175, - - 174, 173, 172, 196, 171, 168, 167, 188, 40, 166, - 40, 40, 40, 48, 48, 46, 46, 88, 88, 88, - 165, 164, 163, 162, 161, 160, 158, 157, 156, 155, - 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, - 144, 143, 142, 140, 139, 138, 137, 136, 135, 134, - 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, - 121, 120, 119, 117, 116, 115, 114, 113, 112, 111, - 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, - 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, - 90, 89, 49, 45, 49, 41, 39, 85, 84, 78, - - 73, 68, 64, 50, 49, 41, 39, 196, 3, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196 + 19, 37, 19, 38, 43, 43, 43, 43, 44, 45, + 45, 45, 45, 46, 197, 47, 57, 48, 58, 61, + 63, 47, 47, 47, 47, 47, 47, 59, 64, 70, + 72, 66, 60, 71, 88, 62, 83, 67, 197, 75, + 76, 48, 52, 52, 68, 77, 73, 84, 196, 53, + 78, 54, 54, 54, 54, 46, 195, 54, 55, 55, + + 194, 56, 53, 54, 54, 54, 54, 54, 54, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 197, + 197, 55, 43, 43, 43, 43, 80, 55, 55, 55, + 55, 55, 55, 81, 52, 52, 82, 87, 87, 87, + 87, 197, 197, 193, 197, 119, 87, 87, 87, 87, + 133, 134, 192, 56, 142, 142, 142, 142, 170, 171, + 197, 160, 142, 142, 142, 142, 177, 177, 177, 177, + 177, 177, 177, 177, 197, 197, 191, 190, 188, 187, + 186, 185, 184, 183, 182, 181, 180, 179, 178, 176, + + 175, 174, 173, 197, 172, 169, 168, 189, 41, 167, + 41, 41, 41, 49, 49, 47, 47, 89, 89, 89, + 166, 165, 164, 163, 162, 161, 159, 158, 157, 156, + 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, + 145, 144, 143, 141, 140, 139, 138, 137, 136, 135, + 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, + 122, 121, 120, 118, 117, 116, 115, 114, 113, 112, + 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, + 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, + 91, 90, 50, 46, 50, 42, 40, 39, 86, 85, + + 79, 74, 69, 65, 51, 50, 42, 40, 39, 197, + 3, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197 } ; -static const flex_int16_t yy_chk[354] = +static yyconst flex_int16_t yy_chk[356] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -682,57 +717,57 @@ static const flex_int16_t yy_chk[354] = 1, 1, 1, 1, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 15, 14, 22, 14, 22, 24, 25, 14, 14, 14, 14, 14, 14, 23, 25, 29, - 30, 27, 23, 29, 200, 24, 36, 27, 15, 32, - 32, 14, 18, 18, 27, 33, 30, 36, 194, 18, - 33, 18, 18, 18, 18, 18, 193, 18, 18, 18, + 30, 27, 23, 29, 201, 24, 36, 27, 15, 32, + 32, 14, 18, 18, 27, 33, 30, 36, 195, 18, + 33, 18, 18, 18, 18, 18, 194, 18, 18, 18, - 191, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 192, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, - 44, 19, 42, 42, 42, 42, 35, 19, 19, 19, - 19, 19, 19, 35, 51, 51, 35, 43, 43, 43, - 43, 52, 52, 189, 44, 86, 86, 86, 86, 86, - 109, 109, 188, 51, 118, 118, 118, 118, 153, 153, - 52, 141, 141, 141, 141, 141, 159, 159, 159, 159, - 176, 176, 176, 176, 183, 183, 187, 184, 181, 180, - 178, 177, 174, 173, 172, 168, 166, 165, 162, 158, - - 157, 156, 155, 183, 154, 152, 151, 183, 197, 150, - 197, 197, 197, 198, 198, 199, 199, 201, 201, 201, - 149, 146, 145, 144, 143, 142, 140, 139, 138, 136, - 135, 134, 131, 130, 129, 128, 127, 126, 124, 123, - 122, 120, 119, 117, 116, 115, 114, 113, 111, 110, - 108, 107, 105, 103, 101, 100, 99, 97, 96, 95, - 93, 92, 91, 85, 84, 83, 82, 81, 80, 79, - 78, 77, 76, 74, 73, 72, 71, 70, 69, 68, - 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, - 57, 56, 48, 46, 45, 40, 39, 38, 37, 34, - - 31, 28, 26, 17, 16, 7, 5, 3, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196 + 45, 19, 43, 43, 43, 43, 35, 19, 19, 19, + 19, 19, 19, 35, 52, 52, 35, 44, 44, 44, + 44, 53, 53, 190, 45, 87, 87, 87, 87, 87, + 110, 110, 189, 52, 119, 119, 119, 119, 154, 154, + 53, 142, 142, 142, 142, 142, 160, 160, 160, 160, + 177, 177, 177, 177, 184, 184, 188, 185, 182, 181, + 179, 178, 175, 174, 173, 169, 167, 166, 163, 159, + + 158, 157, 156, 184, 155, 153, 152, 184, 198, 151, + 198, 198, 198, 199, 199, 200, 200, 202, 202, 202, + 150, 147, 146, 145, 144, 143, 141, 140, 139, 137, + 136, 135, 132, 131, 130, 129, 128, 127, 125, 124, + 123, 121, 120, 118, 117, 116, 115, 114, 112, 111, + 109, 108, 106, 104, 102, 101, 100, 98, 97, 96, + 94, 93, 92, 86, 85, 84, 83, 82, 81, 80, + 79, 78, 77, 75, 74, 73, 72, 71, 70, 69, + 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, + 58, 57, 49, 47, 46, 41, 40, 39, 38, 37, + + 34, 31, 28, 26, 17, 16, 7, 6, 5, 3, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197 } ; /* Table of booleans, true if rule could match eol. */ -static const flex_int32_t yy_rule_can_match_eol[51] = +static yyconst flex_int32_t yy_rule_can_match_eol[52] = { 0, -0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; extern int eval_flex_debug; int eval_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[50] = +static yyconst flex_int16_t yy_rule_linenum[51] = { 0, - 83, 93, 103, 109, 127, 134, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190 + 82, 86, 92, 102, 108, 126, 133, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189 } ; static yy_state_type *yy_state_buf=0, *yy_state_ptr=0; @@ -778,8 +813,8 @@ char *evaltext; // 2.5.31 through 2.5.33): it generates code that does // not conform to C89. See Debian bug 333231 // . -# undef yywrap -# define yywrap() 1 +# undef evalwrap +# define evalwrap() 1 // The location of the current token. The lexer will keep updating it. This // variable will be useful for logging errors. @@ -787,10 +822,9 @@ static isc::eval::location loc; // To avoid the call to exit... oops! #define YY_FATAL_ERROR(msg) isc::eval::EvalContext::fatal(msg) -#line 790 "lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And - using yywrap requires linking with -lfl, which provides the default yywrap + using evalwrap requires linking with -lfl, which provides the default evalwrap implementation that always returns 1 anyway. */ /* nounput simplifies the lexer, by removing support for putting a character back into the input stream. We never use such capability anyway. */ @@ -809,11 +843,10 @@ static isc::eval::location loc; incorrect inputs (e.g., IP addresses) which must be checked. */ #line 69 "lexer.ll" // This code run each time a pattern is matched. It updates the location -// by moving it ahead by yyleng bytes. yyleng specifies the length of the +// by moving it ahead by evalleng bytes. evalleng specifies the length of the // currently matched token. #define YY_USER_ACTION loc.columns(evalleng); -#line 815 "lexer.cc" -#line 816 "lexer.cc" +#line 850 "lexer.cc" #define INITIAL 0 @@ -837,7 +870,7 @@ static isc::eval::location loc; /* %if-reentrant */ /* %if-c-only */ -static int yy_init_globals ( void ); +static int yy_init_globals (void ); /* %endif */ /* %if-reentrant */ @@ -847,31 +880,31 @@ static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int evallex_destroy ( void ); +int evallex_destroy (void ); -int evalget_debug ( void ); +int evalget_debug (void ); -void evalset_debug ( int debug_flag ); +void evalset_debug (int debug_flag ); -YY_EXTRA_TYPE evalget_extra ( void ); +YY_EXTRA_TYPE evalget_extra (void ); -void evalset_extra ( YY_EXTRA_TYPE user_defined ); +void evalset_extra (YY_EXTRA_TYPE user_defined ); -FILE *evalget_in ( void ); +FILE *evalget_in (void ); -void evalset_in ( FILE * _in_str ); +void evalset_in (FILE * _in_str ); -FILE *evalget_out ( void ); +FILE *evalget_out (void ); -void evalset_out ( FILE * _out_str ); +void evalset_out (FILE * _out_str ); - int evalget_leng ( void ); +yy_size_t evalget_leng (void ); -char *evalget_text ( void ); +char *evalget_text (void ); -int evalget_lineno ( void ); +int evalget_lineno (void ); -void evalset_lineno ( int _line_number ); +void evalset_lineno (int _line_number ); /* %if-bison-bridge */ /* %endif */ @@ -882,13 +915,14 @@ void evalset_lineno ( int _line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int evalwrap ( void ); +extern "C" int evalwrap (void ); #else -extern int evalwrap ( void ); +extern int evalwrap (void ); #endif #endif /* %not-for-header */ + #ifndef YY_NO_UNPUT #endif @@ -897,20 +931,21 @@ extern int evalwrap ( void ); /* %endif */ #ifndef yytext_ptr -static void yy_flex_strncpy ( char *, const char *, int ); +static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen ( const char * ); +static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT /* %if-c-only Standard (non-C++) definition */ /* %not-for-header */ + #ifdef __cplusplus -static int yyinput ( void ); +static int yyinput (void ); #else -static int input ( void ); +static int input (void ); #endif /* %ok-for-header */ @@ -937,7 +972,7 @@ static int input ( void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( evaltext, (size_t) evalleng, 1, evalout )) {} } while (0) +#define ECHO do { if (fwrite( evaltext, evalleng, 1, evalout )) {} } while (0) /* %endif */ /* %if-c++-only C++ definition */ /* %endif */ @@ -952,7 +987,7 @@ static int input ( void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - int n; \ + size_t n; \ for ( n = 0; n < max_size && \ (c = getc( evalin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -965,7 +1000,7 @@ static int input ( void ); else \ { \ errno=0; \ - while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, evalin)) == 0 && ferror(evalin)) \ + while ( (result = fread(buf, 1, max_size, evalin))==0 && ferror(evalin)) \ { \ if( errno != EINTR) \ { \ @@ -1006,9 +1041,11 @@ static int input ( void ); /* %if-tables-serialization structures and prototypes */ /* %not-for-header */ + /* %ok-for-header */ /* %not-for-header */ + /* %tables-yydmap generated elements */ /* %endif */ /* end tables serialization structures and prototypes */ @@ -1047,6 +1084,7 @@ extern int evallex (void); YY_USER_ACTION /* %not-for-header */ + /** The main scanner function which does all the work. */ YY_DECL @@ -1101,12 +1139,11 @@ YY_DECL -#line 79 "lexer.ll" // Code run each time evallex is called. loc.step(); -#line 1109 "lexer.cc" +#line 1147 "lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1134,14 +1171,14 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 197 ) - yy_c = yy_meta[yy_c]; + if ( yy_current_state >= 198 ) + yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *(yy_state_ptr)++ = yy_current_state; ++yy_cp; } - while ( yy_current_state != 196 ); + while ( yy_current_state != 197 ); yy_find_action: /* %% [10.0] code to find the action number goes here */ @@ -1189,7 +1226,7 @@ find_rule: /* we branch to this label when backing up */ if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { - int yyl; + yy_size_t yyl; for ( yyl = 0; yyl < evalleng; ++yyl ) if ( evaltext[yyl] == '\n' ) @@ -1204,13 +1241,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 50 ) + else if ( yy_act < 51 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], evaltext ); - else if ( yy_act == 50 ) + else if ( yy_act == 51 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", evaltext ); - else if ( yy_act == 51 ) + else if ( yy_act == 52 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -1221,20 +1258,25 @@ do_action: /* This label is used only to access EOF actions. */ /* %% [13.0] actions go here */ case 1: YY_RULE_SETUP -#line 83 "lexer.ll" +#line 82 "lexer.ll" { // Ok, we found a with space. Let's ignore it and update loc variable. loc.step(); } -[\n]+ { + YY_BREAK +case 2: +/* rule 2 can match eol */ +YY_RULE_SETUP +#line 86 "lexer.ll" +{ // Newline found. Let's update the location and continue. loc.lines(evalleng); loc.step(); } YY_BREAK -case 2: +case 3: YY_RULE_SETUP -#line 93 "lexer.ll" +#line 92 "lexer.ll" { // A string has been matched. It contains the actual string and single quotes. // We need to get those quotes out of the way and just use its content, e.g. @@ -1245,18 +1287,18 @@ YY_RULE_SETUP return isc::eval::EvalParser::make_STRING(tmp, loc); } YY_BREAK -case 3: +case 4: YY_RULE_SETUP -#line 103 "lexer.ll" +#line 102 "lexer.ll" { // A hex string has been matched. It contains the '0x' or '0X' header // followed by at least one hexadecimal digit. return isc::eval::EvalParser::make_HEXSTRING(evaltext, loc); } YY_BREAK -case 4: +case 5: YY_RULE_SETUP -#line 109 "lexer.ll" +#line 108 "lexer.ll" { // An integer was found. std::string tmp(evaltext); @@ -1275,10 +1317,10 @@ YY_RULE_SETUP return isc::eval::EvalParser::make_INTEGER(tmp, loc); } YY_BREAK -case 5: -/* rule 5 can match eol */ +case 6: +/* rule 6 can match eol */ YY_RULE_SETUP -#line 127 "lexer.ll" +#line 126 "lexer.ll" { // This string specifies option name starting with a letter // and further containing letters, digits, hyphens and @@ -1286,9 +1328,9 @@ YY_RULE_SETUP return isc::eval::EvalParser::make_OPTION_NAME(evaltext, loc); } YY_BREAK -case 6: +case 7: YY_RULE_SETUP -#line 134 "lexer.ll" +#line 133 "lexer.ll" { // IPv4 or IPv6 address std::string tmp(evaltext); @@ -1303,231 +1345,231 @@ YY_RULE_SETUP return isc::eval::EvalParser::make_IP_ADDRESS(evaltext, loc); } YY_BREAK -case 7: +case 8: YY_RULE_SETUP -#line 148 "lexer.ll" +#line 147 "lexer.ll" return isc::eval::EvalParser::make_EQUAL(loc); YY_BREAK -case 8: +case 9: YY_RULE_SETUP -#line 149 "lexer.ll" +#line 148 "lexer.ll" return isc::eval::EvalParser::make_OPTION(loc); YY_BREAK -case 9: +case 10: YY_RULE_SETUP -#line 150 "lexer.ll" +#line 149 "lexer.ll" return isc::eval::EvalParser::make_RELAY4(loc); YY_BREAK -case 10: +case 11: YY_RULE_SETUP -#line 151 "lexer.ll" +#line 150 "lexer.ll" return isc::eval::EvalParser::make_RELAY6(loc); YY_BREAK -case 11: +case 12: YY_RULE_SETUP -#line 152 "lexer.ll" +#line 151 "lexer.ll" return isc::eval::EvalParser::make_PEERADDR(loc); YY_BREAK -case 12: +case 13: YY_RULE_SETUP -#line 153 "lexer.ll" +#line 152 "lexer.ll" return isc::eval::EvalParser::make_LINKADDR(loc); YY_BREAK -case 13: +case 14: YY_RULE_SETUP -#line 154 "lexer.ll" +#line 153 "lexer.ll" return isc::eval::EvalParser::make_TEXT(loc); YY_BREAK -case 14: +case 15: YY_RULE_SETUP -#line 155 "lexer.ll" +#line 154 "lexer.ll" return isc::eval::EvalParser::make_HEX(loc); YY_BREAK -case 15: +case 16: YY_RULE_SETUP -#line 156 "lexer.ll" +#line 155 "lexer.ll" return isc::eval::EvalParser::make_EXISTS(loc); YY_BREAK -case 16: +case 17: YY_RULE_SETUP -#line 157 "lexer.ll" +#line 156 "lexer.ll" return isc::eval::EvalParser::make_PKT(loc); YY_BREAK -case 17: +case 18: YY_RULE_SETUP -#line 158 "lexer.ll" +#line 157 "lexer.ll" return isc::eval::EvalParser::make_IFACE(loc); YY_BREAK -case 18: +case 19: YY_RULE_SETUP -#line 159 "lexer.ll" +#line 158 "lexer.ll" return isc::eval::EvalParser::make_SRC(loc); YY_BREAK -case 19: +case 20: YY_RULE_SETUP -#line 160 "lexer.ll" +#line 159 "lexer.ll" return isc::eval::EvalParser::make_DST(loc); YY_BREAK -case 20: +case 21: YY_RULE_SETUP -#line 161 "lexer.ll" +#line 160 "lexer.ll" return isc::eval::EvalParser::make_LEN(loc); YY_BREAK -case 21: +case 22: YY_RULE_SETUP -#line 162 "lexer.ll" +#line 161 "lexer.ll" return isc::eval::EvalParser::make_PKT4(loc); YY_BREAK -case 22: +case 23: YY_RULE_SETUP -#line 163 "lexer.ll" +#line 162 "lexer.ll" return isc::eval::EvalParser::make_CHADDR(loc); YY_BREAK -case 23: +case 24: YY_RULE_SETUP -#line 164 "lexer.ll" +#line 163 "lexer.ll" return isc::eval::EvalParser::make_HLEN(loc); YY_BREAK -case 24: +case 25: YY_RULE_SETUP -#line 165 "lexer.ll" +#line 164 "lexer.ll" return isc::eval::EvalParser::make_HTYPE(loc); YY_BREAK -case 25: +case 26: YY_RULE_SETUP -#line 166 "lexer.ll" +#line 165 "lexer.ll" return isc::eval::EvalParser::make_CIADDR(loc); YY_BREAK -case 26: +case 27: YY_RULE_SETUP -#line 167 "lexer.ll" +#line 166 "lexer.ll" return isc::eval::EvalParser::make_GIADDR(loc); YY_BREAK -case 27: +case 28: YY_RULE_SETUP -#line 168 "lexer.ll" +#line 167 "lexer.ll" return isc::eval::EvalParser::make_YIADDR(loc); YY_BREAK -case 28: +case 29: YY_RULE_SETUP -#line 169 "lexer.ll" +#line 168 "lexer.ll" return isc::eval::EvalParser::make_SIADDR(loc); YY_BREAK -case 29: +case 30: YY_RULE_SETUP -#line 170 "lexer.ll" +#line 169 "lexer.ll" return isc::eval::EvalParser::make_PKT6(loc); YY_BREAK -case 30: +case 31: YY_RULE_SETUP -#line 171 "lexer.ll" +#line 170 "lexer.ll" return isc::eval::EvalParser::make_MSGTYPE(loc); YY_BREAK -case 31: +case 32: YY_RULE_SETUP -#line 172 "lexer.ll" +#line 171 "lexer.ll" return isc::eval::EvalParser::make_TRANSID(loc); YY_BREAK -case 32: +case 33: YY_RULE_SETUP -#line 173 "lexer.ll" +#line 172 "lexer.ll" return isc::eval::EvalParser::make_VENDOR(loc); YY_BREAK -case 33: +case 34: YY_RULE_SETUP -#line 174 "lexer.ll" +#line 173 "lexer.ll" return isc::eval::EvalParser::make_VENDOR_CLASS(loc); YY_BREAK -case 34: +case 35: YY_RULE_SETUP -#line 175 "lexer.ll" +#line 174 "lexer.ll" return isc::eval::EvalParser::make_DATA(loc); YY_BREAK -case 35: +case 36: YY_RULE_SETUP -#line 176 "lexer.ll" +#line 175 "lexer.ll" return isc::eval::EvalParser::make_ENTERPRISE(loc); YY_BREAK -case 36: +case 37: YY_RULE_SETUP -#line 177 "lexer.ll" +#line 176 "lexer.ll" return isc::eval::EvalParser::make_SUBSTRING(loc); YY_BREAK -case 37: +case 38: YY_RULE_SETUP -#line 178 "lexer.ll" +#line 177 "lexer.ll" return isc::eval::EvalParser::make_ALL(loc); YY_BREAK -case 38: +case 39: YY_RULE_SETUP -#line 179 "lexer.ll" +#line 178 "lexer.ll" return isc::eval::EvalParser::make_CONCAT(loc); YY_BREAK -case 39: +case 40: YY_RULE_SETUP -#line 180 "lexer.ll" +#line 179 "lexer.ll" return isc::eval::EvalParser::make_NOT(loc); YY_BREAK -case 40: +case 41: YY_RULE_SETUP -#line 181 "lexer.ll" +#line 180 "lexer.ll" return isc::eval::EvalParser::make_AND(loc); YY_BREAK -case 41: +case 42: YY_RULE_SETUP -#line 182 "lexer.ll" +#line 181 "lexer.ll" return isc::eval::EvalParser::make_OR(loc); YY_BREAK -case 42: +case 43: YY_RULE_SETUP -#line 183 "lexer.ll" +#line 182 "lexer.ll" return isc::eval::EvalParser::make_DOT(loc); YY_BREAK -case 43: +case 44: YY_RULE_SETUP -#line 184 "lexer.ll" +#line 183 "lexer.ll" return isc::eval::EvalParser::make_LPAREN(loc); YY_BREAK -case 44: +case 45: YY_RULE_SETUP -#line 185 "lexer.ll" +#line 184 "lexer.ll" return isc::eval::EvalParser::make_RPAREN(loc); YY_BREAK -case 45: +case 46: YY_RULE_SETUP -#line 186 "lexer.ll" +#line 185 "lexer.ll" return isc::eval::EvalParser::make_LBRACKET(loc); YY_BREAK -case 46: +case 47: YY_RULE_SETUP -#line 187 "lexer.ll" +#line 186 "lexer.ll" return isc::eval::EvalParser::make_RBRACKET(loc); YY_BREAK -case 47: +case 48: YY_RULE_SETUP -#line 188 "lexer.ll" +#line 187 "lexer.ll" return isc::eval::EvalParser::make_COMA(loc); YY_BREAK -case 48: +case 49: YY_RULE_SETUP -#line 189 "lexer.ll" +#line 188 "lexer.ll" return isc::eval::EvalParser::make_ANY(loc); YY_BREAK -case 49: +case 50: YY_RULE_SETUP -#line 190 "lexer.ll" +#line 189 "lexer.ll" driver.error (loc, "Invalid character: " + std::string(evaltext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 191 "lexer.ll" +#line 190 "lexer.ll" return isc::eval::EvalParser::make_END(loc); YY_BREAK -case 50: +case 51: YY_RULE_SETUP -#line 192 "lexer.ll" +#line 191 "lexer.ll" ECHO; YY_BREAK -#line 1530 "lexer.cc" +#line 1573 "lexer.cc" case YY_END_OF_BUFFER: { @@ -1667,6 +1709,7 @@ ECHO; /* %if-c++-only */ /* %not-for-header */ + /* %ok-for-header */ /* %endif */ @@ -1686,7 +1729,7 @@ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); - int number_to_move, i; + yy_size_t number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1715,7 +1758,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); + number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1728,7 +1771,7 @@ static int yy_get_next_buffer (void) else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -1768,10 +1811,10 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) evalrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ); + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) evalrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); } @@ -1789,6 +1832,7 @@ static int yy_get_next_buffer (void) /* %if-c-only */ /* %not-for-header */ + static yy_state_type yy_get_previous_state (void) /* %endif */ /* %if-c++-only */ @@ -1810,10 +1854,10 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 197 ) - yy_c = yy_meta[yy_c]; + if ( yy_current_state >= 198 ) + yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *(yy_state_ptr)++ = yy_current_state; } @@ -1838,11 +1882,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 197 ) - yy_c = yy_meta[yy_c]; + if ( yy_current_state >= 198 ) + yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 196); + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 197); if ( ! yy_is_jam ) *(yy_state_ptr)++ = yy_current_state; @@ -1883,7 +1927,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -1907,7 +1951,7 @@ static int yy_get_next_buffer (void) case EOB_ACT_END_OF_FILE: { if ( evalwrap( ) ) - return 0; + return EOF; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -2039,12 +2083,12 @@ static void eval_load_buffer_state (void) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in eval_create_buffer()" ); - b->yy_buf_size = size; + b->yy_buf_size = (yy_size_t)size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) evalalloc((yy_size_t) (b->yy_buf_size + 2) ); + b->yy_ch_buf = (char *) evalalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in eval_create_buffer()" ); @@ -2235,7 +2279,7 @@ static void evalensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + num_to_alloc = 1; // After all that talk, this was set to 1 anyways... (yy_buffer_stack) = (struct yy_buffer_state**)evalalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -2284,16 +2328,16 @@ YY_BUFFER_STATE eval_scan_buffer (char * base, yy_size_t size ) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return NULL; + return 0; b = (YY_BUFFER_STATE) evalalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in eval_scan_buffer()" ); - b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = NULL; + b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; @@ -2315,10 +2359,10 @@ YY_BUFFER_STATE eval_scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * eval_scan_bytes() instead. */ -YY_BUFFER_STATE eval_scan_string (const char * yystr ) +YY_BUFFER_STATE eval_scan_string (yyconst char * yystr ) { - return eval_scan_bytes(yystr,(int) strlen(yystr) ); + return eval_scan_bytes(yystr,strlen(yystr) ); } /* %endif */ @@ -2330,15 +2374,15 @@ YY_BUFFER_STATE eval_scan_string (const char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE eval_scan_bytes (const char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE eval_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - int i; + yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) (_yybytes_len + 2); + n = _yybytes_len + 2; buf = (char *) evalalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in eval_scan_bytes()" ); @@ -2366,7 +2410,7 @@ YY_BUFFER_STATE eval_scan_bytes (const char * yybytes, int _yybytes_len ) #endif /* %if-c-only */ -static void yynoreturn yy_fatal_error (const char* msg ) +static void yy_fatal_error (yyconst char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); @@ -2426,7 +2470,7 @@ FILE *evalget_out (void) /** Get the length of the current token. * */ -int evalget_leng (void) +yy_size_t evalget_leng (void) { return evalleng; } @@ -2496,10 +2540,10 @@ static int yy_init_globals (void) /* We do not touch evallineno unless the option is enabled. */ evallineno = 1; - (yy_buffer_stack) = NULL; + (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = NULL; + (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; @@ -2513,8 +2557,8 @@ static int yy_init_globals (void) evalin = stdin; evalout = stdout; #else - evalin = NULL; - evalout = NULL; + evalin = (FILE *) 0; + evalout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by @@ -2558,7 +2602,7 @@ int evallex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, const char * s2, int n ) +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { int i; @@ -2568,7 +2612,7 @@ static void yy_flex_strncpy (char* s1, const char * s2, int n ) #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (const char * s ) +static int yy_flex_strlen (yyconst char * s ) { int n; for ( n = 0; s[n]; ++n ) @@ -2580,7 +2624,7 @@ static int yy_flex_strlen (const char * s ) void *evalalloc (yy_size_t size ) { - return malloc(size); + return (void *) malloc( size ); } void *evalrealloc (void * ptr, yy_size_t size ) @@ -2593,7 +2637,7 @@ void *evalrealloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return realloc(ptr, size); + return (void *) realloc( (char *) ptr, size ); } void evalfree (void * ptr ) @@ -2608,7 +2652,8 @@ void evalfree (void * ptr ) /* %ok-for-header */ -#line 192 "lexer.ll" +#line 191 "lexer.ll" + using namespace isc::eval; diff --git a/src/lib/eval/lexer.ll b/src/lib/eval/lexer.ll index ac8056f5cb..838123ad83 100644 --- a/src/lib/eval/lexer.ll +++ b/src/lib/eval/lexer.ll @@ -83,6 +83,7 @@ addr6 [0-9a-fA-F]*\:[0-9a-fA-F]*\:[0-9a-fA-F:.]* // Ok, we found a with space. Let's ignore it and update loc variable. loc.step(); } + [\n]+ { // Newline found. Let's update the location and continue. loc.lines(evalleng); -- 2.47.3