From 32f910c80d085249226de3f352d0aeaaed254b62 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Sat, 17 Dec 2016 14:56:56 +0000 Subject: [PATCH] trac5017: regen parser --- src/bin/dhcp4/dhcp4_lexer.cc | 162 ++++++++++++++++------------------ src/bin/dhcp4/dhcp4_parser.cc | 18 ++-- src/bin/dhcp4/location.hh | 1 + src/bin/dhcp4/position.hh | 1 + src/bin/dhcp4/stack.hh | 1 + 5 files changed, 86 insertions(+), 97 deletions(-) diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 8c51847285..aa2b9e976b 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -36,7 +36,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 0 +#define YY_FLEX_SUBMINOR_VERSION 1 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -136,25 +136,13 @@ typedef unsigned int flex_uint32_t; /* %if-c++-only */ /* %endif */ -#ifdef __cplusplus - -/* 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 +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* %not-for-header */ @@ -229,7 +217,7 @@ typedef size_t yy_size_t; #endif /* %if-not-reentrant */ -extern yy_size_t parser4_leng; +extern int parser4_leng; /* %endif */ /* %if-c-only */ @@ -278,7 +266,7 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -339,7 +327,7 @@ struct yy_buffer_state /* 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 = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* %endif */ /* %ok-for-header */ @@ -368,10 +356,10 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when parser4_text is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t parser4_leng; +int parser4_leng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -399,7 +387,7 @@ static void parser4__init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE parser4__scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE parser4__scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE parser4__scan_bytes (yyconst char *bytes,yy_size_t len ); +YY_BUFFER_STATE parser4__scan_bytes (yyconst char *bytes,int len ); /* %endif */ @@ -441,7 +429,7 @@ void parser4_free (void * ); typedef unsigned char YY_CHAR; -FILE *parser4_in = (FILE *) 0, *parser4_out = (FILE *) 0; +FILE *parser4_in = NULL, *parser4_out = NULL; typedef int yy_state_type; @@ -462,10 +450,7 @@ extern char *parser4_text; 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[] ); +static void yynoreturn yy_fatal_error (yyconst char* msg ); /* %endif */ @@ -475,7 +460,7 @@ static void yy_fatal_error (yyconst char msg[] ); #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ /* %% [2.0] code to fiddle parser4_text and parser4_leng for yymore() goes here \ */\ - parser4_leng = (size_t) (yy_cp - yy_bp); \ + parser4_leng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ /* %% [3.0] code to copy yytext_ptr to parser4_text[] goes here, if %array \ */\ @@ -529,7 +514,7 @@ static yyconst flex_int16_t yy_accept[761] = 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 71, 18, - 19, 0, 0, 0, 0, 0, 0, 80, 12, 0, + 19, 0, 0, 0, 0, 0, 0, 12, 80, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1058,10 +1043,10 @@ static yyconst flex_int16_t yy_rule_linenum[105] = 549, 559, 568, 578, 588, 598, 608, 617, 627, 636, 645, 654, 663, 672, 682, 692, 701, 710, 719, 728, 737, 746, 755, 764, 773, 782, 791, 800, 809, 818, - 827, 836, 845, 854, 863, 873, 883, 894, 905, 918, - 981, 986, 991, 996, 997, 998, 999, 1000, 1001, 1003, + 827, 836, 845, 854, 863, 873, 883, 895, 906, 919, + 982, 987, 992, 997, 998, 999, 1000, 1001, 1002, 1004, - 1021, 1034, 1039, 1043 + 1022, 1035, 1040, 1044 } ; /* The intent behind this definition is that it'll catch @@ -1132,7 +1117,7 @@ unsigned int comment_start_line = 0; // by moving it ahead by parser4_leng bytes. parser4_leng specifies the length of the // currently matched token. #define YY_USER_ACTION driver.loc_.columns(parser4_leng); -#line 1136 "dhcp4_lexer.cc" +#line 1121 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1188,7 +1173,7 @@ FILE *parser4_get_out (void ); void parser4_set_out (FILE * _out_str ); -yy_size_t parser4_get_leng (void ); + int parser4_get_leng (void ); char *parser4_get_text (void ); @@ -1262,7 +1247,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( parser4_text, parser4_leng, 1, parser4_out )) {} } while (0) +#define ECHO do { if (fwrite( parser4_text, (size_t) parser4_leng, 1, parser4_out )) {} } while (0) /* %endif */ /* %if-c++-only C++ definition */ /* %endif */ @@ -1290,7 +1275,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, parser4_in))==0 && ferror(parser4_in)) \ + while ( (result = (int) fread(buf, 1, max_size, parser4_in))==0 && ferror(parser4_in)) \ { \ if( errno != EINTR) \ { \ @@ -1456,7 +1441,7 @@ YY_DECL } -#line 1460 "dhcp4_lexer.cc" +#line 1445 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1488,7 +1473,7 @@ yy_match: if ( yy_current_state >= 761 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } while ( yy_current_state != 760 ); @@ -1626,9 +1611,9 @@ YY_RULE_SETUP { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: - return isc::dhcp::Dhcp4Parser::make_DHCP6(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_DHCP4(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp6", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp4", driver.loc_); } } YY_BREAK @@ -2475,9 +2460,9 @@ YY_RULE_SETUP { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: - return isc::dhcp::Dhcp4Parser::make_DHCP4(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_DHCP6(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp4", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp6", driver.loc_); } } YY_BREAK @@ -2560,6 +2545,7 @@ YY_RULE_SETUP #line 883 "dhcp4_lexer.ll" { switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SUBNET4: case isc::dhcp::Parser4Context::RESERVATIONS: case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -2571,7 +2557,7 @@ YY_RULE_SETUP YY_BREAK case 88: YY_RULE_SETUP -#line 894 "dhcp4_lexer.ll" +#line 895 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2585,7 +2571,7 @@ YY_RULE_SETUP YY_BREAK case 89: YY_RULE_SETUP -#line 905 "dhcp4_lexer.ll" +#line 906 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2599,7 +2585,7 @@ YY_RULE_SETUP YY_BREAK case 90: YY_RULE_SETUP -#line 918 "dhcp4_lexer.ll" +#line 919 "dhcp4_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. @@ -2666,7 +2652,7 @@ YY_RULE_SETUP case 91: /* rule 91 can match eol */ YY_RULE_SETUP -#line 981 "dhcp4_lexer.ll" +#line 982 "dhcp4_lexer.ll" { // Bad string with a forbidden control character inside driver.error(driver.loc_, "Invalid control in " + std::string(parser4_text)); @@ -2675,7 +2661,7 @@ YY_RULE_SETUP case 92: /* rule 92 can match eol */ YY_RULE_SETUP -#line 986 "dhcp4_lexer.ll" +#line 987 "dhcp4_lexer.ll" { // Bad string with a bad escape inside driver.error(driver.loc_, "Bad escape in " + std::string(parser4_text)); @@ -2683,7 +2669,7 @@ YY_RULE_SETUP YY_BREAK case 93: YY_RULE_SETUP -#line 991 "dhcp4_lexer.ll" +#line 992 "dhcp4_lexer.ll" { // Bad string with an open escape at the end driver.error(driver.loc_, "Overflow escape in " + std::string(parser4_text)); @@ -2691,37 +2677,37 @@ YY_RULE_SETUP YY_BREAK case 94: YY_RULE_SETUP -#line 996 "dhcp4_lexer.ll" +#line 997 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 95: YY_RULE_SETUP -#line 997 "dhcp4_lexer.ll" +#line 998 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 96: YY_RULE_SETUP -#line 998 "dhcp4_lexer.ll" +#line 999 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK case 97: YY_RULE_SETUP -#line 999 "dhcp4_lexer.ll" +#line 1000 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK case 98: YY_RULE_SETUP -#line 1000 "dhcp4_lexer.ll" +#line 1001 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK case 99: YY_RULE_SETUP -#line 1001 "dhcp4_lexer.ll" +#line 1002 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK case 100: YY_RULE_SETUP -#line 1003 "dhcp4_lexer.ll" +#line 1004 "dhcp4_lexer.ll" { // An integer was found. std::string tmp(parser4_text); @@ -2742,7 +2728,7 @@ YY_RULE_SETUP YY_BREAK case 101: YY_RULE_SETUP -#line 1021 "dhcp4_lexer.ll" +#line 1022 "dhcp4_lexer.ll" { // A floating point was found. std::string tmp(parser4_text); @@ -2758,7 +2744,7 @@ YY_RULE_SETUP YY_BREAK case 102: YY_RULE_SETUP -#line 1034 "dhcp4_lexer.ll" +#line 1035 "dhcp4_lexer.ll" { string tmp(parser4_text); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); @@ -2766,18 +2752,18 @@ YY_RULE_SETUP YY_BREAK case 103: YY_RULE_SETUP -#line 1039 "dhcp4_lexer.ll" +#line 1040 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK case 104: YY_RULE_SETUP -#line 1043 "dhcp4_lexer.ll" +#line 1044 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(parser4_text)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1045 "dhcp4_lexer.ll" +#line 1046 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -2803,10 +2789,10 @@ case YY_STATE_EOF(INITIAL): YY_BREAK case 105: YY_RULE_SETUP -#line 1068 "dhcp4_lexer.ll" +#line 1069 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 2810 "dhcp4_lexer.cc" +#line 2796 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -3009,7 +2995,7 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -3023,7 +3009,7 @@ static int yy_get_next_buffer (void) if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -3036,7 +3022,7 @@ static int yy_get_next_buffer (void) } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -3126,7 +3112,7 @@ static int yy_get_next_buffer (void) if ( yy_current_state >= 761 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; } return yy_current_state; @@ -3159,7 +3145,7 @@ static int yy_get_next_buffer (void) if ( yy_current_state >= 761 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; yy_is_jam = (yy_current_state == 760); return yy_is_jam ? 0 : yy_current_state; @@ -3199,7 +3185,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -3223,7 +3209,7 @@ static int yy_get_next_buffer (void) case EOB_ACT_END_OF_FILE: { if ( parser4_wrap( ) ) - return EOF; + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -3539,7 +3525,7 @@ static void parser4_ensure_buffer_stack (void) /* %if-c++-only */ /* %endif */ { - yy_size_t num_to_alloc; + int num_to_alloc; if (!(yy_buffer_stack)) { @@ -3547,7 +3533,7 @@ static void parser4_ensure_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**)parser4_alloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); @@ -3596,7 +3582,7 @@ YY_BUFFER_STATE parser4__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 0; + return NULL; b = (YY_BUFFER_STATE) parser4_alloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) @@ -3605,7 +3591,7 @@ YY_BUFFER_STATE parser4__scan_buffer (char * base, yy_size_t size ) 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 = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; @@ -3630,7 +3616,7 @@ YY_BUFFER_STATE parser4__scan_buffer (char * base, yy_size_t size ) YY_BUFFER_STATE parser4__scan_string (yyconst char * yystr ) { - return parser4__scan_bytes(yystr,strlen(yystr) ); + return parser4__scan_bytes(yystr,(int) strlen(yystr) ); } /* %endif */ @@ -3642,7 +3628,7 @@ YY_BUFFER_STATE parser4__scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE parser4__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE parser4__scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -3650,7 +3636,7 @@ YY_BUFFER_STATE parser4__scan_bytes (yyconst char * yybytes, yy_size_t _yybyte yy_size_t i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; + n = (yy_size_t) _yybytes_len + 2; buf = (char *) parser4_alloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in parser4__scan_bytes()" ); @@ -3678,7 +3664,7 @@ YY_BUFFER_STATE parser4__scan_bytes (yyconst char * yybytes, yy_size_t _yybyte #endif /* %if-c-only */ -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (yyconst char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); @@ -3738,7 +3724,7 @@ FILE *parser4_get_out (void) /** Get the length of the current token. * */ -yy_size_t parser4_get_leng (void) +int parser4_get_leng (void) { return parser4_leng; } @@ -3805,10 +3791,10 @@ static int yy_init_globals (void) * This function is called from parser4_lex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; @@ -3817,8 +3803,8 @@ static int yy_init_globals (void) parser4_in = stdin; parser4_out = stdout; #else - parser4_in = (FILE *) 0; - parser4_out = (FILE *) 0; + parser4_in = NULL; + parser4_out = NULL; #endif /* For future reference: Set errno on error, since we are called by @@ -3881,7 +3867,7 @@ static int yy_flex_strlen (yyconst char * s ) void *parser4_alloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } void *parser4_realloc (void * ptr, yy_size_t size ) @@ -3894,7 +3880,7 @@ void *parser4_realloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } void parser4_free (void * ptr ) @@ -3909,7 +3895,7 @@ void parser4_free (void * ptr ) /* %ok-for-header */ -#line 1068 "dhcp4_lexer.ll" +#line 1069 "dhcp4_lexer.ll" @@ -3947,7 +3933,7 @@ Parser4Context::scanFileBegin(FILE * f, parser4__flex_debug = trace_scanning_; YY_BUFFER_STATE buffer; - // See dhcp6_lexer.cc header for available definitions + // See dhcp4_lexer.cc header for available definitions buffer = parser4__create_buffer(f, 65536 /*buffer size*/); if (!buffer) { fatal("cannot scan file " + filename); diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 580cca7195..c17f22f478 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -886,7 +886,7 @@ namespace isc { namespace dhcp { case 56: #line 342 "dhcp4_parser.yy" // lalr1.cc:859 { - // Parse the Dhcp6 map + // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } @@ -940,7 +940,7 @@ namespace isc { namespace dhcp { case 87: #line 401 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[2].location))); + ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("echo-client-id", echo); } #line 947 "dhcp4_parser.cc" // lalr1.cc:859 @@ -949,7 +949,7 @@ namespace isc { namespace dhcp { case 88: #line 406 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[2].location))); + ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("match-client-id", match); } #line 956 "dhcp4_parser.cc" // lalr1.cc:859 @@ -1386,7 +1386,7 @@ namespace isc { namespace dhcp { // ctx.stack_.back()->set("interface", StringElement("loopback")); // } // - // We can also stack up one level (Dhcp6) and copy over whatever + // We can also stack up one level (Dhcp4) and copy over whatever // global parameters we want to: // if (!ctx.stack_.back()->get("renew-timer")) { // ElementPtr renew = ctx_stack_[...].get("renew-timer"); @@ -1402,7 +1402,7 @@ namespace isc { namespace dhcp { case 167: #line 702 "dhcp4_parser.yy" // lalr1.cc:859 { - // Parse the subnet6 list entry map + // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } @@ -1931,7 +1931,7 @@ namespace isc { namespace dhcp { case 313: #line 1126 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr next_server(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[3].location))); + ElementPtr next_server(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); ctx.leave(); } @@ -1949,7 +1949,7 @@ namespace isc { namespace dhcp { case 315: #line 1134 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr srv(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[3].location))); + ElementPtr srv(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); ctx.leave(); } @@ -1967,7 +1967,7 @@ namespace isc { namespace dhcp { case 317: #line 1142 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr bootfile(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[3].location))); + ElementPtr bootfile(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); ctx.leave(); } @@ -1985,7 +1985,7 @@ namespace isc { namespace dhcp { case 319: #line 1150 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[3].location))); + ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index 7e23a2ccac..aa58c3e3cc 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,3 +1,4 @@ +// Generated 201612171456 // A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ diff --git a/src/bin/dhcp4/position.hh b/src/bin/dhcp4/position.hh index c60fabbdf8..f4d5414e3d 100644 --- a/src/bin/dhcp4/position.hh +++ b/src/bin/dhcp4/position.hh @@ -1,3 +1,4 @@ +// Generated 201612171456 // A Bison parser, made by GNU Bison 3.0.4. // Positions for Bison parsers in C++ diff --git a/src/bin/dhcp4/stack.hh b/src/bin/dhcp4/stack.hh index 3dd2a2a393..c82de0ac93 100644 --- a/src/bin/dhcp4/stack.hh +++ b/src/bin/dhcp4/stack.hh @@ -1,3 +1,4 @@ +// Generated 201612171456 // A Bison parser, made by GNU Bison 3.0.4. // Stack handling for Bison parsers in C++ -- 2.47.3