From: Francis Dupont Date: Thu, 16 Aug 2018 11:37:55 +0000 (+0000) Subject: [master] regen flex/bison X-Git-Tag: gitlab29-base~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=762e88096c6c1501f12c8caa6ceaa49f7dab6199;p=thirdparty%2Fkea.git [master] regen flex/bison --- diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index f7ed46cc93..259f3501dc 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -1,22 +1,27 @@ -#line 2 "dhcp4_lexer.cc" +#line 1 "dhcp4_lexer.cc" -#line 4 "dhcp4_lexer.cc" +#line 3 "dhcp4_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 parser4__create_buffer #define yy_delete_buffer parser4__delete_buffer -#define yy_flex_debug parser4__flex_debug +#define yy_scan_buffer parser4__scan_buffer +#define yy_scan_string parser4__scan_string +#define yy_scan_bytes parser4__scan_bytes #define yy_init_buffer parser4__init_buffer #define yy_flush_buffer parser4__flush_buffer #define yy_load_buffer_state parser4__load_buffer_state #define yy_switch_to_buffer parser4__switch_to_buffer +#define yypush_buffer_state parser4_push_buffer_state +#define yypop_buffer_state parser4_pop_buffer_state +#define yyensure_buffer_stack parser4_ensure_buffer_stack +#define yy_flex_debug parser4__flex_debug #define yyin parser4_in #define yyleng parser4_leng #define yylex parser4_lex @@ -35,8 +40,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 37 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -45,11 +50,244 @@ /* %endif */ /* %if-c-only */ - +#ifdef yy_create_buffer +#define parser4__create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer parser4__create_buffer +#endif + +#ifdef yy_delete_buffer +#define parser4__delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer parser4__delete_buffer +#endif + +#ifdef yy_scan_buffer +#define parser4__scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer parser4__scan_buffer +#endif + +#ifdef yy_scan_string +#define parser4__scan_string_ALREADY_DEFINED +#else +#define yy_scan_string parser4__scan_string +#endif + +#ifdef yy_scan_bytes +#define parser4__scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes parser4__scan_bytes +#endif + +#ifdef yy_init_buffer +#define parser4__init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer parser4__init_buffer +#endif + +#ifdef yy_flush_buffer +#define parser4__flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer parser4__flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define parser4__load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state parser4__load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define parser4__switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer parser4__switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define parser4_push_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state parser4_push_buffer_state +#endif + +#ifdef yypop_buffer_state +#define parser4_pop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state parser4_pop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define parser4_ensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack parser4_ensure_buffer_stack +#endif + +#ifdef yylex +#define parser4_lex_ALREADY_DEFINED +#else +#define yylex parser4_lex +#endif + +#ifdef yyrestart +#define parser4_restart_ALREADY_DEFINED +#else +#define yyrestart parser4_restart +#endif + +#ifdef yylex_init +#define parser4_lex_init_ALREADY_DEFINED +#else +#define yylex_init parser4_lex_init +#endif + +#ifdef yylex_init_extra +#define parser4_lex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra parser4_lex_init_extra +#endif + +#ifdef yylex_destroy +#define parser4_lex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy parser4_lex_destroy +#endif + +#ifdef yyget_debug +#define parser4_get_debug_ALREADY_DEFINED +#else +#define yyget_debug parser4_get_debug +#endif + +#ifdef yyset_debug +#define parser4_set_debug_ALREADY_DEFINED +#else +#define yyset_debug parser4_set_debug +#endif + +#ifdef yyget_extra +#define parser4_get_extra_ALREADY_DEFINED +#else +#define yyget_extra parser4_get_extra +#endif + +#ifdef yyset_extra +#define parser4_set_extra_ALREADY_DEFINED +#else +#define yyset_extra parser4_set_extra +#endif + +#ifdef yyget_in +#define parser4_get_in_ALREADY_DEFINED +#else +#define yyget_in parser4_get_in +#endif + +#ifdef yyset_in +#define parser4_set_in_ALREADY_DEFINED +#else +#define yyset_in parser4_set_in +#endif + +#ifdef yyget_out +#define parser4_get_out_ALREADY_DEFINED +#else +#define yyget_out parser4_get_out +#endif + +#ifdef yyset_out +#define parser4_set_out_ALREADY_DEFINED +#else +#define yyset_out parser4_set_out +#endif + +#ifdef yyget_leng +#define parser4_get_leng_ALREADY_DEFINED +#else +#define yyget_leng parser4_get_leng +#endif + +#ifdef yyget_text +#define parser4_get_text_ALREADY_DEFINED +#else +#define yyget_text parser4_get_text +#endif + +#ifdef yyget_lineno +#define parser4_get_lineno_ALREADY_DEFINED +#else +#define yyget_lineno parser4_get_lineno +#endif + +#ifdef yyset_lineno +#define parser4_set_lineno_ALREADY_DEFINED +#else +#define yyset_lineno parser4_set_lineno +#endif + +#ifdef yywrap +#define parser4_wrap_ALREADY_DEFINED +#else +#define yywrap parser4_wrap +#endif + /* %endif */ +#ifdef yyalloc +#define parser4_alloc_ALREADY_DEFINED +#else +#define yyalloc parser4_alloc +#endif + +#ifdef yyrealloc +#define parser4_realloc_ALREADY_DEFINED +#else +#define yyrealloc parser4_realloc +#endif + +#ifdef yyfree +#define parser4_free_ALREADY_DEFINED +#else +#define yyfree parser4_free +#endif + /* %if-c-only */ +#ifdef yytext +#define parser4_text_ALREADY_DEFINED +#else +#define yytext parser4_text +#endif + +#ifdef yyleng +#define parser4_leng_ALREADY_DEFINED +#else +#define yyleng parser4_leng +#endif + +#ifdef yyin +#define parser4_in_ALREADY_DEFINED +#else +#define yyin parser4_in +#endif + +#ifdef yyout +#define parser4_out_ALREADY_DEFINED +#else +#define yyout parser4_out +#endif + +#ifdef yy_flex_debug +#define parser4__flex_debug_ALREADY_DEFINED +#else +#define yy_flex_debug parser4__flex_debug +#endif + +#ifdef yylineno +#define parser4_lineno_ALREADY_DEFINED +#else +#define yylineno parser4_lineno +#endif + /* %endif */ /* First, we deal with platform-specific or compiler-specific issues. */ @@ -127,50 +365,39 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* %endif */ +/* begin standard C++ headers. */ /* %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 */ - /* Returned upon end-of-file. */ #define YY_NULL 0 /* %ok-for-header */ /* %not-for-header */ - -/* 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. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* %ok-for-header */ /* %if-reentrant */ @@ -185,25 +412,29 @@ 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 parser4_restart(parser4_in ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -221,35 +452,35 @@ typedef size_t yy_size_t; #endif /* %if-not-reentrant */ -extern yy_size_t parser4_leng; +extern int yyleng; /* %endif */ /* %if-c-only */ /* %if-not-reentrant */ -extern FILE *parser4_in, *parser4_out; +extern FILE *yyin, *yyout; /* %endif */ /* %endif */ #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 YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ - /* Undo effects of setting up parser4_text. */ \ + /* 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 parser4_text again */ \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -269,12 +500,12 @@ 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. */ - yy_size_t yy_n_chars; + int 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 @@ -297,7 +528,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -314,8 +545,8 @@ struct yy_buffer_state * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via parser4_restart()), so that the user can continue scanning by - * just pointing parser4_in at a new input file. + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 @@ -324,13 +555,12 @@ 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 = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* %endif */ /* %ok-for-header */ @@ -345,7 +575,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< 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. */ @@ -355,115 +584,112 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* %if-not-reentrant */ /* %not-for-header */ - -/* yy_hold_char holds the character lost when parser4_text is formed. */ +/* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t parser4_leng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* 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 */ -/* Flag which is used to allow parser4_wrap()'s to do buffer switches - * instead of setting up a fresh parser4_in. A bit of a hack ... +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; /* %ok-for-header */ /* %endif */ -void parser4_restart (FILE *input_file ); -void parser4__switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE parser4__create_buffer (FILE *file,int size ); -void parser4__delete_buffer (YY_BUFFER_STATE b ); -void parser4__flush_buffer (YY_BUFFER_STATE b ); -void parser4_push_buffer_state (YY_BUFFER_STATE new_buffer ); -void parser4_pop_buffer_state (void ); - -static void parser4_ensure_buffer_stack (void ); -static void parser4__load_buffer_state (void ); -static void parser4__init_buffer (YY_BUFFER_STATE b,FILE *file ); +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 ); -#define YY_FLUSH_BUFFER parser4__flush_buffer(YY_CURRENT_BUFFER ) +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -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 yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); /* %endif */ -void *parser4_alloc (yy_size_t ); -void *parser4_realloc (void *,yy_size_t ); -void parser4_free (void * ); - -#define yy_new_buffer parser4__create_buffer +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); +#define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ - parser4_ensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - parser4__create_buffer(parser4_in,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ - parser4_ensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - parser4__create_buffer(parser4_in,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) -/* %% [1.0] parser4_text/parser4_in/parser4_out/yy_state_type/parser4_lineno etc. def's & init go here */ +/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */ /* Begin user sect3 */ -#define parser4_wrap() 1 +#define parser4_wrap() (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP #define FLEX_DEBUG +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *parser4_in = (FILE *) 0, *parser4_out = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; -extern int parser4_lineno; +extern int yylineno; +int yylineno = 1; -int parser4_lineno = 1; +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext -extern char *parser4_text; -#define yytext_ptr parser4_text +/* %% [1.5] DFA */ /* %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 yy_fatal_error (yyconst 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 ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* %endif */ /* Done after the current pattern has been matched and before the - * corresponding action - sets up parser4_text. + * corresponding action - sets up yytext. */ #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); \ +/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\ + yyleng = (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 \ */\ +/* %% [3.0] code to copy yytext_ptr to yytext[] 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 173 #define YY_END_OF_BUFFER 174 @@ -474,7 +700,7 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1443] = +static const flex_int16_t yy_accept[1443] = { 0, 166, 166, 0, 0, 0, 0, 0, 0, 0, 0, 174, 172, 10, 11, 172, 1, 166, 163, 166, 166, @@ -637,7 +863,7 @@ static yyconst flex_int16_t yy_accept[1443] = 109, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, @@ -669,7 +895,7 @@ static yyconst flex_int32_t yy_ec[256] = 5, 5, 5, 5, 5 } ; -static yyconst flex_int32_t yy_meta[72] = +static const YY_CHAR yy_meta[72] = { 0, 1, 1, 2, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 5, 5, 5, 3, 3, 3, 3, @@ -681,7 +907,7 @@ static yyconst flex_int32_t yy_meta[72] = 3 } ; -static yyconst flex_int16_t yy_base[1455] = +static const flex_int16_t yy_base[1455] = { 0, 0, 70, 19, 29, 41, 49, 52, 58, 87, 95, 1805, 1806, 32, 1801, 141, 0, 201, 1806, 206, 88, @@ -845,7 +1071,7 @@ static yyconst flex_int16_t yy_base[1455] = 1275, 1280, 1282, 1295 } ; -static yyconst flex_int16_t yy_def[1455] = +static const flex_int16_t yy_def[1455] = { 0, 1443, 1443, 1444, 1444, 1443, 1443, 1443, 1443, 1443, 1443, 1442, 1442, 1442, 1442, 1442, 1445, 1442, 1442, 1442, 1442, @@ -1009,7 +1235,7 @@ static yyconst flex_int16_t yy_def[1455] = 1442, 1442, 1442, 1442 } ; -static yyconst flex_int16_t yy_nxt[1878] = +static const flex_int16_t yy_nxt[1878] = { 0, 1442, 13, 14, 13, 1442, 15, 16, 1442, 17, 18, 19, 20, 21, 22, 22, 22, 23, 24, 86, 698, @@ -1219,7 +1445,7 @@ static yyconst flex_int16_t yy_nxt[1878] = 1442, 1442, 1442, 1442, 1442, 1442, 1442 } ; -static yyconst flex_int16_t yy_chk[1878] = +static const flex_int16_t yy_chk[1878] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 21, 605, @@ -1432,30 +1658,30 @@ static yyconst flex_int16_t yy_chk[1878] = static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; -extern int parser4__flex_debug; -int parser4__flex_debug = 1; +extern int yy_flex_debug; +int yy_flex_debug = 1; -static yyconst flex_int16_t yy_rule_linenum[173] = +static const flex_int16_t yy_rule_linenum[173] = { 0, - 144, 146, 148, 153, 154, 159, 160, 161, 173, 176, - 181, 188, 197, 206, 215, 224, 233, 242, 252, 261, - 270, 279, 288, 297, 306, 315, 324, 333, 344, 353, - 362, 371, 380, 390, 400, 410, 420, 430, 440, 450, - 460, 470, 480, 490, 500, 510, 520, 531, 542, 553, - 562, 572, 581, 591, 605, 620, 629, 638, 647, 656, - 676, 696, 705, 715, 724, 733, 742, 752, 761, 770, - 779, 788, 797, 807, 816, 825, 834, 843, 852, 861, - 870, 879, 888, 897, 907, 918, 930, 939, 948, 958, - 968, 978, 988, 998, 1008, 1017, 1027, 1036, 1045, 1054, - - 1063, 1073, 1083, 1092, 1102, 1111, 1120, 1129, 1138, 1147, - 1156, 1165, 1174, 1183, 1192, 1201, 1210, 1219, 1228, 1237, - 1246, 1255, 1264, 1273, 1282, 1291, 1300, 1309, 1318, 1327, - 1336, 1345, 1354, 1363, 1372, 1382, 1392, 1402, 1412, 1422, - 1432, 1442, 1452, 1462, 1471, 1480, 1489, 1498, 1507, 1516, - 1525, 1536, 1549, 1562, 1577, 1676, 1681, 1686, 1691, 1692, - 1693, 1694, 1695, 1696, 1698, 1716, 1729, 1734, 1738, 1740, - 1742, 1744 + 145, 147, 149, 154, 155, 160, 161, 162, 174, 177, + 182, 189, 198, 207, 216, 225, 234, 243, 253, 262, + 271, 280, 289, 298, 307, 316, 325, 334, 345, 354, + 363, 372, 381, 391, 401, 411, 421, 431, 441, 451, + 461, 471, 481, 491, 501, 511, 521, 532, 543, 554, + 563, 573, 582, 592, 606, 621, 630, 639, 648, 657, + 677, 697, 706, 716, 725, 734, 743, 753, 762, 771, + 780, 789, 798, 808, 817, 826, 835, 844, 853, 862, + 871, 880, 889, 898, 908, 919, 931, 940, 949, 959, + 969, 979, 989, 999, 1009, 1018, 1028, 1037, 1046, 1055, + + 1064, 1074, 1084, 1093, 1103, 1112, 1121, 1130, 1139, 1148, + 1157, 1166, 1175, 1184, 1193, 1202, 1211, 1220, 1229, 1238, + 1247, 1256, 1265, 1274, 1283, 1292, 1301, 1310, 1319, 1328, + 1337, 1346, 1355, 1364, 1373, 1383, 1393, 1403, 1413, 1423, + 1433, 1443, 1453, 1463, 1472, 1481, 1490, 1499, 1508, 1517, + 1526, 1537, 1550, 1563, 1578, 1677, 1682, 1687, 1692, 1693, + 1694, 1695, 1696, 1697, 1699, 1717, 1730, 1735, 1739, 1741, + 1743, 1745 } ; /* The intent behind this definition is that it'll catch @@ -1465,7 +1691,7 @@ static yyconst flex_int16_t yy_rule_linenum[173] = #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -char *parser4_text; +char *yytext; #line 1 "dhcp4_lexer.ll" /* Copyright (C) 2016-2018 Internet Systems Consortium, Inc. ("ISC") @@ -1492,8 +1718,8 @@ char *parser4_text; 2.5.31 through 2.5.33): it generates code that does not conform to C89. See Debian bug 333231 . */ -# undef parser4_wrap -# define parser4_wrap() 1 +# undef yywrap +# define yywrap() 1 namespace { @@ -1508,9 +1734,10 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) +#line 1737 "dhcp4_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 parser4_wrap requires linking with -lfl, which provides the default parser4_wrap + using yywrap requires linking with -lfl, which provides the default yywrap 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. */ @@ -1518,23 +1745,23 @@ using namespace isc::dhcp; /* avoid to get static global variables to remain with C++. */ /* in last resort %option reentrant */ /* Enables debug mode. To see the debug messages, one needs to also set - parser4__flex_debug to 1, then the debug messages will be printed on stderr. */ + yy_flex_debug to 1, then the debug messages will be printed on stderr. */ /* I have no idea what this option does, except it was specified in the bison examples and Postgres folks added it to remove gcc 4.3 warnings. Let's be on the safe side and keep it. */ #define YY_NO_INPUT 1 - /* These are not token expressions yet, just convenience expressions that can be used during actual token definitions. Note some can match incorrect inputs (e.g., IP addresses) which must be checked. */ /* for errors */ #line 94 "dhcp4_lexer.ll" /* This code run each time a pattern is matched. It updates the location - by moving it ahead by parser4_leng bytes. parser4_leng specifies the length of the + by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ -#define YY_USER_ACTION driver.loc_.columns(parser4_leng); -#line 1538 "dhcp4_lexer.cc" +#define YY_USER_ACTION driver.loc_.columns(yyleng); +#line 1763 "dhcp4_lexer.cc" +#line 1764 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1562,7 +1789,7 @@ using namespace isc::dhcp; /* %if-reentrant */ /* %if-c-only */ -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* %endif */ /* %if-reentrant */ @@ -1572,31 +1799,31 @@ static int yy_init_globals (void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int parser4_lex_destroy (void ); +int yylex_destroy ( void ); -int parser4_get_debug (void ); +int yyget_debug ( void ); -void parser4_set_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE parser4_get_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void parser4_set_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *parser4_get_in (void ); +FILE *yyget_in ( void ); -void parser4_set_in (FILE * in_str ); +void yyset_in ( FILE * _in_str ); -FILE *parser4_get_out (void ); +FILE *yyget_out ( void ); -void parser4_set_out (FILE * out_str ); +void yyset_out ( FILE * _out_str ); -yy_size_t parser4_get_leng (void ); + int yyget_leng ( void ); -char *parser4_get_text (void ); +char *yyget_text ( void ); -int parser4_get_lineno (void ); +int yyget_lineno ( void ); -void parser4_set_lineno (int line_number ); +void yyset_lineno ( int _line_number ); /* %if-bison-bridge */ /* %endif */ @@ -1607,34 +1834,35 @@ void parser4_set_lineno (int line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int parser4_wrap (void ); +extern "C" int yywrap ( void ); #else -extern int parser4_wrap (void ); +extern int yywrap ( void ); #endif #endif /* %not-for-header */ - +#ifndef YY_NO_UNPUT + +#endif /* %ok-for-header */ /* %endif */ #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const 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 */ @@ -1647,7 +1875,12 @@ static int input (void ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -1656,7 +1889,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( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) /* %endif */ /* %if-c++-only C++ definition */ /* %endif */ @@ -1671,20 +1904,20 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + int n; \ for ( n = 0; n < max_size && \ - (c = getc( parser4_in )) != EOF && c != '\n'; ++n ) \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ - if ( c == EOF && ferror( parser4_in ) ) \ + if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, parser4_in))==0 && ferror(parser4_in)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -1692,7 +1925,7 @@ static int input (void ); break; \ } \ errno=0; \ - clearerr(parser4_in); \ + clearerr(yyin); \ } \ }\ \ @@ -1725,11 +1958,9 @@ 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 */ @@ -1743,15 +1974,15 @@ static int input (void ); #define YY_DECL_IS_OURS 1 /* %if-c-only Standard (non-C++) definition */ -extern int parser4_lex (void); +extern int yylex (void); -#define YY_DECL int parser4_lex (void) +#define YY_DECL int yylex (void) /* %endif */ /* %if-c++-only C++ definition */ /* %endif */ #endif /* !YY_DECL */ -/* Code executed at the beginning of each rule, after parser4_text and parser4_leng +/* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION @@ -1760,7 +1991,7 @@ extern int parser4_lex (void); /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif /* %% [6.0] YY_RULE_SETUP definition goes here */ @@ -1768,25 +1999,60 @@ extern int parser4_lex (void); YY_USER_ACTION /* %not-for-header */ - /** The main scanner function which does all the work. */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) +/* %if-c-only */ + yyin = stdin; +/* %endif */ +/* %if-c++-only */ +/* %endif */ + + if ( ! yyout ) +/* %if-c-only */ + yyout = stdout; +/* %endif */ +/* %if-c++-only */ +/* %endif */ + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer( yyin, YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + { /* %% [7.0] user's declarations go here */ #line 100 "dhcp4_lexer.ll" +#line 104 "dhcp4_lexer.ll" /* This part of the code is copied over to the verbatim to the top - of the generated parser4_lex function. Explanation: + of the generated yylex function. Explanation: http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */ - /* Code run each time parser4_lex is called. */ + /* Code run each time yylex is called. */ driver.loc_.step(); if (start_token_flag) { @@ -1823,48 +2089,14 @@ YY_DECL } -#line 1827 "dhcp4_lexer.cc" - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! parser4_in ) -/* %if-c-only */ - parser4_in = stdin; -/* %endif */ -/* %if-c++-only */ -/* %endif */ +#line 2092 "dhcp4_lexer.cc" - if ( ! parser4_out ) -/* %if-c-only */ - parser4_out = stdout; -/* %endif */ -/* %if-c++-only */ -/* %endif */ - - if ( ! YY_CURRENT_BUFFER ) { - parser4_ensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - parser4__create_buffer(parser4_in,YY_BUF_SIZE ); - } - - parser4__load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { /* %% [8.0] yymore()-related code goes here */ yy_cp = (yy_c_buf_p); - /* Support of parser4_text. */ + /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of @@ -1877,7 +2109,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1887,9 +2119,9 @@ yy_match: { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1443 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[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] + yy_c]; ++yy_cp; } while ( yy_current_state != 1442 ); @@ -1902,21 +2134,21 @@ yy_find_action: YY_DO_BEFORE_ACTION; -/* %% [11.0] code for parser4_lineno update goes here */ +/* %% [11.0] code for yylineno update goes here */ do_action: /* This label is used only to access EOF actions. */ /* %% [12.0] debug code goes here */ - if ( parser4__flex_debug ) + if ( yy_flex_debug ) { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); else if ( yy_act < 173 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", - (long)yy_rule_linenum[yy_act], parser4_text ); + (long)yy_rule_linenum[yy_act], yytext ); else if ( yy_act == 173 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", - parser4_text ); + yytext ); else if ( yy_act == 174 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else @@ -1935,17 +2167,17 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 144 "dhcp4_lexer.ll" +#line 145 "dhcp4_lexer.ll" ; YY_BREAK case 2: YY_RULE_SETUP -#line 146 "dhcp4_lexer.ll" +#line 147 "dhcp4_lexer.ll" ; YY_BREAK case 3: YY_RULE_SETUP -#line 148 "dhcp4_lexer.ll" +#line 149 "dhcp4_lexer.ll" { BEGIN(COMMENT); comment_start_line = driver.loc_.end.line;; @@ -1953,38 +2185,38 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 153 "dhcp4_lexer.ll" +#line 154 "dhcp4_lexer.ll" BEGIN(INITIAL); YY_BREAK case 5: YY_RULE_SETUP -#line 154 "dhcp4_lexer.ll" +#line 155 "dhcp4_lexer.ll" ; YY_BREAK case YY_STATE_EOF(COMMENT): -#line 155 "dhcp4_lexer.ll" +#line 156 "dhcp4_lexer.ll" { isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line); } YY_BREAK case 6: YY_RULE_SETUP -#line 159 "dhcp4_lexer.ll" +#line 160 "dhcp4_lexer.ll" BEGIN(DIR_ENTER); YY_BREAK case 7: YY_RULE_SETUP -#line 160 "dhcp4_lexer.ll" +#line 161 "dhcp4_lexer.ll" BEGIN(DIR_INCLUDE); YY_BREAK case 8: YY_RULE_SETUP -#line 161 "dhcp4_lexer.ll" +#line 162 "dhcp4_lexer.ll" { /* Include directive. */ /* Extract the filename. */ - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); driver.includeFile(tmp); @@ -1993,19 +2225,19 @@ YY_RULE_SETUP case YY_STATE_EOF(DIR_ENTER): case YY_STATE_EOF(DIR_INCLUDE): case YY_STATE_EOF(DIR_EXIT): -#line 170 "dhcp4_lexer.ll" +#line 171 "dhcp4_lexer.ll" { isc_throw(Dhcp4ParseError, "Directive not closed."); } YY_BREAK case 9: YY_RULE_SETUP -#line 173 "dhcp4_lexer.ll" +#line 174 "dhcp4_lexer.ll" BEGIN(INITIAL); YY_BREAK case 10: YY_RULE_SETUP -#line 176 "dhcp4_lexer.ll" +#line 177 "dhcp4_lexer.ll" { /* Ok, we found a with space. Let's ignore it and update loc variable. */ driver.loc_.step(); @@ -2014,16 +2246,16 @@ YY_RULE_SETUP case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 181 "dhcp4_lexer.ll" +#line 182 "dhcp4_lexer.ll" { /* Newline found. Let's update the location and continue. */ - driver.loc_.lines(parser4_leng); + driver.loc_.lines(yyleng); driver.loc_.step(); } YY_BREAK case 12: YY_RULE_SETUP -#line 188 "dhcp4_lexer.ll" +#line 189 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -2035,7 +2267,7 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 197 "dhcp4_lexer.ll" +#line 198 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2047,7 +2279,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 206 "dhcp4_lexer.ll" +#line 207 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2059,7 +2291,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 215 "dhcp4_lexer.ll" +#line 216 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SANITY_CHECKS: @@ -2071,7 +2303,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 224 "dhcp4_lexer.ll" +#line 225 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::INTERFACES_CONFIG: @@ -2083,7 +2315,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 233 "dhcp4_lexer.ll" +#line 234 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE: @@ -2095,7 +2327,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 242 "dhcp4_lexer.ll" +#line 243 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE: @@ -2108,7 +2340,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 252 "dhcp4_lexer.ll" +#line 253 "dhcp4_lexer.ll" { switch(driver.ctx_) { case Parser4Context::INTERFACES_CONFIG: @@ -2120,7 +2352,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 261 "dhcp4_lexer.ll" +#line 262 "dhcp4_lexer.ll" { switch(driver.ctx_) { case Parser4Context::OUTBOUND_INTERFACE: @@ -2132,7 +2364,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 270 "dhcp4_lexer.ll" +#line 271 "dhcp4_lexer.ll" { switch(driver.ctx_) { case Parser4Context::OUTBOUND_INTERFACE: @@ -2144,7 +2376,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 279 "dhcp4_lexer.ll" +#line 280 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::INTERFACES_CONFIG: @@ -2156,7 +2388,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 288 "dhcp4_lexer.ll" +#line 289 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::INTERFACES_CONFIG: @@ -2168,7 +2400,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 297 "dhcp4_lexer.ll" +#line 298 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2180,7 +2412,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 306 "dhcp4_lexer.ll" +#line 307 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2192,7 +2424,7 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 315 "dhcp4_lexer.ll" +#line 316 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2204,7 +2436,7 @@ YY_RULE_SETUP YY_BREAK case 27: YY_RULE_SETUP -#line 324 "dhcp4_lexer.ll" +#line 325 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOSTS_DATABASE: @@ -2216,7 +2448,7 @@ YY_RULE_SETUP YY_BREAK case 28: YY_RULE_SETUP -#line 333 "dhcp4_lexer.ll" +#line 334 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2230,7 +2462,7 @@ YY_RULE_SETUP YY_BREAK case 29: YY_RULE_SETUP -#line 344 "dhcp4_lexer.ll" +#line 345 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_TYPE: @@ -2242,7 +2474,7 @@ YY_RULE_SETUP YY_BREAK case 30: YY_RULE_SETUP -#line 353 "dhcp4_lexer.ll" +#line 354 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_TYPE: @@ -2254,7 +2486,7 @@ YY_RULE_SETUP YY_BREAK case 31: YY_RULE_SETUP -#line 362 "dhcp4_lexer.ll" +#line 363 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_TYPE: @@ -2266,7 +2498,7 @@ YY_RULE_SETUP YY_BREAK case 32: YY_RULE_SETUP -#line 371 "dhcp4_lexer.ll" +#line 372 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_TYPE: @@ -2278,7 +2510,7 @@ YY_RULE_SETUP YY_BREAK case 33: YY_RULE_SETUP -#line 380 "dhcp4_lexer.ll" +#line 381 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2291,7 +2523,7 @@ YY_RULE_SETUP YY_BREAK case 34: YY_RULE_SETUP -#line 390 "dhcp4_lexer.ll" +#line 391 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2304,7 +2536,7 @@ YY_RULE_SETUP YY_BREAK case 35: YY_RULE_SETUP -#line 400 "dhcp4_lexer.ll" +#line 401 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2317,7 +2549,7 @@ YY_RULE_SETUP YY_BREAK case 36: YY_RULE_SETUP -#line 410 "dhcp4_lexer.ll" +#line 411 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2330,7 +2562,7 @@ YY_RULE_SETUP YY_BREAK case 37: YY_RULE_SETUP -#line 420 "dhcp4_lexer.ll" +#line 421 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2343,7 +2575,7 @@ YY_RULE_SETUP YY_BREAK case 38: YY_RULE_SETUP -#line 430 "dhcp4_lexer.ll" +#line 431 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2356,7 +2588,7 @@ YY_RULE_SETUP YY_BREAK case 39: YY_RULE_SETUP -#line 440 "dhcp4_lexer.ll" +#line 441 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2369,7 +2601,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 450 "dhcp4_lexer.ll" +#line 451 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2382,7 +2614,7 @@ YY_RULE_SETUP YY_BREAK case 41: YY_RULE_SETUP -#line 460 "dhcp4_lexer.ll" +#line 461 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2395,7 +2627,7 @@ YY_RULE_SETUP YY_BREAK case 42: YY_RULE_SETUP -#line 470 "dhcp4_lexer.ll" +#line 471 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2408,7 +2640,7 @@ YY_RULE_SETUP YY_BREAK case 43: YY_RULE_SETUP -#line 480 "dhcp4_lexer.ll" +#line 481 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2421,7 +2653,7 @@ YY_RULE_SETUP YY_BREAK case 44: YY_RULE_SETUP -#line 490 "dhcp4_lexer.ll" +#line 491 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2434,7 +2666,7 @@ YY_RULE_SETUP YY_BREAK case 45: YY_RULE_SETUP -#line 500 "dhcp4_lexer.ll" +#line 501 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2447,7 +2679,7 @@ YY_RULE_SETUP YY_BREAK case 46: YY_RULE_SETUP -#line 510 "dhcp4_lexer.ll" +#line 511 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2460,7 +2692,7 @@ YY_RULE_SETUP YY_BREAK case 47: YY_RULE_SETUP -#line 520 "dhcp4_lexer.ll" +#line 521 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2474,7 +2706,7 @@ YY_RULE_SETUP YY_BREAK case 48: YY_RULE_SETUP -#line 531 "dhcp4_lexer.ll" +#line 532 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2488,7 +2720,7 @@ YY_RULE_SETUP YY_BREAK case 49: YY_RULE_SETUP -#line 542 "dhcp4_lexer.ll" +#line 543 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2502,7 +2734,7 @@ YY_RULE_SETUP YY_BREAK case 50: YY_RULE_SETUP -#line 553 "dhcp4_lexer.ll" +#line 554 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2514,7 +2746,7 @@ YY_RULE_SETUP YY_BREAK case 51: YY_RULE_SETUP -#line 562 "dhcp4_lexer.ll" +#line 563 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2527,7 +2759,7 @@ YY_RULE_SETUP YY_BREAK case 52: YY_RULE_SETUP -#line 572 "dhcp4_lexer.ll" +#line 573 "dhcp4_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2539,7 +2771,7 @@ YY_RULE_SETUP YY_BREAK case 53: YY_RULE_SETUP -#line 581 "dhcp4_lexer.ll" +#line 582 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2552,7 +2784,7 @@ YY_RULE_SETUP YY_BREAK case 54: YY_RULE_SETUP -#line 591 "dhcp4_lexer.ll" +#line 592 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2569,7 +2801,7 @@ YY_RULE_SETUP YY_BREAK case 55: YY_RULE_SETUP -#line 605 "dhcp4_lexer.ll" +#line 606 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2587,7 +2819,7 @@ YY_RULE_SETUP YY_BREAK case 56: YY_RULE_SETUP -#line 620 "dhcp4_lexer.ll" +#line 621 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -2599,7 +2831,7 @@ YY_RULE_SETUP YY_BREAK case 57: YY_RULE_SETUP -#line 629 "dhcp4_lexer.ll" +#line 630 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -2611,7 +2843,7 @@ YY_RULE_SETUP YY_BREAK case 58: YY_RULE_SETUP -#line 638 "dhcp4_lexer.ll" +#line 639 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2623,7 +2855,7 @@ YY_RULE_SETUP YY_BREAK case 59: YY_RULE_SETUP -#line 647 "dhcp4_lexer.ll" +#line 648 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -2635,7 +2867,7 @@ YY_RULE_SETUP YY_BREAK case 60: YY_RULE_SETUP -#line 656 "dhcp4_lexer.ll" +#line 657 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2658,7 +2890,7 @@ YY_RULE_SETUP YY_BREAK case 61: YY_RULE_SETUP -#line 676 "dhcp4_lexer.ll" +#line 677 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2681,7 +2913,7 @@ YY_RULE_SETUP YY_BREAK case 62: YY_RULE_SETUP -#line 696 "dhcp4_lexer.ll" +#line 697 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2693,7 +2925,7 @@ YY_RULE_SETUP YY_BREAK case 63: YY_RULE_SETUP -#line 705 "dhcp4_lexer.ll" +#line 706 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2706,7 +2938,7 @@ YY_RULE_SETUP YY_BREAK case 64: YY_RULE_SETUP -#line 715 "dhcp4_lexer.ll" +#line 716 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2718,7 +2950,7 @@ YY_RULE_SETUP YY_BREAK case 65: YY_RULE_SETUP -#line 724 "dhcp4_lexer.ll" +#line 725 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2730,7 +2962,7 @@ YY_RULE_SETUP YY_BREAK case 66: YY_RULE_SETUP -#line 733 "dhcp4_lexer.ll" +#line 734 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2742,7 +2974,7 @@ YY_RULE_SETUP YY_BREAK case 67: YY_RULE_SETUP -#line 742 "dhcp4_lexer.ll" +#line 743 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2755,7 +2987,7 @@ YY_RULE_SETUP YY_BREAK case 68: YY_RULE_SETUP -#line 752 "dhcp4_lexer.ll" +#line 753 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -2767,7 +2999,7 @@ YY_RULE_SETUP YY_BREAK case 69: YY_RULE_SETUP -#line 761 "dhcp4_lexer.ll" +#line 762 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -2779,7 +3011,7 @@ YY_RULE_SETUP YY_BREAK case 70: YY_RULE_SETUP -#line 770 "dhcp4_lexer.ll" +#line 771 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -2791,7 +3023,7 @@ YY_RULE_SETUP YY_BREAK case 71: YY_RULE_SETUP -#line 779 "dhcp4_lexer.ll" +#line 780 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -2803,7 +3035,7 @@ YY_RULE_SETUP YY_BREAK case 72: YY_RULE_SETUP -#line 788 "dhcp4_lexer.ll" +#line 789 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -2815,7 +3047,7 @@ YY_RULE_SETUP YY_BREAK case 73: YY_RULE_SETUP -#line 797 "dhcp4_lexer.ll" +#line 798 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -2828,7 +3060,7 @@ YY_RULE_SETUP YY_BREAK case 74: YY_RULE_SETUP -#line 807 "dhcp4_lexer.ll" +#line 808 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2840,7 +3072,7 @@ YY_RULE_SETUP YY_BREAK case 75: YY_RULE_SETUP -#line 816 "dhcp4_lexer.ll" +#line 817 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -2852,7 +3084,7 @@ YY_RULE_SETUP YY_BREAK case 76: YY_RULE_SETUP -#line 825 "dhcp4_lexer.ll" +#line 826 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGING: @@ -2864,7 +3096,7 @@ YY_RULE_SETUP YY_BREAK case 77: YY_RULE_SETUP -#line 834 "dhcp4_lexer.ll" +#line 835 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -2876,7 +3108,7 @@ YY_RULE_SETUP YY_BREAK case 78: YY_RULE_SETUP -#line 843 "dhcp4_lexer.ll" +#line 844 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -2888,7 +3120,7 @@ YY_RULE_SETUP YY_BREAK case 79: YY_RULE_SETUP -#line 852 "dhcp4_lexer.ll" +#line 853 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -2900,7 +3132,7 @@ YY_RULE_SETUP YY_BREAK case 80: YY_RULE_SETUP -#line 861 "dhcp4_lexer.ll" +#line 862 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -2912,7 +3144,7 @@ YY_RULE_SETUP YY_BREAK case 81: YY_RULE_SETUP -#line 870 "dhcp4_lexer.ll" +#line 871 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -2924,7 +3156,7 @@ YY_RULE_SETUP YY_BREAK case 82: YY_RULE_SETUP -#line 879 "dhcp4_lexer.ll" +#line 880 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -2936,7 +3168,7 @@ YY_RULE_SETUP YY_BREAK case 83: YY_RULE_SETUP -#line 888 "dhcp4_lexer.ll" +#line 889 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -2948,7 +3180,7 @@ YY_RULE_SETUP YY_BREAK case 84: YY_RULE_SETUP -#line 897 "dhcp4_lexer.ll" +#line 898 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2961,7 +3193,7 @@ YY_RULE_SETUP YY_BREAK case 85: YY_RULE_SETUP -#line 907 "dhcp4_lexer.ll" +#line 908 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2975,7 +3207,7 @@ YY_RULE_SETUP YY_BREAK case 86: YY_RULE_SETUP -#line 918 "dhcp4_lexer.ll" +#line 919 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2990,7 +3222,7 @@ YY_RULE_SETUP YY_BREAK case 87: YY_RULE_SETUP -#line 930 "dhcp4_lexer.ll" +#line 931 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3002,7 +3234,7 @@ YY_RULE_SETUP YY_BREAK case 88: YY_RULE_SETUP -#line 939 "dhcp4_lexer.ll" +#line 940 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3014,7 +3246,7 @@ YY_RULE_SETUP YY_BREAK case 89: YY_RULE_SETUP -#line 948 "dhcp4_lexer.ll" +#line 949 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3027,7 +3259,7 @@ YY_RULE_SETUP YY_BREAK case 90: YY_RULE_SETUP -#line 958 "dhcp4_lexer.ll" +#line 959 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3040,7 +3272,7 @@ YY_RULE_SETUP YY_BREAK case 91: YY_RULE_SETUP -#line 968 "dhcp4_lexer.ll" +#line 969 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3053,7 +3285,7 @@ YY_RULE_SETUP YY_BREAK case 92: YY_RULE_SETUP -#line 978 "dhcp4_lexer.ll" +#line 979 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3066,7 +3298,7 @@ YY_RULE_SETUP YY_BREAK case 93: YY_RULE_SETUP -#line 988 "dhcp4_lexer.ll" +#line 989 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3079,7 +3311,7 @@ YY_RULE_SETUP YY_BREAK case 94: YY_RULE_SETUP -#line 998 "dhcp4_lexer.ll" +#line 999 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3092,7 +3324,7 @@ YY_RULE_SETUP YY_BREAK case 95: YY_RULE_SETUP -#line 1008 "dhcp4_lexer.ll" +#line 1009 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -3104,7 +3336,7 @@ YY_RULE_SETUP YY_BREAK case 96: YY_RULE_SETUP -#line 1017 "dhcp4_lexer.ll" +#line 1018 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3117,7 +3349,7 @@ YY_RULE_SETUP YY_BREAK case 97: YY_RULE_SETUP -#line 1027 "dhcp4_lexer.ll" +#line 1028 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3129,7 +3361,7 @@ YY_RULE_SETUP YY_BREAK case 98: YY_RULE_SETUP -#line 1036 "dhcp4_lexer.ll" +#line 1037 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3141,7 +3373,7 @@ YY_RULE_SETUP YY_BREAK case 99: YY_RULE_SETUP -#line 1045 "dhcp4_lexer.ll" +#line 1046 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3153,7 +3385,7 @@ YY_RULE_SETUP YY_BREAK case 100: YY_RULE_SETUP -#line 1054 "dhcp4_lexer.ll" +#line 1055 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3165,7 +3397,7 @@ YY_RULE_SETUP YY_BREAK case 101: YY_RULE_SETUP -#line 1063 "dhcp4_lexer.ll" +#line 1064 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3178,7 +3410,7 @@ YY_RULE_SETUP YY_BREAK case 102: YY_RULE_SETUP -#line 1073 "dhcp4_lexer.ll" +#line 1074 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -3191,7 +3423,7 @@ YY_RULE_SETUP YY_BREAK case 103: YY_RULE_SETUP -#line 1083 "dhcp4_lexer.ll" +#line 1084 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -3203,7 +3435,7 @@ YY_RULE_SETUP YY_BREAK case 104: YY_RULE_SETUP -#line 1092 "dhcp4_lexer.ll" +#line 1093 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3215,7 +3447,7 @@ YY_RULE_SETUP YY_BREAK case 105: YY_RULE_SETUP -#line 1102 "dhcp4_lexer.ll" +#line 1103 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -3227,7 +3459,7 @@ YY_RULE_SETUP YY_BREAK case 106: YY_RULE_SETUP -#line 1111 "dhcp4_lexer.ll" +#line 1112 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -3239,7 +3471,7 @@ YY_RULE_SETUP YY_BREAK case 107: YY_RULE_SETUP -#line 1120 "dhcp4_lexer.ll" +#line 1121 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3251,7 +3483,7 @@ YY_RULE_SETUP YY_BREAK case 108: YY_RULE_SETUP -#line 1129 "dhcp4_lexer.ll" +#line 1130 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3263,7 +3495,7 @@ YY_RULE_SETUP YY_BREAK case 109: YY_RULE_SETUP -#line 1138 "dhcp4_lexer.ll" +#line 1139 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3275,7 +3507,7 @@ YY_RULE_SETUP YY_BREAK case 110: YY_RULE_SETUP -#line 1147 "dhcp4_lexer.ll" +#line 1148 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3287,7 +3519,7 @@ YY_RULE_SETUP YY_BREAK case 111: YY_RULE_SETUP -#line 1156 "dhcp4_lexer.ll" +#line 1157 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3299,7 +3531,7 @@ YY_RULE_SETUP YY_BREAK case 112: YY_RULE_SETUP -#line 1165 "dhcp4_lexer.ll" +#line 1166 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3311,7 +3543,7 @@ YY_RULE_SETUP YY_BREAK case 113: YY_RULE_SETUP -#line 1174 "dhcp4_lexer.ll" +#line 1175 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3323,7 +3555,7 @@ YY_RULE_SETUP YY_BREAK case 114: YY_RULE_SETUP -#line 1183 "dhcp4_lexer.ll" +#line 1184 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3335,7 +3567,7 @@ YY_RULE_SETUP YY_BREAK case 115: YY_RULE_SETUP -#line 1192 "dhcp4_lexer.ll" +#line 1193 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3347,7 +3579,7 @@ YY_RULE_SETUP YY_BREAK case 116: YY_RULE_SETUP -#line 1201 "dhcp4_lexer.ll" +#line 1202 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -3359,7 +3591,7 @@ YY_RULE_SETUP YY_BREAK case 117: YY_RULE_SETUP -#line 1210 "dhcp4_lexer.ll" +#line 1211 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -3371,7 +3603,7 @@ YY_RULE_SETUP YY_BREAK case 118: YY_RULE_SETUP -#line 1219 "dhcp4_lexer.ll" +#line 1220 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3383,7 +3615,7 @@ YY_RULE_SETUP YY_BREAK case 119: YY_RULE_SETUP -#line 1228 "dhcp4_lexer.ll" +#line 1229 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3395,7 +3627,7 @@ YY_RULE_SETUP YY_BREAK case 120: YY_RULE_SETUP -#line 1237 "dhcp4_lexer.ll" +#line 1238 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3407,7 +3639,7 @@ YY_RULE_SETUP YY_BREAK case 121: YY_RULE_SETUP -#line 1246 "dhcp4_lexer.ll" +#line 1247 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3419,7 +3651,7 @@ YY_RULE_SETUP YY_BREAK case 122: YY_RULE_SETUP -#line 1255 "dhcp4_lexer.ll" +#line 1256 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3431,7 +3663,7 @@ YY_RULE_SETUP YY_BREAK case 123: YY_RULE_SETUP -#line 1264 "dhcp4_lexer.ll" +#line 1265 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3443,7 +3675,7 @@ YY_RULE_SETUP YY_BREAK case 124: YY_RULE_SETUP -#line 1273 "dhcp4_lexer.ll" +#line 1274 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3455,7 +3687,7 @@ YY_RULE_SETUP YY_BREAK case 125: YY_RULE_SETUP -#line 1282 "dhcp4_lexer.ll" +#line 1283 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3467,7 +3699,7 @@ YY_RULE_SETUP YY_BREAK case 126: YY_RULE_SETUP -#line 1291 "dhcp4_lexer.ll" +#line 1292 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3479,7 +3711,7 @@ YY_RULE_SETUP YY_BREAK case 127: YY_RULE_SETUP -#line 1300 "dhcp4_lexer.ll" +#line 1301 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3491,7 +3723,7 @@ YY_RULE_SETUP YY_BREAK case 128: YY_RULE_SETUP -#line 1309 "dhcp4_lexer.ll" +#line 1310 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3503,7 +3735,7 @@ YY_RULE_SETUP YY_BREAK case 129: YY_RULE_SETUP -#line 1318 "dhcp4_lexer.ll" +#line 1319 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3515,7 +3747,7 @@ YY_RULE_SETUP YY_BREAK case 130: YY_RULE_SETUP -#line 1327 "dhcp4_lexer.ll" +#line 1328 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3527,7 +3759,7 @@ YY_RULE_SETUP YY_BREAK case 131: YY_RULE_SETUP -#line 1336 "dhcp4_lexer.ll" +#line 1337 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3539,7 +3771,7 @@ YY_RULE_SETUP YY_BREAK case 132: YY_RULE_SETUP -#line 1345 "dhcp4_lexer.ll" +#line 1346 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3551,7 +3783,7 @@ YY_RULE_SETUP YY_BREAK case 133: YY_RULE_SETUP -#line 1354 "dhcp4_lexer.ll" +#line 1355 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3563,7 +3795,7 @@ YY_RULE_SETUP YY_BREAK case 134: YY_RULE_SETUP -#line 1363 "dhcp4_lexer.ll" +#line 1364 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3575,124 +3807,124 @@ YY_RULE_SETUP YY_BREAK case 135: YY_RULE_SETUP -#line 1372 "dhcp4_lexer.ll" +#line 1373 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_); } - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 136: YY_RULE_SETUP -#line 1382 "dhcp4_lexer.ll" +#line 1383 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_); } - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 137: YY_RULE_SETUP -#line 1392 "dhcp4_lexer.ll" +#line 1393 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_); } - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 138: YY_RULE_SETUP -#line 1402 "dhcp4_lexer.ll" +#line 1403 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); } - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 139: YY_RULE_SETUP -#line 1412 "dhcp4_lexer.ll" +#line 1413 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); } - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 140: YY_RULE_SETUP -#line 1422 "dhcp4_lexer.ll" +#line 1423 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); } - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 141: YY_RULE_SETUP -#line 1432 "dhcp4_lexer.ll" +#line 1433 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); } - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 142: YY_RULE_SETUP -#line 1442 "dhcp4_lexer.ll" +#line 1443 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_); } - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 143: YY_RULE_SETUP -#line 1452 "dhcp4_lexer.ll" +#line 1453 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp4Parser::make_WHEN_NOT_PRESENT(driver.loc_); } - std::string tmp(parser4_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 144: YY_RULE_SETUP -#line 1462 "dhcp4_lexer.ll" +#line 1463 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -3704,7 +3936,7 @@ YY_RULE_SETUP YY_BREAK case 145: YY_RULE_SETUP -#line 1471 "dhcp4_lexer.ll" +#line 1472 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -3716,7 +3948,7 @@ YY_RULE_SETUP YY_BREAK case 146: YY_RULE_SETUP -#line 1480 "dhcp4_lexer.ll" +#line 1481 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -3728,7 +3960,7 @@ YY_RULE_SETUP YY_BREAK case 147: YY_RULE_SETUP -#line 1489 "dhcp4_lexer.ll" +#line 1490 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3740,7 +3972,7 @@ YY_RULE_SETUP YY_BREAK case 148: YY_RULE_SETUP -#line 1498 "dhcp4_lexer.ll" +#line 1499 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3752,7 +3984,7 @@ YY_RULE_SETUP YY_BREAK case 149: YY_RULE_SETUP -#line 1507 "dhcp4_lexer.ll" +#line 1508 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3764,7 +3996,7 @@ YY_RULE_SETUP YY_BREAK case 150: YY_RULE_SETUP -#line 1516 "dhcp4_lexer.ll" +#line 1517 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3776,7 +4008,7 @@ YY_RULE_SETUP YY_BREAK case 151: YY_RULE_SETUP -#line 1525 "dhcp4_lexer.ll" +#line 1526 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3790,7 +4022,7 @@ YY_RULE_SETUP YY_BREAK case 152: YY_RULE_SETUP -#line 1536 "dhcp4_lexer.ll" +#line 1537 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3806,7 +4038,7 @@ YY_RULE_SETUP YY_BREAK case 153: YY_RULE_SETUP -#line 1549 "dhcp4_lexer.ll" +#line 1550 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3822,7 +4054,7 @@ YY_RULE_SETUP YY_BREAK case 154: YY_RULE_SETUP -#line 1562 "dhcp4_lexer.ll" +#line 1563 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3838,12 +4070,12 @@ YY_RULE_SETUP YY_BREAK case 155: YY_RULE_SETUP -#line 1577 "dhcp4_lexer.ll" +#line 1578 "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. for 'foo' we should get foo */ - std::string raw(parser4_text+1); + std::string raw(yytext+1); size_t len = raw.size() - 1; raw.resize(len); std::string decoded; @@ -3941,65 +4173,65 @@ YY_RULE_SETUP case 156: /* rule 156 can match eol */ YY_RULE_SETUP -#line 1676 "dhcp4_lexer.ll" +#line 1677 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ - driver.error(driver.loc_, "Invalid control in " + std::string(parser4_text)); + driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK case 157: /* rule 157 can match eol */ YY_RULE_SETUP -#line 1681 "dhcp4_lexer.ll" +#line 1682 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ - driver.error(driver.loc_, "Bad escape in " + std::string(parser4_text)); + driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK case 158: YY_RULE_SETUP -#line 1686 "dhcp4_lexer.ll" +#line 1687 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ - driver.error(driver.loc_, "Overflow escape in " + std::string(parser4_text)); + driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK case 159: YY_RULE_SETUP -#line 1691 "dhcp4_lexer.ll" +#line 1692 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 160: YY_RULE_SETUP -#line 1692 "dhcp4_lexer.ll" +#line 1693 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 161: YY_RULE_SETUP -#line 1693 "dhcp4_lexer.ll" +#line 1694 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK case 162: YY_RULE_SETUP -#line 1694 "dhcp4_lexer.ll" +#line 1695 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK case 163: YY_RULE_SETUP -#line 1695 "dhcp4_lexer.ll" +#line 1696 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK case 164: YY_RULE_SETUP -#line 1696 "dhcp4_lexer.ll" +#line 1697 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK case 165: YY_RULE_SETUP -#line 1698 "dhcp4_lexer.ll" +#line 1699 "dhcp4_lexer.ll" { /* An integer was found. */ - std::string tmp(parser4_text); + std::string tmp(yytext); int64_t integer = 0; try { /* In substring we want to use negative values (e.g. -1). @@ -4017,10 +4249,10 @@ YY_RULE_SETUP YY_BREAK case 166: YY_RULE_SETUP -#line 1716 "dhcp4_lexer.ll" +#line 1717 "dhcp4_lexer.ll" { /* A floating point was found. */ - std::string tmp(parser4_text); + std::string tmp(yytext); double fp = 0.0; try { fp = boost::lexical_cast(tmp); @@ -4033,41 +4265,41 @@ YY_RULE_SETUP YY_BREAK case 167: YY_RULE_SETUP -#line 1729 "dhcp4_lexer.ll" +#line 1730 "dhcp4_lexer.ll" { - string tmp(parser4_text); + string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK case 168: YY_RULE_SETUP -#line 1734 "dhcp4_lexer.ll" +#line 1735 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK case 169: YY_RULE_SETUP -#line 1738 "dhcp4_lexer.ll" +#line 1739 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK case 170: YY_RULE_SETUP -#line 1740 "dhcp4_lexer.ll" +#line 1741 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK case 171: YY_RULE_SETUP -#line 1742 "dhcp4_lexer.ll" +#line 1743 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK case 172: YY_RULE_SETUP -#line 1744 "dhcp4_lexer.ll" -driver.error (driver.loc_, "Invalid character: " + std::string(parser4_text)); +#line 1745 "dhcp4_lexer.ll" +driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1746 "dhcp4_lexer.ll" +#line 1747 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -4093,10 +4325,10 @@ case YY_STATE_EOF(INITIAL): YY_BREAK case 173: YY_RULE_SETUP -#line 1769 "dhcp4_lexer.ll" +#line 1770 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 4100 "dhcp4_lexer.cc" +#line 4331 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -4111,15 +4343,19 @@ ECHO; { /* We're scanning a new file or input source. It's * possible that this happened because the user - * just pointed parser4_in at a new source and called - * parser4_lex(). If so, then we have to assure + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = parser4_in; +/* %if-c-only */ + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; +/* %endif */ +/* %if-c++-only */ +/* %endif */ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -4174,11 +4410,11 @@ ECHO; { (yy_did_buffer_switch_on_eof) = 0; - if ( parser4_wrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up - * parser4_text, we can now set up + * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the @@ -4227,12 +4463,12 @@ ECHO; "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ -} /* end of parser4_lex */ + } /* end of user's declarations */ +} /* end of yylex */ /* %ok-for-header */ /* %if-c++-only */ /* %not-for-header */ - /* %ok-for-header */ /* %endif */ @@ -4250,9 +4486,9 @@ static int yy_get_next_buffer (void) /* %if-c++-only */ /* %endif */ { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -4281,7 +4517,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 = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -4294,7 +4530,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 ) @@ -4308,7 +4544,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; @@ -4317,11 +4553,12 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - parser4_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } 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( @@ -4349,7 +4586,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - parser4_restart(parser4_in ); + yyrestart( yyin ); } else @@ -4363,12 +4600,15 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parser4_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -4384,14 +4624,13 @@ 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 */ /* %endif */ { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; /* %% [15.0] code to get the start state into yy_current_state goes here */ yy_current_state = (yy_start); @@ -4399,7 +4638,7 @@ static int yy_get_next_buffer (void) for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { /* %% [16.0] code to find the next state goes here */ - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -4409,9 +4648,9 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1443 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[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] + yy_c]; } return yy_current_state; @@ -4428,11 +4667,11 @@ static int yy_get_next_buffer (void) /* %if-c++-only */ /* %endif */ { - register int yy_is_jam; + int yy_is_jam; /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */ - register char *yy_cp = (yy_c_buf_p); + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -4442,17 +4681,19 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1443 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[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] + yy_c]; yy_is_jam = (yy_current_state == 1442); return yy_is_jam ? 0 : yy_current_state; } +#ifndef YY_NO_UNPUT /* %if-c-only */ /* %endif */ +#endif /* %if-c-only */ #ifndef YY_NO_INPUT @@ -4482,7 +4723,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -4499,14 +4740,14 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - parser4_restart(parser4_in ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( parser4_wrap( ) ) - return EOF; + if ( yywrap( ) ) + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -4525,10 +4766,10 @@ static int yy_get_next_buffer (void) } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve parser4_text */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); -/* %% [19.0] update BOL and parser4_lineno */ +/* %% [19.0] update BOL and yylineno */ return c; } @@ -4542,28 +4783,31 @@ static int yy_get_next_buffer (void) * @note This function does not reset the start condition to @c INITIAL . */ /* %if-c-only */ - void parser4_restart (FILE * input_file ) + void yyrestart (FILE * input_file ) /* %endif */ /* %if-c++-only */ /* %endif */ { if ( ! YY_CURRENT_BUFFER ){ - parser4_ensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - parser4__create_buffer(parser4_in,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - parser4__init_buffer(YY_CURRENT_BUFFER,input_file ); - parser4__load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } +/* %if-c++-only */ +/* %endif */ + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ /* %if-c-only */ - void parser4__switch_to_buffer (YY_BUFFER_STATE new_buffer ) + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4571,10 +4815,10 @@ static int yy_get_next_buffer (void) /* TODO. We should be able to replace this entire function body * with - * parser4_pop_buffer_state(); - * parser4_push_buffer_state(new_buffer); + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); */ - parser4_ensure_buffer_stack (); + yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; @@ -4587,25 +4831,29 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - parser4__load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during - * EOF (parser4_wrap()) processing, but the only time this flag - * is looked at is after parser4_wrap() is called, so it's safe + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } /* %if-c-only */ -static void parser4__load_buffer_state (void) +static void yy_load_buffer_state (void) /* %endif */ /* %if-c++-only */ /* %endif */ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - parser4_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file; +/* %if-c-only */ + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; +/* %endif */ +/* %if-c++-only */ +/* %endif */ (yy_hold_char) = *(yy_c_buf_p); } @@ -4616,39 +4864,42 @@ static void parser4__load_buffer_state (void) * @return the allocated buffer state. */ /* %if-c-only */ - YY_BUFFER_STATE parser4__create_buffer (FILE * file, int size ) + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) /* %endif */ /* %if-c++-only */ /* %endif */ { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) parser4_alloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in parser4__create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = 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 *) parser4_alloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in parser4__create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - parser4__init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } +/* %if-c++-only */ +/* %endif */ + /** Destroy the buffer. - * @param b a buffer created with parser4__create_buffer() + * @param b a buffer created with yy_create_buffer() * */ /* %if-c-only */ - void parser4__delete_buffer (YY_BUFFER_STATE b ) + void yy_delete_buffer (YY_BUFFER_STATE b ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4661,17 +4912,17 @@ static void parser4__load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - parser4_free((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - parser4_free((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, - * such as during a parser4_restart() or at EOF. + * such as during a yyrestart() or at EOF. */ /* %if-c-only */ - static void parser4__init_buffer (YY_BUFFER_STATE b, FILE * file ) + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4679,13 +4930,17 @@ static void parser4__load_buffer_state (void) { int oerrno = errno; - parser4__flush_buffer(b ); + yy_flush_buffer( b ); +/* %if-c-only */ b->yy_input_file = file; +/* %endif */ +/* %if-c++-only */ +/* %endif */ b->yy_fill_buffer = 1; - /* If b is the current buffer, then parser4__init_buffer was _probably_ - * called from parser4_restart() or through yy_get_next_buffer. + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ @@ -4708,7 +4963,7 @@ static void parser4__load_buffer_state (void) * */ /* %if-c-only */ - void parser4__flush_buffer (YY_BUFFER_STATE b ) + void yy_flush_buffer (YY_BUFFER_STATE b ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4731,7 +4986,7 @@ static void parser4__load_buffer_state (void) b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - parser4__load_buffer_state( ); + yy_load_buffer_state( ); } /* %if-c-or-c++ */ @@ -4742,7 +4997,7 @@ static void parser4__load_buffer_state (void) * */ /* %if-c-only */ -void parser4_push_buffer_state (YY_BUFFER_STATE new_buffer ) +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4750,9 +5005,9 @@ void parser4_push_buffer_state (YY_BUFFER_STATE new_buffer ) if (new_buffer == NULL) return; - parser4_ensure_buffer_stack(); + yyensure_buffer_stack(); - /* This block is copied from parser4__switch_to_buffer. */ + /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ @@ -4766,8 +5021,8 @@ void parser4_push_buffer_state (YY_BUFFER_STATE new_buffer ) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; - /* copied from parser4__switch_to_buffer. */ - parser4__load_buffer_state( ); + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /* %endif */ @@ -4778,7 +5033,7 @@ void parser4_push_buffer_state (YY_BUFFER_STATE new_buffer ) * */ /* %if-c-only */ -void parser4_pop_buffer_state (void) +void yypop_buffer_state (void) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4786,13 +5041,13 @@ void parser4_pop_buffer_state (void) if (!YY_CURRENT_BUFFER) return; - parser4__delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - parser4__load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -4803,7 +5058,7 @@ void parser4_pop_buffer_state (void) * Guarantees space for at least one push. */ /* %if-c-only */ -static void parser4_ensure_buffer_stack (void) +static void yyensure_buffer_stack (void) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4816,15 +5071,15 @@ 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; - (yy_buffer_stack) = (struct yy_buffer_state**)parser4_alloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in parser4_ensure_buffer_stack()" ); - + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -4833,15 +5088,15 @@ static void parser4_ensure_buffer_stack (void) if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)parser4_realloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in parser4_ensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -4855,9 +5110,9 @@ static void parser4_ensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE parser4__scan_buffer (char * base, yy_size_t size ) +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; @@ -4865,53 +5120,53 @@ 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 ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in parser4__scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (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; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - parser4__switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } /* %endif */ /* %if-c-only */ -/** Setup the input buffer state to scan a string. The next call to parser4_lex() will +/** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use - * parser4__scan_bytes() instead. + * yy_scan_bytes() instead. */ -YY_BUFFER_STATE parser4__scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return parser4__scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /* %endif */ /* %if-c-only */ -/** Setup the input buffer state to scan the given bytes. The next call to parser4_lex() will +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE parser4__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -4919,19 +5174,19 @@ YY_BUFFER_STATE parser4__scan_bytes (yyconst char * yybytes, yy_size_t _yybyte int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) parser4_alloc(n ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in parser4__scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = parser4__scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in parser4__scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -4947,9 +5202,9 @@ 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 (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* %endif */ @@ -4962,14 +5217,14 @@ static void yy_fatal_error (yyconst char* msg ) #define yyless(n) \ do \ { \ - /* Undo effects of setting up parser4_text. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ - parser4_text[parser4_leng] = (yy_hold_char); \ - (yy_c_buf_p) = parser4_text + 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'; \ - parser4_leng = yyless_macro_arg; \ + yyleng = yyless_macro_arg; \ } \ while ( 0 ) @@ -4982,82 +5237,82 @@ static void yy_fatal_error (yyconst char* msg ) /** Get the current line number. * */ -int parser4_get_lineno (void) +int yyget_lineno (void) { - - return parser4_lineno; + + return yylineno; } /** Get the input stream. * */ -FILE *parser4_get_in (void) +FILE *yyget_in (void) { - return parser4_in; + return yyin; } /** Get the output stream. * */ -FILE *parser4_get_out (void) +FILE *yyget_out (void) { - return parser4_out; + return yyout; } /** Get the length of the current token. * */ -yy_size_t parser4_get_leng (void) +int yyget_leng (void) { - return parser4_leng; + return yyleng; } /** Get the current token. * */ -char *parser4_get_text (void) +char *yyget_text (void) { - return parser4_text; + return yytext; } /* %if-reentrant */ /* %endif */ /** Set the current line number. - * @param line_number + * @param _line_number line number * */ -void parser4_set_lineno (int line_number ) +void yyset_lineno (int _line_number ) { - parser4_lineno = line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. + * @param _in_str A readable stream. * - * @see parser4__switch_to_buffer + * @see yy_switch_to_buffer */ -void parser4_set_in (FILE * in_str ) +void yyset_in (FILE * _in_str ) { - parser4_in = in_str ; + yyin = _in_str ; } -void parser4_set_out (FILE * out_str ) +void yyset_out (FILE * _out_str ) { - parser4_out = out_str ; + yyout = _out_str ; } -int parser4_get_debug (void) +int yyget_debug (void) { - return parser4__flex_debug; + return yy_flex_debug; } -void parser4_set_debug (int bdebug ) +void yyset_debug (int _bdebug ) { - parser4__flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } /* %endif */ @@ -5071,50 +5326,50 @@ void parser4_set_debug (int bdebug ) static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. - * This function is called from parser4_lex_destroy(), so don't allocate here. + * This function is called from yylex_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; /* Defined in main.c */ #ifdef YY_STDINIT - parser4_in = stdin; - parser4_out = stdout; + yyin = stdin; + yyout = stdout; #else - parser4_in = (FILE *) 0; - parser4_out = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by - * parser4_lex_init() + * yylex_init() */ return 0; } /* %endif */ /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */ -/* parser4_lex_destroy is for both reentrant and non-reentrant scanners. */ -int parser4_lex_destroy (void) +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - parser4__delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; - parser4_pop_buffer_state(); + yypop_buffer_state(); } /* Destroy the stack itself. */ - parser4_free((yy_buffer_stack) ); + yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time - * parser4_lex() is called, initialization will occur. */ + * yylex() is called, initialization will occur. */ yy_init_globals( ); /* %if-reentrant */ @@ -5128,18 +5383,19 @@ int parser4_lex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -5147,13 +5403,14 @@ static int yy_flex_strlen (yyconst char * s ) } #endif -void *parser4_alloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *parser4_realloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -5161,12 +5418,12 @@ 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 ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see parser4_realloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } /* %if-tables-serialization definitions */ @@ -5176,8 +5433,7 @@ void parser4_free (void * ptr ) /* %ok-for-header */ -#line 1769 "dhcp4_lexer.ll" - +#line 1770 "dhcp4_lexer.ll" using namespace isc::dhcp; @@ -5191,7 +5447,7 @@ Parser4Context::scanStringBegin(const std::string& str, ParserType parser_type) file_ = ""; sfile_ = 0; loc_.initialize(&file_); - parser4__flex_debug = trace_scanning_; + yy_flex_debug = trace_scanning_; YY_BUFFER_STATE buffer; buffer = parser4__scan_bytes(str.c_str(), str.size()); if (!buffer) { @@ -5211,7 +5467,7 @@ Parser4Context::scanFileBegin(FILE * f, file_ = filename; sfile_ = f; loc_.initialize(&file_); - parser4__flex_debug = trace_scanning_; + yy_flex_debug = trace_scanning_; YY_BUFFER_STATE buffer; /* See dhcp4_lexer.cc header for available definitions */ diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index fb4aa72467..d3ccb12fcc 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// A Bison parser, made by GNU Bison 3.0.5. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -35,7 +35,7 @@ // First part of user declarations. -#line 39 "dhcp4_parser.cc" // lalr1.cc:404 +#line 39 "dhcp4_parser.cc" // lalr1.cc:406 # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -49,13 +49,13 @@ // User implementation prologue. -#line 53 "dhcp4_parser.cc" // lalr1.cc:412 +#line 53 "dhcp4_parser.cc" // lalr1.cc:414 // Unqualified %code blocks. -#line 34 "dhcp4_parser.yy" // lalr1.cc:413 +#line 34 "dhcp4_parser.yy" // lalr1.cc:415 #include -#line 59 "dhcp4_parser.cc" // lalr1.cc:413 +#line 59 "dhcp4_parser.cc" // lalr1.cc:415 #ifndef YY_ @@ -106,7 +106,7 @@ { \ *yycdebug_ << Title << ' '; \ yy_print_ (*yycdebug_, Symbol); \ - *yycdebug_ << std::endl; \ + *yycdebug_ << '\n'; \ } \ } while (false) @@ -125,9 +125,9 @@ #else // !PARSER4_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol) -# define YY_REDUCE_PRINT(Rule) static_cast(0) -# define YY_STACK_PRINT() static_cast(0) +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) +# define YY_REDUCE_PRINT(Rule) static_cast (0) +# define YY_STACK_PRINT() static_cast (0) #endif // !PARSER4_DEBUG @@ -139,9 +139,9 @@ #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus_) -#line 14 "dhcp4_parser.yy" // lalr1.cc:479 +#line 14 "dhcp4_parser.yy" // lalr1.cc:481 namespace isc { namespace dhcp { -#line 145 "dhcp4_parser.cc" // lalr1.cc:479 +#line 145 "dhcp4_parser.cc" // lalr1.cc:481 /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -202,24 +202,20 @@ namespace isc { namespace dhcp { // by_state. - inline Dhcp4Parser::by_state::by_state () : state (empty_state) {} - inline Dhcp4Parser::by_state::by_state (const by_state& other) : state (other.state) {} - inline void Dhcp4Parser::by_state::clear () { state = empty_state; } - inline void Dhcp4Parser::by_state::move (by_state& that) { @@ -227,12 +223,10 @@ namespace isc { namespace dhcp { that.clear (); } - inline Dhcp4Parser::by_state::by_state (state_type s) : state (s) {} - inline Dhcp4Parser::symbol_number_type Dhcp4Parser::by_state::type_get () const { @@ -242,16 +236,51 @@ namespace isc { namespace dhcp { return yystos_[state]; } - inline Dhcp4Parser::stack_symbol_type::stack_symbol_type () {} + Dhcp4Parser::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that) + : super_type (that.state, that.location) + { + switch (that.type_get ()) + { + case 181: // value + case 185: // map_value + case 223: // socket_type + case 226: // outbound_interface_value + case 248: // db_type + case 332: // hr_mode + case 480: // ncr_protocol_value + case 488: // replace_client_name_value + value.copy< ElementPtr > (that.value); + break; + + case 165: // "boolean" + value.copy< bool > (that.value); + break; + + case 164: // "floating point" + value.copy< double > (that.value); + break; + + case 163: // "integer" + value.copy< int64_t > (that.value); + break; + + case 162: // "constant string" + value.copy< std::string > (that.value); + break; + + default: + break; + } + + } - inline Dhcp4Parser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) : super_type (s, that.location) { - switch (that.type_get ()) + switch (that.type_get ()) { case 181: // value case 185: // map_value @@ -288,12 +317,11 @@ namespace isc { namespace dhcp { that.type = empty_symbol; } - inline Dhcp4Parser::stack_symbol_type& Dhcp4Parser::stack_symbol_type::operator= (const stack_symbol_type& that) { state = that.state; - switch (that.type_get ()) + switch (that.type_get ()) { case 181: // value case 185: // map_value @@ -332,7 +360,6 @@ namespace isc { namespace dhcp { template - inline void Dhcp4Parser::yy_destroy_ (const char* yymsg, basic_symbol& yysym) const { @@ -360,86 +387,86 @@ namespace isc { namespace dhcp { { case 162: // "constant string" -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< std::string > (); } -#line 366 "dhcp4_parser.cc" // lalr1.cc:636 +#line 393 "dhcp4_parser.cc" // lalr1.cc:635 break; case 163: // "integer" -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< int64_t > (); } -#line 373 "dhcp4_parser.cc" // lalr1.cc:636 +#line 400 "dhcp4_parser.cc" // lalr1.cc:635 break; case 164: // "floating point" -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< double > (); } -#line 380 "dhcp4_parser.cc" // lalr1.cc:636 +#line 407 "dhcp4_parser.cc" // lalr1.cc:635 break; case 165: // "boolean" -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< bool > (); } -#line 387 "dhcp4_parser.cc" // lalr1.cc:636 +#line 414 "dhcp4_parser.cc" // lalr1.cc:635 break; case 181: // value -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 394 "dhcp4_parser.cc" // lalr1.cc:636 +#line 421 "dhcp4_parser.cc" // lalr1.cc:635 break; case 185: // map_value -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 401 "dhcp4_parser.cc" // lalr1.cc:636 +#line 428 "dhcp4_parser.cc" // lalr1.cc:635 break; case 223: // socket_type -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 408 "dhcp4_parser.cc" // lalr1.cc:636 +#line 435 "dhcp4_parser.cc" // lalr1.cc:635 break; case 226: // outbound_interface_value -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 415 "dhcp4_parser.cc" // lalr1.cc:636 +#line 442 "dhcp4_parser.cc" // lalr1.cc:635 break; case 248: // db_type -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 422 "dhcp4_parser.cc" // lalr1.cc:636 +#line 449 "dhcp4_parser.cc" // lalr1.cc:635 break; case 332: // hr_mode -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 429 "dhcp4_parser.cc" // lalr1.cc:636 +#line 456 "dhcp4_parser.cc" // lalr1.cc:635 break; case 480: // ncr_protocol_value -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 436 "dhcp4_parser.cc" // lalr1.cc:636 +#line 463 "dhcp4_parser.cc" // lalr1.cc:635 break; case 488: // replace_client_name_value -#line 241 "dhcp4_parser.yy" // lalr1.cc:636 +#line 241 "dhcp4_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 443 "dhcp4_parser.cc" // lalr1.cc:636 +#line 470 "dhcp4_parser.cc" // lalr1.cc:635 break; @@ -450,7 +477,6 @@ namespace isc { namespace dhcp { } #endif - inline void Dhcp4Parser::yypush_ (const char* m, state_type s, symbol_type& sym) { @@ -458,7 +484,6 @@ namespace isc { namespace dhcp { yypush_ (m, t); } - inline void Dhcp4Parser::yypush_ (const char* m, stack_symbol_type& s) { @@ -467,9 +492,8 @@ namespace isc { namespace dhcp { yystack_.push (s); } - inline void - Dhcp4Parser::yypop_ (unsigned int n) + Dhcp4Parser::yypop_ (unsigned n) { yystack_.pop (n); } @@ -501,7 +525,7 @@ namespace isc { namespace dhcp { } #endif // PARSER4_DEBUG - inline Dhcp4Parser::state_type + Dhcp4Parser::state_type Dhcp4Parser::yy_lr_goto_state_ (state_type yystate, int yysym) { int yyr = yypgoto_[yysym - yyntokens_] + yystate; @@ -511,13 +535,13 @@ namespace isc { namespace dhcp { return yydefgoto_[yysym - yyntokens_]; } - inline bool + bool Dhcp4Parser::yy_pact_value_is_default_ (int yyvalue) { return yyvalue == yypact_ninf_; } - inline bool + bool Dhcp4Parser::yy_table_value_is_error_ (int yyvalue) { return yyvalue == yytable_ninf_; @@ -548,7 +572,7 @@ namespace isc { namespace dhcp { // avoid gratuitous conflicts when merging into the master branch. try { - YYCDEBUG << "Starting parse" << std::endl; + YYCDEBUG << "Starting parse\n"; /* Initialize the stack. The initial state will be set in @@ -560,7 +584,7 @@ namespace isc { namespace dhcp { // A new symbol was pushed on the stack. yynewstate: - YYCDEBUG << "Entering state " << yystack_[0].state << std::endl; + YYCDEBUG << "Entering state " << yystack_[0].state << '\n'; // Accept? if (yystack_[0].state == yyfinal_) @@ -633,11 +657,11 @@ namespace isc { namespace dhcp { yylen = yyr2_[yyn]; { stack_symbol_type yylhs; - yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]); + yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]); /* Variants are always initialized to an empty instance of the correct type. The default '$$ = $1' action is NOT applied when using variants. */ - switch (yyr1_[yyn]) + switch (yyr1_[yyn]) { case 181: // value case 185: // map_value @@ -671,10 +695,11 @@ namespace isc { namespace dhcp { } - // Compute the default @$. + // Default location. { slice slice (yystack_, yylen); YYLLOC_DEFAULT (yylhs.location, slice, yylen); + yyerror_range[1].location = yylhs.location; } // Perform the reduction. @@ -684,274 +709,274 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 250 "dhcp4_parser.yy" // lalr1.cc:859 +#line 250 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 690 "dhcp4_parser.cc" // lalr1.cc:859 +#line 715 "dhcp4_parser.cc" // lalr1.cc:856 break; case 4: -#line 251 "dhcp4_parser.yy" // lalr1.cc:859 +#line 251 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.CONFIG; } -#line 696 "dhcp4_parser.cc" // lalr1.cc:859 +#line 721 "dhcp4_parser.cc" // lalr1.cc:856 break; case 6: -#line 252 "dhcp4_parser.yy" // lalr1.cc:859 +#line 252 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.DHCP4; } -#line 702 "dhcp4_parser.cc" // lalr1.cc:859 +#line 727 "dhcp4_parser.cc" // lalr1.cc:856 break; case 8: -#line 253 "dhcp4_parser.yy" // lalr1.cc:859 +#line 253 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 708 "dhcp4_parser.cc" // lalr1.cc:859 +#line 733 "dhcp4_parser.cc" // lalr1.cc:856 break; case 10: -#line 254 "dhcp4_parser.yy" // lalr1.cc:859 +#line 254 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.SUBNET4; } -#line 714 "dhcp4_parser.cc" // lalr1.cc:859 +#line 739 "dhcp4_parser.cc" // lalr1.cc:856 break; case 12: -#line 255 "dhcp4_parser.yy" // lalr1.cc:859 +#line 255 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.POOLS; } -#line 720 "dhcp4_parser.cc" // lalr1.cc:859 +#line 745 "dhcp4_parser.cc" // lalr1.cc:856 break; case 14: -#line 256 "dhcp4_parser.yy" // lalr1.cc:859 +#line 256 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.RESERVATIONS; } -#line 726 "dhcp4_parser.cc" // lalr1.cc:859 +#line 751 "dhcp4_parser.cc" // lalr1.cc:856 break; case 16: -#line 257 "dhcp4_parser.yy" // lalr1.cc:859 +#line 257 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.DHCP4; } -#line 732 "dhcp4_parser.cc" // lalr1.cc:859 +#line 757 "dhcp4_parser.cc" // lalr1.cc:856 break; case 18: -#line 258 "dhcp4_parser.yy" // lalr1.cc:859 +#line 258 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.OPTION_DEF; } -#line 738 "dhcp4_parser.cc" // lalr1.cc:859 +#line 763 "dhcp4_parser.cc" // lalr1.cc:856 break; case 20: -#line 259 "dhcp4_parser.yy" // lalr1.cc:859 +#line 259 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.OPTION_DATA; } -#line 744 "dhcp4_parser.cc" // lalr1.cc:859 +#line 769 "dhcp4_parser.cc" // lalr1.cc:856 break; case 22: -#line 260 "dhcp4_parser.yy" // lalr1.cc:859 +#line 260 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 750 "dhcp4_parser.cc" // lalr1.cc:859 +#line 775 "dhcp4_parser.cc" // lalr1.cc:856 break; case 24: -#line 261 "dhcp4_parser.yy" // lalr1.cc:859 +#line 261 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 756 "dhcp4_parser.cc" // lalr1.cc:859 +#line 781 "dhcp4_parser.cc" // lalr1.cc:856 break; case 26: -#line 262 "dhcp4_parser.yy" // lalr1.cc:859 +#line 262 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.LOGGING; } -#line 762 "dhcp4_parser.cc" // lalr1.cc:859 +#line 787 "dhcp4_parser.cc" // lalr1.cc:856 break; case 28: -#line 270 "dhcp4_parser.yy" // lalr1.cc:859 +#line 270 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 768 "dhcp4_parser.cc" // lalr1.cc:859 +#line 793 "dhcp4_parser.cc" // lalr1.cc:856 break; case 29: -#line 271 "dhcp4_parser.yy" // lalr1.cc:859 +#line 271 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } -#line 774 "dhcp4_parser.cc" // lalr1.cc:859 +#line 799 "dhcp4_parser.cc" // lalr1.cc:856 break; case 30: -#line 272 "dhcp4_parser.yy" // lalr1.cc:859 +#line 272 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 780 "dhcp4_parser.cc" // lalr1.cc:859 +#line 805 "dhcp4_parser.cc" // lalr1.cc:856 break; case 31: -#line 273 "dhcp4_parser.yy" // lalr1.cc:859 +#line 273 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 786 "dhcp4_parser.cc" // lalr1.cc:859 +#line 811 "dhcp4_parser.cc" // lalr1.cc:856 break; case 32: -#line 274 "dhcp4_parser.yy" // lalr1.cc:859 +#line 274 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 792 "dhcp4_parser.cc" // lalr1.cc:859 +#line 817 "dhcp4_parser.cc" // lalr1.cc:856 break; case 33: -#line 275 "dhcp4_parser.yy" // lalr1.cc:859 +#line 275 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 798 "dhcp4_parser.cc" // lalr1.cc:859 +#line 823 "dhcp4_parser.cc" // lalr1.cc:856 break; case 34: -#line 276 "dhcp4_parser.yy" // lalr1.cc:859 +#line 276 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 804 "dhcp4_parser.cc" // lalr1.cc:859 +#line 829 "dhcp4_parser.cc" // lalr1.cc:856 break; case 35: -#line 279 "dhcp4_parser.yy" // lalr1.cc:859 +#line 279 "dhcp4_parser.yy" // lalr1.cc:856 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); } -#line 813 "dhcp4_parser.cc" // lalr1.cc:859 +#line 838 "dhcp4_parser.cc" // lalr1.cc:856 break; case 36: -#line 284 "dhcp4_parser.yy" // lalr1.cc:859 +#line 284 "dhcp4_parser.yy" // lalr1.cc:856 { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 824 "dhcp4_parser.cc" // lalr1.cc:859 +#line 849 "dhcp4_parser.cc" // lalr1.cc:856 break; case 37: -#line 289 "dhcp4_parser.yy" // lalr1.cc:859 +#line 289 "dhcp4_parser.yy" // lalr1.cc:856 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 834 "dhcp4_parser.cc" // lalr1.cc:859 +#line 859 "dhcp4_parser.cc" // lalr1.cc:856 break; case 38: -#line 295 "dhcp4_parser.yy" // lalr1.cc:859 +#line 295 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 840 "dhcp4_parser.cc" // lalr1.cc:859 +#line 865 "dhcp4_parser.cc" // lalr1.cc:856 break; case 41: -#line 302 "dhcp4_parser.yy" // lalr1.cc:859 +#line 302 "dhcp4_parser.yy" // lalr1.cc:856 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 849 "dhcp4_parser.cc" // lalr1.cc:859 +#line 874 "dhcp4_parser.cc" // lalr1.cc:856 break; case 42: -#line 306 "dhcp4_parser.yy" // lalr1.cc:859 +#line 306 "dhcp4_parser.yy" // lalr1.cc:856 { // map consisting of a shorter map followed by // comma and string:value ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 859 "dhcp4_parser.cc" // lalr1.cc:859 +#line 884 "dhcp4_parser.cc" // lalr1.cc:856 break; case 43: -#line 313 "dhcp4_parser.yy" // lalr1.cc:859 +#line 313 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 868 "dhcp4_parser.cc" // lalr1.cc:859 +#line 893 "dhcp4_parser.cc" // lalr1.cc:856 break; case 44: -#line 316 "dhcp4_parser.yy" // lalr1.cc:859 +#line 316 "dhcp4_parser.yy" // lalr1.cc:856 { // list parsing complete. Put any sanity checking here } -#line 876 "dhcp4_parser.cc" // lalr1.cc:859 +#line 901 "dhcp4_parser.cc" // lalr1.cc:856 break; case 47: -#line 324 "dhcp4_parser.yy" // lalr1.cc:859 +#line 324 "dhcp4_parser.yy" // lalr1.cc:856 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 885 "dhcp4_parser.cc" // lalr1.cc:859 +#line 910 "dhcp4_parser.cc" // lalr1.cc:856 break; case 48: -#line 328 "dhcp4_parser.yy" // lalr1.cc:859 +#line 328 "dhcp4_parser.yy" // lalr1.cc:856 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 894 "dhcp4_parser.cc" // lalr1.cc:859 +#line 919 "dhcp4_parser.cc" // lalr1.cc:856 break; case 49: -#line 335 "dhcp4_parser.yy" // lalr1.cc:859 +#line 335 "dhcp4_parser.yy" // lalr1.cc:856 { // List parsing about to start } -#line 902 "dhcp4_parser.cc" // lalr1.cc:859 +#line 927 "dhcp4_parser.cc" // lalr1.cc:856 break; case 50: -#line 337 "dhcp4_parser.yy" // lalr1.cc:859 +#line 337 "dhcp4_parser.yy" // lalr1.cc:856 { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 911 "dhcp4_parser.cc" // lalr1.cc:859 +#line 936 "dhcp4_parser.cc" // lalr1.cc:856 break; case 53: -#line 346 "dhcp4_parser.yy" // lalr1.cc:859 +#line 346 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 920 "dhcp4_parser.cc" // lalr1.cc:859 +#line 945 "dhcp4_parser.cc" // lalr1.cc:856 break; case 54: -#line 350 "dhcp4_parser.yy" // lalr1.cc:859 +#line 350 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 929 "dhcp4_parser.cc" // lalr1.cc:859 +#line 954 "dhcp4_parser.cc" // lalr1.cc:856 break; case 55: -#line 361 "dhcp4_parser.yy" // lalr1.cc:859 +#line 361 "dhcp4_parser.yy" // lalr1.cc:856 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 940 "dhcp4_parser.cc" // lalr1.cc:859 +#line 965 "dhcp4_parser.cc" // lalr1.cc:856 break; case 56: -#line 371 "dhcp4_parser.yy" // lalr1.cc:859 +#line 371 "dhcp4_parser.yy" // lalr1.cc:856 { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 951 "dhcp4_parser.cc" // lalr1.cc:859 +#line 976 "dhcp4_parser.cc" // lalr1.cc:856 break; case 57: -#line 376 "dhcp4_parser.yy" // lalr1.cc:859 +#line 376 "dhcp4_parser.yy" // lalr1.cc:856 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -960,11 +985,11 @@ namespace isc { namespace dhcp { // Dhcp4 is required ctx.require("Dhcp4", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 964 "dhcp4_parser.cc" // lalr1.cc:859 +#line 989 "dhcp4_parser.cc" // lalr1.cc:856 break; case 66: -#line 400 "dhcp4_parser.yy" // lalr1.cc:859 +#line 400 "dhcp4_parser.yy" // lalr1.cc:856 { // This code is executed when we're about to start parsing // the content of the map @@ -973,275 +998,275 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP4); } -#line 977 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1002 "dhcp4_parser.cc" // lalr1.cc:856 break; case 67: -#line 407 "dhcp4_parser.yy" // lalr1.cc:859 +#line 407 "dhcp4_parser.yy" // lalr1.cc:856 { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 987 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1012 "dhcp4_parser.cc" // lalr1.cc:856 break; case 68: -#line 415 "dhcp4_parser.yy" // lalr1.cc:859 +#line 415 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 997 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1022 "dhcp4_parser.cc" // lalr1.cc:856 break; case 69: -#line 419 "dhcp4_parser.yy" // lalr1.cc:859 +#line 419 "dhcp4_parser.yy" // lalr1.cc:856 { // No global parameter is required // parsing completed } -#line 1006 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1031 "dhcp4_parser.cc" // lalr1.cc:856 break; case 101: -#line 461 "dhcp4_parser.yy" // lalr1.cc:859 +#line 461 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1015 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1040 "dhcp4_parser.cc" // lalr1.cc:856 break; case 102: -#line 466 "dhcp4_parser.yy" // lalr1.cc:859 +#line 466 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); } -#line 1024 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1049 "dhcp4_parser.cc" // lalr1.cc:856 break; case 103: -#line 471 "dhcp4_parser.yy" // lalr1.cc:859 +#line 471 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); } -#line 1033 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1058 "dhcp4_parser.cc" // lalr1.cc:856 break; case 104: -#line 476 "dhcp4_parser.yy" // lalr1.cc:859 +#line 476 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1042 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1067 "dhcp4_parser.cc" // lalr1.cc:856 break; case 105: -#line 481 "dhcp4_parser.yy" // lalr1.cc:859 +#line 481 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("echo-client-id", echo); } -#line 1051 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1076 "dhcp4_parser.cc" // lalr1.cc:856 break; case 106: -#line 486 "dhcp4_parser.yy" // lalr1.cc:859 +#line 486 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("match-client-id", match); } -#line 1060 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1085 "dhcp4_parser.cc" // lalr1.cc:856 break; case 107: -#line 492 "dhcp4_parser.yy" // lalr1.cc:859 +#line 492 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1071 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1096 "dhcp4_parser.cc" // lalr1.cc:856 break; case 108: -#line 497 "dhcp4_parser.yy" // lalr1.cc:859 +#line 497 "dhcp4_parser.yy" // lalr1.cc:856 { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1081 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1106 "dhcp4_parser.cc" // lalr1.cc:856 break; case 118: -#line 516 "dhcp4_parser.yy" // lalr1.cc:859 +#line 516 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1091 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1116 "dhcp4_parser.cc" // lalr1.cc:856 break; case 119: -#line 520 "dhcp4_parser.yy" // lalr1.cc:859 +#line 520 "dhcp4_parser.yy" // lalr1.cc:856 { // No interfaces config param is required // parsing completed } -#line 1100 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1125 "dhcp4_parser.cc" // lalr1.cc:856 break; case 120: -#line 525 "dhcp4_parser.yy" // lalr1.cc:859 +#line 525 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1111 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1136 "dhcp4_parser.cc" // lalr1.cc:856 break; case 121: -#line 530 "dhcp4_parser.yy" // lalr1.cc:859 +#line 530 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1120 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1145 "dhcp4_parser.cc" // lalr1.cc:856 break; case 122: -#line 535 "dhcp4_parser.yy" // lalr1.cc:859 +#line 535 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.DHCP_SOCKET_TYPE); } -#line 1128 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1153 "dhcp4_parser.cc" // lalr1.cc:856 break; case 123: -#line 537 "dhcp4_parser.yy" // lalr1.cc:859 +#line 537 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1137 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1162 "dhcp4_parser.cc" // lalr1.cc:856 break; case 124: -#line 542 "dhcp4_parser.yy" // lalr1.cc:859 +#line 542 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } -#line 1143 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1168 "dhcp4_parser.cc" // lalr1.cc:856 break; case 125: -#line 543 "dhcp4_parser.yy" // lalr1.cc:859 +#line 543 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } -#line 1149 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1174 "dhcp4_parser.cc" // lalr1.cc:856 break; case 126: -#line 546 "dhcp4_parser.yy" // lalr1.cc:859 +#line 546 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.OUTBOUND_INTERFACE); } -#line 1157 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1182 "dhcp4_parser.cc" // lalr1.cc:856 break; case 127: -#line 548 "dhcp4_parser.yy" // lalr1.cc:859 +#line 548 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1166 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1191 "dhcp4_parser.cc" // lalr1.cc:856 break; case 128: -#line 553 "dhcp4_parser.yy" // lalr1.cc:859 +#line 553 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } -#line 1174 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1199 "dhcp4_parser.cc" // lalr1.cc:856 break; case 129: -#line 555 "dhcp4_parser.yy" // lalr1.cc:859 +#line 555 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } -#line 1182 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1207 "dhcp4_parser.cc" // lalr1.cc:856 break; case 130: -#line 559 "dhcp4_parser.yy" // lalr1.cc:859 +#line 559 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1191 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1216 "dhcp4_parser.cc" // lalr1.cc:856 break; case 131: -#line 565 "dhcp4_parser.yy" // lalr1.cc:859 +#line 565 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1202 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1227 "dhcp4_parser.cc" // lalr1.cc:856 break; case 132: -#line 570 "dhcp4_parser.yy" // lalr1.cc:859 +#line 570 "dhcp4_parser.yy" // lalr1.cc:856 { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1213 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1238 "dhcp4_parser.cc" // lalr1.cc:856 break; case 133: -#line 577 "dhcp4_parser.yy" // lalr1.cc:859 +#line 577 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sanity-checks", m); ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1224 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1249 "dhcp4_parser.cc" // lalr1.cc:856 break; case 134: -#line 582 "dhcp4_parser.yy" // lalr1.cc:859 +#line 582 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1233 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1258 "dhcp4_parser.cc" // lalr1.cc:856 break; case 138: -#line 592 "dhcp4_parser.yy" // lalr1.cc:859 +#line 592 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1241 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1266 "dhcp4_parser.cc" // lalr1.cc:856 break; case 139: -#line 594 "dhcp4_parser.yy" // lalr1.cc:859 +#line 594 "dhcp4_parser.yy" // lalr1.cc:856 { if ( (string(yystack_[0].value.as< std::string > ()) == "none") || @@ -1257,577 +1282,577 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1261 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1286 "dhcp4_parser.cc" // lalr1.cc:856 break; case 140: -#line 610 "dhcp4_parser.yy" // lalr1.cc:859 +#line 610 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1272 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1297 "dhcp4_parser.cc" // lalr1.cc:856 break; case 141: -#line 615 "dhcp4_parser.yy" // lalr1.cc:859 +#line 615 "dhcp4_parser.yy" // lalr1.cc:856 { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1283 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1308 "dhcp4_parser.cc" // lalr1.cc:856 break; case 142: -#line 622 "dhcp4_parser.yy" // lalr1.cc:859 +#line 622 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1294 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1319 "dhcp4_parser.cc" // lalr1.cc:856 break; case 143: -#line 627 "dhcp4_parser.yy" // lalr1.cc:859 +#line 627 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1303 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1328 "dhcp4_parser.cc" // lalr1.cc:856 break; case 148: -#line 640 "dhcp4_parser.yy" // lalr1.cc:859 +#line 640 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1313 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1338 "dhcp4_parser.cc" // lalr1.cc:856 break; case 149: -#line 644 "dhcp4_parser.yy" // lalr1.cc:859 +#line 644 "dhcp4_parser.yy" // lalr1.cc:856 { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1323 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1348 "dhcp4_parser.cc" // lalr1.cc:856 break; case 170: -#line 674 "dhcp4_parser.yy" // lalr1.cc:859 +#line 674 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.DATABASE_TYPE); } -#line 1331 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1356 "dhcp4_parser.cc" // lalr1.cc:856 break; case 171: -#line 676 "dhcp4_parser.yy" // lalr1.cc:859 +#line 676 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1340 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1365 "dhcp4_parser.cc" // lalr1.cc:856 break; case 172: -#line 681 "dhcp4_parser.yy" // lalr1.cc:859 +#line 681 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1346 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1371 "dhcp4_parser.cc" // lalr1.cc:856 break; case 173: -#line 682 "dhcp4_parser.yy" // lalr1.cc:859 +#line 682 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1352 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1377 "dhcp4_parser.cc" // lalr1.cc:856 break; case 174: -#line 683 "dhcp4_parser.yy" // lalr1.cc:859 +#line 683 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1358 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1383 "dhcp4_parser.cc" // lalr1.cc:856 break; case 175: -#line 684 "dhcp4_parser.yy" // lalr1.cc:859 +#line 684 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1364 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1389 "dhcp4_parser.cc" // lalr1.cc:856 break; case 176: -#line 687 "dhcp4_parser.yy" // lalr1.cc:859 +#line 687 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1372 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1397 "dhcp4_parser.cc" // lalr1.cc:856 break; case 177: -#line 689 "dhcp4_parser.yy" // lalr1.cc:859 +#line 689 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1382 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1407 "dhcp4_parser.cc" // lalr1.cc:856 break; case 178: -#line 695 "dhcp4_parser.yy" // lalr1.cc:859 +#line 695 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1390 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1415 "dhcp4_parser.cc" // lalr1.cc:856 break; case 179: -#line 697 "dhcp4_parser.yy" // lalr1.cc:859 +#line 697 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1400 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1425 "dhcp4_parser.cc" // lalr1.cc:856 break; case 180: -#line 703 "dhcp4_parser.yy" // lalr1.cc:859 +#line 703 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1408 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1433 "dhcp4_parser.cc" // lalr1.cc:856 break; case 181: -#line 705 "dhcp4_parser.yy" // lalr1.cc:859 +#line 705 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1418 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1443 "dhcp4_parser.cc" // lalr1.cc:856 break; case 182: -#line 711 "dhcp4_parser.yy" // lalr1.cc:859 +#line 711 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1427 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1452 "dhcp4_parser.cc" // lalr1.cc:856 break; case 183: -#line 716 "dhcp4_parser.yy" // lalr1.cc:859 +#line 716 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1435 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1460 "dhcp4_parser.cc" // lalr1.cc:856 break; case 184: -#line 718 "dhcp4_parser.yy" // lalr1.cc:859 +#line 718 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1445 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1470 "dhcp4_parser.cc" // lalr1.cc:856 break; case 185: -#line 724 "dhcp4_parser.yy" // lalr1.cc:859 +#line 724 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1454 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1479 "dhcp4_parser.cc" // lalr1.cc:856 break; case 186: -#line 729 "dhcp4_parser.yy" // lalr1.cc:859 +#line 729 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1463 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1488 "dhcp4_parser.cc" // lalr1.cc:856 break; case 187: -#line 734 "dhcp4_parser.yy" // lalr1.cc:859 +#line 734 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1472 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1497 "dhcp4_parser.cc" // lalr1.cc:856 break; case 188: -#line 739 "dhcp4_parser.yy" // lalr1.cc:859 +#line 739 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1481 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1506 "dhcp4_parser.cc" // lalr1.cc:856 break; case 189: -#line 744 "dhcp4_parser.yy" // lalr1.cc:859 +#line 744 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("request-timeout", n); } -#line 1490 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1515 "dhcp4_parser.cc" // lalr1.cc:856 break; case 190: -#line 749 "dhcp4_parser.yy" // lalr1.cc:859 +#line 749 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1499 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1524 "dhcp4_parser.cc" // lalr1.cc:856 break; case 191: -#line 754 "dhcp4_parser.yy" // lalr1.cc:859 +#line 754 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1508 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1533 "dhcp4_parser.cc" // lalr1.cc:856 break; case 192: -#line 759 "dhcp4_parser.yy" // lalr1.cc:859 +#line 759 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1516 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1541 "dhcp4_parser.cc" // lalr1.cc:856 break; case 193: -#line 761 "dhcp4_parser.yy" // lalr1.cc:859 +#line 761 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } -#line 1526 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1551 "dhcp4_parser.cc" // lalr1.cc:856 break; case 194: -#line 767 "dhcp4_parser.yy" // lalr1.cc:859 +#line 767 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1534 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1559 "dhcp4_parser.cc" // lalr1.cc:856 break; case 195: -#line 769 "dhcp4_parser.yy" // lalr1.cc:859 +#line 769 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1544 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1569 "dhcp4_parser.cc" // lalr1.cc:856 break; case 196: -#line 775 "dhcp4_parser.yy" // lalr1.cc:859 +#line 775 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1553 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1578 "dhcp4_parser.cc" // lalr1.cc:856 break; case 197: -#line 780 "dhcp4_parser.yy" // lalr1.cc:859 +#line 780 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1562 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1587 "dhcp4_parser.cc" // lalr1.cc:856 break; case 198: -#line 785 "dhcp4_parser.yy" // lalr1.cc:859 +#line 785 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 1573 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1598 "dhcp4_parser.cc" // lalr1.cc:856 break; case 199: -#line 790 "dhcp4_parser.yy" // lalr1.cc:859 +#line 790 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1582 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1607 "dhcp4_parser.cc" // lalr1.cc:856 break; case 207: -#line 806 "dhcp4_parser.yy" // lalr1.cc:859 +#line 806 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1591 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1616 "dhcp4_parser.cc" // lalr1.cc:856 break; case 208: -#line 811 "dhcp4_parser.yy" // lalr1.cc:859 +#line 811 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 1600 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1625 "dhcp4_parser.cc" // lalr1.cc:856 break; case 209: -#line 816 "dhcp4_parser.yy" // lalr1.cc:859 +#line 816 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); } -#line 1609 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1634 "dhcp4_parser.cc" // lalr1.cc:856 break; case 210: -#line 821 "dhcp4_parser.yy" // lalr1.cc:859 +#line 821 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); } -#line 1618 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1643 "dhcp4_parser.cc" // lalr1.cc:856 break; case 211: -#line 826 "dhcp4_parser.yy" // lalr1.cc:859 +#line 826 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 1627 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1652 "dhcp4_parser.cc" // lalr1.cc:856 break; case 212: -#line 831 "dhcp4_parser.yy" // lalr1.cc:859 +#line 831 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 1638 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1663 "dhcp4_parser.cc" // lalr1.cc:856 break; case 213: -#line 836 "dhcp4_parser.yy" // lalr1.cc:859 +#line 836 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1647 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1672 "dhcp4_parser.cc" // lalr1.cc:856 break; case 218: -#line 849 "dhcp4_parser.yy" // lalr1.cc:859 +#line 849 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1657 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1682 "dhcp4_parser.cc" // lalr1.cc:856 break; case 219: -#line 853 "dhcp4_parser.yy" // lalr1.cc:859 +#line 853 "dhcp4_parser.yy" // lalr1.cc:856 { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1667 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1692 "dhcp4_parser.cc" // lalr1.cc:856 break; case 220: -#line 859 "dhcp4_parser.yy" // lalr1.cc:859 +#line 859 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1677 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1702 "dhcp4_parser.cc" // lalr1.cc:856 break; case 221: -#line 863 "dhcp4_parser.yy" // lalr1.cc:859 +#line 863 "dhcp4_parser.yy" // lalr1.cc:856 { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1687 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1712 "dhcp4_parser.cc" // lalr1.cc:856 break; case 227: -#line 878 "dhcp4_parser.yy" // lalr1.cc:859 +#line 878 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1695 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1720 "dhcp4_parser.cc" // lalr1.cc:856 break; case 228: -#line 880 "dhcp4_parser.yy" // lalr1.cc:859 +#line 880 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1705 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1730 "dhcp4_parser.cc" // lalr1.cc:856 break; case 229: -#line 886 "dhcp4_parser.yy" // lalr1.cc:859 +#line 886 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1713 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1738 "dhcp4_parser.cc" // lalr1.cc:856 break; case 230: -#line 888 "dhcp4_parser.yy" // lalr1.cc:859 +#line 888 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1722 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1747 "dhcp4_parser.cc" // lalr1.cc:856 break; case 231: -#line 894 "dhcp4_parser.yy" // lalr1.cc:859 +#line 894 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 1733 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1758 "dhcp4_parser.cc" // lalr1.cc:856 break; case 232: -#line 899 "dhcp4_parser.yy" // lalr1.cc:859 +#line 899 "dhcp4_parser.yy" // lalr1.cc:856 { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1743 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1768 "dhcp4_parser.cc" // lalr1.cc:856 break; case 241: -#line 917 "dhcp4_parser.yy" // lalr1.cc:859 +#line 917 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 1752 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1777 "dhcp4_parser.cc" // lalr1.cc:856 break; case 242: -#line 922 "dhcp4_parser.yy" // lalr1.cc:859 +#line 922 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 1761 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1786 "dhcp4_parser.cc" // lalr1.cc:856 break; case 243: -#line 927 "dhcp4_parser.yy" // lalr1.cc:859 +#line 927 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 1770 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1795 "dhcp4_parser.cc" // lalr1.cc:856 break; case 244: -#line 932 "dhcp4_parser.yy" // lalr1.cc:859 +#line 932 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 1779 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1804 "dhcp4_parser.cc" // lalr1.cc:856 break; case 245: -#line 937 "dhcp4_parser.yy" // lalr1.cc:859 +#line 937 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 1788 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1813 "dhcp4_parser.cc" // lalr1.cc:856 break; case 246: -#line 942 "dhcp4_parser.yy" // lalr1.cc:859 +#line 942 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 1797 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1822 "dhcp4_parser.cc" // lalr1.cc:856 break; case 247: -#line 950 "dhcp4_parser.yy" // lalr1.cc:859 +#line 950 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet4", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } -#line 1808 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1833 "dhcp4_parser.cc" // lalr1.cc:856 break; case 248: -#line 955 "dhcp4_parser.yy" // lalr1.cc:859 +#line 955 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1817 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1842 "dhcp4_parser.cc" // lalr1.cc:856 break; case 253: -#line 975 "dhcp4_parser.yy" // lalr1.cc:859 +#line 975 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1827 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1852 "dhcp4_parser.cc" // lalr1.cc:856 break; case 254: -#line 979 "dhcp4_parser.yy" // lalr1.cc:859 +#line 979 "dhcp4_parser.yy" // lalr1.cc:856 { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -1849,321 +1874,321 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1853 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1878 "dhcp4_parser.cc" // lalr1.cc:856 break; case 255: -#line 1001 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1001 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1863 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1888 "dhcp4_parser.cc" // lalr1.cc:856 break; case 256: -#line 1005 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1005 "dhcp4_parser.yy" // lalr1.cc:856 { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1873 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1898 "dhcp4_parser.cc" // lalr1.cc:856 break; case 284: -#line 1044 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1044 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1881 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1906 "dhcp4_parser.cc" // lalr1.cc:856 break; case 285: -#line 1046 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1046 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 1891 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1916 "dhcp4_parser.cc" // lalr1.cc:856 break; case 286: -#line 1052 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1052 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1899 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1924 "dhcp4_parser.cc" // lalr1.cc:856 break; case 287: -#line 1054 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1054 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); ctx.leave(); } -#line 1909 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1934 "dhcp4_parser.cc" // lalr1.cc:856 break; case 288: -#line 1060 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1060 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1917 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1942 "dhcp4_parser.cc" // lalr1.cc:856 break; case 289: -#line 1062 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1062 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); ctx.leave(); } -#line 1927 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1952 "dhcp4_parser.cc" // lalr1.cc:856 break; case 290: -#line 1068 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1068 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1935 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1960 "dhcp4_parser.cc" // lalr1.cc:856 break; case 291: -#line 1070 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1070 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); ctx.leave(); } -#line 1945 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1970 "dhcp4_parser.cc" // lalr1.cc:856 break; case 292: -#line 1076 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1076 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1953 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1978 "dhcp4_parser.cc" // lalr1.cc:856 break; case 293: -#line 1078 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1078 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 1963 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1988 "dhcp4_parser.cc" // lalr1.cc:856 break; case 294: -#line 1084 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1084 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1971 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1996 "dhcp4_parser.cc" // lalr1.cc:856 break; case 295: -#line 1086 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1086 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 1981 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2006 "dhcp4_parser.cc" // lalr1.cc:856 break; case 296: -#line 1092 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1092 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1989 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2014 "dhcp4_parser.cc" // lalr1.cc:856 break; case 297: -#line 1094 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1094 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 1999 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2024 "dhcp4_parser.cc" // lalr1.cc:856 break; case 298: -#line 1100 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1100 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("require-client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2010 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2035 "dhcp4_parser.cc" // lalr1.cc:856 break; case 299: -#line 1105 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1105 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2019 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2044 "dhcp4_parser.cc" // lalr1.cc:856 break; case 300: -#line 1110 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1110 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.RESERVATION_MODE); } -#line 2027 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2052 "dhcp4_parser.cc" // lalr1.cc:856 break; case 301: -#line 1112 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1112 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2036 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2061 "dhcp4_parser.cc" // lalr1.cc:856 break; case 302: -#line 1117 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1117 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2042 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2067 "dhcp4_parser.cc" // lalr1.cc:856 break; case 303: -#line 1118 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1118 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2048 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2073 "dhcp4_parser.cc" // lalr1.cc:856 break; case 304: -#line 1119 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1119 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2054 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2079 "dhcp4_parser.cc" // lalr1.cc:856 break; case 305: -#line 1120 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1120 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2060 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2085 "dhcp4_parser.cc" // lalr1.cc:856 break; case 306: -#line 1123 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1123 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2069 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2094 "dhcp4_parser.cc" // lalr1.cc:856 break; case 307: -#line 1128 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1128 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2078 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2103 "dhcp4_parser.cc" // lalr1.cc:856 break; case 308: -#line 1135 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1135 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("shared-networks", l); ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2089 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2114 "dhcp4_parser.cc" // lalr1.cc:856 break; case 309: -#line 1140 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1140 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2098 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2123 "dhcp4_parser.cc" // lalr1.cc:856 break; case 314: -#line 1155 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1155 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2108 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2133 "dhcp4_parser.cc" // lalr1.cc:856 break; case 315: -#line 1159 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1159 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); } -#line 2116 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2141 "dhcp4_parser.cc" // lalr1.cc:856 break; case 336: -#line 1191 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1191 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2127 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2152 "dhcp4_parser.cc" // lalr1.cc:856 break; case 337: -#line 1196 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1196 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2136 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2161 "dhcp4_parser.cc" // lalr1.cc:856 break; case 338: -#line 1204 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1204 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2145 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2170 "dhcp4_parser.cc" // lalr1.cc:856 break; case 339: -#line 1207 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1207 "dhcp4_parser.yy" // lalr1.cc:856 { // parsing completed } -#line 2153 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2178 "dhcp4_parser.cc" // lalr1.cc:856 break; case 344: -#line 1223 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1223 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2163 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2188 "dhcp4_parser.cc" // lalr1.cc:856 break; case 345: -#line 1227 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1227 "dhcp4_parser.yy" // lalr1.cc:856 { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2171,21 +2196,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2175 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2200 "dhcp4_parser.cc" // lalr1.cc:856 break; case 346: -#line 1238 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1238 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2185 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2210 "dhcp4_parser.cc" // lalr1.cc:856 break; case 347: -#line 1242 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1242 "dhcp4_parser.yy" // lalr1.cc:856 { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2193,281 +2218,281 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2197 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2222 "dhcp4_parser.cc" // lalr1.cc:856 break; case 363: -#line 1274 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1274 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2206 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2231 "dhcp4_parser.cc" // lalr1.cc:856 break; case 365: -#line 1281 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1281 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2214 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2239 "dhcp4_parser.cc" // lalr1.cc:856 break; case 366: -#line 1283 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1283 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2224 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2249 "dhcp4_parser.cc" // lalr1.cc:856 break; case 367: -#line 1289 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1289 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2232 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2257 "dhcp4_parser.cc" // lalr1.cc:856 break; case 368: -#line 1291 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1291 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 2242 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2267 "dhcp4_parser.cc" // lalr1.cc:856 break; case 369: -#line 1297 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1297 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2250 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2275 "dhcp4_parser.cc" // lalr1.cc:856 break; case 370: -#line 1299 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1299 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2260 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2285 "dhcp4_parser.cc" // lalr1.cc:856 break; case 372: -#line 1307 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1307 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2268 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2293 "dhcp4_parser.cc" // lalr1.cc:856 break; case 373: -#line 1309 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1309 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2278 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2303 "dhcp4_parser.cc" // lalr1.cc:856 break; case 374: -#line 1315 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1315 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2287 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2312 "dhcp4_parser.cc" // lalr1.cc:856 break; case 375: -#line 1324 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1324 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2298 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2323 "dhcp4_parser.cc" // lalr1.cc:856 break; case 376: -#line 1329 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1329 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2307 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2332 "dhcp4_parser.cc" // lalr1.cc:856 break; case 381: -#line 1348 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1348 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2317 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2342 "dhcp4_parser.cc" // lalr1.cc:856 break; case 382: -#line 1352 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1352 "dhcp4_parser.yy" // lalr1.cc:856 { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2326 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2351 "dhcp4_parser.cc" // lalr1.cc:856 break; case 383: -#line 1360 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1360 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2336 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2361 "dhcp4_parser.cc" // lalr1.cc:856 break; case 384: -#line 1364 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1364 "dhcp4_parser.yy" // lalr1.cc:856 { /// @todo: the code or name parameters are required. // parsing completed } -#line 2345 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2370 "dhcp4_parser.cc" // lalr1.cc:856 break; case 399: -#line 1397 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1397 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2353 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2378 "dhcp4_parser.cc" // lalr1.cc:856 break; case 400: -#line 1399 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1399 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2363 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2388 "dhcp4_parser.cc" // lalr1.cc:856 break; case 403: -#line 1409 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1409 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2372 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2397 "dhcp4_parser.cc" // lalr1.cc:856 break; case 404: -#line 1414 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1414 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2381 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2406 "dhcp4_parser.cc" // lalr1.cc:856 break; case 405: -#line 1422 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1422 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2392 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2417 "dhcp4_parser.cc" // lalr1.cc:856 break; case 406: -#line 1427 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1427 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2401 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2426 "dhcp4_parser.cc" // lalr1.cc:856 break; case 411: -#line 1442 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1442 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2411 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2436 "dhcp4_parser.cc" // lalr1.cc:856 break; case 412: -#line 1446 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1446 "dhcp4_parser.yy" // lalr1.cc:856 { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2421 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2446 "dhcp4_parser.cc" // lalr1.cc:856 break; case 413: -#line 1452 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1452 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2431 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2456 "dhcp4_parser.cc" // lalr1.cc:856 break; case 414: -#line 1456 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1456 "dhcp4_parser.yy" // lalr1.cc:856 { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2441 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2466 "dhcp4_parser.cc" // lalr1.cc:856 break; case 424: -#line 1475 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1475 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2449 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2474 "dhcp4_parser.cc" // lalr1.cc:856 break; case 425: -#line 1477 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1477 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2459 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2484 "dhcp4_parser.cc" // lalr1.cc:856 break; case 426: -#line 1483 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1483 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2467 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2492 "dhcp4_parser.cc" // lalr1.cc:856 break; case 427: -#line 1485 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1485 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); @@ -2490,19 +2515,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2494 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2519 "dhcp4_parser.cc" // lalr1.cc:856 break; case 428: -#line 1508 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1508 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2502 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2527 "dhcp4_parser.cc" // lalr1.cc:856 break; case 429: -#line 1510 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1510 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -2527,996 +2552,996 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2531 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2556 "dhcp4_parser.cc" // lalr1.cc:856 break; case 430: -#line 1538 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1538 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 2542 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2567 "dhcp4_parser.cc" // lalr1.cc:856 break; case 431: -#line 1543 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1543 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2551 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2576 "dhcp4_parser.cc" // lalr1.cc:856 break; case 436: -#line 1556 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1556 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2561 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2586 "dhcp4_parser.cc" // lalr1.cc:856 break; case 437: -#line 1560 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1560 "dhcp4_parser.yy" // lalr1.cc:856 { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 2570 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2595 "dhcp4_parser.cc" // lalr1.cc:856 break; case 438: -#line 1565 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1565 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2580 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2605 "dhcp4_parser.cc" // lalr1.cc:856 break; case 439: -#line 1569 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1569 "dhcp4_parser.yy" // lalr1.cc:856 { /// @todo: an identifier parameter is required. // parsing completed } -#line 2589 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2614 "dhcp4_parser.cc" // lalr1.cc:856 break; case 459: -#line 1600 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1600 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2597 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2622 "dhcp4_parser.cc" // lalr1.cc:856 break; case 460: -#line 1602 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1602 "dhcp4_parser.yy" // lalr1.cc:856 { 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(); } -#line 2607 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2632 "dhcp4_parser.cc" // lalr1.cc:856 break; case 461: -#line 1608 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1608 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2615 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2640 "dhcp4_parser.cc" // lalr1.cc:856 break; case 462: -#line 1610 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1610 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr srv(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); ctx.leave(); } -#line 2625 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2650 "dhcp4_parser.cc" // lalr1.cc:856 break; case 463: -#line 1616 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1616 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2633 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2658 "dhcp4_parser.cc" // lalr1.cc:856 break; case 464: -#line 1618 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1618 "dhcp4_parser.yy" // lalr1.cc:856 { 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(); } -#line 2643 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2668 "dhcp4_parser.cc" // lalr1.cc:856 break; case 465: -#line 1624 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1624 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2651 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2676 "dhcp4_parser.cc" // lalr1.cc:856 break; case 466: -#line 1626 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1626 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 2661 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2686 "dhcp4_parser.cc" // lalr1.cc:856 break; case 467: -#line 1632 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1632 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2672 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2697 "dhcp4_parser.cc" // lalr1.cc:856 break; case 468: -#line 1637 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1637 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2681 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2706 "dhcp4_parser.cc" // lalr1.cc:856 break; case 469: -#line 1642 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1642 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2689 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2714 "dhcp4_parser.cc" // lalr1.cc:856 break; case 470: -#line 1644 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1644 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 2699 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2724 "dhcp4_parser.cc" // lalr1.cc:856 break; case 471: -#line 1650 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1650 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2707 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2732 "dhcp4_parser.cc" // lalr1.cc:856 break; case 472: -#line 1652 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1652 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 2717 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2742 "dhcp4_parser.cc" // lalr1.cc:856 break; case 473: -#line 1658 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1658 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2725 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2750 "dhcp4_parser.cc" // lalr1.cc:856 break; case 474: -#line 1660 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1660 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); ctx.leave(); } -#line 2735 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2760 "dhcp4_parser.cc" // lalr1.cc:856 break; case 475: -#line 1666 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1666 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2743 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2768 "dhcp4_parser.cc" // lalr1.cc:856 break; case 476: -#line 1668 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1668 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); ctx.leave(); } -#line 2753 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2778 "dhcp4_parser.cc" // lalr1.cc:856 break; case 477: -#line 1674 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1674 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2761 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2786 "dhcp4_parser.cc" // lalr1.cc:856 break; case 478: -#line 1676 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1676 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 2771 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2796 "dhcp4_parser.cc" // lalr1.cc:856 break; case 479: -#line 1682 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1682 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2779 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2804 "dhcp4_parser.cc" // lalr1.cc:856 break; case 480: -#line 1684 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1684 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 2789 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2814 "dhcp4_parser.cc" // lalr1.cc:856 break; case 481: -#line 1690 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1690 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2800 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2825 "dhcp4_parser.cc" // lalr1.cc:856 break; case 482: -#line 1695 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1695 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2809 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2834 "dhcp4_parser.cc" // lalr1.cc:856 break; case 483: -#line 1703 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1703 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 2820 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2845 "dhcp4_parser.cc" // lalr1.cc:856 break; case 484: -#line 1708 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1708 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2829 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2854 "dhcp4_parser.cc" // lalr1.cc:856 break; case 487: -#line 1720 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1720 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 2840 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2865 "dhcp4_parser.cc" // lalr1.cc:856 break; case 488: -#line 1725 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1725 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2849 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2874 "dhcp4_parser.cc" // lalr1.cc:856 break; case 491: -#line 1734 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1734 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2859 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2884 "dhcp4_parser.cc" // lalr1.cc:856 break; case 492: -#line 1738 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1738 "dhcp4_parser.yy" // lalr1.cc:856 { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2869 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2894 "dhcp4_parser.cc" // lalr1.cc:856 break; case 509: -#line 1767 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1767 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2877 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2902 "dhcp4_parser.cc" // lalr1.cc:856 break; case 510: -#line 1769 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1769 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 2887 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2912 "dhcp4_parser.cc" // lalr1.cc:856 break; case 511: -#line 1775 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1775 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 2896 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2921 "dhcp4_parser.cc" // lalr1.cc:856 break; case 512: -#line 1784 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1784 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 2905 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2930 "dhcp4_parser.cc" // lalr1.cc:856 break; case 513: -#line 1791 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1791 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 2916 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2941 "dhcp4_parser.cc" // lalr1.cc:856 break; case 514: -#line 1796 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1796 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2925 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2950 "dhcp4_parser.cc" // lalr1.cc:856 break; case 522: -#line 1812 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1812 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2933 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2958 "dhcp4_parser.cc" // lalr1.cc:856 break; case 523: -#line 1814 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1814 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 2943 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2968 "dhcp4_parser.cc" // lalr1.cc:856 break; case 524: -#line 1820 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1820 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2951 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2976 "dhcp4_parser.cc" // lalr1.cc:856 break; case 525: -#line 1822 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1822 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 2961 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2986 "dhcp4_parser.cc" // lalr1.cc:856 break; case 526: -#line 1830 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1830 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 2972 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2997 "dhcp4_parser.cc" // lalr1.cc:856 break; case 527: -#line 1835 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1835 "dhcp4_parser.yy" // lalr1.cc:856 { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2983 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3008 "dhcp4_parser.cc" // lalr1.cc:856 break; case 528: -#line 1842 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1842 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2993 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3018 "dhcp4_parser.cc" // lalr1.cc:856 break; case 529: -#line 1846 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1846 "dhcp4_parser.yy" // lalr1.cc:856 { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3003 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3028 "dhcp4_parser.cc" // lalr1.cc:856 break; case 551: -#line 1877 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1877 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3012 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3037 "dhcp4_parser.cc" // lalr1.cc:856 break; case 552: -#line 1882 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1882 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3020 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3045 "dhcp4_parser.cc" // lalr1.cc:856 break; case 553: -#line 1884 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1884 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 3030 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3055 "dhcp4_parser.cc" // lalr1.cc:856 break; case 554: -#line 1890 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1890 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3038 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3063 "dhcp4_parser.cc" // lalr1.cc:856 break; case 555: -#line 1892 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1892 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 3048 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3073 "dhcp4_parser.cc" // lalr1.cc:856 break; case 556: -#line 1898 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1898 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3057 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3082 "dhcp4_parser.cc" // lalr1.cc:856 break; case 557: -#line 1903 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1903 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3065 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3090 "dhcp4_parser.cc" // lalr1.cc:856 break; case 558: -#line 1905 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1905 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 3075 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3100 "dhcp4_parser.cc" // lalr1.cc:856 break; case 559: -#line 1911 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1911 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3084 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3109 "dhcp4_parser.cc" // lalr1.cc:856 break; case 560: -#line 1916 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1916 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3093 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3118 "dhcp4_parser.cc" // lalr1.cc:856 break; case 561: -#line 1921 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1921 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NCR_PROTOCOL); } -#line 3101 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3126 "dhcp4_parser.cc" // lalr1.cc:856 break; case 562: -#line 1923 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1923 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3110 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3135 "dhcp4_parser.cc" // lalr1.cc:856 break; case 563: -#line 1929 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1929 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3116 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3141 "dhcp4_parser.cc" // lalr1.cc:856 break; case 564: -#line 1930 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1930 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3122 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3147 "dhcp4_parser.cc" // lalr1.cc:856 break; case 565: -#line 1933 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1933 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NCR_FORMAT); } -#line 3130 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3155 "dhcp4_parser.cc" // lalr1.cc:856 break; case 566: -#line 1935 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1935 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3140 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3165 "dhcp4_parser.cc" // lalr1.cc:856 break; case 567: -#line 1941 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1941 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-include-fqdn", b); } -#line 3149 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3174 "dhcp4_parser.cc" // lalr1.cc:856 break; case 568: -#line 1946 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1946 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3158 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3183 "dhcp4_parser.cc" // lalr1.cc:856 break; case 569: -#line 1951 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1951 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3167 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3192 "dhcp4_parser.cc" // lalr1.cc:856 break; case 570: -#line 1956 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1956 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3175 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3200 "dhcp4_parser.cc" // lalr1.cc:856 break; case 571: -#line 1958 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1958 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3184 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3209 "dhcp4_parser.cc" // lalr1.cc:856 break; case 572: -#line 1964 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1964 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 3192 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3217 "dhcp4_parser.cc" // lalr1.cc:856 break; case 573: -#line 1967 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1967 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 3200 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3225 "dhcp4_parser.cc" // lalr1.cc:856 break; case 574: -#line 1970 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1970 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 3208 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3233 "dhcp4_parser.cc" // lalr1.cc:856 break; case 575: -#line 1973 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1973 "dhcp4_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 3216 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3241 "dhcp4_parser.cc" // lalr1.cc:856 break; case 576: -#line 1976 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1976 "dhcp4_parser.yy" // lalr1.cc:856 { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 3225 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3250 "dhcp4_parser.cc" // lalr1.cc:856 break; case 577: -#line 1982 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1982 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3233 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3258 "dhcp4_parser.cc" // lalr1.cc:856 break; case 578: -#line 1984 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1984 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 3243 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3268 "dhcp4_parser.cc" // lalr1.cc:856 break; case 579: -#line 1990 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1990 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3251 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3276 "dhcp4_parser.cc" // lalr1.cc:856 break; case 580: -#line 1992 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1992 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 3261 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3286 "dhcp4_parser.cc" // lalr1.cc:856 break; case 581: -#line 1998 "dhcp4_parser.yy" // lalr1.cc:859 +#line 1998 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3269 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3294 "dhcp4_parser.cc" // lalr1.cc:856 break; case 582: -#line 2000 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2000 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 3279 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3304 "dhcp4_parser.cc" // lalr1.cc:856 break; case 583: -#line 2009 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2009 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3287 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3312 "dhcp4_parser.cc" // lalr1.cc:856 break; case 584: -#line 2011 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2011 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3296 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3321 "dhcp4_parser.cc" // lalr1.cc:856 break; case 585: -#line 2016 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2016 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3304 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3329 "dhcp4_parser.cc" // lalr1.cc:856 break; case 586: -#line 2018 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2018 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3313 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3338 "dhcp4_parser.cc" // lalr1.cc:856 break; case 587: -#line 2023 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2023 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3321 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3346 "dhcp4_parser.cc" // lalr1.cc:856 break; case 588: -#line 2025 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2025 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3330 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3355 "dhcp4_parser.cc" // lalr1.cc:856 break; case 589: -#line 2035 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2035 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 3341 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3366 "dhcp4_parser.cc" // lalr1.cc:856 break; case 590: -#line 2040 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2040 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3350 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3375 "dhcp4_parser.cc" // lalr1.cc:856 break; case 591: -#line 2045 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2045 "dhcp4_parser.yy" // lalr1.cc:856 { // Parse the Logging map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3360 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3385 "dhcp4_parser.cc" // lalr1.cc:856 break; case 592: -#line 2049 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2049 "dhcp4_parser.yy" // lalr1.cc:856 { // parsing completed } -#line 3368 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3393 "dhcp4_parser.cc" // lalr1.cc:856 break; case 596: -#line 2065 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2065 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 3379 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3404 "dhcp4_parser.cc" // lalr1.cc:856 break; case 597: -#line 2070 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2070 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3388 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3413 "dhcp4_parser.cc" // lalr1.cc:856 break; case 600: -#line 2082 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2082 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 3398 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3423 "dhcp4_parser.cc" // lalr1.cc:856 break; case 601: -#line 2086 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2086 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); } -#line 3406 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3431 "dhcp4_parser.cc" // lalr1.cc:856 break; case 611: -#line 2103 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2103 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 3415 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3440 "dhcp4_parser.cc" // lalr1.cc:856 break; case 612: -#line 2108 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2108 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3423 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3448 "dhcp4_parser.cc" // lalr1.cc:856 break; case 613: -#line 2110 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2110 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 3433 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3458 "dhcp4_parser.cc" // lalr1.cc:856 break; case 614: -#line 2116 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2116 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 3444 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3469 "dhcp4_parser.cc" // lalr1.cc:856 break; case 615: -#line 2121 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2121 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3453 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3478 "dhcp4_parser.cc" // lalr1.cc:856 break; case 618: -#line 2130 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2130 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3463 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3488 "dhcp4_parser.cc" // lalr1.cc:856 break; case 619: -#line 2134 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2134 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); } -#line 3471 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3496 "dhcp4_parser.cc" // lalr1.cc:856 break; case 626: -#line 2148 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2148 "dhcp4_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3479 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3504 "dhcp4_parser.cc" // lalr1.cc:856 break; case 627: -#line 2150 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2150 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 3489 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3514 "dhcp4_parser.cc" // lalr1.cc:856 break; case 628: -#line 2156 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2156 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 3498 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3523 "dhcp4_parser.cc" // lalr1.cc:856 break; case 629: -#line 2161 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2161 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 3507 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3532 "dhcp4_parser.cc" // lalr1.cc:856 break; case 630: -#line 2166 "dhcp4_parser.yy" // lalr1.cc:859 +#line 2166 "dhcp4_parser.yy" // lalr1.cc:856 { ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 3516 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3541 "dhcp4_parser.cc" // lalr1.cc:856 break; -#line 3520 "dhcp4_parser.cc" // lalr1.cc:859 +#line 3545 "dhcp4_parser.cc" // lalr1.cc:856 default: break; } @@ -3578,7 +3603,6 @@ namespace isc { namespace dhcp { code. */ if (false) goto yyerrorlab; - yyerror_range[1].location = yystack_[yylen - 1].location; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ yypop_ (yylen); @@ -3652,8 +3676,7 @@ namespace isc { namespace dhcp { } catch (...) { - YYCDEBUG << "Exception caught: cleaning lookahead and stack" - << std::endl; + YYCDEBUG << "Exception caught: cleaning lookahead and stack\n"; // Do not try to display the values of the reclaimed symbols, // as their printer might throw an exception. if (!yyla.empty ()) @@ -3671,7 +3694,7 @@ namespace isc { namespace dhcp { void Dhcp4Parser::error (const syntax_error& yyexc) { - error (yyexc.location, yyexc.what()); + error (yyexc.location, yyexc.what ()); } // Generate an error message. @@ -3747,12 +3770,13 @@ namespace isc { namespace dhcp { case N: \ yyformat = S; \ break - YYCASE_(0, YY_("syntax error")); - YYCASE_(1, YY_("syntax error, unexpected %s")); - YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); + default: // Avoid compiler warnings. + YYCASE_ (0, YY_("syntax error")); + YYCASE_ (1, YY_("syntax error, unexpected %s")); + YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); #undef YYCASE_ } @@ -4744,18 +4768,18 @@ namespace isc { namespace dhcp { i_end = yystack_.end (); i != i_end; ++i) *yycdebug_ << ' ' << i->state; - *yycdebug_ << std::endl; + *yycdebug_ << '\n'; } // Report on the debug stream that the rule \a yyrule is going to be reduced. void Dhcp4Parser::yy_reduce_print_ (int yyrule) { - unsigned int yylno = yyrline_[yyrule]; + unsigned yylno = yyrline_[yyrule]; int yynrhs = yyr2_[yyrule]; // Print the symbols being reduced, and their result. *yycdebug_ << "Reducing stack by rule " << yyrule - 1 - << " (line " << yylno << "):" << std::endl; + << " (line " << yylno << "):\n"; // The symbols being reduced. for (int yyi = 0; yyi < yynrhs; yyi++) YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", @@ -4764,10 +4788,10 @@ namespace isc { namespace dhcp { #endif // PARSER4_DEBUG -#line 14 "dhcp4_parser.yy" // lalr1.cc:1167 +#line 14 "dhcp4_parser.yy" // lalr1.cc:1163 } } // isc::dhcp -#line 4770 "dhcp4_parser.cc" // lalr1.cc:1167 -#line 2171 "dhcp4_parser.yy" // lalr1.cc:1168 +#line 4794 "dhcp4_parser.cc" // lalr1.cc:1163 +#line 2171 "dhcp4_parser.yy" // lalr1.cc:1164 void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 37662f5981..d6c8354814 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// A Bison parser, made by GNU Bison 3.0.5. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -40,7 +40,7 @@ #ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED # define YY_PARSER4_DHCP4_PARSER_H_INCLUDED // // "%code requires" blocks. -#line 17 "dhcp4_parser.yy" // lalr1.cc:377 +#line 17 "dhcp4_parser.yy" // lalr1.cc:379 #include #include @@ -52,7 +52,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 56 "dhcp4_parser.h" // lalr1.cc:377 +#line 56 "dhcp4_parser.h" // lalr1.cc:379 # include # include // std::abort @@ -135,9 +135,9 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER4_DEBUG */ -#line 14 "dhcp4_parser.yy" // lalr1.cc:377 +#line 14 "dhcp4_parser.yy" // lalr1.cc:379 namespace isc { namespace dhcp { -#line 141 "dhcp4_parser.h" // lalr1.cc:377 +#line 141 "dhcp4_parser.h" // lalr1.cc:379 @@ -1452,6 +1452,8 @@ namespace isc { namespace dhcp { typedef basic_symbol super_type; /// Construct an empty symbol. stack_symbol_type (); + /// Copy construct. + stack_symbol_type (const stack_symbol_type& that); /// Steal the contents from \a sym to build this. stack_symbol_type (state_type s, symbol_type& sym); /// Assignment, needed by push_back. @@ -1480,7 +1482,7 @@ namespace isc { namespace dhcp { void yypush_ (const char* m, state_type s, symbol_type& sym); /// Pop \a n symbols the three stacks. - void yypop_ (unsigned int n = 1); + void yypop_ (unsigned n = 1); /// Constants. enum @@ -1552,12 +1554,12 @@ namespace isc { namespace dhcp { 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165 }; - const unsigned int user_token_number_max_ = 420; + const unsigned user_token_number_max_ = 420; const token_number_type undef_token_ = 2; - if (static_cast(t) <= yyeof_) + if (static_cast (t) <= yyeof_) return yyeof_; - else if (static_cast (t) <= user_token_number_max_) + else if (static_cast (t) <= user_token_number_max_) return translate_table[t]; else return undef_token_; @@ -1571,19 +1573,17 @@ namespace isc { namespace dhcp { // basic_symbol. template - inline Dhcp4Parser::basic_symbol::basic_symbol () : value () {} template - inline Dhcp4Parser::basic_symbol::basic_symbol (const basic_symbol& other) : Base (other) , value () , location (other.location) { - switch (other.type_get ()) + switch (other.type_get ()) { case 181: // value case 185: // map_value @@ -1618,16 +1618,14 @@ namespace isc { namespace dhcp { } - template - inline Dhcp4Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l) : Base (t) , value () , location (l) { (void) v; - switch (this->type_get ()) + switch (this->type_get ()) { case 181: // value case 185: // map_value @@ -1708,14 +1706,12 @@ namespace isc { namespace dhcp { template - inline Dhcp4Parser::basic_symbol::~basic_symbol () { clear (); } template - inline void Dhcp4Parser::basic_symbol::clear () { @@ -1730,7 +1726,7 @@ namespace isc { namespace dhcp { } // Type destructor. - switch (yytype) + switch (yytype) { case 181: // value case 185: // map_value @@ -1767,7 +1763,6 @@ namespace isc { namespace dhcp { } template - inline bool Dhcp4Parser::basic_symbol::empty () const { @@ -1775,12 +1770,11 @@ namespace isc { namespace dhcp { } template - inline void Dhcp4Parser::basic_symbol::move (basic_symbol& s) { - super_type::move(s); - switch (this->type_get ()) + super_type::move (s); + switch (this->type_get ()) { case 181: // value case 185: // map_value @@ -2870,9 +2864,9 @@ namespace isc { namespace dhcp { } -#line 14 "dhcp4_parser.yy" // lalr1.cc:377 +#line 14 "dhcp4_parser.yy" // lalr1.cc:379 } } // isc::dhcp -#line 2876 "dhcp4_parser.h" // lalr1.cc:377 +#line 2870 "dhcp4_parser.h" // lalr1.cc:379 diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index 7e23a2ccac..fee60cc7a8 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,8 +1,9 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// Generated 201808161137 +// A Bison parser, made by GNU Bison 3.0.5. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -40,9 +41,9 @@ # include "position.hh" -#line 14 "dhcp4_parser.yy" // location.cc:296 +#line 14 "dhcp4_parser.yy" // location.cc:292 namespace isc { namespace dhcp { -#line 46 "location.hh" // location.cc:296 +#line 46 "location.hh" // location.cc:292 /// Abstract a location. class location { @@ -52,30 +53,27 @@ namespace isc { namespace dhcp { location (const position& b, const position& e) : begin (b) , end (e) - { - } + {} /// Construct a 0-width location in \a p. explicit location (const position& p = position ()) : begin (p) , end (p) - { - } + {} /// Construct a 0-width location in \a f, \a l, \a c. explicit location (std::string* f, - unsigned int l = 1u, - unsigned int c = 1u) + unsigned l = 1u, + unsigned c = 1u) : begin (f, l, c) , end (f, l, c) - { - } + {} /// Initialization. void initialize (std::string* f = YY_NULLPTR, - unsigned int l = 1u, - unsigned int c = 1u) + unsigned l = 1u, + unsigned c = 1u) { begin.initialize (f, l, c); end = begin; @@ -173,7 +171,7 @@ namespace isc { namespace dhcp { inline std::basic_ostream& operator<< (std::basic_ostream& ostr, const location& loc) { - unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; + unsigned end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; ostr << loc.begin; if (loc.end.filename && (!loc.begin.filename @@ -186,7 +184,7 @@ namespace isc { namespace dhcp { return ostr; } -#line 14 "dhcp4_parser.yy" // location.cc:296 +#line 14 "dhcp4_parser.yy" // location.cc:292 } } // isc::dhcp -#line 192 "location.hh" // location.cc:296 +#line 189 "location.hh" // location.cc:292 #endif // !YY_PARSER4_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp4/position.hh b/src/bin/dhcp4/position.hh index c60fabbdf8..0cbcd26427 100644 --- a/src/bin/dhcp4/position.hh +++ b/src/bin/dhcp4/position.hh @@ -1,8 +1,9 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// Generated 201808161137 +// A Bison parser, made by GNU Bison 3.0.5. // Positions for Bison parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -50,28 +51,27 @@ # endif # endif -#line 14 "dhcp4_parser.yy" // location.cc:296 +#line 14 "dhcp4_parser.yy" // location.cc:292 namespace isc { namespace dhcp { -#line 56 "position.hh" // location.cc:296 +#line 56 "position.hh" // location.cc:292 /// Abstract a position. class position { public: /// Construct a position. explicit position (std::string* f = YY_NULLPTR, - unsigned int l = 1u, - unsigned int c = 1u) + unsigned l = 1u, + unsigned c = 1u) : filename (f) , line (l) , column (c) - { - } + {} /// Initialization. void initialize (std::string* fn = YY_NULLPTR, - unsigned int l = 1u, - unsigned int c = 1u) + unsigned l = 1u, + unsigned c = 1u) { filename = fn; line = l; @@ -100,15 +100,15 @@ namespace isc { namespace dhcp { /// File name to which this position refers. std::string* filename; /// Current line number. - unsigned int line; + unsigned line; /// Current column number. - unsigned int column; + unsigned column; private: /// Compute max(min, lhs+rhs) (provided min <= lhs). - static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min) + static unsigned add_ (unsigned lhs, int rhs, unsigned min) { - return (0 < rhs || -static_cast(rhs) < lhs + return (0 < rhs || -static_cast(rhs) < lhs ? rhs + lhs : min); } @@ -174,7 +174,7 @@ namespace isc { namespace dhcp { return ostr << pos.line << '.' << pos.column; } -#line 14 "dhcp4_parser.yy" // location.cc:296 +#line 14 "dhcp4_parser.yy" // location.cc:292 } } // isc::dhcp -#line 180 "position.hh" // location.cc:296 +#line 179 "position.hh" // location.cc:292 #endif // !YY_PARSER4_POSITION_HH_INCLUDED diff --git a/src/bin/dhcp4/stack.hh b/src/bin/dhcp4/stack.hh index 3dd2a2a393..37fe2a385d 100644 --- a/src/bin/dhcp4/stack.hh +++ b/src/bin/dhcp4/stack.hh @@ -1,8 +1,9 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// Generated 201808161137 +// A Bison parser, made by GNU Bison 3.0.5. // Stack handling for Bison parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -40,9 +41,10 @@ # include -#line 14 "dhcp4_parser.yy" // stack.hh:132 +#line 14 "dhcp4_parser.yy" // stack.hh:131 namespace isc { namespace dhcp { -#line 46 "stack.hh" // stack.hh:132 +#line 46 "stack.hh" // stack.hh:131 + /// A stack with random access from its top. template > class stack { @@ -57,20 +59,24 @@ namespace isc { namespace dhcp { seq_.reserve (200); } - stack (unsigned int n) + stack (unsigned n) : seq_ (n) {} - inline + /// Random access. + /// + /// Index 0 returns the topmost element. T& - operator[] (unsigned int i) + operator[] (unsigned i) { return seq_[seq_.size () - 1 - i]; } - inline + /// Random access. + /// + /// Index 0 returns the topmost element. const T& - operator[] (unsigned int i) const + operator[] (unsigned i) const { return seq_[seq_.size () - 1 - i]; } @@ -78,7 +84,6 @@ namespace isc { namespace dhcp { /// Steal the contents of \a t. /// /// Close to move-semantics. - inline void push (T& t) { @@ -86,9 +91,8 @@ namespace isc { namespace dhcp { operator[](0).move (t); } - inline void - pop (unsigned int n = 1) + pop (unsigned n = 1) { for (; n; --n) seq_.pop_back (); @@ -100,21 +104,18 @@ namespace isc { namespace dhcp { seq_.clear (); } - inline typename S::size_type size () const { return seq_.size (); } - inline const_iterator begin () const { return seq_.rbegin (); } - inline const_iterator end () const { @@ -133,25 +134,24 @@ namespace isc { namespace dhcp { class slice { public: - slice (const S& stack, unsigned int range) + slice (const S& stack, unsigned range) : stack_ (stack) , range_ (range) {} - inline const T& - operator [] (unsigned int i) const + operator [] (unsigned i) const { return stack_[range_ - i]; } private: const S& stack_; - unsigned int range_; + unsigned range_; }; -#line 14 "dhcp4_parser.yy" // stack.hh:132 +#line 14 "dhcp4_parser.yy" // stack.hh:131 } } // isc::dhcp -#line 156 "stack.hh" // stack.hh:132 +#line 155 "stack.hh" // stack.hh:131 #endif // !YY_PARSER4_STACK_HH_INCLUDED diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index 4467d6e322..d10c674841 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -1,22 +1,27 @@ -#line 2 "dhcp6_lexer.cc" +#line 1 "dhcp6_lexer.cc" -#line 4 "dhcp6_lexer.cc" +#line 3 "dhcp6_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 parser6__create_buffer #define yy_delete_buffer parser6__delete_buffer -#define yy_flex_debug parser6__flex_debug +#define yy_scan_buffer parser6__scan_buffer +#define yy_scan_string parser6__scan_string +#define yy_scan_bytes parser6__scan_bytes #define yy_init_buffer parser6__init_buffer #define yy_flush_buffer parser6__flush_buffer #define yy_load_buffer_state parser6__load_buffer_state #define yy_switch_to_buffer parser6__switch_to_buffer +#define yypush_buffer_state parser6_push_buffer_state +#define yypop_buffer_state parser6_pop_buffer_state +#define yyensure_buffer_stack parser6_ensure_buffer_stack +#define yy_flex_debug parser6__flex_debug #define yyin parser6_in #define yyleng parser6_leng #define yylex parser6_lex @@ -35,8 +40,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 37 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -45,11 +50,244 @@ /* %endif */ /* %if-c-only */ - +#ifdef yy_create_buffer +#define parser6__create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer parser6__create_buffer +#endif + +#ifdef yy_delete_buffer +#define parser6__delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer parser6__delete_buffer +#endif + +#ifdef yy_scan_buffer +#define parser6__scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer parser6__scan_buffer +#endif + +#ifdef yy_scan_string +#define parser6__scan_string_ALREADY_DEFINED +#else +#define yy_scan_string parser6__scan_string +#endif + +#ifdef yy_scan_bytes +#define parser6__scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes parser6__scan_bytes +#endif + +#ifdef yy_init_buffer +#define parser6__init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer parser6__init_buffer +#endif + +#ifdef yy_flush_buffer +#define parser6__flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer parser6__flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define parser6__load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state parser6__load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define parser6__switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer parser6__switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define parser6_push_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state parser6_push_buffer_state +#endif + +#ifdef yypop_buffer_state +#define parser6_pop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state parser6_pop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define parser6_ensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack parser6_ensure_buffer_stack +#endif + +#ifdef yylex +#define parser6_lex_ALREADY_DEFINED +#else +#define yylex parser6_lex +#endif + +#ifdef yyrestart +#define parser6_restart_ALREADY_DEFINED +#else +#define yyrestart parser6_restart +#endif + +#ifdef yylex_init +#define parser6_lex_init_ALREADY_DEFINED +#else +#define yylex_init parser6_lex_init +#endif + +#ifdef yylex_init_extra +#define parser6_lex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra parser6_lex_init_extra +#endif + +#ifdef yylex_destroy +#define parser6_lex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy parser6_lex_destroy +#endif + +#ifdef yyget_debug +#define parser6_get_debug_ALREADY_DEFINED +#else +#define yyget_debug parser6_get_debug +#endif + +#ifdef yyset_debug +#define parser6_set_debug_ALREADY_DEFINED +#else +#define yyset_debug parser6_set_debug +#endif + +#ifdef yyget_extra +#define parser6_get_extra_ALREADY_DEFINED +#else +#define yyget_extra parser6_get_extra +#endif + +#ifdef yyset_extra +#define parser6_set_extra_ALREADY_DEFINED +#else +#define yyset_extra parser6_set_extra +#endif + +#ifdef yyget_in +#define parser6_get_in_ALREADY_DEFINED +#else +#define yyget_in parser6_get_in +#endif + +#ifdef yyset_in +#define parser6_set_in_ALREADY_DEFINED +#else +#define yyset_in parser6_set_in +#endif + +#ifdef yyget_out +#define parser6_get_out_ALREADY_DEFINED +#else +#define yyget_out parser6_get_out +#endif + +#ifdef yyset_out +#define parser6_set_out_ALREADY_DEFINED +#else +#define yyset_out parser6_set_out +#endif + +#ifdef yyget_leng +#define parser6_get_leng_ALREADY_DEFINED +#else +#define yyget_leng parser6_get_leng +#endif + +#ifdef yyget_text +#define parser6_get_text_ALREADY_DEFINED +#else +#define yyget_text parser6_get_text +#endif + +#ifdef yyget_lineno +#define parser6_get_lineno_ALREADY_DEFINED +#else +#define yyget_lineno parser6_get_lineno +#endif + +#ifdef yyset_lineno +#define parser6_set_lineno_ALREADY_DEFINED +#else +#define yyset_lineno parser6_set_lineno +#endif + +#ifdef yywrap +#define parser6_wrap_ALREADY_DEFINED +#else +#define yywrap parser6_wrap +#endif + /* %endif */ +#ifdef yyalloc +#define parser6_alloc_ALREADY_DEFINED +#else +#define yyalloc parser6_alloc +#endif + +#ifdef yyrealloc +#define parser6_realloc_ALREADY_DEFINED +#else +#define yyrealloc parser6_realloc +#endif + +#ifdef yyfree +#define parser6_free_ALREADY_DEFINED +#else +#define yyfree parser6_free +#endif + /* %if-c-only */ +#ifdef yytext +#define parser6_text_ALREADY_DEFINED +#else +#define yytext parser6_text +#endif + +#ifdef yyleng +#define parser6_leng_ALREADY_DEFINED +#else +#define yyleng parser6_leng +#endif + +#ifdef yyin +#define parser6_in_ALREADY_DEFINED +#else +#define yyin parser6_in +#endif + +#ifdef yyout +#define parser6_out_ALREADY_DEFINED +#else +#define yyout parser6_out +#endif + +#ifdef yy_flex_debug +#define parser6__flex_debug_ALREADY_DEFINED +#else +#define yy_flex_debug parser6__flex_debug +#endif + +#ifdef yylineno +#define parser6_lineno_ALREADY_DEFINED +#else +#define yylineno parser6_lineno +#endif + /* %endif */ /* First, we deal with platform-specific or compiler-specific issues. */ @@ -127,50 +365,39 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* %endif */ +/* begin standard C++ headers. */ /* %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 */ - /* Returned upon end-of-file. */ #define YY_NULL 0 /* %ok-for-header */ /* %not-for-header */ - -/* 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. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* %ok-for-header */ /* %if-reentrant */ @@ -185,25 +412,29 @@ 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 parser6_restart(parser6_in ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -221,35 +452,35 @@ typedef size_t yy_size_t; #endif /* %if-not-reentrant */ -extern yy_size_t parser6_leng; +extern int yyleng; /* %endif */ /* %if-c-only */ /* %if-not-reentrant */ -extern FILE *parser6_in, *parser6_out; +extern FILE *yyin, *yyout; /* %endif */ /* %endif */ #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 YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ - /* Undo effects of setting up parser6_text. */ \ + /* 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 parser6_text again */ \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -269,12 +500,12 @@ 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. */ - yy_size_t yy_n_chars; + int 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 @@ -297,7 +528,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -314,8 +545,8 @@ struct yy_buffer_state * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via parser6_restart()), so that the user can continue scanning by - * just pointing parser6_in at a new input file. + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 @@ -324,13 +555,12 @@ 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 = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* %endif */ /* %ok-for-header */ @@ -345,7 +575,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< 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. */ @@ -355,115 +584,112 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* %if-not-reentrant */ /* %not-for-header */ - -/* yy_hold_char holds the character lost when parser6_text is formed. */ +/* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t parser6_leng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* 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 */ -/* Flag which is used to allow parser6_wrap()'s to do buffer switches - * instead of setting up a fresh parser6_in. A bit of a hack ... +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; /* %ok-for-header */ /* %endif */ -void parser6_restart (FILE *input_file ); -void parser6__switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE parser6__create_buffer (FILE *file,int size ); -void parser6__delete_buffer (YY_BUFFER_STATE b ); -void parser6__flush_buffer (YY_BUFFER_STATE b ); -void parser6_push_buffer_state (YY_BUFFER_STATE new_buffer ); -void parser6_pop_buffer_state (void ); - -static void parser6_ensure_buffer_stack (void ); -static void parser6__load_buffer_state (void ); -static void parser6__init_buffer (YY_BUFFER_STATE b,FILE *file ); +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 ); -#define YY_FLUSH_BUFFER parser6__flush_buffer(YY_CURRENT_BUFFER ) +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -YY_BUFFER_STATE parser6__scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE parser6__scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE parser6__scan_bytes (yyconst char *bytes,yy_size_t len ); +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); /* %endif */ -void *parser6_alloc (yy_size_t ); -void *parser6_realloc (void *,yy_size_t ); -void parser6_free (void * ); - -#define yy_new_buffer parser6__create_buffer +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); +#define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ - parser6_ensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - parser6__create_buffer(parser6_in,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ - parser6_ensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - parser6__create_buffer(parser6_in,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) -/* %% [1.0] parser6_text/parser6_in/parser6_out/yy_state_type/parser6_lineno etc. def's & init go here */ +/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */ /* Begin user sect3 */ -#define parser6_wrap() 1 +#define parser6_wrap() (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP #define FLEX_DEBUG +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *parser6_in = (FILE *) 0, *parser6_out = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; -extern int parser6_lineno; +extern int yylineno; +int yylineno = 1; -int parser6_lineno = 1; +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext -extern char *parser6_text; -#define yytext_ptr parser6_text +/* %% [1.5] DFA */ /* %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 yy_fatal_error (yyconst 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 ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* %endif */ /* Done after the current pattern has been matched and before the - * corresponding action - sets up parser6_text. + * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ -/* %% [2.0] code to fiddle parser6_text and parser6_leng for yymore() goes here \ */\ - parser6_leng = (size_t) (yy_cp - yy_bp); \ +/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ -/* %% [3.0] code to copy yytext_ptr to parser6_text[] goes here, if %array \ */\ +/* %% [3.0] code to copy yytext_ptr to yytext[] 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 175 #define YY_END_OF_BUFFER 176 @@ -474,7 +700,7 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1420] = +static const flex_int16_t yy_accept[1420] = { 0, 168, 168, 0, 0, 0, 0, 0, 0, 0, 0, 176, 174, 10, 11, 174, 1, 168, 165, 168, 168, @@ -634,7 +860,7 @@ static yyconst flex_int16_t yy_accept[1420] = 0, 0, 0, 0, 102, 0, 0, 144, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, @@ -666,7 +892,7 @@ static yyconst flex_int32_t yy_ec[256] = 5, 5, 5, 5, 5 } ; -static yyconst flex_int32_t yy_meta[72] = +static const YY_CHAR yy_meta[72] = { 0, 1, 1, 2, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 5, 5, 5, 3, 3, 3, 3, @@ -678,7 +904,7 @@ static yyconst flex_int32_t yy_meta[72] = 3 } ; -static yyconst flex_int16_t yy_base[1432] = +static const flex_int16_t yy_base[1432] = { 0, 0, 70, 19, 29, 41, 49, 52, 58, 87, 95, 1784, 1785, 32, 1780, 141, 0, 201, 1785, 206, 88, @@ -840,7 +1066,7 @@ static yyconst flex_int16_t yy_base[1432] = 1274 } ; -static yyconst flex_int16_t yy_def[1432] = +static const flex_int16_t yy_def[1432] = { 0, 1420, 1420, 1421, 1421, 1420, 1420, 1420, 1420, 1420, 1420, 1419, 1419, 1419, 1419, 1419, 1422, 1419, 1419, 1419, 1419, @@ -1002,7 +1228,7 @@ static yyconst flex_int16_t yy_def[1432] = 1419 } ; -static yyconst flex_int16_t yy_nxt[1857] = +static const flex_int16_t yy_nxt[1857] = { 0, 1419, 13, 14, 13, 1419, 15, 16, 1419, 17, 18, 19, 20, 21, 22, 22, 22, 23, 24, 85, 359, @@ -1210,7 +1436,7 @@ static yyconst flex_int16_t yy_nxt[1857] = 1419, 1419, 1419, 1419, 1419, 1419 } ; -static yyconst flex_int16_t yy_chk[1857] = +static const flex_int16_t yy_chk[1857] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 21, 252, @@ -1421,30 +1647,30 @@ static yyconst flex_int16_t yy_chk[1857] = static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; -extern int parser6__flex_debug; -int parser6__flex_debug = 1; +extern int yy_flex_debug; +int yy_flex_debug = 1; -static yyconst flex_int16_t yy_rule_linenum[175] = +static const flex_int16_t yy_rule_linenum[175] = { 0, - 146, 148, 150, 155, 156, 161, 162, 163, 175, 178, - 183, 190, 199, 208, 217, 226, 235, 244, 253, 262, - 271, 280, 289, 298, 307, 316, 325, 334, 344, 354, - 364, 374, 384, 393, 403, 413, 423, 433, 442, 451, - 460, 469, 478, 487, 496, 505, 514, 523, 535, 544, - 553, 562, 571, 581, 591, 601, 611, 622, 632, 642, - 652, 662, 672, 682, 692, 702, 712, 723, 734, 745, - 756, 765, 775, 784, 793, 808, 823, 832, 841, 850, - 859, 868, 877, 886, 895, 904, 913, 935, 957, 966, - 976, 986, 995, 1005, 1015, 1024, 1033, 1042, 1051, 1061, - - 1070, 1079, 1088, 1097, 1106, 1115, 1124, 1133, 1142, 1152, - 1161, 1170, 1180, 1192, 1205, 1214, 1223, 1233, 1243, 1252, - 1263, 1273, 1282, 1292, 1302, 1311, 1320, 1329, 1338, 1348, - 1357, 1367, 1376, 1385, 1394, 1403, 1412, 1421, 1430, 1439, - 1448, 1457, 1466, 1475, 1484, 1493, 1502, 1511, 1520, 1529, - 1538, 1547, 1556, 1565, 1574, 1583, 1593, 1692, 1697, 1702, - 1707, 1708, 1709, 1710, 1711, 1712, 1714, 1732, 1745, 1750, - 1754, 1756, 1758, 1760 + 147, 149, 151, 156, 157, 162, 163, 164, 176, 179, + 184, 191, 200, 209, 218, 227, 236, 245, 254, 263, + 272, 281, 290, 299, 308, 317, 326, 335, 345, 355, + 365, 375, 385, 394, 404, 414, 424, 434, 443, 452, + 461, 470, 479, 488, 497, 506, 515, 524, 536, 545, + 554, 563, 572, 582, 592, 602, 612, 623, 633, 643, + 653, 663, 673, 683, 693, 703, 713, 724, 735, 746, + 757, 766, 776, 785, 794, 809, 824, 833, 842, 851, + 860, 869, 878, 887, 896, 905, 914, 936, 958, 967, + 977, 987, 996, 1006, 1016, 1025, 1034, 1043, 1052, 1062, + + 1071, 1080, 1089, 1098, 1107, 1116, 1125, 1134, 1143, 1153, + 1162, 1171, 1181, 1193, 1206, 1215, 1224, 1234, 1244, 1253, + 1264, 1274, 1283, 1293, 1303, 1312, 1321, 1330, 1339, 1349, + 1358, 1368, 1377, 1386, 1395, 1404, 1413, 1422, 1431, 1440, + 1449, 1458, 1467, 1476, 1485, 1494, 1503, 1512, 1521, 1530, + 1539, 1548, 1557, 1566, 1575, 1584, 1594, 1693, 1698, 1703, + 1708, 1709, 1710, 1711, 1712, 1713, 1715, 1733, 1746, 1751, + 1755, 1757, 1759, 1761 } ; /* The intent behind this definition is that it'll catch @@ -1454,7 +1680,7 @@ static yyconst flex_int16_t yy_rule_linenum[175] = #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -char *parser6_text; +char *yytext; #line 1 "dhcp6_lexer.ll" /* Copyright (C) 2016-2018 Internet Systems Consortium, Inc. ("ISC") @@ -1481,8 +1707,8 @@ char *parser6_text; 2.5.31 through 2.5.33): it generates code that does not conform to C89. See Debian bug 333231 . */ -# undef parser6_wrap -# define parser6_wrap() 1 +# undef yywrap +# define yywrap() 1 namespace { @@ -1497,9 +1723,10 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) +#line 1726 "dhcp6_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 parser6_wrap requires linking with -lfl, which provides the default parser6_wrap + using yywrap requires linking with -lfl, which provides the default yywrap 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. */ @@ -1507,23 +1734,23 @@ using namespace isc::dhcp; /* avoid to get static global variables to remain with C++. */ /* in last resort %option reentrant */ /* Enables debug mode. To see the debug messages, one needs to also set - parser6__flex_debug to 1, then the debug messages will be printed on stderr. */ + yy_flex_debug to 1, then the debug messages will be printed on stderr. */ /* I have no idea what this option does, except it was specified in the bison examples and Postgres folks added it to remove gcc 4.3 warnings. Let's be on the safe side and keep it. */ #define YY_NO_INPUT 1 - /* These are not token expressions yet, just convenience expressions that can be used during actual token definitions. Note some can match incorrect inputs (e.g., IP addresses) which must be checked. */ /* for errors */ #line 94 "dhcp6_lexer.ll" /* This code run each time a pattern is matched. It updates the location - by moving it ahead by parser6_leng bytes. parser6_leng specifies the length of the + by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ -#define YY_USER_ACTION driver.loc_.columns(parser6_leng); -#line 1527 "dhcp6_lexer.cc" +#define YY_USER_ACTION driver.loc_.columns(yyleng); +#line 1752 "dhcp6_lexer.cc" +#line 1753 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1551,7 +1778,7 @@ using namespace isc::dhcp; /* %if-reentrant */ /* %if-c-only */ -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* %endif */ /* %if-reentrant */ @@ -1561,31 +1788,31 @@ static int yy_init_globals (void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int parser6_lex_destroy (void ); +int yylex_destroy ( void ); -int parser6_get_debug (void ); +int yyget_debug ( void ); -void parser6_set_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE parser6_get_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void parser6_set_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *parser6_get_in (void ); +FILE *yyget_in ( void ); -void parser6_set_in (FILE * in_str ); +void yyset_in ( FILE * _in_str ); -FILE *parser6_get_out (void ); +FILE *yyget_out ( void ); -void parser6_set_out (FILE * out_str ); +void yyset_out ( FILE * _out_str ); -yy_size_t parser6_get_leng (void ); + int yyget_leng ( void ); -char *parser6_get_text (void ); +char *yyget_text ( void ); -int parser6_get_lineno (void ); +int yyget_lineno ( void ); -void parser6_set_lineno (int line_number ); +void yyset_lineno ( int _line_number ); /* %if-bison-bridge */ /* %endif */ @@ -1596,34 +1823,35 @@ void parser6_set_lineno (int line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int parser6_wrap (void ); +extern "C" int yywrap ( void ); #else -extern int parser6_wrap (void ); +extern int yywrap ( void ); #endif #endif /* %not-for-header */ - +#ifndef YY_NO_UNPUT + +#endif /* %ok-for-header */ /* %endif */ #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const 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 */ @@ -1636,7 +1864,12 @@ static int input (void ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -1645,7 +1878,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( parser6_text, parser6_leng, 1, parser6_out )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) /* %endif */ /* %if-c++-only C++ definition */ /* %endif */ @@ -1660,20 +1893,20 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + int n; \ for ( n = 0; n < max_size && \ - (c = getc( parser6_in )) != EOF && c != '\n'; ++n ) \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ - if ( c == EOF && ferror( parser6_in ) ) \ + if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, parser6_in))==0 && ferror(parser6_in)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -1681,7 +1914,7 @@ static int input (void ); break; \ } \ errno=0; \ - clearerr(parser6_in); \ + clearerr(yyin); \ } \ }\ \ @@ -1714,11 +1947,9 @@ 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 */ @@ -1732,15 +1963,15 @@ static int input (void ); #define YY_DECL_IS_OURS 1 /* %if-c-only Standard (non-C++) definition */ -extern int parser6_lex (void); +extern int yylex (void); -#define YY_DECL int parser6_lex (void) +#define YY_DECL int yylex (void) /* %endif */ /* %if-c++-only C++ definition */ /* %endif */ #endif /* !YY_DECL */ -/* Code executed at the beginning of each rule, after parser6_text and parser6_leng +/* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION @@ -1749,7 +1980,7 @@ extern int parser6_lex (void); /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif /* %% [6.0] YY_RULE_SETUP definition goes here */ @@ -1757,25 +1988,60 @@ extern int parser6_lex (void); YY_USER_ACTION /* %not-for-header */ - /** The main scanner function which does all the work. */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) +/* %if-c-only */ + yyin = stdin; +/* %endif */ +/* %if-c++-only */ +/* %endif */ + + if ( ! yyout ) +/* %if-c-only */ + yyout = stdout; +/* %endif */ +/* %if-c++-only */ +/* %endif */ + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer( yyin, YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + { /* %% [7.0] user's declarations go here */ #line 100 "dhcp6_lexer.ll" +#line 104 "dhcp6_lexer.ll" /* This part of the code is copied over to the verbatim to the top - of the generated parser6_lex function. Explanation: + of the generated yylex function. Explanation: http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */ - /* Code run each time parser6_lex is called. */ + /* Code run each time yylex is called. */ driver.loc_.step(); if (start_token_flag) { @@ -1814,48 +2080,14 @@ YY_DECL } -#line 1818 "dhcp6_lexer.cc" - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! parser6_in ) -/* %if-c-only */ - parser6_in = stdin; -/* %endif */ -/* %if-c++-only */ -/* %endif */ +#line 2083 "dhcp6_lexer.cc" - if ( ! parser6_out ) -/* %if-c-only */ - parser6_out = stdout; -/* %endif */ -/* %if-c++-only */ -/* %endif */ - - if ( ! YY_CURRENT_BUFFER ) { - parser6_ensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - parser6__create_buffer(parser6_in,YY_BUF_SIZE ); - } - - parser6__load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { /* %% [8.0] yymore()-related code goes here */ yy_cp = (yy_c_buf_p); - /* Support of parser6_text. */ + /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of @@ -1868,7 +2100,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1878,9 +2110,9 @@ yy_match: { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1420 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[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] + yy_c]; ++yy_cp; } while ( yy_current_state != 1419 ); @@ -1893,21 +2125,21 @@ yy_find_action: YY_DO_BEFORE_ACTION; -/* %% [11.0] code for parser6_lineno update goes here */ +/* %% [11.0] code for yylineno update goes here */ do_action: /* This label is used only to access EOF actions. */ /* %% [12.0] debug code goes here */ - if ( parser6__flex_debug ) + if ( yy_flex_debug ) { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); else if ( yy_act < 175 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", - (long)yy_rule_linenum[yy_act], parser6_text ); + (long)yy_rule_linenum[yy_act], yytext ); else if ( yy_act == 175 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", - parser6_text ); + yytext ); else if ( yy_act == 176 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else @@ -1926,17 +2158,17 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 146 "dhcp6_lexer.ll" +#line 147 "dhcp6_lexer.ll" ; YY_BREAK case 2: YY_RULE_SETUP -#line 148 "dhcp6_lexer.ll" +#line 149 "dhcp6_lexer.ll" ; YY_BREAK case 3: YY_RULE_SETUP -#line 150 "dhcp6_lexer.ll" +#line 151 "dhcp6_lexer.ll" { BEGIN(COMMENT); comment_start_line = driver.loc_.end.line;; @@ -1944,38 +2176,38 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 155 "dhcp6_lexer.ll" +#line 156 "dhcp6_lexer.ll" BEGIN(INITIAL); YY_BREAK case 5: YY_RULE_SETUP -#line 156 "dhcp6_lexer.ll" +#line 157 "dhcp6_lexer.ll" ; YY_BREAK case YY_STATE_EOF(COMMENT): -#line 157 "dhcp6_lexer.ll" +#line 158 "dhcp6_lexer.ll" { isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line); } YY_BREAK case 6: YY_RULE_SETUP -#line 161 "dhcp6_lexer.ll" +#line 162 "dhcp6_lexer.ll" BEGIN(DIR_ENTER); YY_BREAK case 7: YY_RULE_SETUP -#line 162 "dhcp6_lexer.ll" +#line 163 "dhcp6_lexer.ll" BEGIN(DIR_INCLUDE); YY_BREAK case 8: YY_RULE_SETUP -#line 163 "dhcp6_lexer.ll" +#line 164 "dhcp6_lexer.ll" { /* Include directive. */ /* Extract the filename. */ - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); driver.includeFile(tmp); @@ -1984,19 +2216,19 @@ YY_RULE_SETUP case YY_STATE_EOF(DIR_ENTER): case YY_STATE_EOF(DIR_INCLUDE): case YY_STATE_EOF(DIR_EXIT): -#line 172 "dhcp6_lexer.ll" +#line 173 "dhcp6_lexer.ll" { isc_throw(Dhcp6ParseError, "Directive not closed."); } YY_BREAK case 9: YY_RULE_SETUP -#line 175 "dhcp6_lexer.ll" +#line 176 "dhcp6_lexer.ll" BEGIN(INITIAL); YY_BREAK case 10: YY_RULE_SETUP -#line 178 "dhcp6_lexer.ll" +#line 179 "dhcp6_lexer.ll" { /* Ok, we found a with space. Let's ignore it and update loc variable. */ driver.loc_.step(); @@ -2005,16 +2237,16 @@ YY_RULE_SETUP case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 183 "dhcp6_lexer.ll" +#line 184 "dhcp6_lexer.ll" { /* Newline found. Let's update the location and continue. */ - driver.loc_.lines(parser6_leng); + driver.loc_.lines(yyleng); driver.loc_.step(); } YY_BREAK case 12: YY_RULE_SETUP -#line 190 "dhcp6_lexer.ll" +#line 191 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2026,7 +2258,7 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 199 "dhcp6_lexer.ll" +#line 200 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2038,7 +2270,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 208 "dhcp6_lexer.ll" +#line 209 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2050,7 +2282,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 217 "dhcp6_lexer.ll" +#line 218 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2062,7 +2294,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 226 "dhcp6_lexer.ll" +#line 227 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2074,7 +2306,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 235 "dhcp6_lexer.ll" +#line 236 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2086,7 +2318,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 244 "dhcp6_lexer.ll" +#line 245 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2098,7 +2330,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 253 "dhcp6_lexer.ll" +#line 254 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2110,7 +2342,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 262 "dhcp6_lexer.ll" +#line 263 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2122,7 +2354,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 271 "dhcp6_lexer.ll" +#line 272 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2134,7 +2366,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 280 "dhcp6_lexer.ll" +#line 281 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2146,7 +2378,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 289 "dhcp6_lexer.ll" +#line 290 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2158,7 +2390,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 298 "dhcp6_lexer.ll" +#line 299 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2170,7 +2402,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 307 "dhcp6_lexer.ll" +#line 308 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2182,7 +2414,7 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 316 "dhcp6_lexer.ll" +#line 317 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2194,7 +2426,7 @@ YY_RULE_SETUP YY_BREAK case 27: YY_RULE_SETUP -#line 325 "dhcp6_lexer.ll" +#line 326 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2206,72 +2438,72 @@ YY_RULE_SETUP YY_BREAK case 28: YY_RULE_SETUP -#line 334 "dhcp6_lexer.ll" +#line 335 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) { return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_); } - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 29: YY_RULE_SETUP -#line 344 "dhcp6_lexer.ll" +#line 345 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) { return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_); } - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 30: YY_RULE_SETUP -#line 354 "dhcp6_lexer.ll" +#line 355 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) { return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_); } - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 31: YY_RULE_SETUP -#line 364 "dhcp6_lexer.ll" +#line 365 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_); } - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 32: YY_RULE_SETUP -#line 374 "dhcp6_lexer.ll" +#line 375 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_); } - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 33: YY_RULE_SETUP -#line 384 "dhcp6_lexer.ll" +#line 385 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME: @@ -2283,59 +2515,59 @@ YY_RULE_SETUP YY_BREAK case 34: YY_RULE_SETUP -#line 393 "dhcp6_lexer.ll" +#line 394 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_); } - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 35: YY_RULE_SETUP -#line 403 "dhcp6_lexer.ll" +#line 404 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_); } - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 36: YY_RULE_SETUP -#line 413 "dhcp6_lexer.ll" +#line 414 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_); } - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 37: YY_RULE_SETUP -#line 423 "dhcp6_lexer.ll" +#line 424 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { return isc::dhcp::Dhcp6Parser::make_WHEN_NOT_PRESENT(driver.loc_); } - std::string tmp(parser6_text+1); + std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK case 38: YY_RULE_SETUP -#line 433 "dhcp6_lexer.ll" +#line 434 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -2347,7 +2579,7 @@ YY_RULE_SETUP YY_BREAK case 39: YY_RULE_SETUP -#line 442 "dhcp6_lexer.ll" +#line 443 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2359,7 +2591,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 451 "dhcp6_lexer.ll" +#line 452 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::INTERFACES_CONFIG: @@ -2371,7 +2603,7 @@ YY_RULE_SETUP YY_BREAK case 41: YY_RULE_SETUP -#line 460 "dhcp6_lexer.ll" +#line 461 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::INTERFACES_CONFIG: @@ -2383,7 +2615,7 @@ YY_RULE_SETUP YY_BREAK case 42: YY_RULE_SETUP -#line 469 "dhcp6_lexer.ll" +#line 470 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2395,7 +2627,7 @@ YY_RULE_SETUP YY_BREAK case 43: YY_RULE_SETUP -#line 478 "dhcp6_lexer.ll" +#line 479 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SANITY_CHECKS: @@ -2407,7 +2639,7 @@ YY_RULE_SETUP YY_BREAK case 44: YY_RULE_SETUP -#line 487 "dhcp6_lexer.ll" +#line 488 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2419,7 +2651,7 @@ YY_RULE_SETUP YY_BREAK case 45: YY_RULE_SETUP -#line 496 "dhcp6_lexer.ll" +#line 497 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2431,7 +2663,7 @@ YY_RULE_SETUP YY_BREAK case 46: YY_RULE_SETUP -#line 505 "dhcp6_lexer.ll" +#line 506 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2443,7 +2675,7 @@ YY_RULE_SETUP YY_BREAK case 47: YY_RULE_SETUP -#line 514 "dhcp6_lexer.ll" +#line 515 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOSTS_DATABASE: @@ -2455,7 +2687,7 @@ YY_RULE_SETUP YY_BREAK case 48: YY_RULE_SETUP -#line 523 "dhcp6_lexer.ll" +#line 524 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2470,7 +2702,7 @@ YY_RULE_SETUP YY_BREAK case 49: YY_RULE_SETUP -#line 535 "dhcp6_lexer.ll" +#line 536 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2482,7 +2714,7 @@ YY_RULE_SETUP YY_BREAK case 50: YY_RULE_SETUP -#line 544 "dhcp6_lexer.ll" +#line 545 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2494,7 +2726,7 @@ YY_RULE_SETUP YY_BREAK case 51: YY_RULE_SETUP -#line 553 "dhcp6_lexer.ll" +#line 554 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2506,7 +2738,7 @@ YY_RULE_SETUP YY_BREAK case 52: YY_RULE_SETUP -#line 562 "dhcp6_lexer.ll" +#line 563 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2518,7 +2750,7 @@ YY_RULE_SETUP YY_BREAK case 53: YY_RULE_SETUP -#line 571 "dhcp6_lexer.ll" +#line 572 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2531,7 +2763,7 @@ YY_RULE_SETUP YY_BREAK case 54: YY_RULE_SETUP -#line 581 "dhcp6_lexer.ll" +#line 582 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2544,7 +2776,7 @@ YY_RULE_SETUP YY_BREAK case 55: YY_RULE_SETUP -#line 591 "dhcp6_lexer.ll" +#line 592 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2557,7 +2789,7 @@ YY_RULE_SETUP YY_BREAK case 56: YY_RULE_SETUP -#line 601 "dhcp6_lexer.ll" +#line 602 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2570,7 +2802,7 @@ YY_RULE_SETUP YY_BREAK case 57: YY_RULE_SETUP -#line 611 "dhcp6_lexer.ll" +#line 612 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2584,7 +2816,7 @@ YY_RULE_SETUP YY_BREAK case 58: YY_RULE_SETUP -#line 622 "dhcp6_lexer.ll" +#line 623 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2597,7 +2829,7 @@ YY_RULE_SETUP YY_BREAK case 59: YY_RULE_SETUP -#line 632 "dhcp6_lexer.ll" +#line 633 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2610,7 +2842,7 @@ YY_RULE_SETUP YY_BREAK case 60: YY_RULE_SETUP -#line 642 "dhcp6_lexer.ll" +#line 643 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2623,7 +2855,7 @@ YY_RULE_SETUP YY_BREAK case 61: YY_RULE_SETUP -#line 652 "dhcp6_lexer.ll" +#line 653 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2636,7 +2868,7 @@ YY_RULE_SETUP YY_BREAK case 62: YY_RULE_SETUP -#line 662 "dhcp6_lexer.ll" +#line 663 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2649,7 +2881,7 @@ YY_RULE_SETUP YY_BREAK case 63: YY_RULE_SETUP -#line 672 "dhcp6_lexer.ll" +#line 673 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2662,7 +2894,7 @@ YY_RULE_SETUP YY_BREAK case 64: YY_RULE_SETUP -#line 682 "dhcp6_lexer.ll" +#line 683 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2675,7 +2907,7 @@ YY_RULE_SETUP YY_BREAK case 65: YY_RULE_SETUP -#line 692 "dhcp6_lexer.ll" +#line 693 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2688,7 +2920,7 @@ YY_RULE_SETUP YY_BREAK case 66: YY_RULE_SETUP -#line 702 "dhcp6_lexer.ll" +#line 703 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2701,7 +2933,7 @@ YY_RULE_SETUP YY_BREAK case 67: YY_RULE_SETUP -#line 712 "dhcp6_lexer.ll" +#line 713 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2715,7 +2947,7 @@ YY_RULE_SETUP YY_BREAK case 68: YY_RULE_SETUP -#line 723 "dhcp6_lexer.ll" +#line 724 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2729,7 +2961,7 @@ YY_RULE_SETUP YY_BREAK case 69: YY_RULE_SETUP -#line 734 "dhcp6_lexer.ll" +#line 735 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2743,7 +2975,7 @@ YY_RULE_SETUP YY_BREAK case 70: YY_RULE_SETUP -#line 745 "dhcp6_lexer.ll" +#line 746 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2757,7 +2989,7 @@ YY_RULE_SETUP YY_BREAK case 71: YY_RULE_SETUP -#line 756 "dhcp6_lexer.ll" +#line 757 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2769,7 +3001,7 @@ YY_RULE_SETUP YY_BREAK case 72: YY_RULE_SETUP -#line 765 "dhcp6_lexer.ll" +#line 766 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2782,7 +3014,7 @@ YY_RULE_SETUP YY_BREAK case 73: YY_RULE_SETUP -#line 775 "dhcp6_lexer.ll" +#line 776 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2794,7 +3026,7 @@ YY_RULE_SETUP YY_BREAK case 74: YY_RULE_SETUP -#line 784 "dhcp6_lexer.ll" +#line 785 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2806,7 +3038,7 @@ YY_RULE_SETUP YY_BREAK case 75: YY_RULE_SETUP -#line 793 "dhcp6_lexer.ll" +#line 794 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2824,7 +3056,7 @@ YY_RULE_SETUP YY_BREAK case 76: YY_RULE_SETUP -#line 808 "dhcp6_lexer.ll" +#line 809 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2842,7 +3074,7 @@ YY_RULE_SETUP YY_BREAK case 77: YY_RULE_SETUP -#line 823 "dhcp6_lexer.ll" +#line 824 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -2854,7 +3086,7 @@ YY_RULE_SETUP YY_BREAK case 78: YY_RULE_SETUP -#line 832 "dhcp6_lexer.ll" +#line 833 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -2866,7 +3098,7 @@ YY_RULE_SETUP YY_BREAK case 79: YY_RULE_SETUP -#line 841 "dhcp6_lexer.ll" +#line 842 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2878,7 +3110,7 @@ YY_RULE_SETUP YY_BREAK case 80: YY_RULE_SETUP -#line 850 "dhcp6_lexer.ll" +#line 851 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2890,7 +3122,7 @@ YY_RULE_SETUP YY_BREAK case 81: YY_RULE_SETUP -#line 859 "dhcp6_lexer.ll" +#line 860 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2902,7 +3134,7 @@ YY_RULE_SETUP YY_BREAK case 82: YY_RULE_SETUP -#line 868 "dhcp6_lexer.ll" +#line 869 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2914,7 +3146,7 @@ YY_RULE_SETUP YY_BREAK case 83: YY_RULE_SETUP -#line 877 "dhcp6_lexer.ll" +#line 878 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2926,7 +3158,7 @@ YY_RULE_SETUP YY_BREAK case 84: YY_RULE_SETUP -#line 886 "dhcp6_lexer.ll" +#line 887 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2938,7 +3170,7 @@ YY_RULE_SETUP YY_BREAK case 85: YY_RULE_SETUP -#line 895 "dhcp6_lexer.ll" +#line 896 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2950,7 +3182,7 @@ YY_RULE_SETUP YY_BREAK case 86: YY_RULE_SETUP -#line 904 "dhcp6_lexer.ll" +#line 905 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -2962,7 +3194,7 @@ YY_RULE_SETUP YY_BREAK case 87: YY_RULE_SETUP -#line 913 "dhcp6_lexer.ll" +#line 914 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2987,7 +3219,7 @@ YY_RULE_SETUP YY_BREAK case 88: YY_RULE_SETUP -#line 935 "dhcp6_lexer.ll" +#line 936 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3012,7 +3244,7 @@ YY_RULE_SETUP YY_BREAK case 89: YY_RULE_SETUP -#line 957 "dhcp6_lexer.ll" +#line 958 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3024,7 +3256,7 @@ YY_RULE_SETUP YY_BREAK case 90: YY_RULE_SETUP -#line 966 "dhcp6_lexer.ll" +#line 967 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3037,7 +3269,7 @@ YY_RULE_SETUP YY_BREAK case 91: YY_RULE_SETUP -#line 976 "dhcp6_lexer.ll" +#line 977 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3050,7 +3282,7 @@ YY_RULE_SETUP YY_BREAK case 92: YY_RULE_SETUP -#line 986 "dhcp6_lexer.ll" +#line 987 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3062,7 +3294,7 @@ YY_RULE_SETUP YY_BREAK case 93: YY_RULE_SETUP -#line 995 "dhcp6_lexer.ll" +#line 996 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3075,7 +3307,7 @@ YY_RULE_SETUP YY_BREAK case 94: YY_RULE_SETUP -#line 1005 "dhcp6_lexer.ll" +#line 1006 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3088,7 +3320,7 @@ YY_RULE_SETUP YY_BREAK case 95: YY_RULE_SETUP -#line 1015 "dhcp6_lexer.ll" +#line 1016 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3100,7 +3332,7 @@ YY_RULE_SETUP YY_BREAK case 96: YY_RULE_SETUP -#line 1024 "dhcp6_lexer.ll" +#line 1025 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3112,7 +3344,7 @@ YY_RULE_SETUP YY_BREAK case 97: YY_RULE_SETUP -#line 1033 "dhcp6_lexer.ll" +#line 1034 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3124,7 +3356,7 @@ YY_RULE_SETUP YY_BREAK case 98: YY_RULE_SETUP -#line 1042 "dhcp6_lexer.ll" +#line 1043 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3136,7 +3368,7 @@ YY_RULE_SETUP YY_BREAK case 99: YY_RULE_SETUP -#line 1051 "dhcp6_lexer.ll" +#line 1052 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3149,7 +3381,7 @@ YY_RULE_SETUP YY_BREAK case 100: YY_RULE_SETUP -#line 1061 "dhcp6_lexer.ll" +#line 1062 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3161,7 +3393,7 @@ YY_RULE_SETUP YY_BREAK case 101: YY_RULE_SETUP -#line 1070 "dhcp6_lexer.ll" +#line 1071 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3173,7 +3405,7 @@ YY_RULE_SETUP YY_BREAK case 102: YY_RULE_SETUP -#line 1079 "dhcp6_lexer.ll" +#line 1080 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3185,7 +3417,7 @@ YY_RULE_SETUP YY_BREAK case 103: YY_RULE_SETUP -#line 1088 "dhcp6_lexer.ll" +#line 1089 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3197,7 +3429,7 @@ YY_RULE_SETUP YY_BREAK case 104: YY_RULE_SETUP -#line 1097 "dhcp6_lexer.ll" +#line 1098 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGING: @@ -3209,7 +3441,7 @@ YY_RULE_SETUP YY_BREAK case 105: YY_RULE_SETUP -#line 1106 "dhcp6_lexer.ll" +#line 1107 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3221,7 +3453,7 @@ YY_RULE_SETUP YY_BREAK case 106: YY_RULE_SETUP -#line 1115 "dhcp6_lexer.ll" +#line 1116 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3233,7 +3465,7 @@ YY_RULE_SETUP YY_BREAK case 107: YY_RULE_SETUP -#line 1124 "dhcp6_lexer.ll" +#line 1125 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3245,7 +3477,7 @@ YY_RULE_SETUP YY_BREAK case 108: YY_RULE_SETUP -#line 1133 "dhcp6_lexer.ll" +#line 1134 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3257,7 +3489,7 @@ YY_RULE_SETUP YY_BREAK case 109: YY_RULE_SETUP -#line 1142 "dhcp6_lexer.ll" +#line 1143 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3269,7 +3501,7 @@ YY_RULE_SETUP YY_BREAK case 110: YY_RULE_SETUP -#line 1152 "dhcp6_lexer.ll" +#line 1153 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3281,7 +3513,7 @@ YY_RULE_SETUP YY_BREAK case 111: YY_RULE_SETUP -#line 1161 "dhcp6_lexer.ll" +#line 1162 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3293,7 +3525,7 @@ YY_RULE_SETUP YY_BREAK case 112: YY_RULE_SETUP -#line 1170 "dhcp6_lexer.ll" +#line 1171 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3306,7 +3538,7 @@ YY_RULE_SETUP YY_BREAK case 113: YY_RULE_SETUP -#line 1180 "dhcp6_lexer.ll" +#line 1181 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3321,7 +3553,7 @@ YY_RULE_SETUP YY_BREAK case 114: YY_RULE_SETUP -#line 1192 "dhcp6_lexer.ll" +#line 1193 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3337,7 +3569,7 @@ YY_RULE_SETUP YY_BREAK case 115: YY_RULE_SETUP -#line 1205 "dhcp6_lexer.ll" +#line 1206 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -3349,7 +3581,7 @@ YY_RULE_SETUP YY_BREAK case 116: YY_RULE_SETUP -#line 1214 "dhcp6_lexer.ll" +#line 1215 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -3361,7 +3593,7 @@ YY_RULE_SETUP YY_BREAK case 117: YY_RULE_SETUP -#line 1223 "dhcp6_lexer.ll" +#line 1224 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3374,7 +3606,7 @@ YY_RULE_SETUP YY_BREAK case 118: YY_RULE_SETUP -#line 1233 "dhcp6_lexer.ll" +#line 1234 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3387,7 +3619,7 @@ YY_RULE_SETUP YY_BREAK case 119: YY_RULE_SETUP -#line 1243 "dhcp6_lexer.ll" +#line 1244 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3399,7 +3631,7 @@ YY_RULE_SETUP YY_BREAK case 120: YY_RULE_SETUP -#line 1252 "dhcp6_lexer.ll" +#line 1253 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -3413,7 +3645,7 @@ YY_RULE_SETUP YY_BREAK case 121: YY_RULE_SETUP -#line 1263 "dhcp6_lexer.ll" +#line 1264 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -3426,7 +3658,7 @@ YY_RULE_SETUP YY_BREAK case 122: YY_RULE_SETUP -#line 1273 "dhcp6_lexer.ll" +#line 1274 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3438,7 +3670,7 @@ YY_RULE_SETUP YY_BREAK case 123: YY_RULE_SETUP -#line 1282 "dhcp6_lexer.ll" +#line 1283 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -3451,7 +3683,7 @@ YY_RULE_SETUP YY_BREAK case 124: YY_RULE_SETUP -#line 1292 "dhcp6_lexer.ll" +#line 1293 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3464,7 +3696,7 @@ YY_RULE_SETUP YY_BREAK case 125: YY_RULE_SETUP -#line 1302 "dhcp6_lexer.ll" +#line 1303 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3476,7 +3708,7 @@ YY_RULE_SETUP YY_BREAK case 126: YY_RULE_SETUP -#line 1311 "dhcp6_lexer.ll" +#line 1312 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3488,7 +3720,7 @@ YY_RULE_SETUP YY_BREAK case 127: YY_RULE_SETUP -#line 1320 "dhcp6_lexer.ll" +#line 1321 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3500,7 +3732,7 @@ YY_RULE_SETUP YY_BREAK case 128: YY_RULE_SETUP -#line 1329 "dhcp6_lexer.ll" +#line 1330 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3512,7 +3744,7 @@ YY_RULE_SETUP YY_BREAK case 129: YY_RULE_SETUP -#line 1338 "dhcp6_lexer.ll" +#line 1339 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3525,7 +3757,7 @@ YY_RULE_SETUP YY_BREAK case 130: YY_RULE_SETUP -#line 1348 "dhcp6_lexer.ll" +#line 1349 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -3537,7 +3769,7 @@ YY_RULE_SETUP YY_BREAK case 131: YY_RULE_SETUP -#line 1357 "dhcp6_lexer.ll" +#line 1358 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3549,7 +3781,7 @@ YY_RULE_SETUP YY_BREAK case 132: YY_RULE_SETUP -#line 1367 "dhcp6_lexer.ll" +#line 1368 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -3561,7 +3793,7 @@ YY_RULE_SETUP YY_BREAK case 133: YY_RULE_SETUP -#line 1376 "dhcp6_lexer.ll" +#line 1377 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -3573,7 +3805,7 @@ YY_RULE_SETUP YY_BREAK case 134: YY_RULE_SETUP -#line 1385 "dhcp6_lexer.ll" +#line 1386 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3585,7 +3817,7 @@ YY_RULE_SETUP YY_BREAK case 135: YY_RULE_SETUP -#line 1394 "dhcp6_lexer.ll" +#line 1395 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -3597,7 +3829,7 @@ YY_RULE_SETUP YY_BREAK case 136: YY_RULE_SETUP -#line 1403 "dhcp6_lexer.ll" +#line 1404 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -3609,7 +3841,7 @@ YY_RULE_SETUP YY_BREAK case 137: YY_RULE_SETUP -#line 1412 "dhcp6_lexer.ll" +#line 1413 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -3621,7 +3853,7 @@ YY_RULE_SETUP YY_BREAK case 138: YY_RULE_SETUP -#line 1421 "dhcp6_lexer.ll" +#line 1422 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -3633,7 +3865,7 @@ YY_RULE_SETUP YY_BREAK case 139: YY_RULE_SETUP -#line 1430 "dhcp6_lexer.ll" +#line 1431 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -3645,7 +3877,7 @@ YY_RULE_SETUP YY_BREAK case 140: YY_RULE_SETUP -#line 1439 "dhcp6_lexer.ll" +#line 1440 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -3657,7 +3889,7 @@ YY_RULE_SETUP YY_BREAK case 141: YY_RULE_SETUP -#line 1448 "dhcp6_lexer.ll" +#line 1449 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -3669,7 +3901,7 @@ YY_RULE_SETUP YY_BREAK case 142: YY_RULE_SETUP -#line 1457 "dhcp6_lexer.ll" +#line 1458 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3681,7 +3913,7 @@ YY_RULE_SETUP YY_BREAK case 143: YY_RULE_SETUP -#line 1466 "dhcp6_lexer.ll" +#line 1467 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3693,7 +3925,7 @@ YY_RULE_SETUP YY_BREAK case 144: YY_RULE_SETUP -#line 1475 "dhcp6_lexer.ll" +#line 1476 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3705,7 +3937,7 @@ YY_RULE_SETUP YY_BREAK case 145: YY_RULE_SETUP -#line 1484 "dhcp6_lexer.ll" +#line 1485 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3717,7 +3949,7 @@ YY_RULE_SETUP YY_BREAK case 146: YY_RULE_SETUP -#line 1493 "dhcp6_lexer.ll" +#line 1494 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3729,7 +3961,7 @@ YY_RULE_SETUP YY_BREAK case 147: YY_RULE_SETUP -#line 1502 "dhcp6_lexer.ll" +#line 1503 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3741,7 +3973,7 @@ YY_RULE_SETUP YY_BREAK case 148: YY_RULE_SETUP -#line 1511 "dhcp6_lexer.ll" +#line 1512 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3753,7 +3985,7 @@ YY_RULE_SETUP YY_BREAK case 149: YY_RULE_SETUP -#line 1520 "dhcp6_lexer.ll" +#line 1521 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3765,7 +3997,7 @@ YY_RULE_SETUP YY_BREAK case 150: YY_RULE_SETUP -#line 1529 "dhcp6_lexer.ll" +#line 1530 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3777,7 +4009,7 @@ YY_RULE_SETUP YY_BREAK case 151: YY_RULE_SETUP -#line 1538 "dhcp6_lexer.ll" +#line 1539 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -3789,7 +4021,7 @@ YY_RULE_SETUP YY_BREAK case 152: YY_RULE_SETUP -#line 1547 "dhcp6_lexer.ll" +#line 1548 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -3801,7 +4033,7 @@ YY_RULE_SETUP YY_BREAK case 153: YY_RULE_SETUP -#line 1556 "dhcp6_lexer.ll" +#line 1557 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3813,7 +4045,7 @@ YY_RULE_SETUP YY_BREAK case 154: YY_RULE_SETUP -#line 1565 "dhcp6_lexer.ll" +#line 1566 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3825,7 +4057,7 @@ YY_RULE_SETUP YY_BREAK case 155: YY_RULE_SETUP -#line 1574 "dhcp6_lexer.ll" +#line 1575 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3837,7 +4069,7 @@ YY_RULE_SETUP YY_BREAK case 156: YY_RULE_SETUP -#line 1583 "dhcp6_lexer.ll" +#line 1584 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3849,12 +4081,12 @@ YY_RULE_SETUP YY_BREAK case 157: YY_RULE_SETUP -#line 1593 "dhcp6_lexer.ll" +#line 1594 "dhcp6_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. for 'foo' we should get foo */ - std::string raw(parser6_text+1); + std::string raw(yytext+1); size_t len = raw.size() - 1; raw.resize(len); std::string decoded; @@ -3952,65 +4184,65 @@ YY_RULE_SETUP case 158: /* rule 158 can match eol */ YY_RULE_SETUP -#line 1692 "dhcp6_lexer.ll" +#line 1693 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ - driver.error(driver.loc_, "Invalid control in " + std::string(parser6_text)); + driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK case 159: /* rule 159 can match eol */ YY_RULE_SETUP -#line 1697 "dhcp6_lexer.ll" +#line 1698 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ - driver.error(driver.loc_, "Bad escape in " + std::string(parser6_text)); + driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK case 160: YY_RULE_SETUP -#line 1702 "dhcp6_lexer.ll" +#line 1703 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ - driver.error(driver.loc_, "Overflow escape in " + std::string(parser6_text)); + driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK case 161: YY_RULE_SETUP -#line 1707 "dhcp6_lexer.ll" +#line 1708 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 162: YY_RULE_SETUP -#line 1708 "dhcp6_lexer.ll" +#line 1709 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 163: YY_RULE_SETUP -#line 1709 "dhcp6_lexer.ll" +#line 1710 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK case 164: YY_RULE_SETUP -#line 1710 "dhcp6_lexer.ll" +#line 1711 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK case 165: YY_RULE_SETUP -#line 1711 "dhcp6_lexer.ll" +#line 1712 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK case 166: YY_RULE_SETUP -#line 1712 "dhcp6_lexer.ll" +#line 1713 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK case 167: YY_RULE_SETUP -#line 1714 "dhcp6_lexer.ll" +#line 1715 "dhcp6_lexer.ll" { /* An integer was found. */ - std::string tmp(parser6_text); + std::string tmp(yytext); int64_t integer = 0; try { /* In substring we want to use negative values (e.g. -1). @@ -4028,10 +4260,10 @@ YY_RULE_SETUP YY_BREAK case 168: YY_RULE_SETUP -#line 1732 "dhcp6_lexer.ll" +#line 1733 "dhcp6_lexer.ll" { /* A floating point was found. */ - std::string tmp(parser6_text); + std::string tmp(yytext); double fp = 0.0; try { fp = boost::lexical_cast(tmp); @@ -4044,41 +4276,41 @@ YY_RULE_SETUP YY_BREAK case 169: YY_RULE_SETUP -#line 1745 "dhcp6_lexer.ll" +#line 1746 "dhcp6_lexer.ll" { - string tmp(parser6_text); + string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK case 170: YY_RULE_SETUP -#line 1750 "dhcp6_lexer.ll" +#line 1751 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK case 171: YY_RULE_SETUP -#line 1754 "dhcp6_lexer.ll" +#line 1755 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK case 172: YY_RULE_SETUP -#line 1756 "dhcp6_lexer.ll" +#line 1757 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK case 173: YY_RULE_SETUP -#line 1758 "dhcp6_lexer.ll" +#line 1759 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK case 174: YY_RULE_SETUP -#line 1760 "dhcp6_lexer.ll" -driver.error (driver.loc_, "Invalid character: " + std::string(parser6_text)); +#line 1761 "dhcp6_lexer.ll" +driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1762 "dhcp6_lexer.ll" +#line 1763 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -4104,10 +4336,10 @@ case YY_STATE_EOF(INITIAL): YY_BREAK case 175: YY_RULE_SETUP -#line 1785 "dhcp6_lexer.ll" +#line 1786 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 4111 "dhcp6_lexer.cc" +#line 4342 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -4122,15 +4354,19 @@ ECHO; { /* We're scanning a new file or input source. It's * possible that this happened because the user - * just pointed parser6_in at a new source and called - * parser6_lex(). If so, then we have to assure + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = parser6_in; +/* %if-c-only */ + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; +/* %endif */ +/* %if-c++-only */ +/* %endif */ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -4185,11 +4421,11 @@ ECHO; { (yy_did_buffer_switch_on_eof) = 0; - if ( parser6_wrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up - * parser6_text, we can now set up + * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the @@ -4238,12 +4474,12 @@ ECHO; "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ -} /* end of parser6_lex */ + } /* end of user's declarations */ +} /* end of yylex */ /* %ok-for-header */ /* %if-c++-only */ /* %not-for-header */ - /* %ok-for-header */ /* %endif */ @@ -4261,9 +4497,9 @@ static int yy_get_next_buffer (void) /* %if-c++-only */ /* %endif */ { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -4292,7 +4528,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 = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -4305,7 +4541,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 ) @@ -4319,7 +4555,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; @@ -4328,11 +4564,12 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - parser6_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } 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( @@ -4360,7 +4597,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - parser6_restart(parser6_in ); + yyrestart( yyin ); } else @@ -4374,12 +4611,15 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parser6_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -4395,14 +4635,13 @@ 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 */ /* %endif */ { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; /* %% [15.0] code to get the start state into yy_current_state goes here */ yy_current_state = (yy_start); @@ -4410,7 +4649,7 @@ static int yy_get_next_buffer (void) for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { /* %% [16.0] code to find the next state goes here */ - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -4420,9 +4659,9 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1420 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[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] + yy_c]; } return yy_current_state; @@ -4439,11 +4678,11 @@ static int yy_get_next_buffer (void) /* %if-c++-only */ /* %endif */ { - register int yy_is_jam; + int yy_is_jam; /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */ - register char *yy_cp = (yy_c_buf_p); + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -4453,17 +4692,19 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1420 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[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] + yy_c]; yy_is_jam = (yy_current_state == 1419); return yy_is_jam ? 0 : yy_current_state; } +#ifndef YY_NO_UNPUT /* %if-c-only */ /* %endif */ +#endif /* %if-c-only */ #ifndef YY_NO_INPUT @@ -4493,7 +4734,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -4510,14 +4751,14 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - parser6_restart(parser6_in ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( parser6_wrap( ) ) - return EOF; + if ( yywrap( ) ) + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -4536,10 +4777,10 @@ static int yy_get_next_buffer (void) } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve parser6_text */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); -/* %% [19.0] update BOL and parser6_lineno */ +/* %% [19.0] update BOL and yylineno */ return c; } @@ -4553,28 +4794,31 @@ static int yy_get_next_buffer (void) * @note This function does not reset the start condition to @c INITIAL . */ /* %if-c-only */ - void parser6_restart (FILE * input_file ) + void yyrestart (FILE * input_file ) /* %endif */ /* %if-c++-only */ /* %endif */ { if ( ! YY_CURRENT_BUFFER ){ - parser6_ensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - parser6__create_buffer(parser6_in,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - parser6__init_buffer(YY_CURRENT_BUFFER,input_file ); - parser6__load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } +/* %if-c++-only */ +/* %endif */ + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ /* %if-c-only */ - void parser6__switch_to_buffer (YY_BUFFER_STATE new_buffer ) + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4582,10 +4826,10 @@ static int yy_get_next_buffer (void) /* TODO. We should be able to replace this entire function body * with - * parser6_pop_buffer_state(); - * parser6_push_buffer_state(new_buffer); + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); */ - parser6_ensure_buffer_stack (); + yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; @@ -4598,25 +4842,29 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - parser6__load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during - * EOF (parser6_wrap()) processing, but the only time this flag - * is looked at is after parser6_wrap() is called, so it's safe + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } /* %if-c-only */ -static void parser6__load_buffer_state (void) +static void yy_load_buffer_state (void) /* %endif */ /* %if-c++-only */ /* %endif */ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - parser6_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file; +/* %if-c-only */ + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; +/* %endif */ +/* %if-c++-only */ +/* %endif */ (yy_hold_char) = *(yy_c_buf_p); } @@ -4627,39 +4875,42 @@ static void parser6__load_buffer_state (void) * @return the allocated buffer state. */ /* %if-c-only */ - YY_BUFFER_STATE parser6__create_buffer (FILE * file, int size ) + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) /* %endif */ /* %if-c++-only */ /* %endif */ { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) parser6_alloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in parser6__create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = 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 *) parser6_alloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in parser6__create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - parser6__init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } +/* %if-c++-only */ +/* %endif */ + /** Destroy the buffer. - * @param b a buffer created with parser6__create_buffer() + * @param b a buffer created with yy_create_buffer() * */ /* %if-c-only */ - void parser6__delete_buffer (YY_BUFFER_STATE b ) + void yy_delete_buffer (YY_BUFFER_STATE b ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4672,17 +4923,17 @@ static void parser6__load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - parser6_free((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - parser6_free((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, - * such as during a parser6_restart() or at EOF. + * such as during a yyrestart() or at EOF. */ /* %if-c-only */ - static void parser6__init_buffer (YY_BUFFER_STATE b, FILE * file ) + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4690,13 +4941,17 @@ static void parser6__load_buffer_state (void) { int oerrno = errno; - parser6__flush_buffer(b ); + yy_flush_buffer( b ); +/* %if-c-only */ b->yy_input_file = file; +/* %endif */ +/* %if-c++-only */ +/* %endif */ b->yy_fill_buffer = 1; - /* If b is the current buffer, then parser6__init_buffer was _probably_ - * called from parser6_restart() or through yy_get_next_buffer. + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ @@ -4719,7 +4974,7 @@ static void parser6__load_buffer_state (void) * */ /* %if-c-only */ - void parser6__flush_buffer (YY_BUFFER_STATE b ) + void yy_flush_buffer (YY_BUFFER_STATE b ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4742,7 +4997,7 @@ static void parser6__load_buffer_state (void) b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - parser6__load_buffer_state( ); + yy_load_buffer_state( ); } /* %if-c-or-c++ */ @@ -4753,7 +5008,7 @@ static void parser6__load_buffer_state (void) * */ /* %if-c-only */ -void parser6_push_buffer_state (YY_BUFFER_STATE new_buffer ) +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4761,9 +5016,9 @@ void parser6_push_buffer_state (YY_BUFFER_STATE new_buffer ) if (new_buffer == NULL) return; - parser6_ensure_buffer_stack(); + yyensure_buffer_stack(); - /* This block is copied from parser6__switch_to_buffer. */ + /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ @@ -4777,8 +5032,8 @@ void parser6_push_buffer_state (YY_BUFFER_STATE new_buffer ) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; - /* copied from parser6__switch_to_buffer. */ - parser6__load_buffer_state( ); + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /* %endif */ @@ -4789,7 +5044,7 @@ void parser6_push_buffer_state (YY_BUFFER_STATE new_buffer ) * */ /* %if-c-only */ -void parser6_pop_buffer_state (void) +void yypop_buffer_state (void) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4797,13 +5052,13 @@ void parser6_pop_buffer_state (void) if (!YY_CURRENT_BUFFER) return; - parser6__delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - parser6__load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -4814,7 +5069,7 @@ void parser6_pop_buffer_state (void) * Guarantees space for at least one push. */ /* %if-c-only */ -static void parser6_ensure_buffer_stack (void) +static void yyensure_buffer_stack (void) /* %endif */ /* %if-c++-only */ /* %endif */ @@ -4827,15 +5082,15 @@ static void parser6_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; - (yy_buffer_stack) = (struct yy_buffer_state**)parser6_alloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in parser6_ensure_buffer_stack()" ); - + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -4844,15 +5099,15 @@ static void parser6_ensure_buffer_stack (void) if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)parser6_realloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in parser6_ensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -4866,9 +5121,9 @@ static void parser6_ensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE parser6__scan_buffer (char * base, yy_size_t size ) +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; @@ -4876,53 +5131,53 @@ YY_BUFFER_STATE parser6__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) parser6_alloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in parser6__scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (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; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - parser6__switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } /* %endif */ /* %if-c-only */ -/** Setup the input buffer state to scan a string. The next call to parser6_lex() will +/** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use - * parser6__scan_bytes() instead. + * yy_scan_bytes() instead. */ -YY_BUFFER_STATE parser6__scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return parser6__scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /* %endif */ /* %if-c-only */ -/** Setup the input buffer state to scan the given bytes. The next call to parser6_lex() will +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE parser6__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -4930,19 +5185,19 @@ YY_BUFFER_STATE parser6__scan_bytes (yyconst char * yybytes, yy_size_t _yybyte int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) parser6_alloc(n ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in parser6__scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = parser6__scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in parser6__scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -4958,9 +5213,9 @@ YY_BUFFER_STATE parser6__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 (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* %endif */ @@ -4973,14 +5228,14 @@ static void yy_fatal_error (yyconst char* msg ) #define yyless(n) \ do \ { \ - /* Undo effects of setting up parser6_text. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ - parser6_text[parser6_leng] = (yy_hold_char); \ - (yy_c_buf_p) = parser6_text + 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'; \ - parser6_leng = yyless_macro_arg; \ + yyleng = yyless_macro_arg; \ } \ while ( 0 ) @@ -4993,82 +5248,82 @@ static void yy_fatal_error (yyconst char* msg ) /** Get the current line number. * */ -int parser6_get_lineno (void) +int yyget_lineno (void) { - - return parser6_lineno; + + return yylineno; } /** Get the input stream. * */ -FILE *parser6_get_in (void) +FILE *yyget_in (void) { - return parser6_in; + return yyin; } /** Get the output stream. * */ -FILE *parser6_get_out (void) +FILE *yyget_out (void) { - return parser6_out; + return yyout; } /** Get the length of the current token. * */ -yy_size_t parser6_get_leng (void) +int yyget_leng (void) { - return parser6_leng; + return yyleng; } /** Get the current token. * */ -char *parser6_get_text (void) +char *yyget_text (void) { - return parser6_text; + return yytext; } /* %if-reentrant */ /* %endif */ /** Set the current line number. - * @param line_number + * @param _line_number line number * */ -void parser6_set_lineno (int line_number ) +void yyset_lineno (int _line_number ) { - parser6_lineno = line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. + * @param _in_str A readable stream. * - * @see parser6__switch_to_buffer + * @see yy_switch_to_buffer */ -void parser6_set_in (FILE * in_str ) +void yyset_in (FILE * _in_str ) { - parser6_in = in_str ; + yyin = _in_str ; } -void parser6_set_out (FILE * out_str ) +void yyset_out (FILE * _out_str ) { - parser6_out = out_str ; + yyout = _out_str ; } -int parser6_get_debug (void) +int yyget_debug (void) { - return parser6__flex_debug; + return yy_flex_debug; } -void parser6_set_debug (int bdebug ) +void yyset_debug (int _bdebug ) { - parser6__flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } /* %endif */ @@ -5082,50 +5337,50 @@ void parser6_set_debug (int bdebug ) static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. - * This function is called from parser6_lex_destroy(), so don't allocate here. + * This function is called from yylex_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; /* Defined in main.c */ #ifdef YY_STDINIT - parser6_in = stdin; - parser6_out = stdout; + yyin = stdin; + yyout = stdout; #else - parser6_in = (FILE *) 0; - parser6_out = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by - * parser6_lex_init() + * yylex_init() */ return 0; } /* %endif */ /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */ -/* parser6_lex_destroy is for both reentrant and non-reentrant scanners. */ -int parser6_lex_destroy (void) +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - parser6__delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; - parser6_pop_buffer_state(); + yypop_buffer_state(); } /* Destroy the stack itself. */ - parser6_free((yy_buffer_stack) ); + yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time - * parser6_lex() is called, initialization will occur. */ + * yylex() is called, initialization will occur. */ yy_init_globals( ); /* %if-reentrant */ @@ -5139,18 +5394,19 @@ int parser6_lex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -5158,13 +5414,14 @@ static int yy_flex_strlen (yyconst char * s ) } #endif -void *parser6_alloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *parser6_realloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -5172,12 +5429,12 @@ void *parser6_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 parser6_free (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see parser6_realloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } /* %if-tables-serialization definitions */ @@ -5187,8 +5444,7 @@ void parser6_free (void * ptr ) /* %ok-for-header */ -#line 1785 "dhcp6_lexer.ll" - +#line 1786 "dhcp6_lexer.ll" using namespace isc::dhcp; @@ -5202,7 +5458,7 @@ Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type) file_ = ""; sfile_ = 0; loc_.initialize(&file_); - parser6__flex_debug = trace_scanning_; + yy_flex_debug = trace_scanning_; YY_BUFFER_STATE buffer; buffer = parser6__scan_bytes(str.c_str(), str.size()); if (!buffer) { @@ -5222,7 +5478,7 @@ Parser6Context::scanFileBegin(FILE * f, file_ = filename; sfile_ = f; loc_.initialize(&file_); - parser6__flex_debug = trace_scanning_; + yy_flex_debug = trace_scanning_; YY_BUFFER_STATE buffer; /* See dhcp6_lexer.cc header for available definitions */ diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index d62f5151fd..ec28d62654 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// A Bison parser, made by GNU Bison 3.0.5. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -35,7 +35,7 @@ // First part of user declarations. -#line 39 "dhcp6_parser.cc" // lalr1.cc:404 +#line 39 "dhcp6_parser.cc" // lalr1.cc:406 # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -49,13 +49,13 @@ // User implementation prologue. -#line 53 "dhcp6_parser.cc" // lalr1.cc:412 +#line 53 "dhcp6_parser.cc" // lalr1.cc:414 // Unqualified %code blocks. -#line 34 "dhcp6_parser.yy" // lalr1.cc:413 +#line 34 "dhcp6_parser.yy" // lalr1.cc:415 #include -#line 59 "dhcp6_parser.cc" // lalr1.cc:413 +#line 59 "dhcp6_parser.cc" // lalr1.cc:415 #ifndef YY_ @@ -106,7 +106,7 @@ { \ *yycdebug_ << Title << ' '; \ yy_print_ (*yycdebug_, Symbol); \ - *yycdebug_ << std::endl; \ + *yycdebug_ << '\n'; \ } \ } while (false) @@ -125,9 +125,9 @@ #else // !PARSER6_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol) -# define YY_REDUCE_PRINT(Rule) static_cast(0) -# define YY_STACK_PRINT() static_cast(0) +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) +# define YY_REDUCE_PRINT(Rule) static_cast (0) +# define YY_STACK_PRINT() static_cast (0) #endif // !PARSER6_DEBUG @@ -139,9 +139,9 @@ #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus_) -#line 14 "dhcp6_parser.yy" // lalr1.cc:479 +#line 14 "dhcp6_parser.yy" // lalr1.cc:481 namespace isc { namespace dhcp { -#line 145 "dhcp6_parser.cc" // lalr1.cc:479 +#line 145 "dhcp6_parser.cc" // lalr1.cc:481 /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -202,24 +202,20 @@ namespace isc { namespace dhcp { // by_state. - inline Dhcp6Parser::by_state::by_state () : state (empty_state) {} - inline Dhcp6Parser::by_state::by_state (const by_state& other) : state (other.state) {} - inline void Dhcp6Parser::by_state::clear () { state = empty_state; } - inline void Dhcp6Parser::by_state::move (by_state& that) { @@ -227,12 +223,10 @@ namespace isc { namespace dhcp { that.clear (); } - inline Dhcp6Parser::by_state::by_state (state_type s) : state (s) {} - inline Dhcp6Parser::symbol_number_type Dhcp6Parser::by_state::type_get () const { @@ -242,16 +236,50 @@ namespace isc { namespace dhcp { return yystos_[state]; } - inline Dhcp6Parser::stack_symbol_type::stack_symbol_type () {} + Dhcp6Parser::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that) + : super_type (that.state, that.location) + { + switch (that.type_get ()) + { + case 185: // value + case 189: // map_value + case 239: // db_type + case 328: // hr_mode + case 464: // duid_type + case 497: // ncr_protocol_value + case 505: // replace_client_name_value + value.copy< ElementPtr > (that.value); + break; + + case 168: // "boolean" + value.copy< bool > (that.value); + break; + + case 167: // "floating point" + value.copy< double > (that.value); + break; + + case 166: // "integer" + value.copy< int64_t > (that.value); + break; + + case 165: // "constant string" + value.copy< std::string > (that.value); + break; + + default: + break; + } + + } - inline Dhcp6Parser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) : super_type (s, that.location) { - switch (that.type_get ()) + switch (that.type_get ()) { case 185: // value case 189: // map_value @@ -287,12 +315,11 @@ namespace isc { namespace dhcp { that.type = empty_symbol; } - inline Dhcp6Parser::stack_symbol_type& Dhcp6Parser::stack_symbol_type::operator= (const stack_symbol_type& that) { state = that.state; - switch (that.type_get ()) + switch (that.type_get ()) { case 185: // value case 189: // map_value @@ -330,7 +357,6 @@ namespace isc { namespace dhcp { template - inline void Dhcp6Parser::yy_destroy_ (const char* yymsg, basic_symbol& yysym) const { @@ -358,79 +384,79 @@ namespace isc { namespace dhcp { { case 165: // "constant string" -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< std::string > (); } -#line 364 "dhcp6_parser.cc" // lalr1.cc:636 +#line 390 "dhcp6_parser.cc" // lalr1.cc:635 break; case 166: // "integer" -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< int64_t > (); } -#line 371 "dhcp6_parser.cc" // lalr1.cc:636 +#line 397 "dhcp6_parser.cc" // lalr1.cc:635 break; case 167: // "floating point" -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< double > (); } -#line 378 "dhcp6_parser.cc" // lalr1.cc:636 +#line 404 "dhcp6_parser.cc" // lalr1.cc:635 break; case 168: // "boolean" -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< bool > (); } -#line 385 "dhcp6_parser.cc" // lalr1.cc:636 +#line 411 "dhcp6_parser.cc" // lalr1.cc:635 break; case 185: // value -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 392 "dhcp6_parser.cc" // lalr1.cc:636 +#line 418 "dhcp6_parser.cc" // lalr1.cc:635 break; case 189: // map_value -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 399 "dhcp6_parser.cc" // lalr1.cc:636 +#line 425 "dhcp6_parser.cc" // lalr1.cc:635 break; case 239: // db_type -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 406 "dhcp6_parser.cc" // lalr1.cc:636 +#line 432 "dhcp6_parser.cc" // lalr1.cc:635 break; case 328: // hr_mode -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 413 "dhcp6_parser.cc" // lalr1.cc:636 +#line 439 "dhcp6_parser.cc" // lalr1.cc:635 break; case 464: // duid_type -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 420 "dhcp6_parser.cc" // lalr1.cc:636 +#line 446 "dhcp6_parser.cc" // lalr1.cc:635 break; case 497: // ncr_protocol_value -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 427 "dhcp6_parser.cc" // lalr1.cc:636 +#line 453 "dhcp6_parser.cc" // lalr1.cc:635 break; case 505: // replace_client_name_value -#line 242 "dhcp6_parser.yy" // lalr1.cc:636 +#line 242 "dhcp6_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 434 "dhcp6_parser.cc" // lalr1.cc:636 +#line 460 "dhcp6_parser.cc" // lalr1.cc:635 break; @@ -441,7 +467,6 @@ namespace isc { namespace dhcp { } #endif - inline void Dhcp6Parser::yypush_ (const char* m, state_type s, symbol_type& sym) { @@ -449,7 +474,6 @@ namespace isc { namespace dhcp { yypush_ (m, t); } - inline void Dhcp6Parser::yypush_ (const char* m, stack_symbol_type& s) { @@ -458,9 +482,8 @@ namespace isc { namespace dhcp { yystack_.push (s); } - inline void - Dhcp6Parser::yypop_ (unsigned int n) + Dhcp6Parser::yypop_ (unsigned n) { yystack_.pop (n); } @@ -492,7 +515,7 @@ namespace isc { namespace dhcp { } #endif // PARSER6_DEBUG - inline Dhcp6Parser::state_type + Dhcp6Parser::state_type Dhcp6Parser::yy_lr_goto_state_ (state_type yystate, int yysym) { int yyr = yypgoto_[yysym - yyntokens_] + yystate; @@ -502,13 +525,13 @@ namespace isc { namespace dhcp { return yydefgoto_[yysym - yyntokens_]; } - inline bool + bool Dhcp6Parser::yy_pact_value_is_default_ (int yyvalue) { return yyvalue == yypact_ninf_; } - inline bool + bool Dhcp6Parser::yy_table_value_is_error_ (int yyvalue) { return yyvalue == yytable_ninf_; @@ -539,7 +562,7 @@ namespace isc { namespace dhcp { // avoid gratuitous conflicts when merging into the master branch. try { - YYCDEBUG << "Starting parse" << std::endl; + YYCDEBUG << "Starting parse\n"; /* Initialize the stack. The initial state will be set in @@ -551,7 +574,7 @@ namespace isc { namespace dhcp { // A new symbol was pushed on the stack. yynewstate: - YYCDEBUG << "Entering state " << yystack_[0].state << std::endl; + YYCDEBUG << "Entering state " << yystack_[0].state << '\n'; // Accept? if (yystack_[0].state == yyfinal_) @@ -624,11 +647,11 @@ namespace isc { namespace dhcp { yylen = yyr2_[yyn]; { stack_symbol_type yylhs; - yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]); + yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]); /* Variants are always initialized to an empty instance of the correct type. The default '$$ = $1' action is NOT applied when using variants. */ - switch (yyr1_[yyn]) + switch (yyr1_[yyn]) { case 185: // value case 189: // map_value @@ -661,10 +684,11 @@ namespace isc { namespace dhcp { } - // Compute the default @$. + // Default location. { slice slice (yystack_, yylen); YYLLOC_DEFAULT (yylhs.location, slice, yylen); + yyerror_range[1].location = yylhs.location; } // Perform the reduction. @@ -674,280 +698,280 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 251 "dhcp6_parser.yy" // lalr1.cc:859 +#line 251 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 680 "dhcp6_parser.cc" // lalr1.cc:859 +#line 704 "dhcp6_parser.cc" // lalr1.cc:856 break; case 4: -#line 252 "dhcp6_parser.yy" // lalr1.cc:859 +#line 252 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.CONFIG; } -#line 686 "dhcp6_parser.cc" // lalr1.cc:859 +#line 710 "dhcp6_parser.cc" // lalr1.cc:856 break; case 6: -#line 253 "dhcp6_parser.yy" // lalr1.cc:859 +#line 253 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.DHCP6; } -#line 692 "dhcp6_parser.cc" // lalr1.cc:859 +#line 716 "dhcp6_parser.cc" // lalr1.cc:856 break; case 8: -#line 254 "dhcp6_parser.yy" // lalr1.cc:859 +#line 254 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 698 "dhcp6_parser.cc" // lalr1.cc:859 +#line 722 "dhcp6_parser.cc" // lalr1.cc:856 break; case 10: -#line 255 "dhcp6_parser.yy" // lalr1.cc:859 +#line 255 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.SUBNET6; } -#line 704 "dhcp6_parser.cc" // lalr1.cc:859 +#line 728 "dhcp6_parser.cc" // lalr1.cc:856 break; case 12: -#line 256 "dhcp6_parser.yy" // lalr1.cc:859 +#line 256 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.POOLS; } -#line 710 "dhcp6_parser.cc" // lalr1.cc:859 +#line 734 "dhcp6_parser.cc" // lalr1.cc:856 break; case 14: -#line 257 "dhcp6_parser.yy" // lalr1.cc:859 +#line 257 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.PD_POOLS; } -#line 716 "dhcp6_parser.cc" // lalr1.cc:859 +#line 740 "dhcp6_parser.cc" // lalr1.cc:856 break; case 16: -#line 258 "dhcp6_parser.yy" // lalr1.cc:859 +#line 258 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.RESERVATIONS; } -#line 722 "dhcp6_parser.cc" // lalr1.cc:859 +#line 746 "dhcp6_parser.cc" // lalr1.cc:856 break; case 18: -#line 259 "dhcp6_parser.yy" // lalr1.cc:859 +#line 259 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.DHCP6; } -#line 728 "dhcp6_parser.cc" // lalr1.cc:859 +#line 752 "dhcp6_parser.cc" // lalr1.cc:856 break; case 20: -#line 260 "dhcp6_parser.yy" // lalr1.cc:859 +#line 260 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.OPTION_DEF; } -#line 734 "dhcp6_parser.cc" // lalr1.cc:859 +#line 758 "dhcp6_parser.cc" // lalr1.cc:856 break; case 22: -#line 261 "dhcp6_parser.yy" // lalr1.cc:859 +#line 261 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.OPTION_DATA; } -#line 740 "dhcp6_parser.cc" // lalr1.cc:859 +#line 764 "dhcp6_parser.cc" // lalr1.cc:856 break; case 24: -#line 262 "dhcp6_parser.yy" // lalr1.cc:859 +#line 262 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 746 "dhcp6_parser.cc" // lalr1.cc:859 +#line 770 "dhcp6_parser.cc" // lalr1.cc:856 break; case 26: -#line 263 "dhcp6_parser.yy" // lalr1.cc:859 +#line 263 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 752 "dhcp6_parser.cc" // lalr1.cc:859 +#line 776 "dhcp6_parser.cc" // lalr1.cc:856 break; case 28: -#line 264 "dhcp6_parser.yy" // lalr1.cc:859 +#line 264 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.LOGGING; } -#line 758 "dhcp6_parser.cc" // lalr1.cc:859 +#line 782 "dhcp6_parser.cc" // lalr1.cc:856 break; case 30: -#line 272 "dhcp6_parser.yy" // lalr1.cc:859 +#line 272 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 764 "dhcp6_parser.cc" // lalr1.cc:859 +#line 788 "dhcp6_parser.cc" // lalr1.cc:856 break; case 31: -#line 273 "dhcp6_parser.yy" // lalr1.cc:859 +#line 273 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } -#line 770 "dhcp6_parser.cc" // lalr1.cc:859 +#line 794 "dhcp6_parser.cc" // lalr1.cc:856 break; case 32: -#line 274 "dhcp6_parser.yy" // lalr1.cc:859 +#line 274 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 776 "dhcp6_parser.cc" // lalr1.cc:859 +#line 800 "dhcp6_parser.cc" // lalr1.cc:856 break; case 33: -#line 275 "dhcp6_parser.yy" // lalr1.cc:859 +#line 275 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 782 "dhcp6_parser.cc" // lalr1.cc:859 +#line 806 "dhcp6_parser.cc" // lalr1.cc:856 break; case 34: -#line 276 "dhcp6_parser.yy" // lalr1.cc:859 +#line 276 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 788 "dhcp6_parser.cc" // lalr1.cc:859 +#line 812 "dhcp6_parser.cc" // lalr1.cc:856 break; case 35: -#line 277 "dhcp6_parser.yy" // lalr1.cc:859 +#line 277 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 794 "dhcp6_parser.cc" // lalr1.cc:859 +#line 818 "dhcp6_parser.cc" // lalr1.cc:856 break; case 36: -#line 278 "dhcp6_parser.yy" // lalr1.cc:859 +#line 278 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 800 "dhcp6_parser.cc" // lalr1.cc:859 +#line 824 "dhcp6_parser.cc" // lalr1.cc:856 break; case 37: -#line 281 "dhcp6_parser.yy" // lalr1.cc:859 +#line 281 "dhcp6_parser.yy" // lalr1.cc:856 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); } -#line 809 "dhcp6_parser.cc" // lalr1.cc:859 +#line 833 "dhcp6_parser.cc" // lalr1.cc:856 break; case 38: -#line 286 "dhcp6_parser.yy" // lalr1.cc:859 +#line 286 "dhcp6_parser.yy" // lalr1.cc:856 { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 820 "dhcp6_parser.cc" // lalr1.cc:859 +#line 844 "dhcp6_parser.cc" // lalr1.cc:856 break; case 39: -#line 291 "dhcp6_parser.yy" // lalr1.cc:859 +#line 291 "dhcp6_parser.yy" // lalr1.cc:856 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 830 "dhcp6_parser.cc" // lalr1.cc:859 +#line 854 "dhcp6_parser.cc" // lalr1.cc:856 break; case 40: -#line 297 "dhcp6_parser.yy" // lalr1.cc:859 +#line 297 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 836 "dhcp6_parser.cc" // lalr1.cc:859 +#line 860 "dhcp6_parser.cc" // lalr1.cc:856 break; case 43: -#line 304 "dhcp6_parser.yy" // lalr1.cc:859 +#line 304 "dhcp6_parser.yy" // lalr1.cc:856 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 845 "dhcp6_parser.cc" // lalr1.cc:859 +#line 869 "dhcp6_parser.cc" // lalr1.cc:856 break; case 44: -#line 308 "dhcp6_parser.yy" // lalr1.cc:859 +#line 308 "dhcp6_parser.yy" // lalr1.cc:856 { // map consisting of a shorter map followed by // comma and string:value ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 855 "dhcp6_parser.cc" // lalr1.cc:859 +#line 879 "dhcp6_parser.cc" // lalr1.cc:856 break; case 45: -#line 315 "dhcp6_parser.yy" // lalr1.cc:859 +#line 315 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 864 "dhcp6_parser.cc" // lalr1.cc:859 +#line 888 "dhcp6_parser.cc" // lalr1.cc:856 break; case 46: -#line 318 "dhcp6_parser.yy" // lalr1.cc:859 +#line 318 "dhcp6_parser.yy" // lalr1.cc:856 { // list parsing complete. Put any sanity checking here } -#line 872 "dhcp6_parser.cc" // lalr1.cc:859 +#line 896 "dhcp6_parser.cc" // lalr1.cc:856 break; case 49: -#line 326 "dhcp6_parser.yy" // lalr1.cc:859 +#line 326 "dhcp6_parser.yy" // lalr1.cc:856 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 881 "dhcp6_parser.cc" // lalr1.cc:859 +#line 905 "dhcp6_parser.cc" // lalr1.cc:856 break; case 50: -#line 330 "dhcp6_parser.yy" // lalr1.cc:859 +#line 330 "dhcp6_parser.yy" // lalr1.cc:856 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 890 "dhcp6_parser.cc" // lalr1.cc:859 +#line 914 "dhcp6_parser.cc" // lalr1.cc:856 break; case 51: -#line 337 "dhcp6_parser.yy" // lalr1.cc:859 +#line 337 "dhcp6_parser.yy" // lalr1.cc:856 { // List parsing about to start } -#line 898 "dhcp6_parser.cc" // lalr1.cc:859 +#line 922 "dhcp6_parser.cc" // lalr1.cc:856 break; case 52: -#line 339 "dhcp6_parser.yy" // lalr1.cc:859 +#line 339 "dhcp6_parser.yy" // lalr1.cc:856 { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 907 "dhcp6_parser.cc" // lalr1.cc:859 +#line 931 "dhcp6_parser.cc" // lalr1.cc:856 break; case 55: -#line 348 "dhcp6_parser.yy" // lalr1.cc:859 +#line 348 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 916 "dhcp6_parser.cc" // lalr1.cc:859 +#line 940 "dhcp6_parser.cc" // lalr1.cc:856 break; case 56: -#line 352 "dhcp6_parser.yy" // lalr1.cc:859 +#line 352 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 925 "dhcp6_parser.cc" // lalr1.cc:859 +#line 949 "dhcp6_parser.cc" // lalr1.cc:856 break; case 57: -#line 363 "dhcp6_parser.yy" // lalr1.cc:859 +#line 363 "dhcp6_parser.yy" // lalr1.cc:856 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 936 "dhcp6_parser.cc" // lalr1.cc:859 +#line 960 "dhcp6_parser.cc" // lalr1.cc:856 break; case 58: -#line 373 "dhcp6_parser.yy" // lalr1.cc:859 +#line 373 "dhcp6_parser.yy" // lalr1.cc:856 { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 947 "dhcp6_parser.cc" // lalr1.cc:859 +#line 971 "dhcp6_parser.cc" // lalr1.cc:856 break; case 59: -#line 378 "dhcp6_parser.yy" // lalr1.cc:859 +#line 378 "dhcp6_parser.yy" // lalr1.cc:856 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -956,11 +980,11 @@ namespace isc { namespace dhcp { // Dhcp6 is required ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 960 "dhcp6_parser.cc" // lalr1.cc:859 +#line 984 "dhcp6_parser.cc" // lalr1.cc:856 break; case 68: -#line 401 "dhcp6_parser.yy" // lalr1.cc:859 +#line 401 "dhcp6_parser.yy" // lalr1.cc:856 { // This code is executed when we're about to start parsing // the content of the map @@ -969,505 +993,505 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP6); } -#line 973 "dhcp6_parser.cc" // lalr1.cc:859 +#line 997 "dhcp6_parser.cc" // lalr1.cc:856 break; case 69: -#line 408 "dhcp6_parser.yy" // lalr1.cc:859 +#line 408 "dhcp6_parser.yy" // lalr1.cc:856 { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 983 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1007 "dhcp6_parser.cc" // lalr1.cc:856 break; case 70: -#line 416 "dhcp6_parser.yy" // lalr1.cc:859 +#line 416 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 993 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1017 "dhcp6_parser.cc" // lalr1.cc:856 break; case 71: -#line 420 "dhcp6_parser.yy" // lalr1.cc:859 +#line 420 "dhcp6_parser.yy" // lalr1.cc:856 { // No global parameter is required // parsing completed } -#line 1002 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1026 "dhcp6_parser.cc" // lalr1.cc:856 break; case 102: -#line 461 "dhcp6_parser.yy" // lalr1.cc:859 +#line 461 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); } -#line 1011 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1035 "dhcp6_parser.cc" // lalr1.cc:856 break; case 103: -#line 466 "dhcp6_parser.yy" // lalr1.cc:859 +#line 466 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1020 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1044 "dhcp6_parser.cc" // lalr1.cc:856 break; case 104: -#line 471 "dhcp6_parser.yy" // lalr1.cc:859 +#line 471 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); } -#line 1029 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1053 "dhcp6_parser.cc" // lalr1.cc:856 break; case 105: -#line 476 "dhcp6_parser.yy" // lalr1.cc:859 +#line 476 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); } -#line 1038 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1062 "dhcp6_parser.cc" // lalr1.cc:856 break; case 106: -#line 481 "dhcp6_parser.yy" // lalr1.cc:859 +#line 481 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1047 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1071 "dhcp6_parser.cc" // lalr1.cc:856 break; case 107: -#line 486 "dhcp6_parser.yy" // lalr1.cc:859 +#line 486 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1058 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1082 "dhcp6_parser.cc" // lalr1.cc:856 break; case 108: -#line 491 "dhcp6_parser.yy" // lalr1.cc:859 +#line 491 "dhcp6_parser.yy" // lalr1.cc:856 { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1068 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1092 "dhcp6_parser.cc" // lalr1.cc:856 break; case 109: -#line 497 "dhcp6_parser.yy" // lalr1.cc:859 +#line 497 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1078 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1102 "dhcp6_parser.cc" // lalr1.cc:856 break; case 110: -#line 501 "dhcp6_parser.yy" // lalr1.cc:859 +#line 501 "dhcp6_parser.yy" // lalr1.cc:856 { // No interfaces config param is required // parsing completed } -#line 1087 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1111 "dhcp6_parser.cc" // lalr1.cc:856 break; case 118: -#line 517 "dhcp6_parser.yy" // lalr1.cc:859 +#line 517 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1098 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1122 "dhcp6_parser.cc" // lalr1.cc:856 break; case 119: -#line 522 "dhcp6_parser.yy" // lalr1.cc:859 +#line 522 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1107 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1131 "dhcp6_parser.cc" // lalr1.cc:856 break; case 120: -#line 527 "dhcp6_parser.yy" // lalr1.cc:859 +#line 527 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1116 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1140 "dhcp6_parser.cc" // lalr1.cc:856 break; case 121: -#line 533 "dhcp6_parser.yy" // lalr1.cc:859 +#line 533 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1127 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1151 "dhcp6_parser.cc" // lalr1.cc:856 break; case 122: -#line 538 "dhcp6_parser.yy" // lalr1.cc:859 +#line 538 "dhcp6_parser.yy" // lalr1.cc:856 { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1138 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1162 "dhcp6_parser.cc" // lalr1.cc:856 break; case 123: -#line 545 "dhcp6_parser.yy" // lalr1.cc:859 +#line 545 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1149 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1173 "dhcp6_parser.cc" // lalr1.cc:856 break; case 124: -#line 550 "dhcp6_parser.yy" // lalr1.cc:859 +#line 550 "dhcp6_parser.yy" // lalr1.cc:856 { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1160 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1184 "dhcp6_parser.cc" // lalr1.cc:856 break; case 125: -#line 557 "dhcp6_parser.yy" // lalr1.cc:859 +#line 557 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1171 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1195 "dhcp6_parser.cc" // lalr1.cc:856 break; case 126: -#line 562 "dhcp6_parser.yy" // lalr1.cc:859 +#line 562 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1180 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1204 "dhcp6_parser.cc" // lalr1.cc:856 break; case 131: -#line 575 "dhcp6_parser.yy" // lalr1.cc:859 +#line 575 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1190 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1214 "dhcp6_parser.cc" // lalr1.cc:856 break; case 132: -#line 579 "dhcp6_parser.yy" // lalr1.cc:859 +#line 579 "dhcp6_parser.yy" // lalr1.cc:856 { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1200 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1224 "dhcp6_parser.cc" // lalr1.cc:856 break; case 153: -#line 609 "dhcp6_parser.yy" // lalr1.cc:859 +#line 609 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.DATABASE_TYPE); } -#line 1208 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1232 "dhcp6_parser.cc" // lalr1.cc:856 break; case 154: -#line 611 "dhcp6_parser.yy" // lalr1.cc:859 +#line 611 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1217 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1241 "dhcp6_parser.cc" // lalr1.cc:856 break; case 155: -#line 616 "dhcp6_parser.yy" // lalr1.cc:859 +#line 616 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1223 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1247 "dhcp6_parser.cc" // lalr1.cc:856 break; case 156: -#line 617 "dhcp6_parser.yy" // lalr1.cc:859 +#line 617 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1229 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1253 "dhcp6_parser.cc" // lalr1.cc:856 break; case 157: -#line 618 "dhcp6_parser.yy" // lalr1.cc:859 +#line 618 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1235 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1259 "dhcp6_parser.cc" // lalr1.cc:856 break; case 158: -#line 619 "dhcp6_parser.yy" // lalr1.cc:859 +#line 619 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1241 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1265 "dhcp6_parser.cc" // lalr1.cc:856 break; case 159: -#line 622 "dhcp6_parser.yy" // lalr1.cc:859 +#line 622 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1249 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1273 "dhcp6_parser.cc" // lalr1.cc:856 break; case 160: -#line 624 "dhcp6_parser.yy" // lalr1.cc:859 +#line 624 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1259 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1283 "dhcp6_parser.cc" // lalr1.cc:856 break; case 161: -#line 630 "dhcp6_parser.yy" // lalr1.cc:859 +#line 630 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1267 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1291 "dhcp6_parser.cc" // lalr1.cc:856 break; case 162: -#line 632 "dhcp6_parser.yy" // lalr1.cc:859 +#line 632 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1277 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1301 "dhcp6_parser.cc" // lalr1.cc:856 break; case 163: -#line 638 "dhcp6_parser.yy" // lalr1.cc:859 +#line 638 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1285 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1309 "dhcp6_parser.cc" // lalr1.cc:856 break; case 164: -#line 640 "dhcp6_parser.yy" // lalr1.cc:859 +#line 640 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1295 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1319 "dhcp6_parser.cc" // lalr1.cc:856 break; case 165: -#line 646 "dhcp6_parser.yy" // lalr1.cc:859 +#line 646 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1304 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1328 "dhcp6_parser.cc" // lalr1.cc:856 break; case 166: -#line 651 "dhcp6_parser.yy" // lalr1.cc:859 +#line 651 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1312 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1336 "dhcp6_parser.cc" // lalr1.cc:856 break; case 167: -#line 653 "dhcp6_parser.yy" // lalr1.cc:859 +#line 653 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1322 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1346 "dhcp6_parser.cc" // lalr1.cc:856 break; case 168: -#line 659 "dhcp6_parser.yy" // lalr1.cc:859 +#line 659 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1331 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1355 "dhcp6_parser.cc" // lalr1.cc:856 break; case 169: -#line 664 "dhcp6_parser.yy" // lalr1.cc:859 +#line 664 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1340 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1364 "dhcp6_parser.cc" // lalr1.cc:856 break; case 170: -#line 669 "dhcp6_parser.yy" // lalr1.cc:859 +#line 669 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1349 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1373 "dhcp6_parser.cc" // lalr1.cc:856 break; case 171: -#line 674 "dhcp6_parser.yy" // lalr1.cc:859 +#line 674 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1358 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1382 "dhcp6_parser.cc" // lalr1.cc:856 break; case 172: -#line 679 "dhcp6_parser.yy" // lalr1.cc:859 +#line 679 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1367 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1391 "dhcp6_parser.cc" // lalr1.cc:856 break; case 173: -#line 684 "dhcp6_parser.yy" // lalr1.cc:859 +#line 684 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("request-timeout", n); } -#line 1376 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1400 "dhcp6_parser.cc" // lalr1.cc:856 break; case 174: -#line 689 "dhcp6_parser.yy" // lalr1.cc:859 +#line 689 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1385 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1409 "dhcp6_parser.cc" // lalr1.cc:856 break; case 175: -#line 694 "dhcp6_parser.yy" // lalr1.cc:859 +#line 694 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1394 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1418 "dhcp6_parser.cc" // lalr1.cc:856 break; case 176: -#line 699 "dhcp6_parser.yy" // lalr1.cc:859 +#line 699 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1402 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1426 "dhcp6_parser.cc" // lalr1.cc:856 break; case 177: -#line 701 "dhcp6_parser.yy" // lalr1.cc:859 +#line 701 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } -#line 1412 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1436 "dhcp6_parser.cc" // lalr1.cc:856 break; case 178: -#line 707 "dhcp6_parser.yy" // lalr1.cc:859 +#line 707 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1421 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1445 "dhcp6_parser.cc" // lalr1.cc:856 break; case 179: -#line 712 "dhcp6_parser.yy" // lalr1.cc:859 +#line 712 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1429 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1453 "dhcp6_parser.cc" // lalr1.cc:856 break; case 180: -#line 714 "dhcp6_parser.yy" // lalr1.cc:859 +#line 714 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1439 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1463 "dhcp6_parser.cc" // lalr1.cc:856 break; case 181: -#line 720 "dhcp6_parser.yy" // lalr1.cc:859 +#line 720 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sanity-checks", m); ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1450 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1474 "dhcp6_parser.cc" // lalr1.cc:856 break; case 182: -#line 725 "dhcp6_parser.yy" // lalr1.cc:859 +#line 725 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1459 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1483 "dhcp6_parser.cc" // lalr1.cc:856 break; case 186: -#line 735 "dhcp6_parser.yy" // lalr1.cc:859 +#line 735 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1467 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1491 "dhcp6_parser.cc" // lalr1.cc:856 break; case 187: -#line 737 "dhcp6_parser.yy" // lalr1.cc:859 +#line 737 "dhcp6_parser.yy" // lalr1.cc:856 { if ( (string(yystack_[0].value.as< std::string > ()) == "none") || @@ -1483,307 +1507,307 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1487 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1511 "dhcp6_parser.cc" // lalr1.cc:856 break; case 188: -#line 753 "dhcp6_parser.yy" // lalr1.cc:859 +#line 753 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("mac-sources", l); ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 1498 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1522 "dhcp6_parser.cc" // lalr1.cc:856 break; case 189: -#line 758 "dhcp6_parser.yy" // lalr1.cc:859 +#line 758 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1507 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1531 "dhcp6_parser.cc" // lalr1.cc:856 break; case 194: -#line 771 "dhcp6_parser.yy" // lalr1.cc:859 +#line 771 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1516 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1540 "dhcp6_parser.cc" // lalr1.cc:856 break; case 195: -#line 776 "dhcp6_parser.yy" // lalr1.cc:859 +#line 776 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1525 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1549 "dhcp6_parser.cc" // lalr1.cc:856 break; case 196: -#line 781 "dhcp6_parser.yy" // lalr1.cc:859 +#line 781 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 1536 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1560 "dhcp6_parser.cc" // lalr1.cc:856 break; case 197: -#line 786 "dhcp6_parser.yy" // lalr1.cc:859 +#line 786 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1545 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1569 "dhcp6_parser.cc" // lalr1.cc:856 break; case 203: -#line 800 "dhcp6_parser.yy" // lalr1.cc:859 +#line 800 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 1554 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1578 "dhcp6_parser.cc" // lalr1.cc:856 break; case 204: -#line 805 "dhcp6_parser.yy" // lalr1.cc:859 +#line 805 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 1563 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1587 "dhcp6_parser.cc" // lalr1.cc:856 break; case 205: -#line 812 "dhcp6_parser.yy" // lalr1.cc:859 +#line 812 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay-supplied-options", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1574 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1598 "dhcp6_parser.cc" // lalr1.cc:856 break; case 206: -#line 817 "dhcp6_parser.yy" // lalr1.cc:859 +#line 817 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1583 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1607 "dhcp6_parser.cc" // lalr1.cc:856 break; case 207: -#line 822 "dhcp6_parser.yy" // lalr1.cc:859 +#line 822 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 1594 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1618 "dhcp6_parser.cc" // lalr1.cc:856 break; case 208: -#line 827 "dhcp6_parser.yy" // lalr1.cc:859 +#line 827 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1603 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1627 "dhcp6_parser.cc" // lalr1.cc:856 break; case 213: -#line 840 "dhcp6_parser.yy" // lalr1.cc:859 +#line 840 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1613 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1637 "dhcp6_parser.cc" // lalr1.cc:856 break; case 214: -#line 844 "dhcp6_parser.yy" // lalr1.cc:859 +#line 844 "dhcp6_parser.yy" // lalr1.cc:856 { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1623 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1647 "dhcp6_parser.cc" // lalr1.cc:856 break; case 215: -#line 850 "dhcp6_parser.yy" // lalr1.cc:859 +#line 850 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1633 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1657 "dhcp6_parser.cc" // lalr1.cc:856 break; case 216: -#line 854 "dhcp6_parser.yy" // lalr1.cc:859 +#line 854 "dhcp6_parser.yy" // lalr1.cc:856 { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1643 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1667 "dhcp6_parser.cc" // lalr1.cc:856 break; case 222: -#line 869 "dhcp6_parser.yy" // lalr1.cc:859 +#line 869 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1651 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1675 "dhcp6_parser.cc" // lalr1.cc:856 break; case 223: -#line 871 "dhcp6_parser.yy" // lalr1.cc:859 +#line 871 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1661 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1685 "dhcp6_parser.cc" // lalr1.cc:856 break; case 224: -#line 877 "dhcp6_parser.yy" // lalr1.cc:859 +#line 877 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1669 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1693 "dhcp6_parser.cc" // lalr1.cc:856 break; case 225: -#line 879 "dhcp6_parser.yy" // lalr1.cc:859 +#line 879 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1678 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1702 "dhcp6_parser.cc" // lalr1.cc:856 break; case 226: -#line 885 "dhcp6_parser.yy" // lalr1.cc:859 +#line 885 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 1689 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1713 "dhcp6_parser.cc" // lalr1.cc:856 break; case 227: -#line 890 "dhcp6_parser.yy" // lalr1.cc:859 +#line 890 "dhcp6_parser.yy" // lalr1.cc:856 { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1699 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1723 "dhcp6_parser.cc" // lalr1.cc:856 break; case 236: -#line 908 "dhcp6_parser.yy" // lalr1.cc:859 +#line 908 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 1708 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1732 "dhcp6_parser.cc" // lalr1.cc:856 break; case 237: -#line 913 "dhcp6_parser.yy" // lalr1.cc:859 +#line 913 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 1717 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1741 "dhcp6_parser.cc" // lalr1.cc:856 break; case 238: -#line 918 "dhcp6_parser.yy" // lalr1.cc:859 +#line 918 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 1726 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1750 "dhcp6_parser.cc" // lalr1.cc:856 break; case 239: -#line 923 "dhcp6_parser.yy" // lalr1.cc:859 +#line 923 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 1735 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1759 "dhcp6_parser.cc" // lalr1.cc:856 break; case 240: -#line 928 "dhcp6_parser.yy" // lalr1.cc:859 +#line 928 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 1744 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1768 "dhcp6_parser.cc" // lalr1.cc:856 break; case 241: -#line 933 "dhcp6_parser.yy" // lalr1.cc:859 +#line 933 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 1753 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1777 "dhcp6_parser.cc" // lalr1.cc:856 break; case 242: -#line 941 "dhcp6_parser.yy" // lalr1.cc:859 +#line 941 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet6", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 1764 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1788 "dhcp6_parser.cc" // lalr1.cc:856 break; case 243: -#line 946 "dhcp6_parser.yy" // lalr1.cc:859 +#line 946 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1773 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1797 "dhcp6_parser.cc" // lalr1.cc:856 break; case 248: -#line 966 "dhcp6_parser.yy" // lalr1.cc:859 +#line 966 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1783 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1807 "dhcp6_parser.cc" // lalr1.cc:856 break; case 249: -#line 970 "dhcp6_parser.yy" // lalr1.cc:859 +#line 970 "dhcp6_parser.yy" // lalr1.cc:856 { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -1805,261 +1829,261 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1809 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1833 "dhcp6_parser.cc" // lalr1.cc:856 break; case 250: -#line 992 "dhcp6_parser.yy" // lalr1.cc:859 +#line 992 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1819 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1843 "dhcp6_parser.cc" // lalr1.cc:856 break; case 251: -#line 996 "dhcp6_parser.yy" // lalr1.cc:859 +#line 996 "dhcp6_parser.yy" // lalr1.cc:856 { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1829 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1853 "dhcp6_parser.cc" // lalr1.cc:856 break; case 274: -#line 1030 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1030 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1837 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1861 "dhcp6_parser.cc" // lalr1.cc:856 break; case 275: -#line 1032 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1032 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 1847 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1871 "dhcp6_parser.cc" // lalr1.cc:856 break; case 276: -#line 1038 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1038 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1855 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1879 "dhcp6_parser.cc" // lalr1.cc:856 break; case 277: -#line 1040 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1040 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 1865 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1889 "dhcp6_parser.cc" // lalr1.cc:856 break; case 278: -#line 1046 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1046 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1873 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1897 "dhcp6_parser.cc" // lalr1.cc:856 break; case 279: -#line 1048 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1048 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 1883 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1907 "dhcp6_parser.cc" // lalr1.cc:856 break; case 280: -#line 1054 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1054 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 1891 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1915 "dhcp6_parser.cc" // lalr1.cc:856 break; case 281: -#line 1056 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1056 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 1901 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1925 "dhcp6_parser.cc" // lalr1.cc:856 break; case 282: -#line 1062 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1062 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("require-client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 1912 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1936 "dhcp6_parser.cc" // lalr1.cc:856 break; case 283: -#line 1067 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1067 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1921 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1945 "dhcp6_parser.cc" // lalr1.cc:856 break; case 284: -#line 1072 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1072 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.RESERVATION_MODE); } -#line 1929 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1953 "dhcp6_parser.cc" // lalr1.cc:856 break; case 285: -#line 1074 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1074 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1938 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1962 "dhcp6_parser.cc" // lalr1.cc:856 break; case 286: -#line 1079 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1079 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 1944 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1968 "dhcp6_parser.cc" // lalr1.cc:856 break; case 287: -#line 1080 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1080 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 1950 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1974 "dhcp6_parser.cc" // lalr1.cc:856 break; case 288: -#line 1081 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1081 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 1956 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1980 "dhcp6_parser.cc" // lalr1.cc:856 break; case 289: -#line 1084 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1084 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 1965 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1989 "dhcp6_parser.cc" // lalr1.cc:856 break; case 290: -#line 1089 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1089 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 1974 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1998 "dhcp6_parser.cc" // lalr1.cc:856 break; case 291: -#line 1097 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1097 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("shared-networks", l); ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 1985 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2009 "dhcp6_parser.cc" // lalr1.cc:856 break; case 292: -#line 1102 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1102 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1994 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2018 "dhcp6_parser.cc" // lalr1.cc:856 break; case 297: -#line 1117 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1117 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2004 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2028 "dhcp6_parser.cc" // lalr1.cc:856 break; case 298: -#line 1121 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1121 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); } -#line 2012 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2036 "dhcp6_parser.cc" // lalr1.cc:856 break; case 318: -#line 1152 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1152 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2023 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2047 "dhcp6_parser.cc" // lalr1.cc:856 break; case 319: -#line 1157 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1157 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2032 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2056 "dhcp6_parser.cc" // lalr1.cc:856 break; case 320: -#line 1165 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1165 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2041 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2065 "dhcp6_parser.cc" // lalr1.cc:856 break; case 321: -#line 1168 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1168 "dhcp6_parser.yy" // lalr1.cc:856 { // parsing completed } -#line 2049 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2073 "dhcp6_parser.cc" // lalr1.cc:856 break; case 326: -#line 1184 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1184 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2059 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2083 "dhcp6_parser.cc" // lalr1.cc:856 break; case 327: -#line 1188 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1188 "dhcp6_parser.yy" // lalr1.cc:856 { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2067,21 +2091,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2071 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2095 "dhcp6_parser.cc" // lalr1.cc:856 break; case 328: -#line 1199 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1199 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2081 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2105 "dhcp6_parser.cc" // lalr1.cc:856 break; case 329: -#line 1203 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1203 "dhcp6_parser.yy" // lalr1.cc:856 { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2089,280 +2113,280 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2093 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2117 "dhcp6_parser.cc" // lalr1.cc:856 break; case 345: -#line 1235 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1235 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2102 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2126 "dhcp6_parser.cc" // lalr1.cc:856 break; case 347: -#line 1242 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1242 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2110 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2134 "dhcp6_parser.cc" // lalr1.cc:856 break; case 348: -#line 1244 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1244 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2120 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2144 "dhcp6_parser.cc" // lalr1.cc:856 break; case 349: -#line 1250 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1250 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2128 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2152 "dhcp6_parser.cc" // lalr1.cc:856 break; case 350: -#line 1252 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1252 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 2138 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2162 "dhcp6_parser.cc" // lalr1.cc:856 break; case 351: -#line 1258 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1258 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2146 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2170 "dhcp6_parser.cc" // lalr1.cc:856 break; case 352: -#line 1260 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1260 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2156 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2180 "dhcp6_parser.cc" // lalr1.cc:856 break; case 354: -#line 1268 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1268 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2164 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2188 "dhcp6_parser.cc" // lalr1.cc:856 break; case 355: -#line 1270 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1270 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2174 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2198 "dhcp6_parser.cc" // lalr1.cc:856 break; case 356: -#line 1276 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1276 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2183 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2207 "dhcp6_parser.cc" // lalr1.cc:856 break; case 357: -#line 1285 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1285 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2194 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2218 "dhcp6_parser.cc" // lalr1.cc:856 break; case 358: -#line 1290 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1290 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2203 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2227 "dhcp6_parser.cc" // lalr1.cc:856 break; case 363: -#line 1309 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1309 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2213 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2237 "dhcp6_parser.cc" // lalr1.cc:856 break; case 364: -#line 1313 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1313 "dhcp6_parser.yy" // lalr1.cc:856 { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2222 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2246 "dhcp6_parser.cc" // lalr1.cc:856 break; case 365: -#line 1321 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1321 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2232 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2256 "dhcp6_parser.cc" // lalr1.cc:856 break; case 366: -#line 1325 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1325 "dhcp6_parser.yy" // lalr1.cc:856 { /// @todo: the code or name parameters are required. // parsing completed } -#line 2241 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2265 "dhcp6_parser.cc" // lalr1.cc:856 break; case 381: -#line 1358 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1358 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2249 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2273 "dhcp6_parser.cc" // lalr1.cc:856 break; case 382: -#line 1360 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1360 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2259 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2283 "dhcp6_parser.cc" // lalr1.cc:856 break; case 385: -#line 1370 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1370 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2268 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2292 "dhcp6_parser.cc" // lalr1.cc:856 break; case 386: -#line 1375 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1375 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2277 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2301 "dhcp6_parser.cc" // lalr1.cc:856 break; case 387: -#line 1383 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1383 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2288 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2312 "dhcp6_parser.cc" // lalr1.cc:856 break; case 388: -#line 1388 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1388 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2297 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2321 "dhcp6_parser.cc" // lalr1.cc:856 break; case 393: -#line 1403 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1403 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2307 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2331 "dhcp6_parser.cc" // lalr1.cc:856 break; case 394: -#line 1407 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1407 "dhcp6_parser.yy" // lalr1.cc:856 { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2317 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2341 "dhcp6_parser.cc" // lalr1.cc:856 break; case 395: -#line 1413 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1413 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2327 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2351 "dhcp6_parser.cc" // lalr1.cc:856 break; case 396: -#line 1417 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1417 "dhcp6_parser.yy" // lalr1.cc:856 { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 2336 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2360 "dhcp6_parser.cc" // lalr1.cc:856 break; case 406: -#line 1435 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1435 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2344 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2368 "dhcp6_parser.cc" // lalr1.cc:856 break; case 407: -#line 1437 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1437 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2354 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2378 "dhcp6_parser.cc" // lalr1.cc:856 break; case 408: -#line 1443 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1443 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2362 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2386 "dhcp6_parser.cc" // lalr1.cc:856 break; case 409: -#line 1445 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1445 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); @@ -2385,19 +2409,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2389 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2413 "dhcp6_parser.cc" // lalr1.cc:856 break; case 410: -#line 1468 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1468 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2397 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2421 "dhcp6_parser.cc" // lalr1.cc:856 break; case 411: -#line 1470 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1470 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -2422,41 +2446,41 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2426 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2450 "dhcp6_parser.cc" // lalr1.cc:856 break; case 412: -#line 1498 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1498 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 2437 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2461 "dhcp6_parser.cc" // lalr1.cc:856 break; case 413: -#line 1503 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1503 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2446 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2470 "dhcp6_parser.cc" // lalr1.cc:856 break; case 418: -#line 1518 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1518 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2456 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2480 "dhcp6_parser.cc" // lalr1.cc:856 break; case 419: -#line 1522 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1522 "dhcp6_parser.yy" // lalr1.cc:856 { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2464,21 +2488,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2468 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2492 "dhcp6_parser.cc" // lalr1.cc:856 break; case 420: -#line 1530 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1530 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2478 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2502 "dhcp6_parser.cc" // lalr1.cc:856 break; case 421: -#line 1534 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1534 "dhcp6_parser.yy" // lalr1.cc:856 { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2486,1091 +2510,1091 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2490 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2514 "dhcp6_parser.cc" // lalr1.cc:856 break; case 435: -#line 1559 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1559 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2498 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2522 "dhcp6_parser.cc" // lalr1.cc:856 break; case 436: -#line 1561 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1561 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 2508 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2532 "dhcp6_parser.cc" // lalr1.cc:856 break; case 437: -#line 1567 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1567 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 2517 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2541 "dhcp6_parser.cc" // lalr1.cc:856 break; case 438: -#line 1572 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1572 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2525 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2549 "dhcp6_parser.cc" // lalr1.cc:856 break; case 439: -#line 1574 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1574 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 2535 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2559 "dhcp6_parser.cc" // lalr1.cc:856 break; case 440: -#line 1580 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1580 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 2544 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2568 "dhcp6_parser.cc" // lalr1.cc:856 break; case 441: -#line 1585 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1585 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 2553 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2577 "dhcp6_parser.cc" // lalr1.cc:856 break; case 442: -#line 1593 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1593 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 2564 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2588 "dhcp6_parser.cc" // lalr1.cc:856 break; case 443: -#line 1598 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1598 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2573 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2597 "dhcp6_parser.cc" // lalr1.cc:856 break; case 448: -#line 1611 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1611 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2583 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2607 "dhcp6_parser.cc" // lalr1.cc:856 break; case 449: -#line 1615 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1615 "dhcp6_parser.yy" // lalr1.cc:856 { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 2592 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2616 "dhcp6_parser.cc" // lalr1.cc:856 break; case 450: -#line 1620 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1620 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2602 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2626 "dhcp6_parser.cc" // lalr1.cc:856 break; case 451: -#line 1624 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1624 "dhcp6_parser.yy" // lalr1.cc:856 { /// @todo: an identifier parameter is required. // parsing completed } -#line 2611 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2635 "dhcp6_parser.cc" // lalr1.cc:856 break; case 467: -#line 1651 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1651 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2622 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2646 "dhcp6_parser.cc" // lalr1.cc:856 break; case 468: -#line 1656 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1656 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2631 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2655 "dhcp6_parser.cc" // lalr1.cc:856 break; case 469: -#line 1661 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1661 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefixes", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2642 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2666 "dhcp6_parser.cc" // lalr1.cc:856 break; case 470: -#line 1666 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1666 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2651 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2675 "dhcp6_parser.cc" // lalr1.cc:856 break; case 471: -#line 1671 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1671 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2659 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2683 "dhcp6_parser.cc" // lalr1.cc:856 break; case 472: -#line 1673 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1673 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 2669 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2693 "dhcp6_parser.cc" // lalr1.cc:856 break; case 473: -#line 1679 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1679 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2677 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2701 "dhcp6_parser.cc" // lalr1.cc:856 break; case 474: -#line 1681 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1681 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 2687 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2711 "dhcp6_parser.cc" // lalr1.cc:856 break; case 475: -#line 1687 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1687 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2695 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2719 "dhcp6_parser.cc" // lalr1.cc:856 break; case 476: -#line 1689 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1689 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 2705 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2729 "dhcp6_parser.cc" // lalr1.cc:856 break; case 477: -#line 1695 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1695 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2713 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2737 "dhcp6_parser.cc" // lalr1.cc:856 break; case 478: -#line 1697 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1697 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 2723 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2747 "dhcp6_parser.cc" // lalr1.cc:856 break; case 479: -#line 1703 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1703 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2734 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2758 "dhcp6_parser.cc" // lalr1.cc:856 break; case 480: -#line 1708 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1708 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2743 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2767 "dhcp6_parser.cc" // lalr1.cc:856 break; case 481: -#line 1716 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1716 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 2754 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2778 "dhcp6_parser.cc" // lalr1.cc:856 break; case 482: -#line 1721 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1721 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2763 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2787 "dhcp6_parser.cc" // lalr1.cc:856 break; case 485: -#line 1730 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1730 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2771 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2795 "dhcp6_parser.cc" // lalr1.cc:856 break; case 486: -#line 1732 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1732 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 2781 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2805 "dhcp6_parser.cc" // lalr1.cc:856 break; case 487: -#line 1741 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1741 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 2792 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2816 "dhcp6_parser.cc" // lalr1.cc:856 break; case 488: -#line 1746 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1746 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2801 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2825 "dhcp6_parser.cc" // lalr1.cc:856 break; case 491: -#line 1755 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1755 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2811 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2835 "dhcp6_parser.cc" // lalr1.cc:856 break; case 492: -#line 1759 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1759 "dhcp6_parser.yy" // lalr1.cc:856 { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2821 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2845 "dhcp6_parser.cc" // lalr1.cc:856 break; case 505: -#line 1784 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1784 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2829 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2853 "dhcp6_parser.cc" // lalr1.cc:856 break; case 506: -#line 1786 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1786 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 2839 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2863 "dhcp6_parser.cc" // lalr1.cc:856 break; case 507: -#line 1792 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1792 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 2848 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2872 "dhcp6_parser.cc" // lalr1.cc:856 break; case 508: -#line 1800 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1800 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-id", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 2859 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2883 "dhcp6_parser.cc" // lalr1.cc:856 break; case 509: -#line 1805 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1805 "dhcp6_parser.yy" // lalr1.cc:856 { // The type parameter is required. ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2870 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2894 "dhcp6_parser.cc" // lalr1.cc:856 break; case 521: -#line 1827 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1827 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.DUID_TYPE); } -#line 2878 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2902 "dhcp6_parser.cc" // lalr1.cc:856 break; case 522: -#line 1829 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1829 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2887 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2911 "dhcp6_parser.cc" // lalr1.cc:856 break; case 523: -#line 1834 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1834 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 2893 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2917 "dhcp6_parser.cc" // lalr1.cc:856 break; case 524: -#line 1835 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1835 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 2899 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2923 "dhcp6_parser.cc" // lalr1.cc:856 break; case 525: -#line 1836 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1836 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 2905 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2929 "dhcp6_parser.cc" // lalr1.cc:856 break; case 526: -#line 1839 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1839 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 2914 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2938 "dhcp6_parser.cc" // lalr1.cc:856 break; case 527: -#line 1844 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1844 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2922 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2946 "dhcp6_parser.cc" // lalr1.cc:856 break; case 528: -#line 1846 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1846 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 2932 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2956 "dhcp6_parser.cc" // lalr1.cc:856 break; case 529: -#line 1852 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1852 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 2941 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2965 "dhcp6_parser.cc" // lalr1.cc:856 break; case 530: -#line 1857 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1857 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 2950 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2974 "dhcp6_parser.cc" // lalr1.cc:856 break; case 531: -#line 1864 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1864 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 2959 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2983 "dhcp6_parser.cc" // lalr1.cc:856 break; case 532: -#line 1871 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1871 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 2970 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2994 "dhcp6_parser.cc" // lalr1.cc:856 break; case 533: -#line 1876 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1876 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2979 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3003 "dhcp6_parser.cc" // lalr1.cc:856 break; case 541: -#line 1892 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1892 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 2987 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3011 "dhcp6_parser.cc" // lalr1.cc:856 break; case 542: -#line 1894 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1894 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 2997 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3021 "dhcp6_parser.cc" // lalr1.cc:856 break; case 543: -#line 1900 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1900 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3005 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3029 "dhcp6_parser.cc" // lalr1.cc:856 break; case 544: -#line 1902 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1902 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 3015 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3039 "dhcp6_parser.cc" // lalr1.cc:856 break; case 545: -#line 1910 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1910 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3026 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3050 "dhcp6_parser.cc" // lalr1.cc:856 break; case 546: -#line 1915 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1915 "dhcp6_parser.yy" // lalr1.cc:856 { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3037 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3061 "dhcp6_parser.cc" // lalr1.cc:856 break; case 547: -#line 1922 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1922 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3047 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3071 "dhcp6_parser.cc" // lalr1.cc:856 break; case 548: -#line 1926 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1926 "dhcp6_parser.yy" // lalr1.cc:856 { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3057 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3081 "dhcp6_parser.cc" // lalr1.cc:856 break; case 570: -#line 1957 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1957 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3066 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3090 "dhcp6_parser.cc" // lalr1.cc:856 break; case 571: -#line 1962 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1962 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3074 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3098 "dhcp6_parser.cc" // lalr1.cc:856 break; case 572: -#line 1964 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1964 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 3084 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3108 "dhcp6_parser.cc" // lalr1.cc:856 break; case 573: -#line 1970 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1970 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3092 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3116 "dhcp6_parser.cc" // lalr1.cc:856 break; case 574: -#line 1972 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1972 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 3102 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3126 "dhcp6_parser.cc" // lalr1.cc:856 break; case 575: -#line 1978 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1978 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3111 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3135 "dhcp6_parser.cc" // lalr1.cc:856 break; case 576: -#line 1983 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1983 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3119 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3143 "dhcp6_parser.cc" // lalr1.cc:856 break; case 577: -#line 1985 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1985 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 3129 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3153 "dhcp6_parser.cc" // lalr1.cc:856 break; case 578: -#line 1991 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1991 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3138 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3162 "dhcp6_parser.cc" // lalr1.cc:856 break; case 579: -#line 1996 "dhcp6_parser.yy" // lalr1.cc:859 +#line 1996 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3147 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3171 "dhcp6_parser.cc" // lalr1.cc:856 break; case 580: -#line 2001 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2001 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NCR_PROTOCOL); } -#line 3155 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3179 "dhcp6_parser.cc" // lalr1.cc:856 break; case 581: -#line 2003 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2003 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3164 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3188 "dhcp6_parser.cc" // lalr1.cc:856 break; case 582: -#line 2009 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2009 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3170 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3194 "dhcp6_parser.cc" // lalr1.cc:856 break; case 583: -#line 2010 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2010 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3176 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3200 "dhcp6_parser.cc" // lalr1.cc:856 break; case 584: -#line 2013 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2013 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NCR_FORMAT); } -#line 3184 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3208 "dhcp6_parser.cc" // lalr1.cc:856 break; case 585: -#line 2015 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2015 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3194 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3218 "dhcp6_parser.cc" // lalr1.cc:856 break; case 586: -#line 2021 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2021 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-include-fqdn", b); } -#line 3203 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3227 "dhcp6_parser.cc" // lalr1.cc:856 break; case 587: -#line 2026 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2026 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3212 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3236 "dhcp6_parser.cc" // lalr1.cc:856 break; case 588: -#line 2031 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2031 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3221 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3245 "dhcp6_parser.cc" // lalr1.cc:856 break; case 589: -#line 2036 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2036 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3229 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3253 "dhcp6_parser.cc" // lalr1.cc:856 break; case 590: -#line 2038 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2038 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3238 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3262 "dhcp6_parser.cc" // lalr1.cc:856 break; case 591: -#line 2044 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2044 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 3246 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3270 "dhcp6_parser.cc" // lalr1.cc:856 break; case 592: -#line 2047 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2047 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 3254 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3278 "dhcp6_parser.cc" // lalr1.cc:856 break; case 593: -#line 2050 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2050 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 3262 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3286 "dhcp6_parser.cc" // lalr1.cc:856 break; case 594: -#line 2053 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2053 "dhcp6_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 3270 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3294 "dhcp6_parser.cc" // lalr1.cc:856 break; case 595: -#line 2056 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2056 "dhcp6_parser.yy" // lalr1.cc:856 { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 3279 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3303 "dhcp6_parser.cc" // lalr1.cc:856 break; case 596: -#line 2062 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2062 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3287 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3311 "dhcp6_parser.cc" // lalr1.cc:856 break; case 597: -#line 2064 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2064 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 3297 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3321 "dhcp6_parser.cc" // lalr1.cc:856 break; case 598: -#line 2070 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2070 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3305 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3329 "dhcp6_parser.cc" // lalr1.cc:856 break; case 599: -#line 2072 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2072 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 3315 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3339 "dhcp6_parser.cc" // lalr1.cc:856 break; case 600: -#line 2078 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2078 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3323 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3347 "dhcp6_parser.cc" // lalr1.cc:856 break; case 601: -#line 2080 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2080 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 3333 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3357 "dhcp6_parser.cc" // lalr1.cc:856 break; case 602: -#line 2088 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2088 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3341 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3365 "dhcp6_parser.cc" // lalr1.cc:856 break; case 603: -#line 2090 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2090 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3350 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3374 "dhcp6_parser.cc" // lalr1.cc:856 break; case 604: -#line 2095 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2095 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3358 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3382 "dhcp6_parser.cc" // lalr1.cc:856 break; case 605: -#line 2097 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2097 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3367 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3391 "dhcp6_parser.cc" // lalr1.cc:856 break; case 606: -#line 2102 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2102 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3375 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3399 "dhcp6_parser.cc" // lalr1.cc:856 break; case 607: -#line 2104 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2104 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3384 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3408 "dhcp6_parser.cc" // lalr1.cc:856 break; case 608: -#line 2115 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2115 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 3395 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3419 "dhcp6_parser.cc" // lalr1.cc:856 break; case 609: -#line 2120 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2120 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3404 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3428 "dhcp6_parser.cc" // lalr1.cc:856 break; case 610: -#line 2125 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2125 "dhcp6_parser.yy" // lalr1.cc:856 { // Parse the Logging map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3414 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3438 "dhcp6_parser.cc" // lalr1.cc:856 break; case 611: -#line 2129 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2129 "dhcp6_parser.yy" // lalr1.cc:856 { // parsing completed } -#line 3422 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3446 "dhcp6_parser.cc" // lalr1.cc:856 break; case 615: -#line 2145 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2145 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 3433 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3457 "dhcp6_parser.cc" // lalr1.cc:856 break; case 616: -#line 2150 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2150 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3442 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3466 "dhcp6_parser.cc" // lalr1.cc:856 break; case 619: -#line 2162 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2162 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 3452 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3476 "dhcp6_parser.cc" // lalr1.cc:856 break; case 620: -#line 2166 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2166 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); } -#line 3460 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3484 "dhcp6_parser.cc" // lalr1.cc:856 break; case 630: -#line 2183 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2183 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 3469 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3493 "dhcp6_parser.cc" // lalr1.cc:856 break; case 631: -#line 2188 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2188 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3477 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3501 "dhcp6_parser.cc" // lalr1.cc:856 break; case 632: -#line 2190 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2190 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 3487 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3511 "dhcp6_parser.cc" // lalr1.cc:856 break; case 633: -#line 2196 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2196 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 3498 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3522 "dhcp6_parser.cc" // lalr1.cc:856 break; case 634: -#line 2201 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2201 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3507 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3531 "dhcp6_parser.cc" // lalr1.cc:856 break; case 637: -#line 2210 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2210 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3517 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3541 "dhcp6_parser.cc" // lalr1.cc:856 break; case 638: -#line 2214 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2214 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); } -#line 3525 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3549 "dhcp6_parser.cc" // lalr1.cc:856 break; case 645: -#line 2228 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2228 "dhcp6_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORD); } -#line 3533 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3557 "dhcp6_parser.cc" // lalr1.cc:856 break; case 646: -#line 2230 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2230 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 3543 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3567 "dhcp6_parser.cc" // lalr1.cc:856 break; case 647: -#line 2236 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2236 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 3552 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3576 "dhcp6_parser.cc" // lalr1.cc:856 break; case 648: -#line 2241 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2241 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 3561 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3585 "dhcp6_parser.cc" // lalr1.cc:856 break; case 649: -#line 2246 "dhcp6_parser.yy" // lalr1.cc:859 +#line 2246 "dhcp6_parser.yy" // lalr1.cc:856 { ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 3570 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3594 "dhcp6_parser.cc" // lalr1.cc:856 break; -#line 3574 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3598 "dhcp6_parser.cc" // lalr1.cc:856 default: break; } @@ -3632,7 +3656,6 @@ namespace isc { namespace dhcp { code. */ if (false) goto yyerrorlab; - yyerror_range[1].location = yystack_[yylen - 1].location; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ yypop_ (yylen); @@ -3706,8 +3729,7 @@ namespace isc { namespace dhcp { } catch (...) { - YYCDEBUG << "Exception caught: cleaning lookahead and stack" - << std::endl; + YYCDEBUG << "Exception caught: cleaning lookahead and stack\n"; // Do not try to display the values of the reclaimed symbols, // as their printer might throw an exception. if (!yyla.empty ()) @@ -3725,7 +3747,7 @@ namespace isc { namespace dhcp { void Dhcp6Parser::error (const syntax_error& yyexc) { - error (yyexc.location, yyexc.what()); + error (yyexc.location, yyexc.what ()); } // Generate an error message. @@ -3801,12 +3823,13 @@ namespace isc { namespace dhcp { case N: \ yyformat = S; \ break - YYCASE_(0, YY_("syntax error")); - YYCASE_(1, YY_("syntax error, unexpected %s")); - YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); + default: // Avoid compiler warnings. + YYCASE_ (0, YY_("syntax error")); + YYCASE_ (1, YY_("syntax error, unexpected %s")); + YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); #undef YYCASE_ } @@ -4824,18 +4847,18 @@ namespace isc { namespace dhcp { i_end = yystack_.end (); i != i_end; ++i) *yycdebug_ << ' ' << i->state; - *yycdebug_ << std::endl; + *yycdebug_ << '\n'; } // Report on the debug stream that the rule \a yyrule is going to be reduced. void Dhcp6Parser::yy_reduce_print_ (int yyrule) { - unsigned int yylno = yyrline_[yyrule]; + unsigned yylno = yyrline_[yyrule]; int yynrhs = yyr2_[yyrule]; // Print the symbols being reduced, and their result. *yycdebug_ << "Reducing stack by rule " << yyrule - 1 - << " (line " << yylno << "):" << std::endl; + << " (line " << yylno << "):\n"; // The symbols being reduced. for (int yyi = 0; yyi < yynrhs; yyi++) YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", @@ -4844,10 +4867,10 @@ namespace isc { namespace dhcp { #endif // PARSER6_DEBUG -#line 14 "dhcp6_parser.yy" // lalr1.cc:1167 +#line 14 "dhcp6_parser.yy" // lalr1.cc:1163 } } // isc::dhcp -#line 4850 "dhcp6_parser.cc" // lalr1.cc:1167 -#line 2251 "dhcp6_parser.yy" // lalr1.cc:1168 +#line 4873 "dhcp6_parser.cc" // lalr1.cc:1163 +#line 2251 "dhcp6_parser.yy" // lalr1.cc:1164 void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 176dbe27fa..c144122950 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// A Bison parser, made by GNU Bison 3.0.5. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -40,7 +40,7 @@ #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED // // "%code requires" blocks. -#line 17 "dhcp6_parser.yy" // lalr1.cc:377 +#line 17 "dhcp6_parser.yy" // lalr1.cc:379 #include #include @@ -52,7 +52,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 56 "dhcp6_parser.h" // lalr1.cc:377 +#line 56 "dhcp6_parser.h" // lalr1.cc:379 # include # include // std::abort @@ -135,9 +135,9 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER6_DEBUG */ -#line 14 "dhcp6_parser.yy" // lalr1.cc:377 +#line 14 "dhcp6_parser.yy" // lalr1.cc:379 namespace isc { namespace dhcp { -#line 141 "dhcp6_parser.h" // lalr1.cc:377 +#line 141 "dhcp6_parser.h" // lalr1.cc:379 @@ -1466,6 +1466,8 @@ namespace isc { namespace dhcp { typedef basic_symbol super_type; /// Construct an empty symbol. stack_symbol_type (); + /// Copy construct. + stack_symbol_type (const stack_symbol_type& that); /// Steal the contents from \a sym to build this. stack_symbol_type (state_type s, symbol_type& sym); /// Assignment, needed by push_back. @@ -1494,7 +1496,7 @@ namespace isc { namespace dhcp { void yypush_ (const char* m, state_type s, symbol_type& sym); /// Pop \a n symbols the three stacks. - void yypop_ (unsigned int n = 1); + void yypop_ (unsigned n = 1); /// Constants. enum @@ -1566,12 +1568,12 @@ namespace isc { namespace dhcp { 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168 }; - const unsigned int user_token_number_max_ = 423; + const unsigned user_token_number_max_ = 423; const token_number_type undef_token_ = 2; - if (static_cast(t) <= yyeof_) + if (static_cast (t) <= yyeof_) return yyeof_; - else if (static_cast (t) <= user_token_number_max_) + else if (static_cast (t) <= user_token_number_max_) return translate_table[t]; else return undef_token_; @@ -1585,19 +1587,17 @@ namespace isc { namespace dhcp { // basic_symbol. template - inline Dhcp6Parser::basic_symbol::basic_symbol () : value () {} template - inline Dhcp6Parser::basic_symbol::basic_symbol (const basic_symbol& other) : Base (other) , value () , location (other.location) { - switch (other.type_get ()) + switch (other.type_get ()) { case 185: // value case 189: // map_value @@ -1631,16 +1631,14 @@ namespace isc { namespace dhcp { } - template - inline Dhcp6Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l) : Base (t) , value () , location (l) { (void) v; - switch (this->type_get ()) + switch (this->type_get ()) { case 185: // value case 189: // map_value @@ -1720,14 +1718,12 @@ namespace isc { namespace dhcp { template - inline Dhcp6Parser::basic_symbol::~basic_symbol () { clear (); } template - inline void Dhcp6Parser::basic_symbol::clear () { @@ -1742,7 +1738,7 @@ namespace isc { namespace dhcp { } // Type destructor. - switch (yytype) + switch (yytype) { case 185: // value case 189: // map_value @@ -1778,7 +1774,6 @@ namespace isc { namespace dhcp { } template - inline bool Dhcp6Parser::basic_symbol::empty () const { @@ -1786,12 +1781,11 @@ namespace isc { namespace dhcp { } template - inline void Dhcp6Parser::basic_symbol::move (basic_symbol& s) { - super_type::move(s); - switch (this->type_get ()) + super_type::move (s); + switch (this->type_get ()) { case 185: // value case 189: // map_value @@ -2898,9 +2892,9 @@ namespace isc { namespace dhcp { } -#line 14 "dhcp6_parser.yy" // lalr1.cc:377 +#line 14 "dhcp6_parser.yy" // lalr1.cc:379 } } // isc::dhcp -#line 2904 "dhcp6_parser.h" // lalr1.cc:377 +#line 2898 "dhcp6_parser.h" // lalr1.cc:379 diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index 239704683c..90bc3ab473 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,8 +1,9 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// Generated 201808161137 +// A Bison parser, made by GNU Bison 3.0.5. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -40,9 +41,9 @@ # include "position.hh" -#line 14 "dhcp6_parser.yy" // location.cc:296 +#line 14 "dhcp6_parser.yy" // location.cc:292 namespace isc { namespace dhcp { -#line 46 "location.hh" // location.cc:296 +#line 46 "location.hh" // location.cc:292 /// Abstract a location. class location { @@ -52,30 +53,27 @@ namespace isc { namespace dhcp { location (const position& b, const position& e) : begin (b) , end (e) - { - } + {} /// Construct a 0-width location in \a p. explicit location (const position& p = position ()) : begin (p) , end (p) - { - } + {} /// Construct a 0-width location in \a f, \a l, \a c. explicit location (std::string* f, - unsigned int l = 1u, - unsigned int c = 1u) + unsigned l = 1u, + unsigned c = 1u) : begin (f, l, c) , end (f, l, c) - { - } + {} /// Initialization. void initialize (std::string* f = YY_NULLPTR, - unsigned int l = 1u, - unsigned int c = 1u) + unsigned l = 1u, + unsigned c = 1u) { begin.initialize (f, l, c); end = begin; @@ -173,7 +171,7 @@ namespace isc { namespace dhcp { inline std::basic_ostream& operator<< (std::basic_ostream& ostr, const location& loc) { - unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; + unsigned end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; ostr << loc.begin; if (loc.end.filename && (!loc.begin.filename @@ -186,7 +184,7 @@ namespace isc { namespace dhcp { return ostr; } -#line 14 "dhcp6_parser.yy" // location.cc:296 +#line 14 "dhcp6_parser.yy" // location.cc:292 } } // isc::dhcp -#line 192 "location.hh" // location.cc:296 +#line 189 "location.hh" // location.cc:292 #endif // !YY_PARSER6_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp6/position.hh b/src/bin/dhcp6/position.hh index 2ee80e6d0a..fe59c7dad0 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,8 +1,9 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// Generated 201808161137 +// A Bison parser, made by GNU Bison 3.0.5. // Positions for Bison parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -50,28 +51,27 @@ # endif # endif -#line 14 "dhcp6_parser.yy" // location.cc:296 +#line 14 "dhcp6_parser.yy" // location.cc:292 namespace isc { namespace dhcp { -#line 56 "position.hh" // location.cc:296 +#line 56 "position.hh" // location.cc:292 /// Abstract a position. class position { public: /// Construct a position. explicit position (std::string* f = YY_NULLPTR, - unsigned int l = 1u, - unsigned int c = 1u) + unsigned l = 1u, + unsigned c = 1u) : filename (f) , line (l) , column (c) - { - } + {} /// Initialization. void initialize (std::string* fn = YY_NULLPTR, - unsigned int l = 1u, - unsigned int c = 1u) + unsigned l = 1u, + unsigned c = 1u) { filename = fn; line = l; @@ -100,15 +100,15 @@ namespace isc { namespace dhcp { /// File name to which this position refers. std::string* filename; /// Current line number. - unsigned int line; + unsigned line; /// Current column number. - unsigned int column; + unsigned column; private: /// Compute max(min, lhs+rhs) (provided min <= lhs). - static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min) + static unsigned add_ (unsigned lhs, int rhs, unsigned min) { - return (0 < rhs || -static_cast(rhs) < lhs + return (0 < rhs || -static_cast(rhs) < lhs ? rhs + lhs : min); } @@ -174,7 +174,7 @@ namespace isc { namespace dhcp { return ostr << pos.line << '.' << pos.column; } -#line 14 "dhcp6_parser.yy" // location.cc:296 +#line 14 "dhcp6_parser.yy" // location.cc:292 } } // isc::dhcp -#line 180 "position.hh" // location.cc:296 +#line 179 "position.hh" // location.cc:292 #endif // !YY_PARSER6_POSITION_HH_INCLUDED diff --git a/src/bin/dhcp6/stack.hh b/src/bin/dhcp6/stack.hh index db2863a06e..d7903574e6 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,8 +1,9 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// Generated 201808161137 +// A Bison parser, made by GNU Bison 3.0.5. // Stack handling for Bison parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -40,9 +41,10 @@ # include -#line 14 "dhcp6_parser.yy" // stack.hh:132 +#line 14 "dhcp6_parser.yy" // stack.hh:131 namespace isc { namespace dhcp { -#line 46 "stack.hh" // stack.hh:132 +#line 46 "stack.hh" // stack.hh:131 + /// A stack with random access from its top. template > class stack { @@ -57,20 +59,24 @@ namespace isc { namespace dhcp { seq_.reserve (200); } - stack (unsigned int n) + stack (unsigned n) : seq_ (n) {} - inline + /// Random access. + /// + /// Index 0 returns the topmost element. T& - operator[] (unsigned int i) + operator[] (unsigned i) { return seq_[seq_.size () - 1 - i]; } - inline + /// Random access. + /// + /// Index 0 returns the topmost element. const T& - operator[] (unsigned int i) const + operator[] (unsigned i) const { return seq_[seq_.size () - 1 - i]; } @@ -78,7 +84,6 @@ namespace isc { namespace dhcp { /// Steal the contents of \a t. /// /// Close to move-semantics. - inline void push (T& t) { @@ -86,9 +91,8 @@ namespace isc { namespace dhcp { operator[](0).move (t); } - inline void - pop (unsigned int n = 1) + pop (unsigned n = 1) { for (; n; --n) seq_.pop_back (); @@ -100,21 +104,18 @@ namespace isc { namespace dhcp { seq_.clear (); } - inline typename S::size_type size () const { return seq_.size (); } - inline const_iterator begin () const { return seq_.rbegin (); } - inline const_iterator end () const { @@ -133,25 +134,24 @@ namespace isc { namespace dhcp { class slice { public: - slice (const S& stack, unsigned int range) + slice (const S& stack, unsigned range) : stack_ (stack) , range_ (range) {} - inline const T& - operator [] (unsigned int i) const + operator [] (unsigned i) const { return stack_[range_ - i]; } private: const S& stack_; - unsigned int range_; + unsigned range_; }; -#line 14 "dhcp6_parser.yy" // stack.hh:132 +#line 14 "dhcp6_parser.yy" // stack.hh:131 } } // isc::dhcp -#line 156 "stack.hh" // stack.hh:132 +#line 155 "stack.hh" // stack.hh:131 #endif // !YY_PARSER6_STACK_HH_INCLUDED