diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 85eaea0a67..33a013123e 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -1,13 +1,12 @@ -#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 @@ -36,7 +35,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 1 +#define YY_FLEX_SUBMINOR_VERSION 3 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -45,11 +44,88 @@ /* %endif */ /* %if-c-only */ - + #define yy_create_buffer parser4__create_buffer + + #define yy_delete_buffer parser4__delete_buffer + + #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 yylex parser4_lex + + #define yyrestart parser4_restart + + #define yylex_init parser4_lex_init + + #define yylex_init_extra parser4_lex_init_extra + + #define yylex_destroy parser4_lex_destroy + + #define yyget_debug parser4_get_debug + + #define yyset_debug parser4_set_debug + + #define yyget_extra parser4_get_extra + + #define yyset_extra parser4_set_extra + + #define yyget_in parser4_get_in + + #define yyset_in parser4_set_in + + #define yyget_out parser4_get_out + + #define yyset_out parser4_set_out + + #define yyget_leng parser4_get_leng + + #define yyget_text parser4_get_text + + #define yyget_lineno parser4_get_lineno + + #define yyset_lineno parser4_set_lineno + + #define yywrap parser4_wrap + /* %endif */ + #define yyalloc parser4_alloc + + #define yyrealloc parser4_realloc + + #define yyfree parser4_free + /* %if-c-only */ + #define yytext parser4_text + + #define yyleng parser4_leng + + #define yyin parser4_in + + #define yyout parser4_out + + #define yy_flex_debug parser4__flex_debug + + #define yylineno parser4_lineno + /* %endif */ /* First, we deal with platform-specific or compiler-specific issues. */ @@ -146,19 +222,15 @@ typedef unsigned int flex_uint32_t; #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 */ @@ -173,20 +245,16 @@ 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_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -229,7 +297,7 @@ extern FILE *parser4_in, *parser4_out; #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) @@ -246,7 +314,6 @@ extern FILE *parser4_in, *parser4_out; YY_DO_BEFORE_ACTION; /* set up parser4_text again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -294,7 +361,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. */ @@ -321,7 +388,6 @@ struct yy_buffer_state /* %if-c-only Standard (non-C++) definition */ /* %not-for-header */ - /* %if-not-reentrant */ /* Stack of input buffers. */ @@ -342,7 +408,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -352,7 +417,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* %if-not-reentrant */ /* %not-for-header */ - /* yy_hold_char holds the character lost when parser4_text is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ @@ -371,32 +435,30 @@ static int yy_did_buffer_switch_on_eof; /* %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 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 ); #define YY_FLUSH_BUFFER parser4__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,int len ); +YY_BUFFER_STATE parser4__scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE parser4__scan_string ( const char *yy_str ); +YY_BUFFER_STATE parser4__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 * ); +void *parser4_alloc ( yy_size_t ); +void *parser4_realloc ( void *, yy_size_t ); +void parser4_free ( void * ); #define yy_new_buffer parser4__create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -406,7 +468,6 @@ void parser4_free (void * ); } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -416,7 +477,6 @@ void parser4_free (void * ); } \ 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 */ @@ -426,15 +486,13 @@ void parser4_free (void * ); #define YY_SKIP_YYWRAP #define FLEX_DEBUG - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; FILE *parser4_in = NULL, *parser4_out = NULL; typedef int yy_state_type; extern int parser4_lineno; - int parser4_lineno = 1; extern char *parser4_text; @@ -447,10 +505,10 @@ extern char *parser4_text; /* %if-c-only Standard (non-C++) definition */ -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yynoreturn yy_fatal_error (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 */ @@ -465,10 +523,9 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ); *yy_cp = '\0'; \ /* %% [3.0] code to copy yytext_ptr to parser4_text[] 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 142 -#define YY_END_OF_BUFFER 143 +#define YY_NUM_RULES 145 +#define YY_END_OF_BUFFER 146 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -476,139 +533,143 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1164] = +static const flex_int16_t yy_accept[1192] = { 0, - 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, - 143, 141, 10, 11, 141, 1, 135, 132, 135, 135, - 141, 134, 133, 141, 141, 141, 141, 141, 128, 129, - 141, 141, 141, 130, 131, 5, 5, 5, 141, 141, - 141, 10, 11, 0, 0, 124, 0, 0, 0, 0, + 138, 138, 0, 0, 0, 0, 0, 0, 0, 0, + 146, 144, 10, 11, 144, 1, 138, 135, 138, 138, + 144, 137, 136, 144, 144, 144, 144, 144, 131, 132, + 144, 144, 144, 133, 134, 5, 5, 5, 144, 144, + 144, 10, 11, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 135, 135, - 0, 134, 135, 3, 2, 6, 0, 135, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 125, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 138, + 138, 0, 137, 138, 3, 2, 6, 0, 138, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, + + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 140, 138, 0, 137, 136, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 106, 0, 105, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 141, 0, 140, 139, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, + 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, - 0, 139, 136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 107, 0, 0, 109, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 0, 0, 0, 41, 0, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 142, 139, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 110, 0, 0, 112, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, + 0, 0, 0, 44, 0, 0, 0, 0, 66, 0, + 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 46, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 21, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 12, 117, 0, 114, 0, + 113, 0, 0, 0, 0, 75, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 45, 0, 0, 0, 0, 0, 0, 0, 76, + 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, + 0, 0, 7, 0, 0, 115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 48, 0, 0, 0, 0, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 80, 57, 0, 0, 0, + 22, 0, 0, 0, 0, 0, 0, 0, 0, 30, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, - 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 61, 21, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 12, - 114, 0, 111, 0, 110, 0, 0, 0, 0, 72, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, - 0, 73, 0, 0, 0, 0, 0, 0, 0, 68, - 0, 0, 0, 0, 7, 0, 0, 112, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 45, 0, 0, 0, 0, 0, 0, 0, 53, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 77, 54, 0, 0, 0, 22, 0, 0, - 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, - 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 0, 0, 0, 20, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, - 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 94, 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, - 66, 0, 0, 0, 69, 57, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, - 0, 17, 0, 74, 0, 0, 0, 0, 0, 98, - 0, 0, 0, 38, 0, 0, 0, 76, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 121, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 95, - 0, 93, 88, 87, 0, 0, 0, 0, 0, 108, - 0, 0, 0, 60, 0, 0, 0, 0, 0, 85, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 0, 0, 31, 0, 0, 0, 0, 97, 0, 0, - 0, 0, 49, 35, 0, 70, 0, 0, 62, 0, - 0, 44, 0, 116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 70, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 0, 0, 0, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 97, 0, 0, 95, 0, 0, 0, 0, 0, + 0, 0, 121, 0, 0, 0, 0, 0, 69, 0, + 0, 0, 0, 0, 72, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, + 0, 17, 0, 77, 0, 0, 0, 0, 0, 101, + 0, 0, 0, 41, 0, 0, 0, 79, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 59, 0, 86, 0, 0, 119, - 90, 0, 0, 0, 0, 0, 0, 19, 0, 18, - 0, 96, 0, 0, 55, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 75, 0, 0, 120, 0, - 0, 0, 0, 0, 0, 0, 0, 122, 0, 117, - 113, 0, 0, 0, 14, 0, 0, 104, 0, 0, - 0, 0, 83, 0, 0, 0, 0, 0, 50, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, - 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 82, 0, 101, 0, 0, 0, 100, 99, - 0, 0, 0, 81, 0, 0, 0, 103, 0, 0, + 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 124, 42, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, + 0, 98, 0, 96, 91, 90, 0, 0, 0, 0, + 0, 111, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 0, 0, 31, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 52, 38, 0, 73, + 0, 0, 65, 0, 0, 47, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, - 0, 0, 0, 0, 79, 84, 36, 0, 0, 0, - 78, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 80, 0 + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, + 62, 0, 35, 34, 89, 0, 0, 122, 93, 0, + 0, 0, 0, 0, 0, 19, 0, 18, 0, 99, + 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, + 0, 36, 0, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 0, 78, 0, 0, 123, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 0, 120, 116, 0, + 0, 0, 14, 0, 0, 107, 0, 0, 0, 0, + + 86, 0, 0, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 13, 0, 0, 0, 94, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 85, 0, 104, 0, 0, 0, 103, 102, 0, 0, + 0, 84, 0, 0, 0, 106, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, + 0, 0, 82, 87, 39, 0, 0, 0, 81, 0, + 0, 0, 0, 0, 0, 0, 55, 0, 0, 83, + 0 + } ; -static yyconst YY_CHAR 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, @@ -640,7 +701,7 @@ static yyconst YY_CHAR yy_ec[256] = 5, 5, 5, 5, 5 } ; -static yyconst YY_CHAR 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, @@ -652,469 +713,480 @@ static yyconst YY_CHAR yy_meta[72] = 3 } ; -static yyconst flex_uint16_t yy_base[1176] = +static const flex_int16_t yy_base[1204] = { 0, 0, 70, 19, 29, 41, 49, 52, 58, 87, 95, - 1525, 1526, 32, 1521, 141, 0, 201, 1526, 206, 88, - 11, 213, 1526, 1503, 114, 25, 2, 6, 1526, 1526, - 73, 11, 17, 1526, 1526, 1526, 104, 1509, 1464, 0, - 1501, 107, 1516, 217, 247, 1526, 1460, 185, 1466, 93, - 58, 1458, 91, 209, 200, 14, 273, 190, 1457, 181, - 186, 189, 223, 1466, 66, 206, 232, 204, 294, 256, - 216, 1449, 78, 268, 300, 300, 1468, 0, 329, 344, - 356, 364, 359, 1526, 0, 1526, 273, 335, 300, 335, - 289, 353, 354, 299, 1526, 1465, 1504, 1526, 260, 1526, + 1554, 1555, 32, 1550, 141, 0, 201, 1555, 206, 88, + 11, 213, 1555, 1532, 114, 25, 2, 6, 1555, 1555, + 73, 11, 17, 1555, 1555, 1555, 104, 1538, 1493, 0, + 1530, 107, 1545, 217, 247, 1555, 1489, 185, 1495, 93, + 58, 1487, 91, 209, 200, 14, 273, 190, 1486, 181, + 186, 189, 223, 1495, 66, 206, 1494, 232, 204, 294, + 256, 216, 1477, 78, 268, 300, 300, 1496, 0, 329, + 344, 356, 364, 359, 1555, 0, 1555, 273, 335, 300, + 335, 289, 353, 354, 299, 1555, 1493, 1532, 1555, 311, - 375, 1493, 328, 1462, 356, 355, 1457, 350, 359, 357, - 363, 371, 1500, 0, 426, 359, 1444, 1446, 1442, 1450, - 74, 1446, 1435, 1436, 89, 1452, 1445, 1445, 213, 1436, - 1430, 1436, 343, 1481, 1485, 1427, 1478, 1444, 1441, 1441, - 1435, 336, 1428, 1421, 1426, 1420, 363, 1417, 1416, 1430, - 365, 1416, 373, 1432, 351, 399, 372, 1429, 1430, 1428, - 1410, 1412, 421, 1404, 1421, 1413, 0, 421, 430, 398, - 426, 434, 439, 1412, 1526, 0, 1455, 446, 1406, 431, - 427, 1414, 443, 1457, 444, 1456, 446, 1455, 1526, 490, - 1402, 456, 1415, 1395, 1411, 1408, 1407, 438, 1448, 1442, + 1555, 375, 1521, 328, 1490, 356, 355, 1485, 350, 359, + 357, 363, 371, 1528, 0, 426, 359, 1472, 1474, 1470, + 1478, 74, 1474, 1463, 1464, 89, 1480, 1473, 1473, 213, + 1464, 1458, 1464, 343, 1509, 1513, 1455, 1506, 1448, 1471, + 1468, 1468, 1462, 336, 1455, 1448, 1453, 1447, 363, 1444, + 1443, 1457, 365, 1443, 373, 1459, 351, 399, 372, 1456, + 1457, 1455, 1437, 1439, 421, 1431, 1448, 1440, 0, 421, + 430, 398, 426, 434, 439, 1439, 1555, 0, 1482, 446, + 1433, 431, 427, 1441, 443, 1484, 444, 1483, 446, 1482, + 1555, 490, 1429, 456, 1442, 1422, 1438, 1435, 1434, 438, - 1408, 1387, 1395, 1390, 1401, 1389, 1401, 1401, 1392, 1381, - 1394, 1394, 1386, 1376, 1394, 1526, 1389, 1392, 1373, 1423, - 1372, 1382, 1385, 1419, 1380, 1368, 1379, 1415, 1362, 1372, - 1364, 1361, 1377, 1358, 1357, 1363, 1354, 1353, 1360, 1362, - 1407, 1365, 1359, 273, 1366, 1361, 1353, 1359, 1359, 1340, - 1356, 1349, 1356, 1344, 1337, 1351, 1392, 1353, 1335, 1343, - 454, 1526, 1526, 461, 1526, 1526, 1330, 0, 445, 442, - 502, 471, 1387, 1340, 433, 1526, 1385, 1526, 1379, 526, - 1323, 459, 1320, 1376, 1322, 1328, 1378, 1335, 1321, 1526, - 1332, 1374, 1329, 1326, 391, 1371, 1365, 1320, 1315, 1312, + 1475, 1469, 1435, 1414, 1422, 1417, 1428, 1416, 1428, 1428, + 1419, 1408, 1421, 1421, 1413, 1403, 1421, 1555, 1416, 1419, + 1400, 1399, 1449, 1398, 1408, 1411, 1445, 1406, 1394, 1405, + 1441, 1388, 1398, 1390, 1387, 1403, 1384, 1383, 1389, 1380, + 1379, 1386, 1388, 1433, 1391, 1385, 211, 1392, 1387, 1379, + 1385, 1385, 1366, 1382, 1375, 1382, 1370, 1363, 1377, 1418, + 1379, 1361, 1369, 454, 1555, 1555, 461, 1555, 1555, 1356, + 0, 279, 439, 502, 471, 1413, 1366, 433, 1555, 1411, + 1555, 1405, 526, 1349, 442, 1346, 1402, 1348, 1354, 1404, + 1361, 438, 1555, 1359, 1401, 1356, 1353, 391, 1398, 1392, - 1321, 1310, 1359, 1307, 519, 1321, 1306, 1319, 1317, 1312, - 1319, 1314, 1310, 460, 1308, 1304, 1352, 473, 1346, 1298, - 1291, 1293, 1297, 1286, 1299, 493, 1344, 1299, 1296, 1300, - 1526, 1288, 1288, 1300, 1282, 1274, 1275, 1296, 1278, 1290, - 1289, 1275, 1287, 1286, 1285, 1326, 1325, 1526, 1269, 517, - 1282, 1526, 1526, 1281, 0, 1270, 1262, 495, 1319, 1318, - 1276, 1316, 1526, 1264, 1314, 1526, 501, 568, 1308, 525, - 1312, 1268, 1264, 1252, 1526, 1268, 1255, 1254, 1526, 1256, - 1253, 499, 1251, 1526, 1262, 1259, 1244, 1257, 1293, 1259, - 1241, 1290, 1526, 1239, 1255, 1287, 1250, 1247, 1248, 1283, + 1347, 1342, 1339, 1348, 1337, 1386, 1334, 519, 1348, 1333, + 1346, 1333, 1343, 1338, 1345, 1340, 1336, 437, 1334, 1330, + 1378, 472, 1372, 1324, 1317, 1319, 1323, 1312, 1325, 502, + 1370, 1325, 1322, 1326, 1555, 1314, 1314, 1326, 1308, 1300, + 1301, 1322, 1304, 1316, 1315, 1301, 1313, 1312, 1311, 1352, + 1351, 1555, 1295, 516, 1308, 1555, 1555, 1307, 0, 1296, + 1288, 494, 1345, 1344, 1302, 1342, 1555, 1290, 1340, 1555, + 523, 569, 1334, 495, 1338, 1294, 1290, 1278, 1555, 1294, + 1293, 1280, 1279, 1555, 1281, 1278, 496, 1276, 1555, 1287, + 1284, 1269, 1282, 1318, 1284, 1266, 1315, 1555, 1264, 1280, - 1236, 1231, 1230, 1279, 1225, 1240, 1232, 1280, 1526, 1227, - 1223, 1221, 1225, 1218, 1228, 1231, 1220, 1215, 1526, 1270, - 1526, 1214, 1225, 1262, 1215, 1224, 1218, 1222, 1262, 1256, - 1220, 1200, 1203, 1202, 1210, 1198, 1254, 1196, 1526, 1526, - 1201, 1526, 1211, 1245, 1207, 0, 1191, 1208, 1246, 1526, - 1526, 1194, 1526, 1200, 1526, 522, 534, 1203, 557, 1526, - 1196, 1184, 1235, 1182, 1189, 1182, 1194, 1193, 1193, 1181, - 1222, 1182, 1225, 1171, 1187, 1172, 1169, 1183, 1175, 1181, - 1172, 1180, 1165, 1181, 1163, 1176, 1159, 1153, 1158, 1173, - 1170, 1171, 1168, 1526, 1154, 1156, 1165, 1201, 502, 1164, + 1312, 1275, 1272, 1273, 1275, 1307, 1260, 1255, 1254, 1303, + 1249, 1264, 1256, 1304, 1555, 1251, 1247, 1245, 1249, 1242, + 1252, 1255, 1244, 1239, 1555, 1294, 1555, 1238, 1249, 1286, + 1239, 1248, 1242, 1246, 1286, 1280, 1244, 1224, 1227, 1226, + 1234, 1222, 1278, 1220, 1555, 1555, 1225, 1555, 1235, 1269, + 1231, 0, 1215, 1232, 1270, 1555, 1555, 1218, 1555, 1224, + 1555, 501, 500, 1227, 554, 1555, 1220, 1208, 1259, 1206, + 1205, 1212, 1205, 1217, 1216, 1216, 1204, 1245, 1205, 1248, + 1194, 1210, 1195, 1192, 1206, 1198, 1204, 1195, 1203, 1188, + 1204, 1186, 1200, 1198, 1181, 1175, 1180, 1195, 1192, 1193, - 1147, 1148, 1145, 1526, 1159, 1138, 1159, 1149, 1192, 1146, - 1190, 1526, 1137, 1151, 1154, 1186, 1185, 1132, 1183, 1526, - 14, 1145, 1134, 1136, 1526, 1142, 1132, 1526, 1126, 1181, - 534, 518, 1131, 1133, 1129, 1172, 510, 1171, 1170, 1124, - 1114, 1167, 1120, 1130, 1164, 1122, 1109, 1117, 1160, 1122, - 1121, 1122, 1115, 1104, 1117, 1120, 1115, 1116, 1113, 1116, - 1111, 1152, 1151, 1101, 1091, 1099, 1147, 1096, 1088, 1089, - 1102, 1526, 1090, 1099, 1098, 1098, 1138, 1081, 1090, 1083, - 1072, 1076, 1127, 1074, 1084, 1124, 1071, 526, 547, 1065, - 539, 1526, 1126, 1084, 1073, 1077, 1067, 1079, 1120, 1526, + 1190, 1555, 1176, 1178, 1187, 1223, 556, 1186, 1169, 1170, + 1167, 1555, 1181, 1160, 1181, 1171, 1214, 1168, 1212, 1555, + 1159, 1173, 1176, 1208, 1207, 1154, 1205, 1555, 14, 1167, + 1156, 1158, 1555, 1164, 1154, 1555, 1148, 1203, 533, 498, + 1153, 1155, 1151, 1194, 517, 1193, 534, 1192, 1146, 1136, + 1189, 1142, 1152, 1186, 1144, 1131, 1139, 1182, 1144, 1143, + 1144, 1137, 1126, 1139, 1142, 1137, 1138, 1135, 1134, 1137, + 1132, 1173, 1172, 1122, 1112, 1120, 1168, 1117, 1109, 1110, + 1123, 1555, 1111, 1120, 1119, 1119, 1159, 1102, 1111, 1104, + 1093, 1097, 1148, 1095, 1105, 1145, 1092, 527, 546, 1086, - 1114, 543, 1072, 1066, 1074, 1069, 1065, 1072, 1055, 1055, - 1072, 1067, 1055, 1051, 1058, 1052, 1062, 1050, 1064, 1052, - 1060, 1058, 1049, 1058, 1054, 1095, 1037, 1037, 1050, 1035, - 1033, 1034, 1526, 1526, 1042, 1045, 1048, 1526, 1047, 1032, - 1024, 434, 1029, 1076, 1025, 1079, 1526, 1024, 1026, 1026, - 1075, 1028, 1016, 1010, 1021, 1030, 1023, 1015, 1015, 1014, - 1012, 1012, 1063, 1024, 999, 1526, 1055, 1002, 1015, 1014, - 999, 1526, 568, 540, 1013, 1014, 1048, 1011, 1013, 1050, - 1003, 996, 990, 997, 990, 1044, 1001, 990, 990, 999, - 982, 996, 988, 1031, 997, 979, 978, 1526, 994, 975, + 543, 1555, 1147, 1105, 1094, 1098, 1088, 1100, 1141, 1555, + 1135, 567, 1093, 1087, 1095, 1090, 1086, 1093, 1076, 1079, + 1078, 1074, 1091, 1086, 1074, 1070, 1077, 1071, 1081, 1069, + 1083, 1071, 1079, 1077, 1068, 1077, 1073, 1114, 1056, 1056, + 1069, 1054, 1109, 1051, 1052, 1555, 1555, 1060, 1063, 1066, + 1555, 1065, 1050, 1042, 476, 1047, 1094, 1043, 1097, 1555, + 1042, 1044, 1044, 1093, 1046, 1034, 1028, 1039, 1048, 1041, + 1033, 1033, 1032, 1030, 1030, 1081, 1042, 1017, 1555, 1073, + 1020, 1033, 1032, 1017, 1555, 571, 519, 1031, 1032, 1066, + 1029, 1031, 1068, 1021, 1014, 1013, 1012, 1006, 1013, 1006, - 597, 974, 991, 969, 985, 1021, 979, 967, 983, 980, - 964, 10, 5, 295, 76, 1526, 214, 267, 283, 1526, - 348, 410, 465, 496, 499, 506, 573, 525, 539, 598, - 546, 1526, 553, 551, 550, 570, 571, 576, 615, 589, - 594, 566, 570, 569, 622, 567, 1526, 574, 585, 626, - 627, 576, 1526, 572, 575, 574, 594, 591, 596, 597, - 583, 591, 600, 580, 601, 641, 1526, 596, 643, 646, - 608, 611, 599, 595, 602, 654, 603, 601, 619, 658, - 613, 611, 609, 662, 663, 659, 619, 624, 617, 626, - 614, 624, 620, 1526, 615, 616, 1526, 617, 633, 634, + 1060, 1017, 1006, 1006, 1015, 998, 1012, 1004, 1047, 1013, + 995, 7, 1555, 94, 266, 596, 277, 1555, 360, 397, + 506, 555, 526, 524, 542, 541, 541, 559, 546, 564, + 549, 1555, 557, 569, 564, 1555, 566, 571, 565, 577, + 571, 569, 622, 570, 570, 627, 573, 1555, 579, 577, + 576, 590, 591, 596, 635, 609, 614, 586, 590, 589, + 641, 586, 1555, 593, 598, 599, 606, 647, 648, 597, + 1555, 593, 596, 596, 616, 613, 618, 619, 605, 613, + 622, 602, 623, 663, 1555, 620, 667, 668, 630, 632, + 620, 617, 624, 675, 624, 622, 640, 679, 634, 632, - 635, 617, 622, 640, 1526, 662, 653, 626, 626, 647, - 1526, 630, 645, 640, 1526, 1526, 650, 685, 634, 687, - 636, 694, 639, 650, 642, 648, 644, 662, 663, 1526, - 661, 1526, 663, 1526, 667, 657, 650, 662, 704, 1526, - 662, 712, 713, 1526, 662, 669, 711, 1526, 1526, 661, - 661, 664, 678, 665, 722, 681, 719, 725, 675, 727, - 728, 729, 690, 674, 686, 691, 706, 735, 731, 696, - 688, 739, 688, 699, 704, 686, 744, 699, 704, 1526, - 705, 698, 707, 708, 705, 695, 697, 754, 703, 700, - 757, 753, 696, 711, 761, 1526, 1526, 712, 722, 707, + 630, 683, 684, 680, 640, 645, 638, 647, 635, 645, + 641, 1555, 636, 637, 1555, 638, 654, 655, 656, 638, + 643, 661, 1555, 683, 674, 647, 647, 668, 1555, 651, + 666, 658, 659, 663, 1555, 1555, 673, 708, 657, 710, + 659, 717, 662, 673, 665, 671, 667, 685, 686, 1555, + 685, 1555, 687, 1555, 690, 680, 673, 686, 728, 1555, + 685, 735, 736, 1555, 685, 692, 734, 1555, 1555, 684, + 684, 687, 701, 688, 745, 704, 742, 748, 698, 750, + 751, 752, 713, 697, 709, 714, 729, 758, 754, 719, + 711, 762, 711, 707, 708, 724, 729, 711, 769, 724, - 708, 767, 769, 715, 771, 1526, 721, 723, 774, 1526, - 738, 1526, 1526, 1526, 728, 778, 729, 780, 763, 1526, - 725, 742, 744, 1526, 731, 730, 732, 733, 729, 1526, - 751, 737, 738, 753, 753, 756, 756, 753, 758, 1526, - 750, 760, 1526, 757, 762, 764, 761, 1526, 752, 758, - 757, 768, 1526, 1526, 807, 1526, 756, 762, 1526, 765, - 778, 1526, 775, 1526, 772, 795, 767, 816, 822, 823, - 767, 825, 780, 774, 828, 829, 825, 790, 786, 828, - 778, 783, 836, 794, 838, 798, 840, 803, 792, 843, - 787, 804, 804, 788, 844, 809, 809, 806, 853, 813, + 729, 1555, 730, 723, 732, 733, 730, 720, 722, 779, + 728, 725, 782, 778, 721, 737, 787, 1555, 1555, 737, + 747, 732, 733, 792, 793, 740, 796, 1555, 746, 749, + 800, 1555, 763, 1555, 1555, 1555, 753, 803, 755, 806, + 788, 1555, 750, 767, 768, 1555, 756, 755, 758, 759, + 759, 760, 756, 1555, 778, 764, 765, 780, 780, 783, + 783, 780, 785, 1555, 777, 787, 1555, 785, 790, 791, + 788, 1555, 779, 785, 784, 795, 1555, 1555, 834, 1555, + 783, 789, 1555, 792, 805, 1555, 802, 1555, 799, 822, + 794, 843, 849, 850, 794, 852, 853, 854, 809, 803, - 826, 815, 814, 1526, 1526, 858, 1526, 807, 818, 1526, - 1526, 808, 857, 802, 807, 865, 815, 1526, 821, 1526, - 868, 1526, 813, 828, 1526, 866, 834, 827, 836, 824, - 834, 877, 828, 1526, 879, 880, 843, 828, 1526, 833, - 885, 831, 830, 888, 843, 1526, 885, 847, 1526, 850, - 893, 836, 838, 835, 851, 860, 899, 1526, 895, 1526, - 1526, 844, 861, 898, 1526, 852, 859, 1526, 856, 861, - 908, 853, 1526, 857, 869, 912, 856, 864, 1526, 875, - 874, 866, 865, 879, 870, 879, 881, 1526, 923, 883, - 925, 1526, 921, 885, 866, 929, 930, 889, 890, 891, + 857, 858, 854, 819, 815, 857, 807, 812, 865, 823, + 867, 827, 869, 832, 821, 872, 817, 834, 833, 817, + 873, 838, 838, 835, 882, 842, 855, 844, 843, 1555, + 1555, 887, 1555, 1555, 1555, 836, 847, 1555, 1555, 837, + 886, 831, 836, 894, 844, 1555, 850, 1555, 897, 1555, + 842, 857, 1555, 895, 863, 856, 865, 853, 863, 906, + 857, 1555, 908, 909, 872, 857, 1555, 862, 914, 860, + 859, 917, 872, 1555, 914, 876, 1555, 879, 922, 865, + 867, 864, 880, 889, 928, 1555, 924, 1555, 1555, 873, + 890, 927, 1555, 881, 888, 1555, 885, 890, 937, 882, - 934, 893, 1526, 898, 1526, 880, 938, 899, 1526, 1526, - 885, 885, 887, 1526, 892, 887, 899, 1526, 897, 901, - 892, 944, 893, 909, 902, 911, 902, 909, 896, 911, - 958, 917, 904, 920, 911, 925, 921, 1526, 965, 966, - 967, 924, 923, 924, 1526, 1526, 1526, 971, 915, 931, - 1526, 969, 920, 919, 921, 932, 979, 930, 1526, 939, - 982, 1526, 1526, 988, 993, 998, 1003, 1008, 1013, 1018, - 1021, 995, 1000, 1002, 1015 + 1555, 886, 898, 941, 885, 893, 1555, 904, 903, 895, + 894, 908, 899, 908, 910, 1555, 952, 912, 954, 1555, + 950, 914, 895, 958, 959, 918, 919, 920, 963, 922, + 1555, 927, 1555, 909, 967, 928, 1555, 1555, 914, 914, + 916, 1555, 921, 916, 928, 1555, 926, 930, 921, 973, + 922, 938, 931, 940, 931, 938, 925, 940, 987, 946, + 933, 949, 940, 954, 950, 1555, 994, 995, 996, 953, + 952, 953, 1555, 1555, 1555, 1000, 944, 960, 1555, 998, + 949, 948, 950, 961, 1008, 959, 1555, 968, 1011, 1555, + 1555, 1017, 1022, 1027, 1032, 1037, 1042, 1047, 1050, 1024, + + 1029, 1031, 1044 } ; -static yyconst flex_int16_t yy_def[1176] = +static const flex_int16_t yy_def[1204] = { 0, - 1164, 1164, 1165, 1165, 1164, 1164, 1164, 1164, 1164, 1164, - 1163, 1163, 1163, 1163, 1163, 1166, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1167, - 1163, 1163, 1163, 1168, 15, 1163, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1169, 45, 45, 45, + 1192, 1192, 1193, 1193, 1192, 1192, 1192, 1192, 1192, 1192, + 1191, 1191, 1191, 1191, 1191, 1194, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1195, + 1191, 1191, 1191, 1196, 15, 1191, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1197, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1166, 1163, 1163, - 1163, 1163, 1163, 1163, 1170, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1167, 1163, 1168, 1163, + 45, 45, 45, 45, 45, 45, 45, 45, 1194, 1191, + 1191, 1191, 1191, 1191, 1191, 1198, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1195, 1191, 1196, - 1163, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1171, 45, 1169, 45, 45, 45, 45, 45, + 1191, 1191, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1199, 45, 1197, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1170, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1172, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1171, 1163, 1169, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1198, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1200, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1199, + 1191, 1197, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1163, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1173, 45, 45, - 45, 45, 45, 45, 45, 1163, 45, 1163, 45, 1169, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1163, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1201, 45, 45, 45, 45, 45, 45, 45, 1191, 45, + 1191, 45, 1197, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1163, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1163, 45, 45, - 45, 1163, 1163, 1163, 1174, 45, 45, 45, 45, 45, - 45, 45, 1163, 45, 45, 1163, 45, 1169, 45, 45, - 45, 45, 45, 45, 1163, 45, 45, 45, 1163, 45, - 45, 45, 45, 1163, 45, 45, 45, 45, 45, 45, - 45, 45, 1163, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 1163, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1163, 45, - 1163, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1163, 1163, - 45, 1163, 45, 45, 1163, 1175, 45, 45, 45, 1163, - 1163, 45, 1163, 45, 1163, 45, 45, 45, 45, 1163, + 45, 45, 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1163, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 1163, 45, 45, 45, 45, 45, 45, - 45, 1163, 45, 45, 45, 45, 45, 45, 45, 1163, - 45, 45, 45, 45, 1163, 45, 45, 1163, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1163, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1163, 45, 45, 45, 45, 45, 45, 45, 1163, + 45, 1191, 45, 45, 45, 1191, 1191, 1191, 1202, 45, + 45, 45, 45, 45, 45, 45, 1191, 45, 45, 1191, + 45, 1197, 45, 45, 45, 45, 45, 45, 1191, 45, + 45, 45, 45, 1191, 45, 45, 45, 45, 1191, 45, + 45, 45, 45, 45, 45, 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1191, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1191, 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1163, 1163, 45, 45, 45, 1163, 45, 45, - 45, 45, 45, 45, 45, 45, 1163, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1163, 45, 45, 45, 45, - 45, 1163, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1163, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1163, 45, 45, 45, 1163, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1163, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1163, 45, 45, 45, - 45, 45, 1163, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1163, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1163, 45, 45, 1163, 45, 45, 45, - - 45, 45, 45, 45, 1163, 45, 45, 45, 45, 45, - 1163, 45, 45, 45, 1163, 1163, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1163, - 45, 1163, 45, 1163, 45, 45, 45, 45, 45, 1163, - 45, 45, 45, 1163, 45, 45, 45, 1163, 1163, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1163, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1163, 1163, 45, 45, 45, - - 45, 45, 45, 45, 45, 1163, 45, 45, 45, 1163, - 45, 1163, 1163, 1163, 45, 45, 45, 45, 45, 1163, - 45, 45, 45, 1163, 45, 45, 45, 45, 45, 1163, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1163, - 45, 45, 1163, 45, 45, 45, 45, 1163, 45, 45, - 45, 45, 1163, 1163, 45, 1163, 45, 45, 1163, 45, - 45, 1163, 45, 1163, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1191, 1191, 45, 1191, 45, 45, + 1191, 1203, 45, 45, 45, 1191, 1191, 45, 1191, 45, + 1191, 45, 45, 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1163, 1163, 45, 1163, 45, 45, 1163, - 1163, 45, 45, 45, 45, 45, 45, 1163, 45, 1163, - 45, 1163, 45, 45, 1163, 45, 45, 45, 45, 45, - 45, 45, 45, 1163, 45, 45, 45, 45, 1163, 45, - 45, 45, 45, 45, 45, 1163, 45, 45, 1163, 45, - 45, 45, 45, 45, 45, 45, 45, 1163, 45, 1163, - 1163, 45, 45, 45, 1163, 45, 45, 1163, 45, 45, - 45, 45, 1163, 45, 45, 45, 45, 45, 1163, 45, - 45, 45, 45, 45, 45, 45, 45, 1163, 45, 45, - 45, 1163, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 1163, 45, 1163, 45, 45, 45, 1163, 1163, - 45, 45, 45, 1163, 45, 45, 45, 1163, 45, 45, + 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1191, 45, 45, 45, 45, 45, 45, 45, 1191, + 45, 45, 45, 45, 45, 45, 45, 1191, 45, 45, + 45, 45, 1191, 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1163, 45, 45, - 45, 45, 45, 45, 1163, 1163, 1163, 45, 45, 45, - 1163, 45, 45, 45, 45, 45, 45, 45, 1163, 45, - 45, 1163, 0, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163 + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 1191, 45, 45, 45, 45, 45, 45, 45, 1191, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1191, 1191, 45, 45, 45, + 1191, 45, 45, 45, 45, 45, 45, 45, 45, 1191, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1191, 45, + 45, 45, 45, 45, 1191, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1191, 45, 45, 45, 45, 1191, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1191, 45, 45, 45, 1191, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1191, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, + 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1191, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1191, 45, 45, 1191, 45, 45, 45, 45, 45, + 45, 45, 1191, 45, 45, 45, 45, 45, 1191, 45, + 45, 45, 45, 45, 1191, 1191, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1191, + 45, 1191, 45, 1191, 45, 45, 45, 45, 45, 1191, + 45, 45, 45, 1191, 45, 45, 45, 1191, 1191, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1191, 1191, 45, + 45, 45, 45, 45, 45, 45, 45, 1191, 45, 45, + 45, 1191, 45, 1191, 1191, 1191, 45, 45, 45, 45, + 45, 1191, 45, 45, 45, 1191, 45, 45, 45, 45, + 45, 45, 45, 1191, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1191, 45, 45, 1191, 45, 45, 45, + 45, 1191, 45, 45, 45, 45, 1191, 1191, 45, 1191, + 45, 45, 1191, 45, 45, 1191, 45, 1191, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1191, + 1191, 45, 1191, 1191, 1191, 45, 45, 1191, 1191, 45, + 45, 45, 45, 45, 45, 1191, 45, 1191, 45, 1191, + 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, + 45, 1191, 45, 45, 45, 45, 1191, 45, 45, 45, + 45, 45, 45, 1191, 45, 45, 1191, 45, 45, 45, + 45, 45, 45, 45, 45, 1191, 45, 1191, 1191, 45, + 45, 45, 1191, 45, 45, 1191, 45, 45, 45, 45, + + 1191, 45, 45, 45, 45, 45, 1191, 45, 45, 45, + 45, 45, 45, 45, 45, 1191, 45, 45, 45, 1191, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1191, 45, 1191, 45, 45, 45, 1191, 1191, 45, 45, + 45, 1191, 45, 45, 45, 1191, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1191, 45, 45, 45, 45, + 45, 45, 1191, 1191, 1191, 45, 45, 45, 1191, 45, + 45, 45, 45, 45, 45, 45, 1191, 45, 45, 1191, + 0, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + + 1191, 1191, 1191 } ; -static yyconst flex_uint16_t yy_nxt[1598] = +static const flex_int16_t yy_nxt[1627] = { 0, - 1163, 13, 14, 13, 1163, 15, 16, 1163, 17, 18, - 19, 20, 21, 22, 22, 22, 23, 24, 84, 592, - 37, 14, 37, 85, 25, 26, 38, 1163, 593, 27, - 37, 14, 37, 42, 28, 42, 38, 90, 91, 29, - 112, 30, 13, 14, 13, 89, 90, 25, 31, 91, - 13, 14, 13, 13, 14, 13, 32, 40, 780, 13, - 14, 13, 33, 40, 112, 90, 91, 781, 89, 34, - 35, 13, 14, 13, 93, 15, 16, 94, 17, 18, + 1191, 13, 14, 13, 1191, 15, 16, 1191, 17, 18, + 19, 20, 21, 22, 22, 22, 23, 24, 85, 602, + 37, 14, 37, 86, 25, 26, 38, 1191, 603, 27, + 37, 14, 37, 42, 28, 42, 38, 91, 92, 29, + 113, 30, 13, 14, 13, 90, 91, 25, 31, 92, + 13, 14, 13, 13, 14, 13, 32, 40, 1191, 13, + 14, 13, 33, 40, 113, 91, 92, 782, 90, 34, + 35, 13, 14, 13, 94, 15, 16, 95, 17, 18, 19, 20, 21, 22, 22, 22, 23, 24, 13, 14, - 13, 106, 39, 89, 25, 26, 13, 14, 13, 27, + 13, 107, 39, 90, 25, 26, 13, 14, 13, 27, - 39, 83, 83, 83, 28, 42, 41, 42, 42, 29, - 42, 30, 81, 105, 41, 108, 92, 25, 31, 106, - 197, 155, 87, 133, 87, 156, 32, 88, 88, 88, - 198, 134, 33, 202, 203, 81, 105, 784, 108, 34, + 39, 84, 84, 84, 28, 42, 41, 42, 42, 29, + 42, 30, 82, 106, 41, 109, 93, 25, 31, 107, + 199, 157, 88, 134, 88, 158, 32, 89, 89, 89, + 200, 135, 33, 204, 205, 82, 106, 783, 109, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 45, 45, 45, 48, 45, 45, 49, 45, 50, 45, 51, 52, 53, 45, 45, 45, 45, 54, 55, 45, 56, 45, 45, 57, 45, 45, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 51, 45, 67, 68, 69, 70, 71, + 64, 65, 66, 51, 67, 68, 69, 70, 71, 72, - 72, 73, 74, 75, 76, 77, 56, 45, 45, 45, - 45, 45, 79, 103, 80, 80, 80, 79, 103, 82, - 82, 82, 100, 111, 79, 81, 82, 82, 82, 124, - 81, 109, 119, 125, 128, 120, 126, 81, 121, 103, - 122, 110, 123, 105, 116, 129, 111, 142, 81, 127, - 117, 143, 135, 81, 109, 130, 207, 101, 208, 151, - 81, 45, 136, 152, 137, 100, 105, 45, 785, 110, - 45, 144, 45, 153, 45, 45, 45, 131, 114, 138, - 139, 45, 45, 140, 45, 45, 88, 88, 88, 141, + 73, 74, 75, 76, 77, 78, 56, 45, 45, 45, + 45, 45, 80, 104, 81, 81, 81, 80, 104, 83, + 83, 83, 101, 112, 80, 82, 83, 83, 83, 125, + 82, 110, 120, 126, 129, 121, 127, 82, 122, 104, + 123, 111, 124, 106, 117, 130, 112, 144, 82, 128, + 118, 145, 136, 82, 110, 131, 209, 102, 210, 153, + 82, 45, 137, 154, 138, 338, 106, 45, 339, 111, + 45, 146, 45, 155, 45, 45, 45, 132, 115, 140, + 141, 45, 45, 142, 45, 45, 89, 89, 89, 143, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 101, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 148, 157, 786, 45, 108, 149, - 150, 45, 109, 111, 170, 158, 159, 334, 168, 45, - 335, 160, 110, 45, 170, 45, 115, 145, 787, 146, - 782, 147, 83, 83, 83, 109, 163, 161, 88, 88, - 88, 783, 170, 81, 168, 79, 164, 80, 80, 80, - 110, 165, 173, 169, 87, 178, 87, 162, 81, 88, - 88, 88, 83, 83, 83, 79, 81, 82, 82, 82, - 99, 168, 169, 81, 180, 181, 183, 99, 81, 169, - 184, 81, 185, 178, 186, 187, 178, 212, 223, 183, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 150, 159, 101, 45, 109, 151, + 152, 45, 110, 112, 172, 160, 161, 784, 170, 45, + 360, 162, 111, 45, 172, 45, 116, 147, 788, 148, + 361, 149, 84, 84, 84, 110, 165, 163, 89, 89, + 89, 102, 172, 82, 170, 80, 166, 81, 81, 81, + 111, 167, 175, 171, 88, 180, 88, 164, 82, 89, + 89, 89, 84, 84, 84, 80, 82, 83, 83, 83, + 100, 170, 171, 82, 182, 183, 185, 100, 82, 171, + 186, 82, 187, 180, 188, 189, 180, 214, 226, 185, - 213, 382, 224, 788, 214, 383, 81, 171, 172, 240, - 180, 81, 181, 191, 183, 99, 241, 184, 187, 99, - 185, 186, 263, 99, 192, 233, 234, 183, 249, 229, - 236, 99, 250, 237, 238, 99, 251, 99, 176, 190, - 190, 190, 242, 243, 244, 263, 190, 190, 190, 190, - 190, 190, 186, 245, 261, 246, 273, 247, 262, 261, - 248, 789, 262, 263, 272, 365, 270, 275, 277, 190, - 190, 190, 190, 190, 190, 279, 270, 711, 352, 257, - 358, 712, 261, 273, 262, 352, 266, 264, 265, 270, - 275, 277, 272, 365, 288, 362, 356, 358, 419, 282, + 215, 387, 227, 789, 216, 388, 82, 173, 174, 243, + 182, 82, 183, 193, 185, 100, 244, 186, 189, 100, + 187, 188, 266, 100, 194, 236, 237, 185, 252, 232, + 239, 100, 253, 240, 241, 100, 254, 100, 178, 192, + 192, 192, 245, 246, 247, 266, 192, 192, 192, 192, + 192, 192, 188, 248, 264, 249, 276, 250, 265, 264, + 251, 790, 265, 266, 275, 369, 273, 278, 280, 192, + 192, 192, 192, 192, 192, 282, 273, 362, 356, 260, + 362, 381, 264, 276, 265, 356, 269, 267, 268, 273, + 278, 280, 275, 369, 291, 366, 411, 412, 382, 285, - 289, 352, 279, 280, 280, 280, 357, 572, 353, 358, - 280, 280, 280, 280, 280, 280, 359, 360, 362, 405, - 406, 410, 442, 790, 393, 361, 370, 443, 449, 394, - 456, 411, 457, 280, 280, 280, 280, 280, 280, 368, - 368, 368, 602, 791, 573, 469, 368, 368, 368, 368, - 368, 368, 531, 792, 420, 607, 449, 456, 449, 457, - 470, 608, 528, 793, 741, 602, 532, 534, 601, 368, - 368, 368, 368, 368, 368, 395, 674, 658, 794, 531, - 396, 45, 45, 45, 659, 795, 459, 741, 45, 45, - 45, 45, 45, 45, 532, 664, 601, 660, 661, 740, + 292, 356, 282, 283, 283, 283, 362, 425, 357, 374, + 283, 283, 283, 283, 283, 283, 363, 364, 366, 727, + 416, 448, 612, 728, 398, 365, 449, 455, 455, 399, + 417, 539, 540, 283, 283, 283, 283, 283, 283, 372, + 372, 372, 476, 757, 620, 612, 372, 372, 372, 372, + 372, 372, 462, 791, 463, 455, 465, 477, 539, 536, + 540, 582, 617, 426, 542, 792, 757, 611, 618, 372, + 372, 372, 372, 372, 372, 400, 621, 793, 671, 462, + 401, 463, 45, 45, 45, 672, 794, 795, 796, 45, + 45, 45, 45, 45, 45, 611, 673, 674, 583, 677, - 796, 665, 767, 797, 674, 662, 798, 768, 799, 800, - 801, 45, 45, 45, 45, 45, 45, 802, 803, 804, - 805, 806, 808, 807, 809, 810, 740, 811, 812, 813, - 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, - 824, 825, 826, 827, 828, 829, 830, 831, 832, 806, - 807, 834, 835, 833, 836, 837, 838, 839, 769, 840, - 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, - 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, - 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, - 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, + 687, 785, 756, 797, 675, 678, 786, 798, 799, 800, + 802, 803, 45, 45, 45, 45, 45, 45, 804, 805, + 801, 806, 807, 808, 809, 810, 811, 812, 687, 756, + 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 826, 825, 827, 828, 829, 830, 831, 832, + 833, 834, 835, 836, 837, 838, 839, 787, 840, 841, + 842, 843, 844, 845, 846, 847, 848, 849, 850, 824, + 825, 851, 852, 854, 855, 856, 857, 853, 858, 859, + 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, + 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, - 881, 882, 883, 884, 885, 886, 887, 888, 889, 867, - 890, 891, 892, 893, 894, 868, 895, 896, 897, 898, - 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, - 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, - 920, 921, 922, 923, 924, 926, 927, 928, 929, 930, - 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, - 941, 942, 943, 944, 945, 946, 948, 919, 949, 950, - 951, 952, 953, 947, 954, 955, 956, 957, 958, 959, - 909, 960, 961, 962, 963, 964, 925, 966, 967, 968, - 965, 969, 970, 971, 972, 973, 974, 975, 976, 977, + 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, + 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, + 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, + 887, 910, 911, 912, 913, 914, 888, 915, 916, 917, + 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, + 928, 929, 930, 932, 933, 934, 935, 936, 937, 938, + 939, 940, 941, 942, 943, 944, 945, 946, 948, 949, + 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, + 941, 970, 972, 973, 974, 975, 976, 977, 978, 971, - 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, - 966, 988, 989, 990, 991, 992, 993, 994, 995, 996, + 979, 980, 981, 931, 982, 983, 984, 985, 986, 947, + 987, 988, 990, 991, 992, 993, 989, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, - 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, - 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, - 1027, 1001, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, + 1007, 1008, 1009, 1010, 1011, 990, 1012, 1013, 1014, 1015, + 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, + 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, - 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, - 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1036, 1064, + 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1027, 1054, + 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, - 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, - 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, - 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, - 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, - 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, - 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, - 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, - 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 12, 12, - 12, 12, 12, 36, 36, 36, 36, 36, 78, 268, + 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1064, 1092, 1093, + 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, + 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, + 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, + 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, + 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, + 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, + 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, + 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, - 78, 78, 78, 97, 355, 97, 446, 97, 99, 99, - 99, 99, 99, 113, 113, 113, 113, 113, 167, 99, - 167, 167, 167, 188, 188, 188, 779, 778, 777, 776, - 775, 774, 773, 772, 771, 770, 766, 765, 764, 763, - 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, - 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, - 742, 739, 738, 737, 736, 735, 734, 733, 732, 731, - 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, - 720, 719, 718, 717, 716, 715, 714, 713, 710, 709, - 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, + 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, + 1184, 1185, 1186, 1187, 1188, 1189, 1190, 12, 12, 12, + 12, 12, 36, 36, 36, 36, 36, 79, 271, 79, + 79, 79, 98, 359, 98, 452, 98, 100, 100, 100, + 100, 100, 114, 114, 114, 114, 114, 169, 100, 169, + 169, 169, 190, 190, 190, 781, 780, 779, 778, 777, + 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, + 766, 765, 764, 763, 762, 761, 760, 759, 758, 755, + 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, + 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, - 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, - 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, - 678, 677, 676, 675, 673, 672, 671, 670, 669, 668, - 667, 666, 663, 657, 656, 655, 654, 653, 652, 651, - 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, - 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, - 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, - 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, - 610, 609, 606, 605, 604, 603, 600, 599, 598, 597, - 596, 595, 594, 591, 590, 589, 588, 587, 586, 585, + 734, 733, 732, 731, 730, 729, 726, 725, 724, 723, + 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, + 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, + 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, + 692, 691, 690, 689, 688, 686, 685, 684, 683, 682, + 681, 680, 679, 676, 670, 669, 668, 667, 666, 665, + 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, + 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, + 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, + 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, - 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, - 574, 571, 570, 569, 568, 567, 566, 565, 564, 563, - 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, - 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, - 542, 541, 540, 539, 538, 537, 536, 535, 533, 530, - 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, - 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, - 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, - 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, - 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, + 624, 623, 622, 619, 616, 615, 614, 613, 610, 609, + 608, 607, 606, 605, 604, 601, 600, 599, 598, 597, + 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, + 586, 585, 584, 581, 580, 579, 578, 577, 576, 575, + 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, + 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, + 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, + 544, 543, 541, 538, 537, 536, 535, 534, 533, 532, + 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, + 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, - 479, 478, 477, 476, 475, 474, 473, 472, 471, 468, - 467, 466, 465, 464, 463, 462, 461, 460, 458, 455, - 454, 453, 452, 451, 450, 448, 447, 445, 444, 441, - 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, - 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, - 418, 417, 416, 415, 414, 413, 412, 409, 408, 407, - 404, 403, 402, 401, 400, 399, 398, 397, 392, 391, - 390, 389, 388, 387, 386, 385, 384, 381, 380, 379, - 378, 377, 376, 375, 374, 373, 372, 371, 369, 367, - 366, 364, 363, 354, 351, 350, 349, 348, 347, 346, + 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, + 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, + 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, + 481, 480, 479, 478, 475, 474, 473, 472, 471, 470, + 469, 468, 467, 466, 464, 461, 460, 459, 458, 457, + 456, 454, 453, 451, 450, 447, 446, 445, 444, 443, + 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, + 432, 431, 430, 429, 428, 427, 424, 423, 422, 421, + 420, 419, 418, 415, 414, 413, 410, 409, 408, 407, + 406, 405, 404, 403, 402, 397, 396, 395, 394, 393, - 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, + 392, 391, 390, 389, 386, 385, 384, 383, 380, 379, + 378, 377, 376, 375, 373, 371, 370, 368, 367, 358, + 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, + 345, 344, 343, 342, 341, 340, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, - 293, 292, 291, 290, 287, 286, 285, 284, 283, 281, - 189, 278, 276, 274, 271, 269, 267, 260, 259, 258, - 256, 255, 254, 253, 252, 239, 235, 232, 231, 230, - 228, 227, 226, 225, 222, 221, 220, 219, 218, 217, - 216, 215, 211, 210, 209, 206, 205, 204, 201, 200, + 293, 290, 289, 288, 287, 286, 284, 191, 281, 279, + 277, 274, 272, 270, 263, 262, 261, 259, 258, 257, - 199, 196, 195, 194, 193, 189, 182, 179, 177, 175, - 174, 166, 154, 132, 118, 107, 104, 102, 43, 98, - 96, 95, 86, 43, 1163, 11, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163 + 256, 255, 242, 238, 235, 234, 233, 231, 230, 229, + 228, 225, 224, 223, 222, 221, 220, 219, 218, 217, + 213, 212, 211, 208, 207, 206, 203, 202, 201, 198, + 197, 196, 195, 191, 184, 181, 179, 177, 176, 168, + 156, 139, 133, 119, 108, 105, 103, 43, 99, 97, + 96, 87, 43, 1191, 11, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191 } ; -static yyconst flex_int16_t yy_chk[1598] = +static const flex_int16_t yy_chk[1627] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 21, 521, - 3, 3, 3, 21, 1, 1, 3, 0, 521, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 21, 529, + 3, 3, 3, 21, 1, 1, 3, 0, 529, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 56, 1, 5, 5, 5, 26, 32, 1, 1, 33, - 6, 6, 6, 7, 7, 7, 1, 7, 712, 8, - 8, 8, 1, 8, 56, 27, 28, 713, 26, 1, + 6, 6, 6, 7, 7, 7, 1, 7, 0, 8, + 8, 8, 1, 8, 56, 27, 28, 712, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 51, 5, 31, 2, 2, 10, 10, 10, 2, 6, 20, 20, 20, 2, 37, 9, 37, 42, 2, 42, 2, 20, 50, 10, 53, 31, 2, 2, 51, - 121, 73, 25, 65, 25, 73, 2, 25, 25, 25, - 121, 65, 2, 125, 125, 20, 50, 715, 53, 2, + 122, 74, 25, 65, 25, 74, 2, 25, 25, 25, + 122, 65, 2, 126, 126, 20, 50, 714, 53, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1126,156 +1198,159 @@ static yyconst flex_int16_t yy_chk[1598] = 15, 15, 17, 48, 17, 17, 17, 19, 58, 19, 19, 19, 44, 55, 22, 17, 22, 22, 22, 61, 19, 54, 60, 61, 62, 60, 61, 22, 60, 48, - 60, 54, 60, 63, 58, 62, 55, 68, 17, 61, - 58, 68, 66, 19, 54, 62, 129, 44, 129, 71, - 22, 45, 66, 71, 66, 99, 63, 45, 717, 54, - 45, 68, 45, 71, 45, 45, 45, 63, 57, 67, - 67, 45, 45, 67, 45, 57, 87, 87, 87, 67, + 60, 54, 60, 63, 58, 62, 55, 69, 17, 61, + 58, 69, 66, 19, 54, 62, 130, 44, 130, 72, + 22, 45, 66, 72, 66, 247, 63, 45, 247, 54, + 45, 69, 45, 72, 45, 45, 45, 63, 57, 68, + 68, 45, 45, 68, 45, 57, 88, 88, 88, 68, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 99, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 57, 70, 74, 718, 57, 69, 70, - 70, 57, 75, 76, 91, 74, 74, 244, 89, 57, - 244, 74, 75, 57, 94, 57, 57, 69, 719, 69, - 714, 69, 79, 79, 79, 75, 76, 75, 88, 88, - 88, 714, 91, 79, 89, 80, 76, 80, 80, 80, - 75, 76, 94, 90, 81, 103, 81, 75, 80, 81, - 81, 81, 83, 83, 83, 82, 79, 82, 82, 82, - 101, 92, 93, 83, 105, 106, 108, 101, 82, 90, - 109, 80, 110, 103, 111, 112, 116, 133, 142, 147, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 57, 71, 75, 100, 57, 70, 71, + 71, 57, 76, 77, 92, 75, 75, 715, 90, 57, + 272, 75, 76, 57, 95, 57, 57, 70, 717, 70, + 272, 70, 80, 80, 80, 76, 77, 76, 89, 89, + 89, 100, 92, 80, 90, 81, 77, 81, 81, 81, + 76, 77, 95, 91, 82, 104, 82, 76, 81, 82, + 82, 82, 84, 84, 84, 83, 80, 83, 83, 83, + 102, 93, 94, 84, 106, 107, 109, 102, 83, 91, + 110, 81, 111, 104, 112, 113, 117, 134, 144, 149, - 133, 295, 142, 721, 133, 295, 83, 92, 93, 155, - 105, 82, 106, 116, 108, 101, 155, 109, 112, 101, - 110, 111, 170, 101, 116, 151, 151, 147, 157, 147, - 153, 101, 157, 153, 153, 101, 157, 101, 101, 115, - 115, 115, 156, 156, 156, 170, 115, 115, 115, 115, - 115, 115, 163, 156, 168, 156, 181, 156, 169, 171, - 156, 722, 172, 173, 180, 275, 178, 183, 185, 115, - 115, 115, 115, 115, 115, 187, 192, 642, 261, 163, - 270, 642, 168, 181, 169, 264, 173, 171, 172, 178, - 183, 185, 180, 275, 198, 272, 269, 282, 326, 192, + 134, 298, 144, 719, 134, 298, 84, 93, 94, 157, + 106, 83, 107, 117, 109, 102, 157, 110, 113, 102, + 111, 112, 172, 102, 117, 153, 153, 149, 159, 149, + 155, 102, 159, 155, 155, 102, 159, 102, 102, 116, + 116, 116, 158, 158, 158, 172, 116, 116, 116, 116, + 116, 116, 165, 158, 170, 158, 183, 158, 171, 173, + 158, 720, 174, 175, 182, 278, 180, 185, 187, 116, + 116, 116, 116, 116, 116, 189, 194, 273, 264, 165, + 285, 292, 170, 183, 171, 267, 175, 173, 174, 180, + 185, 187, 182, 278, 200, 275, 318, 318, 292, 194, - 198, 261, 187, 190, 190, 190, 269, 499, 264, 270, - 190, 190, 190, 190, 190, 190, 271, 271, 272, 314, - 314, 318, 350, 723, 305, 271, 282, 350, 358, 305, - 367, 318, 367, 190, 190, 190, 190, 190, 190, 280, - 280, 280, 532, 724, 499, 382, 280, 280, 280, 280, - 280, 280, 456, 725, 326, 537, 358, 367, 370, 367, - 382, 537, 459, 726, 674, 532, 457, 459, 531, 280, - 280, 280, 280, 280, 280, 305, 602, 588, 727, 456, - 305, 368, 368, 368, 588, 728, 370, 674, 368, 368, - 368, 368, 368, 368, 457, 591, 531, 589, 589, 673, + 200, 264, 189, 192, 192, 192, 273, 330, 267, 285, + 192, 192, 192, 192, 192, 192, 274, 274, 275, 655, + 322, 354, 540, 655, 308, 274, 354, 362, 374, 308, + 322, 462, 463, 192, 192, 192, 192, 192, 192, 283, + 283, 283, 387, 687, 547, 540, 283, 283, 283, 283, + 283, 283, 371, 721, 371, 362, 374, 387, 462, 465, + 463, 507, 545, 330, 465, 722, 687, 539, 545, 283, + 283, 283, 283, 283, 283, 308, 547, 723, 598, 371, + 308, 371, 372, 372, 372, 598, 724, 725, 726, 372, + 372, 372, 372, 372, 372, 539, 599, 599, 507, 601, - 729, 591, 701, 730, 602, 589, 731, 701, 733, 734, - 735, 368, 368, 368, 368, 368, 368, 736, 737, 738, - 739, 740, 742, 741, 743, 744, 673, 745, 746, 748, - 749, 750, 751, 752, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 768, 769, 740, - 741, 770, 771, 769, 772, 773, 774, 775, 701, 776, - 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, - 787, 788, 789, 790, 791, 792, 793, 795, 796, 798, - 799, 800, 801, 802, 803, 804, 806, 807, 808, 809, - 810, 812, 813, 814, 817, 818, 819, 820, 821, 822, + 612, 716, 686, 727, 599, 601, 716, 728, 729, 730, + 731, 733, 372, 372, 372, 372, 372, 372, 734, 735, + 730, 737, 738, 739, 740, 741, 742, 743, 612, 686, + 744, 745, 746, 747, 749, 750, 751, 752, 753, 754, + 755, 756, 758, 757, 759, 760, 761, 762, 764, 765, + 766, 767, 768, 769, 770, 772, 773, 716, 774, 775, + 776, 777, 778, 779, 780, 781, 782, 783, 784, 756, + 757, 786, 787, 788, 789, 790, 791, 787, 792, 793, + 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, + 804, 805, 806, 807, 808, 809, 810, 811, 813, 814, - 823, 824, 825, 826, 827, 828, 829, 831, 833, 806, - 835, 836, 837, 838, 839, 807, 841, 842, 843, 845, - 846, 847, 850, 851, 852, 853, 854, 855, 856, 857, - 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, - 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, - 878, 879, 881, 882, 883, 884, 885, 886, 887, 888, - 889, 890, 891, 892, 893, 894, 895, 867, 898, 899, - 900, 901, 902, 894, 903, 904, 905, 907, 908, 909, - 857, 911, 915, 916, 917, 918, 872, 919, 921, 922, - 918, 923, 925, 926, 927, 928, 929, 931, 932, 933, + 816, 817, 818, 819, 820, 821, 822, 824, 825, 826, + 827, 828, 830, 831, 832, 833, 834, 837, 838, 839, + 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, + 824, 851, 853, 855, 856, 857, 825, 858, 859, 861, + 862, 863, 865, 866, 867, 870, 871, 872, 873, 874, + 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, + 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, + 895, 896, 897, 898, 899, 900, 901, 903, 904, 905, + 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, + 887, 916, 917, 920, 921, 922, 923, 924, 925, 916, - 934, 935, 936, 937, 938, 939, 941, 942, 944, 945, - 919, 946, 947, 949, 950, 951, 952, 955, 957, 958, - 960, 961, 963, 965, 966, 967, 968, 969, 970, 971, - 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 966, 993, 994, 995, 996, 997, 998, 999, 1000, - 1001, 1002, 1003, 1006, 1008, 1009, 1012, 1013, 1014, 1015, - 1016, 1017, 1019, 1021, 1023, 1024, 1026, 1027, 1028, 1029, - 1030, 1031, 1032, 1033, 1035, 1036, 1037, 1038, 1001, 1040, - 1041, 1042, 1043, 1044, 1045, 1047, 1048, 1050, 1051, 1052, + 926, 927, 929, 877, 930, 931, 933, 937, 938, 892, + 939, 940, 941, 943, 944, 945, 940, 947, 948, 949, + 950, 951, 952, 953, 955, 956, 957, 958, 959, 960, + 961, 962, 963, 965, 966, 941, 968, 969, 970, 971, + 973, 974, 975, 976, 979, 981, 982, 984, 985, 987, + 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, + 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 990, 1017, + 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, + 1028, 1029, 1032, 1036, 1037, 1040, 1041, 1042, 1043, 1044, - 1053, 1054, 1055, 1056, 1057, 1059, 1062, 1063, 1064, 1066, - 1067, 1069, 1070, 1071, 1072, 1074, 1075, 1076, 1077, 1078, - 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1089, 1090, - 1091, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, - 1102, 1104, 1106, 1107, 1108, 1111, 1112, 1113, 1115, 1116, - 1117, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, - 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, - 1139, 1140, 1141, 1142, 1143, 1144, 1148, 1149, 1150, 1152, - 1153, 1154, 1155, 1156, 1157, 1158, 1160, 1161, 1164, 1164, - 1164, 1164, 1164, 1165, 1165, 1165, 1165, 1165, 1166, 1172, + 1045, 1047, 1049, 1051, 1052, 1054, 1055, 1056, 1057, 1058, + 1059, 1060, 1061, 1063, 1064, 1065, 1066, 1027, 1068, 1069, + 1070, 1071, 1072, 1073, 1075, 1076, 1078, 1079, 1080, 1081, + 1082, 1083, 1084, 1085, 1087, 1090, 1091, 1092, 1094, 1095, + 1097, 1098, 1099, 1100, 1102, 1103, 1104, 1105, 1106, 1108, + 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1117, 1118, 1119, + 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, + 1132, 1134, 1135, 1136, 1139, 1140, 1141, 1143, 1144, 1145, + 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1167, - 1166, 1166, 1166, 1167, 1173, 1167, 1174, 1167, 1168, 1168, - 1168, 1168, 1168, 1169, 1169, 1169, 1169, 1169, 1170, 1175, - 1170, 1170, 1170, 1171, 1171, 1171, 711, 710, 709, 708, - 707, 706, 705, 704, 703, 702, 700, 699, 697, 696, - 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, - 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, - 675, 671, 670, 669, 668, 667, 665, 664, 663, 662, - 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, - 651, 650, 649, 648, 646, 645, 644, 643, 641, 640, - 639, 637, 636, 635, 632, 631, 630, 629, 628, 627, + 1168, 1169, 1170, 1171, 1172, 1176, 1177, 1178, 1180, 1181, + 1182, 1183, 1184, 1185, 1186, 1188, 1189, 1192, 1192, 1192, + 1192, 1192, 1193, 1193, 1193, 1193, 1193, 1194, 1200, 1194, + 1194, 1194, 1195, 1201, 1195, 1202, 1195, 1196, 1196, 1196, + 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1198, 1203, 1198, + 1198, 1198, 1199, 1199, 1199, 711, 710, 709, 708, 707, + 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, + 696, 695, 694, 693, 692, 691, 690, 689, 688, 684, + 683, 682, 681, 680, 678, 677, 676, 675, 674, 673, + 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, - 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, - 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, - 606, 605, 604, 603, 601, 599, 598, 597, 596, 595, - 594, 593, 590, 587, 586, 585, 584, 583, 582, 581, - 580, 579, 578, 577, 576, 575, 574, 573, 571, 570, - 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, - 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, - 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, - 539, 538, 536, 535, 534, 533, 530, 529, 527, 526, - 524, 523, 522, 519, 518, 517, 516, 515, 514, 513, + 662, 661, 659, 658, 657, 656, 654, 653, 652, 650, + 649, 648, 645, 644, 643, 642, 641, 640, 639, 638, + 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, + 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, + 617, 616, 615, 614, 613, 611, 609, 608, 607, 606, + 605, 604, 603, 600, 597, 596, 595, 594, 593, 592, + 591, 590, 589, 588, 587, 586, 585, 584, 583, 581, + 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, + 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, + 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, - 511, 510, 509, 508, 507, 506, 505, 503, 502, 501, - 500, 498, 497, 496, 495, 493, 492, 491, 490, 489, + 550, 549, 548, 546, 544, 543, 542, 541, 538, 537, + 535, 534, 532, 531, 530, 527, 526, 525, 524, 523, + 522, 521, 519, 518, 517, 516, 515, 514, 513, 511, + 510, 509, 508, 506, 505, 504, 503, 501, 500, 499, + 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, - 468, 467, 466, 465, 464, 463, 462, 461, 458, 454, - 452, 449, 448, 447, 445, 444, 443, 441, 438, 437, - 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, - 426, 425, 424, 423, 422, 420, 418, 417, 416, 415, - 414, 413, 412, 411, 410, 408, 407, 406, 405, 404, - 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, + 468, 467, 464, 460, 458, 455, 454, 453, 451, 450, + 449, 447, 444, 443, 442, 441, 440, 439, 438, 437, + 436, 435, 434, 433, 432, 431, 430, 429, 428, 426, - 392, 391, 390, 389, 388, 387, 386, 385, 383, 381, - 380, 378, 377, 376, 374, 373, 372, 371, 369, 365, - 364, 362, 361, 360, 359, 357, 356, 354, 351, 349, + 424, 423, 422, 421, 420, 419, 418, 417, 416, 414, + 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, + 403, 402, 401, 400, 399, 397, 396, 395, 394, 393, + 392, 391, 390, 388, 386, 385, 383, 382, 381, 380, + 378, 377, 376, 375, 373, 369, 368, 366, 365, 364, + 363, 361, 360, 358, 355, 353, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, - 337, 336, 335, 334, 333, 332, 330, 329, 328, 327, - 325, 324, 323, 322, 321, 320, 319, 317, 316, 315, - 313, 312, 311, 310, 309, 308, 307, 306, 304, 303, - 302, 301, 300, 299, 298, 297, 296, 294, 293, 292, - 291, 289, 288, 287, 286, 285, 284, 283, 281, 279, - 277, 274, 273, 267, 260, 259, 258, 257, 256, 255, + 337, 336, 334, 333, 332, 331, 329, 328, 327, 326, + 325, 324, 323, 321, 320, 319, 317, 316, 315, 314, + 313, 312, 311, 310, 309, 307, 306, 305, 304, 303, - 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, - 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, - 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, - 223, 222, 221, 220, 219, 218, 217, 215, 214, 213, - 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, - 202, 201, 200, 199, 197, 196, 195, 194, 193, 191, - 188, 186, 184, 182, 179, 177, 174, 166, 165, 164, - 162, 161, 160, 159, 158, 154, 152, 150, 149, 148, - 146, 145, 144, 143, 141, 140, 139, 138, 137, 136, - 135, 134, 132, 131, 130, 128, 127, 126, 124, 123, + 302, 301, 300, 299, 297, 296, 295, 294, 291, 290, + 289, 288, 287, 286, 284, 282, 280, 277, 276, 270, + 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, + 253, 252, 251, 250, 249, 248, 246, 245, 244, 243, + 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, + 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, + 222, 221, 220, 219, 217, 216, 215, 214, 213, 212, + 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, + 201, 199, 198, 197, 196, 195, 193, 190, 188, 186, + 184, 181, 179, 176, 168, 167, 166, 164, 163, 162, - 122, 120, 119, 118, 117, 113, 107, 104, 102, 97, - 96, 77, 72, 64, 59, 52, 49, 47, 43, 41, - 39, 38, 24, 14, 11, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163 + 161, 160, 156, 154, 152, 151, 150, 148, 147, 146, + 145, 143, 142, 141, 140, 139, 138, 137, 136, 135, + 133, 132, 131, 129, 128, 127, 125, 124, 123, 121, + 120, 119, 118, 114, 108, 105, 103, 98, 97, 78, + 73, 67, 64, 59, 52, 49, 47, 43, 41, 39, + 38, 24, 14, 11, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 1191, 1191, 1191, 1191 } ; static yy_state_type yy_last_accepting_state; @@ -1284,24 +1359,24 @@ static char *yy_last_accepting_cpos; extern int parser4__flex_debug; int parser4__flex_debug = 1; -static yyconst flex_int16_t yy_rule_linenum[142] = +static const flex_int16_t yy_rule_linenum[145] = { 0, - 130, 132, 134, 139, 140, 145, 146, 147, 159, 162, - 167, 174, 183, 192, 201, 210, 220, 229, 238, 247, - 256, 267, 276, 285, 294, 303, 313, 323, 333, 343, - 353, 363, 373, 383, 393, 403, 412, 421, 430, 444, - 459, 468, 477, 486, 495, 504, 513, 522, 531, 540, - 549, 559, 568, 577, 586, 595, 604, 613, 622, 632, - 642, 652, 661, 671, 681, 691, 701, 710, 720, 729, - 738, 747, 756, 765, 775, 785, 794, 803, 812, 821, - 830, 839, 848, 857, 866, 875, 884, 893, 902, 911, - 920, 929, 938, 947, 956, 965, 974, 983, 992, 1001, + 131, 133, 135, 140, 141, 146, 147, 148, 160, 163, + 168, 175, 184, 193, 202, 211, 221, 230, 239, 248, + 257, 268, 277, 286, 295, 304, 314, 324, 334, 344, + 354, 364, 374, 384, 394, 404, 414, 424, 434, 443, + 452, 461, 475, 490, 499, 508, 517, 526, 535, 544, + 553, 562, 571, 580, 590, 599, 608, 617, 626, 635, + 644, 653, 663, 673, 683, 692, 702, 712, 722, 732, + 741, 751, 760, 769, 778, 787, 796, 806, 816, 825, + 834, 843, 852, 861, 870, 879, 888, 897, 906, 915, + 924, 933, 942, 951, 960, 969, 978, 987, 996, 1005, - 1010, 1019, 1028, 1037, 1046, 1056, 1066, 1076, 1086, 1096, - 1106, 1116, 1126, 1136, 1145, 1154, 1163, 1172, 1181, 1191, - 1201, 1213, 1224, 1237, 1335, 1340, 1345, 1350, 1351, 1352, - 1353, 1354, 1355, 1357, 1375, 1388, 1393, 1397, 1399, 1401, - 1403 + 1014, 1023, 1032, 1041, 1050, 1059, 1068, 1077, 1087, 1097, + 1107, 1117, 1127, 1137, 1147, 1157, 1167, 1176, 1185, 1194, + 1203, 1212, 1222, 1232, 1244, 1255, 1268, 1366, 1371, 1376, + 1381, 1382, 1383, 1384, 1385, 1386, 1388, 1406, 1419, 1424, + 1428, 1430, 1432, 1434 } ; /* The intent behind this definition is that it'll catch @@ -1332,8 +1407,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 { @@ -1346,9 +1421,10 @@ unsigned int comment_start_line = 0; // To avoid the call to exit... oops! #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) +#line 1424 "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. */ @@ -1356,23 +1432,23 @@ unsigned int comment_start_line = 0; /* 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 86 "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 1376 "dhcp4_lexer.cc" +#define YY_USER_ACTION driver.loc_.columns(yyleng); +#line 1450 "dhcp4_lexer.cc" +#line 1451 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1400,7 +1476,7 @@ unsigned int comment_start_line = 0; /* %if-reentrant */ /* %if-c-only */ -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* %endif */ /* %if-reentrant */ @@ -1410,31 +1486,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 parser4_lex_destroy ( void ); -int parser4_get_debug (void ); +int parser4_get_debug ( void ); -void parser4_set_debug (int debug_flag ); +void parser4_set_debug ( int debug_flag ); -YY_EXTRA_TYPE parser4_get_extra (void ); +YY_EXTRA_TYPE parser4_get_extra ( void ); -void parser4_set_extra (YY_EXTRA_TYPE user_defined ); +void parser4_set_extra ( YY_EXTRA_TYPE user_defined ); -FILE *parser4_get_in (void ); +FILE *parser4_get_in ( void ); -void parser4_set_in (FILE * _in_str ); +void parser4_set_in ( FILE * _in_str ); -FILE *parser4_get_out (void ); +FILE *parser4_get_out ( void ); -void parser4_set_out (FILE * _out_str ); +void parser4_set_out ( FILE * _out_str ); - int parser4_get_leng (void ); + int parser4_get_leng ( void ); -char *parser4_get_text (void ); +char *parser4_get_text ( void ); -int parser4_get_lineno (void ); +int parser4_get_lineno ( void ); -void parser4_set_lineno (int _line_number ); +void parser4_set_lineno ( int _line_number ); /* %if-bison-bridge */ /* %endif */ @@ -1445,14 +1521,13 @@ void parser4_set_lineno (int _line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int parser4_wrap (void ); +extern "C" int parser4_wrap ( void ); #else -extern int parser4_wrap (void ); +extern int parser4_wrap ( void ); #endif #endif /* %not-for-header */ - #ifndef YY_NO_UNPUT #endif @@ -1461,21 +1536,20 @@ extern int parser4_wrap (void ); /* %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 */ @@ -1517,7 +1591,7 @@ 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 ) \ buf[n] = (char) c; \ @@ -1530,7 +1604,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = (int) fread(buf, 1, max_size, parser4_in))==0 && ferror(parser4_in)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, parser4_in)) == 0 && ferror(parser4_in)) \ { \ if( errno != EINTR) \ { \ @@ -1571,11 +1645,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 */ @@ -1614,7 +1686,6 @@ extern int parser4_lex (void); YY_USER_ACTION /* %not-for-header */ - /** The main scanner function which does all the work. */ YY_DECL @@ -1663,11 +1734,12 @@ YY_DECL +#line 96 "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) { @@ -1698,7 +1770,7 @@ YY_DECL } -#line 1702 "dhcp4_lexer.cc" +#line 1773 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1727,13 +1799,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1164 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 1192 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1163 ); + while ( yy_current_state != 1191 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1752,13 +1824,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 142 ) + else if ( yy_act < 145 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], parser4_text ); - else if ( yy_act == 142 ) + else if ( yy_act == 145 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", parser4_text ); - else if ( yy_act == 143 ) + else if ( yy_act == 146 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -1776,17 +1848,17 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 130 "dhcp4_lexer.ll" +#line 131 "dhcp4_lexer.ll" ; YY_BREAK case 2: YY_RULE_SETUP -#line 132 "dhcp4_lexer.ll" +#line 133 "dhcp4_lexer.ll" ; YY_BREAK case 3: YY_RULE_SETUP -#line 134 "dhcp4_lexer.ll" +#line 135 "dhcp4_lexer.ll" { BEGIN(COMMENT); comment_start_line = driver.loc_.end.line;; @@ -1794,38 +1866,38 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 139 "dhcp4_lexer.ll" +#line 140 "dhcp4_lexer.ll" BEGIN(INITIAL); YY_BREAK case 5: YY_RULE_SETUP -#line 140 "dhcp4_lexer.ll" +#line 141 "dhcp4_lexer.ll" ; YY_BREAK case YY_STATE_EOF(COMMENT): -#line 141 "dhcp4_lexer.ll" +#line 142 "dhcp4_lexer.ll" { isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line); } YY_BREAK case 6: YY_RULE_SETUP -#line 145 "dhcp4_lexer.ll" +#line 146 "dhcp4_lexer.ll" BEGIN(DIR_ENTER); YY_BREAK case 7: YY_RULE_SETUP -#line 146 "dhcp4_lexer.ll" +#line 147 "dhcp4_lexer.ll" BEGIN(DIR_INCLUDE); YY_BREAK case 8: YY_RULE_SETUP -#line 147 "dhcp4_lexer.ll" +#line 148 "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); @@ -1834,19 +1906,19 @@ YY_RULE_SETUP case YY_STATE_EOF(DIR_ENTER): case YY_STATE_EOF(DIR_INCLUDE): case YY_STATE_EOF(DIR_EXIT): -#line 156 "dhcp4_lexer.ll" +#line 157 "dhcp4_lexer.ll" { isc_throw(Dhcp4ParseError, "Directive not closed."); } YY_BREAK case 9: YY_RULE_SETUP -#line 159 "dhcp4_lexer.ll" +#line 160 "dhcp4_lexer.ll" BEGIN(INITIAL); YY_BREAK case 10: YY_RULE_SETUP -#line 162 "dhcp4_lexer.ll" +#line 163 "dhcp4_lexer.ll" { // Ok, we found a with space. Let's ignore it and update loc variable. driver.loc_.step(); @@ -1855,16 +1927,16 @@ YY_RULE_SETUP case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 167 "dhcp4_lexer.ll" +#line 168 "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 174 "dhcp4_lexer.ll" +#line 175 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -1876,7 +1948,7 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 183 "dhcp4_lexer.ll" +#line 184 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -1888,7 +1960,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 192 "dhcp4_lexer.ll" +#line 193 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::INTERFACES_CONFIG: @@ -1900,7 +1972,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 201 "dhcp4_lexer.ll" +#line 202 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE: @@ -1912,7 +1984,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 210 "dhcp4_lexer.ll" +#line 211 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE: @@ -1925,7 +1997,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 220 "dhcp4_lexer.ll" +#line 221 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::INTERFACES_CONFIG: @@ -1937,7 +2009,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 229 "dhcp4_lexer.ll" +#line 230 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -1949,7 +2021,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 238 "dhcp4_lexer.ll" +#line 239 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -1961,7 +2033,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 247 "dhcp4_lexer.ll" +#line 248 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOSTS_DATABASE: @@ -1973,7 +2045,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 256 "dhcp4_lexer.ll" +#line 257 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -1987,7 +2059,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 267 "dhcp4_lexer.ll" +#line 268 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_TYPE: @@ -1999,7 +2071,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 276 "dhcp4_lexer.ll" +#line 277 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_TYPE: @@ -2011,7 +2083,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 285 "dhcp4_lexer.ll" +#line 286 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_TYPE: @@ -2023,7 +2095,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 294 "dhcp4_lexer.ll" +#line 295 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_TYPE: @@ -2035,7 +2107,7 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 303 "dhcp4_lexer.ll" +#line 304 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2048,7 +2120,7 @@ YY_RULE_SETUP YY_BREAK case 27: YY_RULE_SETUP -#line 313 "dhcp4_lexer.ll" +#line 314 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2061,7 +2133,7 @@ YY_RULE_SETUP YY_BREAK case 28: YY_RULE_SETUP -#line 323 "dhcp4_lexer.ll" +#line 324 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2074,7 +2146,7 @@ YY_RULE_SETUP YY_BREAK case 29: YY_RULE_SETUP -#line 333 "dhcp4_lexer.ll" +#line 334 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2087,7 +2159,7 @@ YY_RULE_SETUP YY_BREAK case 30: YY_RULE_SETUP -#line 343 "dhcp4_lexer.ll" +#line 344 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2100,7 +2172,7 @@ YY_RULE_SETUP YY_BREAK case 31: YY_RULE_SETUP -#line 353 "dhcp4_lexer.ll" +#line 354 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2113,7 +2185,7 @@ YY_RULE_SETUP YY_BREAK case 32: YY_RULE_SETUP -#line 363 "dhcp4_lexer.ll" +#line 364 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2126,7 +2198,46 @@ YY_RULE_SETUP YY_BREAK case 33: YY_RULE_SETUP -#line 373 "dhcp4_lexer.ll" +#line 374 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + return isc::dhcp::Dhcp4Parser::make_KEYSPACE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("keyspace", driver.loc_); + } +} + YY_BREAK +case 34: +YY_RULE_SETUP +#line 384 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + return isc::dhcp::Dhcp4Parser::make_CONTACT_POINTS(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("contact_points", driver.loc_); + } +} + YY_BREAK +case 35: +YY_RULE_SETUP +#line 394 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + return isc::dhcp::Dhcp4Parser::make_CONTACT_POINTS(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("contact-points", driver.loc_); + } +} + YY_BREAK +case 36: +YY_RULE_SETUP +#line 404 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2137,9 +2248,9 @@ YY_RULE_SETUP } } YY_BREAK -case 34: +case 37: YY_RULE_SETUP -#line 383 "dhcp4_lexer.ll" +#line 414 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2150,9 +2261,9 @@ YY_RULE_SETUP } } YY_BREAK -case 35: +case 38: YY_RULE_SETUP -#line 393 "dhcp4_lexer.ll" +#line 424 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2163,9 +2274,9 @@ YY_RULE_SETUP } } YY_BREAK -case 36: +case 39: YY_RULE_SETUP -#line 403 "dhcp4_lexer.ll" +#line 434 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2175,9 +2286,9 @@ YY_RULE_SETUP } } YY_BREAK -case 37: +case 40: YY_RULE_SETUP -#line 412 "dhcp4_lexer.ll" +#line 443 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2187,9 +2298,9 @@ YY_RULE_SETUP } } YY_BREAK -case 38: +case 41: YY_RULE_SETUP -#line 421 "dhcp4_lexer.ll" +#line 452 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2199,9 +2310,9 @@ YY_RULE_SETUP } } YY_BREAK -case 39: +case 42: YY_RULE_SETUP -#line 430 "dhcp4_lexer.ll" +#line 461 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2216,9 +2327,9 @@ YY_RULE_SETUP } } YY_BREAK -case 40: +case 43: YY_RULE_SETUP -#line 444 "dhcp4_lexer.ll" +#line 475 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2234,9 +2345,9 @@ YY_RULE_SETUP } } YY_BREAK -case 41: +case 44: YY_RULE_SETUP -#line 459 "dhcp4_lexer.ll" +#line 490 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -2246,9 +2357,9 @@ YY_RULE_SETUP } } YY_BREAK -case 42: +case 45: YY_RULE_SETUP -#line 468 "dhcp4_lexer.ll" +#line 499 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2258,9 +2369,9 @@ YY_RULE_SETUP } } YY_BREAK -case 43: +case 46: YY_RULE_SETUP -#line 477 "dhcp4_lexer.ll" +#line 508 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -2270,9 +2381,9 @@ YY_RULE_SETUP } } YY_BREAK -case 44: +case 47: YY_RULE_SETUP -#line 486 "dhcp4_lexer.ll" +#line 517 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -2282,9 +2393,9 @@ YY_RULE_SETUP } } YY_BREAK -case 45: +case 48: YY_RULE_SETUP -#line 495 "dhcp4_lexer.ll" +#line 526 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2294,9 +2405,9 @@ YY_RULE_SETUP } } YY_BREAK -case 46: +case 49: YY_RULE_SETUP -#line 504 "dhcp4_lexer.ll" +#line 535 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2306,9 +2417,9 @@ YY_RULE_SETUP } } YY_BREAK -case 47: +case 50: YY_RULE_SETUP -#line 513 "dhcp4_lexer.ll" +#line 544 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2318,9 +2429,9 @@ YY_RULE_SETUP } } YY_BREAK -case 48: +case 51: YY_RULE_SETUP -#line 522 "dhcp4_lexer.ll" +#line 553 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2330,9 +2441,9 @@ YY_RULE_SETUP } } YY_BREAK -case 49: +case 52: YY_RULE_SETUP -#line 531 "dhcp4_lexer.ll" +#line 562 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2342,9 +2453,9 @@ YY_RULE_SETUP } } YY_BREAK -case 50: +case 53: YY_RULE_SETUP -#line 540 "dhcp4_lexer.ll" +#line 571 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2354,9 +2465,9 @@ YY_RULE_SETUP } } YY_BREAK -case 51: +case 54: YY_RULE_SETUP -#line 549 "dhcp4_lexer.ll" +#line 580 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -2367,9 +2478,9 @@ YY_RULE_SETUP } } YY_BREAK -case 52: +case 55: YY_RULE_SETUP -#line 559 "dhcp4_lexer.ll" +#line 590 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2379,9 +2490,9 @@ YY_RULE_SETUP } } YY_BREAK -case 53: +case 56: YY_RULE_SETUP -#line 568 "dhcp4_lexer.ll" +#line 599 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -2391,9 +2502,9 @@ YY_RULE_SETUP } } YY_BREAK -case 54: +case 57: YY_RULE_SETUP -#line 577 "dhcp4_lexer.ll" +#line 608 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGING: @@ -2403,9 +2514,9 @@ YY_RULE_SETUP } } YY_BREAK -case 55: +case 58: YY_RULE_SETUP -#line 586 "dhcp4_lexer.ll" +#line 617 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -2415,9 +2526,9 @@ YY_RULE_SETUP } } YY_BREAK -case 56: +case 59: YY_RULE_SETUP -#line 595 "dhcp4_lexer.ll" +#line 626 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -2427,9 +2538,9 @@ YY_RULE_SETUP } } YY_BREAK -case 57: +case 60: YY_RULE_SETUP -#line 604 "dhcp4_lexer.ll" +#line 635 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -2439,9 +2550,9 @@ YY_RULE_SETUP } } YY_BREAK -case 58: +case 61: YY_RULE_SETUP -#line 613 "dhcp4_lexer.ll" +#line 644 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -2451,9 +2562,9 @@ YY_RULE_SETUP } } YY_BREAK -case 59: +case 62: YY_RULE_SETUP -#line 622 "dhcp4_lexer.ll" +#line 653 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2464,9 +2575,9 @@ YY_RULE_SETUP } } YY_BREAK -case 60: +case 63: YY_RULE_SETUP -#line 632 "dhcp4_lexer.ll" +#line 663 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2477,9 +2588,9 @@ YY_RULE_SETUP } } YY_BREAK -case 61: +case 64: YY_RULE_SETUP -#line 642 "dhcp4_lexer.ll" +#line 673 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -2490,9 +2601,9 @@ YY_RULE_SETUP } } YY_BREAK -case 62: +case 65: YY_RULE_SETUP -#line 652 "dhcp4_lexer.ll" +#line 683 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2502,9 +2613,9 @@ YY_RULE_SETUP } } YY_BREAK -case 63: +case 66: YY_RULE_SETUP -#line 661 "dhcp4_lexer.ll" +#line 692 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -2515,9 +2626,9 @@ YY_RULE_SETUP } } YY_BREAK -case 64: +case 67: YY_RULE_SETUP -#line 671 "dhcp4_lexer.ll" +#line 702 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -2528,9 +2639,9 @@ YY_RULE_SETUP } } YY_BREAK -case 65: +case 68: YY_RULE_SETUP -#line 681 "dhcp4_lexer.ll" +#line 712 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -2541,9 +2652,9 @@ YY_RULE_SETUP } } YY_BREAK -case 66: +case 69: YY_RULE_SETUP -#line 691 "dhcp4_lexer.ll" +#line 722 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -2554,9 +2665,9 @@ YY_RULE_SETUP } } YY_BREAK -case 67: +case 70: YY_RULE_SETUP -#line 701 "dhcp4_lexer.ll" +#line 732 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -2566,9 +2677,9 @@ YY_RULE_SETUP } } YY_BREAK -case 68: +case 71: YY_RULE_SETUP -#line 710 "dhcp4_lexer.ll" +#line 741 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -2579,9 +2690,9 @@ YY_RULE_SETUP } } YY_BREAK -case 69: +case 72: YY_RULE_SETUP -#line 720 "dhcp4_lexer.ll" +#line 751 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -2591,9 +2702,9 @@ YY_RULE_SETUP } } YY_BREAK -case 70: +case 73: YY_RULE_SETUP -#line 729 "dhcp4_lexer.ll" +#line 760 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -2603,9 +2714,9 @@ YY_RULE_SETUP } } YY_BREAK -case 71: +case 74: YY_RULE_SETUP -#line 738 "dhcp4_lexer.ll" +#line 769 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -2615,9 +2726,9 @@ YY_RULE_SETUP } } YY_BREAK -case 72: +case 75: YY_RULE_SETUP -#line 747 "dhcp4_lexer.ll" +#line 778 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -2627,9 +2738,9 @@ YY_RULE_SETUP } } YY_BREAK -case 73: +case 76: YY_RULE_SETUP -#line 756 "dhcp4_lexer.ll" +#line 787 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -2639,9 +2750,9 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 77: YY_RULE_SETUP -#line 765 "dhcp4_lexer.ll" +#line 796 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -2652,9 +2763,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 78: YY_RULE_SETUP -#line 775 "dhcp4_lexer.ll" +#line 806 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2664,9 +2775,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 79: YY_RULE_SETUP -#line 785 "dhcp4_lexer.ll" +#line 816 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -2676,9 +2787,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 80: YY_RULE_SETUP -#line 794 "dhcp4_lexer.ll" +#line 825 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -2688,9 +2799,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 81: YY_RULE_SETUP -#line 803 "dhcp4_lexer.ll" +#line 834 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2700,9 +2811,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 82: YY_RULE_SETUP -#line 812 "dhcp4_lexer.ll" +#line 843 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -2712,9 +2823,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 83: YY_RULE_SETUP -#line 821 "dhcp4_lexer.ll" +#line 852 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -2724,9 +2835,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 84: YY_RULE_SETUP -#line 830 "dhcp4_lexer.ll" +#line 861 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -2736,9 +2847,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 85: YY_RULE_SETUP -#line 839 "dhcp4_lexer.ll" +#line 870 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -2748,9 +2859,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 86: YY_RULE_SETUP -#line 848 "dhcp4_lexer.ll" +#line 879 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -2760,9 +2871,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 87: YY_RULE_SETUP -#line 857 "dhcp4_lexer.ll" +#line 888 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -2772,9 +2883,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 88: YY_RULE_SETUP -#line 866 "dhcp4_lexer.ll" +#line 897 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2784,9 +2895,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 89: YY_RULE_SETUP -#line 875 "dhcp4_lexer.ll" +#line 906 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2796,9 +2907,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 90: YY_RULE_SETUP -#line 884 "dhcp4_lexer.ll" +#line 915 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -2808,9 +2919,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 91: YY_RULE_SETUP -#line 893 "dhcp4_lexer.ll" +#line 924 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -2820,9 +2931,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 92: YY_RULE_SETUP -#line 902 "dhcp4_lexer.ll" +#line 933 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2832,9 +2943,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 93: YY_RULE_SETUP -#line 911 "dhcp4_lexer.ll" +#line 942 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2844,9 +2955,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 94: YY_RULE_SETUP -#line 920 "dhcp4_lexer.ll" +#line 951 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2856,9 +2967,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 95: YY_RULE_SETUP -#line 929 "dhcp4_lexer.ll" +#line 960 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2868,9 +2979,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 96: YY_RULE_SETUP -#line 938 "dhcp4_lexer.ll" +#line 969 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2880,9 +2991,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 97: YY_RULE_SETUP -#line 947 "dhcp4_lexer.ll" +#line 978 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2892,9 +3003,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 98: YY_RULE_SETUP -#line 956 "dhcp4_lexer.ll" +#line 987 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2904,9 +3015,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 99: YY_RULE_SETUP -#line 965 "dhcp4_lexer.ll" +#line 996 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2916,9 +3027,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 100: YY_RULE_SETUP -#line 974 "dhcp4_lexer.ll" +#line 1005 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2928,9 +3039,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 101: YY_RULE_SETUP -#line 983 "dhcp4_lexer.ll" +#line 1014 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2940,9 +3051,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 102: YY_RULE_SETUP -#line 992 "dhcp4_lexer.ll" +#line 1023 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2952,9 +3063,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 103: YY_RULE_SETUP -#line 1001 "dhcp4_lexer.ll" +#line 1032 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2964,9 +3075,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 104: YY_RULE_SETUP -#line 1010 "dhcp4_lexer.ll" +#line 1041 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2976,9 +3087,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 105: YY_RULE_SETUP -#line 1019 "dhcp4_lexer.ll" +#line 1050 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -2988,9 +3099,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 106: YY_RULE_SETUP -#line 1028 "dhcp4_lexer.ll" +#line 1059 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3000,9 +3111,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 107: YY_RULE_SETUP -#line 1037 "dhcp4_lexer.ll" +#line 1068 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3012,126 +3123,126 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 108: YY_RULE_SETUP -#line 1046 "dhcp4_lexer.ll" +#line 1077 "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); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK -case 106: -YY_RULE_SETUP -#line 1056 "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); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK -case 107: -YY_RULE_SETUP -#line 1066 "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); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK -case 108: -YY_RULE_SETUP -#line 1076 "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 109: YY_RULE_SETUP -#line 1086 "dhcp4_lexer.ll" +#line 1087 "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_); + 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 110: YY_RULE_SETUP -#line 1096 "dhcp4_lexer.ll" +#line 1097 "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_); + 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 111: YY_RULE_SETUP -#line 1106 "dhcp4_lexer.ll" +#line 1107 "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_); + 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 112: YY_RULE_SETUP -#line 1116 "dhcp4_lexer.ll" +#line 1117 "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_); + 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 113: YY_RULE_SETUP -#line 1126 "dhcp4_lexer.ll" +#line 1127 "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_); + 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 114: YY_RULE_SETUP -#line 1136 "dhcp4_lexer.ll" +#line 1137 "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(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 115: +YY_RULE_SETUP +#line 1147 "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(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 116: +YY_RULE_SETUP +#line 1157 "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(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 117: +YY_RULE_SETUP +#line 1167 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -3141,9 +3252,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 118: YY_RULE_SETUP -#line 1145 "dhcp4_lexer.ll" +#line 1176 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -3153,9 +3264,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 119: YY_RULE_SETUP -#line 1154 "dhcp4_lexer.ll" +#line 1185 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3165,9 +3276,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 120: YY_RULE_SETUP -#line 1163 "dhcp4_lexer.ll" +#line 1194 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3177,9 +3288,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 121: YY_RULE_SETUP -#line 1172 "dhcp4_lexer.ll" +#line 1203 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3189,9 +3300,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 122: YY_RULE_SETUP -#line 1181 "dhcp4_lexer.ll" +#line 1212 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3202,9 +3313,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 123: YY_RULE_SETUP -#line 1191 "dhcp4_lexer.ll" +#line 1222 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3215,9 +3326,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 124: YY_RULE_SETUP -#line 1201 "dhcp4_lexer.ll" +#line 1232 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3230,9 +3341,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 125: YY_RULE_SETUP -#line 1213 "dhcp4_lexer.ll" +#line 1244 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3244,9 +3355,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 126: YY_RULE_SETUP -#line 1224 "dhcp4_lexer.ll" +#line 1255 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3258,14 +3369,14 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 127: YY_RULE_SETUP -#line 1237 "dhcp4_lexer.ll" +#line 1268 "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; @@ -3359,68 +3470,68 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 125: -/* rule 125 can match eol */ +case 128: +/* rule 128 can match eol */ YY_RULE_SETUP -#line 1335 "dhcp4_lexer.ll" +#line 1366 "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 126: -/* rule 126 can match eol */ -YY_RULE_SETUP -#line 1340 "dhcp4_lexer.ll" -{ - // Bad string with a bad escape inside - driver.error(driver.loc_, "Bad escape in " + std::string(parser4_text)); -} - YY_BREAK -case 127: -YY_RULE_SETUP -#line 1345 "dhcp4_lexer.ll" -{ - // Bad string with an open escape at the end - driver.error(driver.loc_, "Overflow escape in " + std::string(parser4_text)); -} - YY_BREAK -case 128: -YY_RULE_SETUP -#line 1350 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } - YY_BREAK case 129: +/* rule 129 can match eol */ YY_RULE_SETUP -#line 1351 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } +#line 1371 "dhcp4_lexer.ll" +{ + // Bad string with a bad escape inside + driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); +} YY_BREAK case 130: YY_RULE_SETUP -#line 1352 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } +#line 1376 "dhcp4_lexer.ll" +{ + // Bad string with an open escape at the end + driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); +} YY_BREAK case 131: YY_RULE_SETUP -#line 1353 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } +#line 1381 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 132: YY_RULE_SETUP -#line 1354 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } +#line 1382 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 133: YY_RULE_SETUP -#line 1355 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } +#line 1383 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK case 134: YY_RULE_SETUP -#line 1357 "dhcp4_lexer.ll" +#line 1384 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 135: +YY_RULE_SETUP +#line 1385 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } + YY_BREAK +case 136: +YY_RULE_SETUP +#line 1386 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } + YY_BREAK +case 137: +YY_RULE_SETUP +#line 1388 "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). @@ -3436,12 +3547,12 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 135: +case 138: YY_RULE_SETUP -#line 1375 "dhcp4_lexer.ll" +#line 1406 "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); @@ -3452,43 +3563,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 136: +case 139: YY_RULE_SETUP -#line 1388 "dhcp4_lexer.ll" +#line 1419 "dhcp4_lexer.ll" { - string tmp(parser4_text); + string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 137: +case 140: YY_RULE_SETUP -#line 1393 "dhcp4_lexer.ll" +#line 1424 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 138: -YY_RULE_SETUP -#line 1397 "dhcp4_lexer.ll" -driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); - YY_BREAK -case 139: -YY_RULE_SETUP -#line 1399 "dhcp4_lexer.ll" -driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); - YY_BREAK -case 140: -YY_RULE_SETUP -#line 1401 "dhcp4_lexer.ll" -driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); - YY_BREAK case 141: YY_RULE_SETUP -#line 1403 "dhcp4_lexer.ll" -driver.error (driver.loc_, "Invalid character: " + std::string(parser4_text)); +#line 1428 "dhcp4_lexer.ll" +driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); + YY_BREAK +case 142: +YY_RULE_SETUP +#line 1430 "dhcp4_lexer.ll" +driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); + YY_BREAK +case 143: +YY_RULE_SETUP +#line 1432 "dhcp4_lexer.ll" +driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); + YY_BREAK +case 144: +YY_RULE_SETUP +#line 1434 "dhcp4_lexer.ll" +driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1405 "dhcp4_lexer.ll" +#line 1436 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -3512,12 +3623,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 142: +case 145: YY_RULE_SETUP -#line 1428 "dhcp4_lexer.ll" +#line 1459 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 3521 "dhcp4_lexer.cc" +#line 3631 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -3658,7 +3769,6 @@ ECHO; /* %if-c++-only */ /* %not-for-header */ - /* %ok-for-header */ /* %endif */ @@ -3678,7 +3788,7 @@ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); - yy_size_t number_to_move, i; + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -3707,7 +3817,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (yy_size_t) ((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++); @@ -3743,7 +3853,7 @@ 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 ); + parser4_realloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -3789,10 +3899,10 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((int) ((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. */ int 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 ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parser4_realloc((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()" ); } @@ -3810,7 +3920,6 @@ 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 */ @@ -3834,10 +3943,10 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1164 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 1192 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -3867,11 +3976,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1164 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 1192 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 1163); + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_is_jam = (yy_current_state == 1191); return yy_is_jam ? 0 : yy_current_state; } @@ -3910,7 +4019,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int 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( ) ) @@ -4062,12 +4171,12 @@ static void parser4__load_buffer_state (void) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in parser4__create_buffer()" ); - b->yy_buf_size = (yy_size_t)size; + 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 *) parser4_alloc((yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in parser4__create_buffer()" ); @@ -4250,7 +4359,7 @@ static void parser4_ensure_buffer_stack (void) /* %if-c++-only */ /* %endif */ { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -4264,9 +4373,9 @@ static void parser4_ensure_buffer_stack (void) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in parser4_ensure_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; @@ -4297,7 +4406,7 @@ 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 ) { @@ -4313,7 +4422,7 @@ YY_BUFFER_STATE parser4__scan_buffer (char * base, yy_size_t size ) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in parser4__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 = NULL; @@ -4338,7 +4447,7 @@ YY_BUFFER_STATE parser4__scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * parser4__scan_bytes() instead. */ -YY_BUFFER_STATE parser4__scan_string (yyconst char * yystr ) +YY_BUFFER_STATE parser4__scan_string (const char * yystr ) { return parser4__scan_bytes(yystr,(int) strlen(yystr) ); @@ -4353,15 +4462,15 @@ YY_BUFFER_STATE parser4__scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE parser4__scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE parser4__scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) _yybytes_len + 2; + n = (yy_size_t) (_yybytes_len + 2); buf = (char *) parser4_alloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in parser4__scan_bytes()" ); @@ -4389,7 +4498,7 @@ YY_BUFFER_STATE parser4__scan_bytes (yyconst char * yybytes, int _yybytes_len #endif /* %if-c-only */ -static void yynoreturn yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); @@ -4426,7 +4535,7 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ) */ int parser4_get_lineno (void) { - + return parser4_lineno; } @@ -4570,7 +4679,7 @@ 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 ) { int i; @@ -4580,7 +4689,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) @@ -4620,8 +4729,7 @@ void parser4_free (void * ptr ) /* %ok-for-header */ -#line 1428 "dhcp4_lexer.ll" - +#line 1459 "dhcp4_lexer.ll" using namespace isc::dhcp; @@ -4635,9 +4743,9 @@ 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()); + buffer = yy_scan_bytes(str.c_str(), str.size()); if (!buffer) { fatal("cannot scan string"); // fatal() throws an exception so this can't be reached @@ -4655,7 +4763,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 771a90e076..b31f4dab87 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -253,28 +253,28 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 147: // value - case 151: // map_value - case 189: // socket_type - case 198: // db_type - case 399: // ncr_protocol_value - case 408: // replace_client_name_value + case 149: // value + case 153: // map_value + case 191: // socket_type + case 200: // db_type + case 405: // ncr_protocol_value + case 414: // replace_client_name_value value.move< ElementPtr > (that.value); break; - case 133: // "boolean" + case 135: // "boolean" value.move< bool > (that.value); break; - case 132: // "floating point" + case 134: // "floating point" value.move< double > (that.value); break; - case 131: // "integer" + case 133: // "integer" value.move< int64_t > (that.value); break; - case 130: // "constant string" + case 132: // "constant string" value.move< std::string > (that.value); break; @@ -293,28 +293,28 @@ namespace isc { namespace dhcp { state = that.state; switch (that.type_get ()) { - case 147: // value - case 151: // map_value - case 189: // socket_type - case 198: // db_type - case 399: // ncr_protocol_value - case 408: // replace_client_name_value + case 149: // value + case 153: // map_value + case 191: // socket_type + case 200: // db_type + case 405: // ncr_protocol_value + case 414: // replace_client_name_value value.copy< ElementPtr > (that.value); break; - case 133: // "boolean" + case 135: // "boolean" value.copy< bool > (that.value); break; - case 132: // "floating point" + case 134: // "floating point" value.copy< double > (that.value); break; - case 131: // "integer" + case 133: // "integer" value.copy< int64_t > (that.value); break; - case 130: // "constant string" + case 132: // "constant string" value.copy< std::string > (that.value); break; @@ -354,72 +354,72 @@ namespace isc { namespace dhcp { << yysym.location << ": "; switch (yytype) { - case 130: // "constant string" + case 132: // "constant string" -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< std::string > (); } #line 362 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 131: // "integer" + case 133: // "integer" -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< int64_t > (); } #line 369 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 132: // "floating point" + case 134: // "floating point" -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< double > (); } #line 376 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 133: // "boolean" + case 135: // "boolean" -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< bool > (); } #line 383 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 147: // value + case 149: // value -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 390 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 151: // map_value + case 153: // map_value -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 397 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 189: // socket_type + case 191: // socket_type -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 404 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 198: // db_type + case 200: // db_type -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 411 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 399: // ncr_protocol_value + case 405: // ncr_protocol_value -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 418 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 408: // replace_client_name_value + case 414: // replace_client_name_value -#line 205 "dhcp4_parser.yy" // lalr1.cc:636 +#line 207 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 425 "dhcp4_parser.cc" // lalr1.cc:636 break; @@ -621,28 +621,28 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 147: // value - case 151: // map_value - case 189: // socket_type - case 198: // db_type - case 399: // ncr_protocol_value - case 408: // replace_client_name_value + case 149: // value + case 153: // map_value + case 191: // socket_type + case 200: // db_type + case 405: // ncr_protocol_value + case 414: // replace_client_name_value yylhs.value.build< ElementPtr > (); break; - case 133: // "boolean" + case 135: // "boolean" yylhs.value.build< bool > (); break; - case 132: // "floating point" + case 134: // "floating point" yylhs.value.build< double > (); break; - case 131: // "integer" + case 133: // "integer" yylhs.value.build< int64_t > (); break; - case 130: // "constant string" + case 132: // "constant string" yylhs.value.build< std::string > (); break; @@ -664,115 +664,115 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 214 "dhcp4_parser.yy" // lalr1.cc:859 +#line 216 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.NO_KEYWORD; } #line 670 "dhcp4_parser.cc" // lalr1.cc:859 break; case 4: -#line 215 "dhcp4_parser.yy" // lalr1.cc:859 +#line 217 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.CONFIG; } #line 676 "dhcp4_parser.cc" // lalr1.cc:859 break; case 6: -#line 216 "dhcp4_parser.yy" // lalr1.cc:859 +#line 218 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.DHCP4; } #line 682 "dhcp4_parser.cc" // lalr1.cc:859 break; case 8: -#line 217 "dhcp4_parser.yy" // lalr1.cc:859 +#line 219 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 688 "dhcp4_parser.cc" // lalr1.cc:859 break; case 10: -#line 218 "dhcp4_parser.yy" // lalr1.cc:859 +#line 220 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.SUBNET4; } #line 694 "dhcp4_parser.cc" // lalr1.cc:859 break; case 12: -#line 219 "dhcp4_parser.yy" // lalr1.cc:859 +#line 221 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.POOLS; } #line 700 "dhcp4_parser.cc" // lalr1.cc:859 break; case 14: -#line 220 "dhcp4_parser.yy" // lalr1.cc:859 +#line 222 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.RESERVATIONS; } #line 706 "dhcp4_parser.cc" // lalr1.cc:859 break; case 16: -#line 221 "dhcp4_parser.yy" // lalr1.cc:859 +#line 223 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DEF; } #line 712 "dhcp4_parser.cc" // lalr1.cc:859 break; case 18: -#line 222 "dhcp4_parser.yy" // lalr1.cc:859 +#line 224 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DATA; } #line 718 "dhcp4_parser.cc" // lalr1.cc:859 break; case 20: -#line 223 "dhcp4_parser.yy" // lalr1.cc:859 +#line 225 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 724 "dhcp4_parser.cc" // lalr1.cc:859 break; case 22: -#line 224 "dhcp4_parser.yy" // lalr1.cc:859 +#line 226 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.DHCP_DDNS; } #line 730 "dhcp4_parser.cc" // lalr1.cc:859 break; case 24: -#line 232 "dhcp4_parser.yy" // lalr1.cc:859 +#line 234 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 736 "dhcp4_parser.cc" // lalr1.cc:859 break; case 25: -#line 233 "dhcp4_parser.yy" // lalr1.cc:859 +#line 235 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } #line 742 "dhcp4_parser.cc" // lalr1.cc:859 break; case 26: -#line 234 "dhcp4_parser.yy" // lalr1.cc:859 +#line 236 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } #line 748 "dhcp4_parser.cc" // lalr1.cc:859 break; case 27: -#line 235 "dhcp4_parser.yy" // lalr1.cc:859 +#line 237 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 754 "dhcp4_parser.cc" // lalr1.cc:859 break; case 28: -#line 236 "dhcp4_parser.yy" // lalr1.cc:859 +#line 238 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 760 "dhcp4_parser.cc" // lalr1.cc:859 break; case 29: -#line 237 "dhcp4_parser.yy" // lalr1.cc:859 +#line 239 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 766 "dhcp4_parser.cc" // lalr1.cc:859 break; case 30: -#line 238 "dhcp4_parser.yy" // lalr1.cc:859 +#line 240 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 772 "dhcp4_parser.cc" // lalr1.cc:859 break; case 31: -#line 241 "dhcp4_parser.yy" // lalr1.cc:859 +#line 243 "dhcp4_parser.yy" // lalr1.cc:859 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); @@ -781,7 +781,7 @@ namespace isc { namespace dhcp { break; case 32: -#line 246 "dhcp4_parser.yy" // lalr1.cc:859 +#line 248 "dhcp4_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@ -792,7 +792,7 @@ namespace isc { namespace dhcp { break; case 33: -#line 251 "dhcp4_parser.yy" // lalr1.cc:859 +#line 253 "dhcp4_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -802,13 +802,13 @@ namespace isc { namespace dhcp { break; case 34: -#line 257 "dhcp4_parser.yy" // lalr1.cc:859 +#line 259 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 808 "dhcp4_parser.cc" // lalr1.cc:859 break; case 37: -#line 264 "dhcp4_parser.yy" // lalr1.cc:859 +#line 266 "dhcp4_parser.yy" // lalr1.cc:859 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); @@ -817,7 +817,7 @@ namespace isc { namespace dhcp { break; case 38: -#line 268 "dhcp4_parser.yy" // lalr1.cc:859 +#line 270 "dhcp4_parser.yy" // lalr1.cc:859 { // map consisting of a shorter map followed by // comma and string:value @@ -827,7 +827,7 @@ namespace isc { namespace dhcp { break; case 39: -#line 275 "dhcp4_parser.yy" // lalr1.cc:859 +#line 277 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -836,7 +836,7 @@ namespace isc { namespace dhcp { break; case 40: -#line 278 "dhcp4_parser.yy" // lalr1.cc:859 +#line 280 "dhcp4_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here } @@ -844,7 +844,7 @@ namespace isc { namespace dhcp { break; case 43: -#line 286 "dhcp4_parser.yy" // lalr1.cc:859 +#line 288 "dhcp4_parser.yy" // lalr1.cc:859 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -853,7 +853,7 @@ namespace isc { namespace dhcp { break; case 44: -#line 290 "dhcp4_parser.yy" // lalr1.cc:859 +#line 292 "dhcp4_parser.yy" // lalr1.cc:859 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -862,7 +862,7 @@ namespace isc { namespace dhcp { break; case 45: -#line 297 "dhcp4_parser.yy" // lalr1.cc:859 +#line 299 "dhcp4_parser.yy" // lalr1.cc:859 { // List parsing about to start } @@ -870,7 +870,7 @@ namespace isc { namespace dhcp { break; case 46: -#line 299 "dhcp4_parser.yy" // lalr1.cc:859 +#line 301 "dhcp4_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -879,7 +879,7 @@ namespace isc { namespace dhcp { break; case 49: -#line 308 "dhcp4_parser.yy" // lalr1.cc:859 +#line 310 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -888,7 +888,7 @@ namespace isc { namespace dhcp { break; case 50: -#line 312 "dhcp4_parser.yy" // lalr1.cc:859 +#line 314 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -897,7 +897,7 @@ namespace isc { namespace dhcp { break; case 51: -#line 323 "dhcp4_parser.yy" // lalr1.cc:859 +#line 325 "dhcp4_parser.yy" // lalr1.cc:859 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); @@ -908,7 +908,7 @@ namespace isc { namespace dhcp { break; case 52: -#line 333 "dhcp4_parser.yy" // lalr1.cc:859 +#line 335 "dhcp4_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@ -919,7 +919,7 @@ namespace isc { namespace dhcp { break; case 53: -#line 338 "dhcp4_parser.yy" // lalr1.cc:859 +#line 340 "dhcp4_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -929,7 +929,7 @@ namespace isc { namespace dhcp { break; case 61: -#line 357 "dhcp4_parser.yy" // lalr1.cc:859 +#line 359 "dhcp4_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@ -942,7 +942,7 @@ namespace isc { namespace dhcp { break; case 62: -#line 364 "dhcp4_parser.yy" // lalr1.cc:859 +#line 366 "dhcp4_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -954,7 +954,7 @@ namespace isc { namespace dhcp { break; case 63: -#line 374 "dhcp4_parser.yy" // lalr1.cc:859 +#line 376 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -964,7 +964,7 @@ namespace isc { namespace dhcp { break; case 64: -#line 378 "dhcp4_parser.yy" // lalr1.cc:859 +#line 380 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } @@ -972,7 +972,7 @@ namespace isc { namespace dhcp { break; case 88: -#line 411 "dhcp4_parser.yy" // lalr1.cc:859 +#line 413 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); @@ -981,7 +981,7 @@ namespace isc { namespace dhcp { break; case 89: -#line 416 "dhcp4_parser.yy" // lalr1.cc:859 +#line 418 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); @@ -990,7 +990,7 @@ namespace isc { namespace dhcp { break; case 90: -#line 421 "dhcp4_parser.yy" // lalr1.cc:859 +#line 423 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); @@ -999,7 +999,7 @@ namespace isc { namespace dhcp { break; case 91: -#line 426 "dhcp4_parser.yy" // lalr1.cc:859 +#line 428 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); @@ -1008,7 +1008,7 @@ namespace isc { namespace dhcp { break; case 92: -#line 431 "dhcp4_parser.yy" // lalr1.cc:859 +#line 433 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("echo-client-id", echo); @@ -1017,7 +1017,7 @@ namespace isc { namespace dhcp { break; case 93: -#line 436 "dhcp4_parser.yy" // lalr1.cc:859 +#line 438 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("match-client-id", match); @@ -1026,7 +1026,7 @@ namespace isc { namespace dhcp { break; case 94: -#line 442 "dhcp4_parser.yy" // lalr1.cc:859 +#line 444 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); @@ -1037,7 +1037,7 @@ namespace isc { namespace dhcp { break; case 95: -#line 447 "dhcp4_parser.yy" // lalr1.cc:859 +#line 449 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1046,7 +1046,7 @@ namespace isc { namespace dhcp { break; case 100: -#line 460 "dhcp4_parser.yy" // lalr1.cc:859 +#line 462 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1056,7 +1056,7 @@ namespace isc { namespace dhcp { break; case 101: -#line 464 "dhcp4_parser.yy" // lalr1.cc:859 +#line 466 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } @@ -1064,7 +1064,7 @@ namespace isc { namespace dhcp { break; case 102: -#line 468 "dhcp4_parser.yy" // lalr1.cc:859 +#line 470 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); @@ -1075,7 +1075,7 @@ namespace isc { namespace dhcp { break; case 103: -#line 473 "dhcp4_parser.yy" // lalr1.cc:859 +#line 475 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1084,7 +1084,7 @@ namespace isc { namespace dhcp { break; case 104: -#line 478 "dhcp4_parser.yy" // lalr1.cc:859 +#line 480 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.DHCP_SOCKET_TYPE); } @@ -1092,7 +1092,7 @@ namespace isc { namespace dhcp { break; case 105: -#line 480 "dhcp4_parser.yy" // lalr1.cc:859 +#line 482 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); @@ -1101,19 +1101,19 @@ namespace isc { namespace dhcp { break; case 106: -#line 485 "dhcp4_parser.yy" // lalr1.cc:859 +#line 487 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } #line 1107 "dhcp4_parser.cc" // lalr1.cc:859 break; case 107: -#line 486 "dhcp4_parser.yy" // lalr1.cc:859 +#line 488 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } #line 1113 "dhcp4_parser.cc" // lalr1.cc:859 break; case 108: -#line 489 "dhcp4_parser.yy" // lalr1.cc:859 +#line 491 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); @@ -1124,7 +1124,7 @@ namespace isc { namespace dhcp { break; case 109: -#line 494 "dhcp4_parser.yy" // lalr1.cc:859 +#line 496 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1133,7 +1133,7 @@ namespace isc { namespace dhcp { break; case 110: -#line 499 "dhcp4_parser.yy" // lalr1.cc:859 +#line 501 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); @@ -1144,7 +1144,7 @@ namespace isc { namespace dhcp { break; case 111: -#line 504 "dhcp4_parser.yy" // lalr1.cc:859 +#line 506 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1152,16 +1152,16 @@ namespace isc { namespace dhcp { #line 1153 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 125: -#line 526 "dhcp4_parser.yy" // lalr1.cc:859 + case 127: +#line 530 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.DATABASE_TYPE); } #line 1161 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 126: -#line 528 "dhcp4_parser.yy" // lalr1.cc:859 + case 128: +#line 532 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); @@ -1169,40 +1169,40 @@ namespace isc { namespace dhcp { #line 1170 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 127: -#line 533 "dhcp4_parser.yy" // lalr1.cc:859 + case 129: +#line 537 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 1176 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 128: -#line 534 "dhcp4_parser.yy" // lalr1.cc:859 + case 130: +#line 538 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 1182 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 129: -#line 535 "dhcp4_parser.yy" // lalr1.cc:859 + case 131: +#line 539 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 1188 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 130: -#line 536 "dhcp4_parser.yy" // lalr1.cc:859 + case 132: +#line 540 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } #line 1194 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 131: -#line 539 "dhcp4_parser.yy" // lalr1.cc:859 + case 133: +#line 543 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1202 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 132: -#line 541 "dhcp4_parser.yy" // lalr1.cc:859 + case 134: +#line 545 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -1211,16 +1211,16 @@ namespace isc { namespace dhcp { #line 1212 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 133: -#line 547 "dhcp4_parser.yy" // lalr1.cc:859 + case 135: +#line 551 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1220 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 134: -#line 549 "dhcp4_parser.yy" // lalr1.cc:859 + case 136: +#line 553 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -1229,16 +1229,16 @@ namespace isc { namespace dhcp { #line 1230 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 135: -#line 555 "dhcp4_parser.yy" // lalr1.cc:859 + case 137: +#line 559 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1238 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 136: -#line 557 "dhcp4_parser.yy" // lalr1.cc:859 + case 138: +#line 561 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -1247,8 +1247,8 @@ namespace isc { namespace dhcp { #line 1248 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 137: -#line 563 "dhcp4_parser.yy" // lalr1.cc:859 + case 139: +#line 567 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); @@ -1256,16 +1256,16 @@ namespace isc { namespace dhcp { #line 1257 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 138: -#line 568 "dhcp4_parser.yy" // lalr1.cc:859 + case 140: +#line 572 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1265 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 139: -#line 570 "dhcp4_parser.yy" // lalr1.cc:859 + case 141: +#line 574 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -1274,8 +1274,8 @@ namespace isc { namespace dhcp { #line 1275 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 140: -#line 576 "dhcp4_parser.yy" // lalr1.cc:859 + case 142: +#line 580 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); @@ -1283,8 +1283,8 @@ namespace isc { namespace dhcp { #line 1284 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 141: -#line 581 "dhcp4_parser.yy" // lalr1.cc:859 + case 143: +#line 585 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); @@ -1292,8 +1292,8 @@ namespace isc { namespace dhcp { #line 1293 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 142: -#line 586 "dhcp4_parser.yy" // lalr1.cc:859 + case 144: +#line 590 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); @@ -1301,8 +1301,8 @@ namespace isc { namespace dhcp { #line 1302 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 143: -#line 591 "dhcp4_parser.yy" // lalr1.cc:859 + case 145: +#line 595 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); @@ -1310,259 +1310,295 @@ namespace isc { namespace dhcp { #line 1311 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 144: -#line 596 "dhcp4_parser.yy" // lalr1.cc:859 + case 146: +#line 600 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1319 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 147: +#line 602 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 1329 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 148: +#line 608 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1337 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 149: +#line 610 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("keyspace", ks); + ctx.leave(); +} +#line 1347 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 150: +#line 617 "dhcp4_parser.yy" // lalr1.cc:859 { 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 1322 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1358 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 145: -#line 601 "dhcp4_parser.yy" // lalr1.cc:859 + case 151: +#line 622 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1331 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1367 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 152: -#line 616 "dhcp4_parser.yy" // lalr1.cc:859 + case 158: +#line 637 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1340 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1376 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 153: -#line 621 "dhcp4_parser.yy" // lalr1.cc:859 + case 159: +#line 642 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 1349 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1385 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 154: -#line 626 "dhcp4_parser.yy" // lalr1.cc:859 + case 160: +#line 647 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); } -#line 1358 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1394 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 155: -#line 631 "dhcp4_parser.yy" // lalr1.cc:859 + case 161: +#line 652 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); } -#line 1367 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1403 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 156: -#line 636 "dhcp4_parser.yy" // lalr1.cc:859 + case 162: +#line 657 "dhcp4_parser.yy" // lalr1.cc:859 { 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 1378 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1414 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 157: -#line 641 "dhcp4_parser.yy" // lalr1.cc:859 + case 163: +#line 662 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1387 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1423 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 162: -#line 654 "dhcp4_parser.yy" // lalr1.cc:859 + case 168: +#line 675 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1397 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1433 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 163: -#line 658 "dhcp4_parser.yy" // lalr1.cc:859 + case 169: +#line 679 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1405 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1441 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 164: -#line 662 "dhcp4_parser.yy" // lalr1.cc:859 + case 170: +#line 683 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1415 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 165: -#line 666 "dhcp4_parser.yy" // lalr1.cc:859 - { - // parsing completed -} -#line 1423 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1451 "dhcp4_parser.cc" // lalr1.cc:859 break; case 171: -#line 679 "dhcp4_parser.yy" // lalr1.cc:859 +#line 687 "dhcp4_parser.yy" // lalr1.cc:859 + { + // parsing completed +} +#line 1459 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 177: +#line 700 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1431 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1467 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 172: -#line 681 "dhcp4_parser.yy" // lalr1.cc:859 + case 178: +#line 702 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1441 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1477 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 173: -#line 687 "dhcp4_parser.yy" // lalr1.cc:859 + case 179: +#line 708 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1449 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1485 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 174: -#line 689 "dhcp4_parser.yy" // lalr1.cc:859 + case 180: +#line 710 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1458 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1494 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 175: -#line 695 "dhcp4_parser.yy" // lalr1.cc:859 + case 181: +#line 716 "dhcp4_parser.yy" // lalr1.cc:859 { 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 1469 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1505 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 176: -#line 700 "dhcp4_parser.yy" // lalr1.cc:859 + case 182: +#line 721 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1478 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1514 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 185: -#line 717 "dhcp4_parser.yy" // lalr1.cc:859 + case 191: +#line 738 "dhcp4_parser.yy" // lalr1.cc:859 { 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 1487 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1523 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 186: -#line 722 "dhcp4_parser.yy" // lalr1.cc:859 + case 192: +#line 743 "dhcp4_parser.yy" // lalr1.cc:859 { 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 1496 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1532 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 187: -#line 727 "dhcp4_parser.yy" // lalr1.cc:859 + case 193: +#line 748 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 1505 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1541 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 188: -#line 732 "dhcp4_parser.yy" // lalr1.cc:859 + case 194: +#line 753 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 1514 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1550 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 189: -#line 737 "dhcp4_parser.yy" // lalr1.cc:859 + case 195: +#line 758 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 1523 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1559 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 190: -#line 742 "dhcp4_parser.yy" // lalr1.cc:859 + case 196: +#line 763 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 1532 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1568 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 191: -#line 750 "dhcp4_parser.yy" // lalr1.cc:859 + case 197: +#line 771 "dhcp4_parser.yy" // lalr1.cc:859 { 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 1543 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1579 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 192: -#line 755 "dhcp4_parser.yy" // lalr1.cc:859 + case 198: +#line 776 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1552 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1588 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 197: -#line 775 "dhcp4_parser.yy" // lalr1.cc:859 + case 203: +#line 796 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1562 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1598 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 198: -#line 779 "dhcp4_parser.yy" // lalr1.cc:859 + case 204: +#line 800 "dhcp4_parser.yy" // lalr1.cc:859 { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -1581,1370 +1617,1370 @@ namespace isc { namespace dhcp { // } ctx.stack_.pop_back(); } -#line 1585 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1621 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 199: -#line 798 "dhcp4_parser.yy" // lalr1.cc:859 + case 205: +#line 819 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1595 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1631 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 200: -#line 802 "dhcp4_parser.yy" // lalr1.cc:859 + case 206: +#line 823 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1603 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 223: -#line 834 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1611 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 224: -#line 836 "dhcp4_parser.yy" // lalr1.cc:859 - { - ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("subnet", subnet); - ctx.leave(); -} -#line 1621 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 225: -#line 842 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1629 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 226: -#line 844 "dhcp4_parser.yy" // lalr1.cc:859 - { - 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 1639 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 227: -#line 850 "dhcp4_parser.yy" // lalr1.cc:859 + case 229: +#line 855 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1647 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 228: -#line 852 "dhcp4_parser.yy" // lalr1.cc:859 + case 230: +#line 857 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("4o6-interface-id", iface); + ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } #line 1657 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 229: -#line 858 "dhcp4_parser.yy" // lalr1.cc:859 + case 231: +#line 863 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1665 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 230: -#line 860 "dhcp4_parser.yy" // lalr1.cc:859 + case 232: +#line 865 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("4o6-subnet", iface); + ctx.stack_.back()->set("4o6-interface", iface); ctx.leave(); } #line 1675 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 231: -#line 866 "dhcp4_parser.yy" // lalr1.cc:859 + case 233: +#line 871 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1683 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 232: -#line 868 "dhcp4_parser.yy" // lalr1.cc:859 + case 234: +#line 873 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("interface", iface); + ctx.stack_.back()->set("4o6-interface-id", iface); ctx.leave(); } #line 1693 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 233: -#line 874 "dhcp4_parser.yy" // lalr1.cc:859 + case 235: +#line 879 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1701 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 234: -#line 876 "dhcp4_parser.yy" // lalr1.cc:859 + case 236: +#line 881 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("interface-id", iface); + ctx.stack_.back()->set("4o6-subnet", iface); ctx.leave(); } #line 1711 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 235: -#line 882 "dhcp4_parser.yy" // lalr1.cc:859 + case 237: +#line 887 "dhcp4_parser.yy" // lalr1.cc:859 { - ctx.enter(ctx.CLIENT_CLASS); + ctx.enter(ctx.NO_KEYWORD); } #line 1719 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 236: -#line 884 "dhcp4_parser.yy" // lalr1.cc:859 + case 238: +#line 889 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("client-class", cls); + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("interface", iface); ctx.leave(); } #line 1729 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 237: -#line 890 "dhcp4_parser.yy" // lalr1.cc:859 + case 239: +#line 895 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1737 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 238: -#line 892 "dhcp4_parser.yy" // lalr1.cc:859 + case 240: +#line 897 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("reservation-mode", rm); + 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 1747 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 239: -#line 898 "dhcp4_parser.yy" // lalr1.cc:859 - { - ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("id", id); -} -#line 1756 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 240: + case 241: #line 903 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("rapid-commit", rc); + ctx.enter(ctx.CLIENT_CLASS); +} +#line 1755 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 242: +#line 905 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 1765 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 241: -#line 912 "dhcp4_parser.yy" // lalr1.cc:859 + case 243: +#line 911 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1773 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 244: +#line 913 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("reservation-mode", rm); + ctx.leave(); +} +#line 1783 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 245: +#line 919 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("id", id); +} +#line 1792 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 246: +#line 924 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("rapid-commit", rc); +} +#line 1801 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 247: +#line 933 "dhcp4_parser.yy" // lalr1.cc:859 { 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 1776 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 242: -#line 917 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); - ctx.leave(); -} -#line 1785 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 247: -#line 934 "dhcp4_parser.yy" // lalr1.cc:859 - { - ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(m); - ctx.stack_.push_back(m); -} -#line 1795 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1812 "dhcp4_parser.cc" // lalr1.cc:859 break; case 248: #line 938 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); + ctx.leave(); } -#line 1803 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1821 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 249: -#line 945 "dhcp4_parser.yy" // lalr1.cc:859 + case 253: +#line 955 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(m); + ctx.stack_.push_back(m); +} +#line 1831 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 254: +#line 959 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); +} +#line 1839 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 255: +#line 966 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1813 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1849 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 250: -#line 949 "dhcp4_parser.yy" // lalr1.cc:859 + case 256: +#line 970 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1821 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1857 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 264: -#line 975 "dhcp4_parser.yy" // lalr1.cc:859 + case 270: +#line 996 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 1830 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 266: -#line 982 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1838 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 267: -#line 984 "dhcp4_parser.yy" // lalr1.cc:859 - { - ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("type", prf); - ctx.leave(); -} -#line 1848 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 268: -#line 990 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1856 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 269: -#line 992 "dhcp4_parser.yy" // lalr1.cc:859 - { - 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 1866 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 270: -#line 998 "dhcp4_parser.yy" // lalr1.cc:859 + case 272: +#line 1003 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1874 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 271: -#line 1000 "dhcp4_parser.yy" // lalr1.cc:859 + case 273: +#line 1005 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("space", space); + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("type", prf); ctx.leave(); } #line 1884 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 273: -#line 1008 "dhcp4_parser.yy" // lalr1.cc:859 + case 274: +#line 1011 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1892 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 274: -#line 1010 "dhcp4_parser.yy" // lalr1.cc:859 + case 275: +#line 1013 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("encapsulate", encap); + 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 1902 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 275: -#line 1016 "dhcp4_parser.yy" // lalr1.cc:859 + case 276: +#line 1019 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1910 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 277: +#line 1021 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("space", space); + ctx.leave(); +} +#line 1920 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 279: +#line 1029 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1928 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 280: +#line 1031 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("encapsulate", encap); + ctx.leave(); +} +#line 1938 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 281: +#line 1037 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 1911 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1947 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 276: -#line 1025 "dhcp4_parser.yy" // lalr1.cc:859 + case 282: +#line 1046 "dhcp4_parser.yy" // lalr1.cc:859 { 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 1922 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1958 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 277: -#line 1030 "dhcp4_parser.yy" // lalr1.cc:859 + case 283: +#line 1051 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1931 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1967 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 282: -#line 1049 "dhcp4_parser.yy" // lalr1.cc:859 + case 288: +#line 1070 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1941 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1977 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 283: -#line 1053 "dhcp4_parser.yy" // lalr1.cc:859 + case 289: +#line 1074 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1949 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1985 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 284: -#line 1060 "dhcp4_parser.yy" // lalr1.cc:859 + case 290: +#line 1081 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1959 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1995 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 285: -#line 1064 "dhcp4_parser.yy" // lalr1.cc:859 + case 291: +#line 1085 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1967 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2003 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 297: -#line 1093 "dhcp4_parser.yy" // lalr1.cc:859 + case 303: +#line 1114 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1975 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2011 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 298: -#line 1095 "dhcp4_parser.yy" // lalr1.cc:859 + case 304: +#line 1116 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 1985 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2021 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 301: -#line 1105 "dhcp4_parser.yy" // lalr1.cc:859 + case 307: +#line 1126 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 1994 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2030 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 302: -#line 1113 "dhcp4_parser.yy" // lalr1.cc:859 + case 308: +#line 1134 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2005 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2041 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 303: -#line 1118 "dhcp4_parser.yy" // lalr1.cc:859 + case 309: +#line 1139 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2014 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2050 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 308: -#line 1133 "dhcp4_parser.yy" // lalr1.cc:859 + case 314: +#line 1154 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2024 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2060 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 309: -#line 1137 "dhcp4_parser.yy" // lalr1.cc:859 + case 315: +#line 1158 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2032 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2068 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 310: -#line 1141 "dhcp4_parser.yy" // lalr1.cc:859 + case 316: +#line 1162 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2042 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2078 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 311: -#line 1145 "dhcp4_parser.yy" // lalr1.cc:859 + case 317: +#line 1166 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 2050 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2086 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 318: -#line 1159 "dhcp4_parser.yy" // lalr1.cc:859 + case 324: +#line 1180 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2058 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2094 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 319: -#line 1161 "dhcp4_parser.yy" // lalr1.cc:859 + case 325: +#line 1182 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2068 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2104 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 320: -#line 1167 "dhcp4_parser.yy" // lalr1.cc:859 + case 326: +#line 1188 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2076 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2112 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 321: -#line 1169 "dhcp4_parser.yy" // lalr1.cc:859 + case 327: +#line 1190 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("user-context", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2085 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2121 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 322: -#line 1177 "dhcp4_parser.yy" // lalr1.cc:859 + case 328: +#line 1198 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2096 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2132 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 323: -#line 1182 "dhcp4_parser.yy" // lalr1.cc:859 + case 329: +#line 1203 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2105 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2141 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 328: -#line 1195 "dhcp4_parser.yy" // lalr1.cc:859 + case 334: +#line 1216 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2115 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2151 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 329: -#line 1199 "dhcp4_parser.yy" // lalr1.cc:859 + case 335: +#line 1220 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2123 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2159 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 330: -#line 1203 "dhcp4_parser.yy" // lalr1.cc:859 + case 336: +#line 1224 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2133 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2169 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 331: -#line 1207 "dhcp4_parser.yy" // lalr1.cc:859 + case 337: +#line 1228 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 2141 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 348: -#line 1234 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2149 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 349: -#line 1236 "dhcp4_parser.yy" // lalr1.cc:859 - { - 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 2159 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 350: -#line 1242 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2167 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 351: -#line 1244 "dhcp4_parser.yy" // lalr1.cc:859 - { - 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 2177 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 352: -#line 1250 "dhcp4_parser.yy" // lalr1.cc:859 + case 354: +#line 1255 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 2185 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 353: -#line 1252 "dhcp4_parser.yy" // lalr1.cc:859 + case 355: +#line 1257 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr bootfile(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("boot-file-name", bootfile); + 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 2195 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 354: -#line 1258 "dhcp4_parser.yy" // lalr1.cc:859 + case 356: +#line 1263 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 2203 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 355: -#line 1260 "dhcp4_parser.yy" // lalr1.cc:859 + case 357: +#line 1265 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("ip-address", addr); + 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 2213 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 356: -#line 1266 "dhcp4_parser.yy" // lalr1.cc:859 + case 358: +#line 1271 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 2221 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 357: -#line 1268 "dhcp4_parser.yy" // lalr1.cc:859 + case 359: +#line 1273 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("duid", d); + 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 2231 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 358: -#line 1274 "dhcp4_parser.yy" // lalr1.cc:859 + case 360: +#line 1279 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 2239 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 359: -#line 1276 "dhcp4_parser.yy" // lalr1.cc:859 + case 361: +#line 1281 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("hw-address", hw); + 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 2249 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 360: -#line 1282 "dhcp4_parser.yy" // lalr1.cc:859 + case 362: +#line 1287 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 2257 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 361: -#line 1284 "dhcp4_parser.yy" // lalr1.cc:859 + case 363: +#line 1289 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("client-id", hw); + ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("duid", d); ctx.leave(); } #line 2267 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 362: -#line 1290 "dhcp4_parser.yy" // lalr1.cc:859 + case 364: +#line 1295 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 2275 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 363: -#line 1292 "dhcp4_parser.yy" // lalr1.cc:859 + case 365: +#line 1297 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("circuit-id", hw); + ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } #line 2285 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 364: -#line 1299 "dhcp4_parser.yy" // lalr1.cc:859 + case 366: +#line 1303 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 2293 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 365: -#line 1301 "dhcp4_parser.yy" // lalr1.cc:859 + case 367: +#line 1305 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("hostname", host); + 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 2303 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 366: -#line 1307 "dhcp4_parser.yy" // lalr1.cc:859 + case 368: +#line 1311 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2311 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 369: +#line 1313 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 2321 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 370: +#line 1320 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2329 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 371: +#line 1322 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname", host); + ctx.leave(); +} +#line 2339 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 372: +#line 1328 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2314 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2350 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 367: -#line 1312 "dhcp4_parser.yy" // lalr1.cc:859 + case 373: +#line 1333 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2323 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2359 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 368: -#line 1320 "dhcp4_parser.yy" // lalr1.cc:859 + case 374: +#line 1341 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2334 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2370 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 369: -#line 1325 "dhcp4_parser.yy" // lalr1.cc:859 + case 375: +#line 1346 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2343 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2379 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 370: -#line 1330 "dhcp4_parser.yy" // lalr1.cc:859 + case 376: +#line 1351 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2351 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2387 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 371: -#line 1332 "dhcp4_parser.yy" // lalr1.cc:859 + case 377: +#line 1353 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr ip(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", ip); ctx.leave(); } -#line 2361 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2397 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 372: -#line 1341 "dhcp4_parser.yy" // lalr1.cc:859 + case 378: +#line 1362 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2372 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2408 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 373: -#line 1346 "dhcp4_parser.yy" // lalr1.cc:859 + case 379: +#line 1367 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2381 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 376: -#line 1355 "dhcp4_parser.yy" // lalr1.cc:859 - { - ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(m); - ctx.stack_.push_back(m); -} -#line 2391 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 377: -#line 1359 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); -} -#line 2399 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 390: -#line 1382 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2407 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 391: -#line 1384 "dhcp4_parser.yy" // lalr1.cc:859 - { - ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("test", test); - ctx.leave(); -} #line 2417 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 392: -#line 1394 "dhcp4_parser.yy" // lalr1.cc:859 + case 382: +#line 1376 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(m); + ctx.stack_.push_back(m); +} +#line 2427 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 383: +#line 1380 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); +} +#line 2435 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 396: +#line 1403 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2443 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 397: +#line 1405 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("test", test); + ctx.leave(); +} +#line 2453 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 398: +#line 1415 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 2426 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2462 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 393: -#line 1401 "dhcp4_parser.yy" // lalr1.cc:859 + case 399: +#line 1422 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2437 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 394: -#line 1406 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); - ctx.leave(); -} -#line 2446 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 399: -#line 1419 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2454 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2473 "dhcp4_parser.cc" // lalr1.cc:859 break; case 400: -#line 1421 "dhcp4_parser.yy" // lalr1.cc:859 - { - 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 2464 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 401: #line 1427 "dhcp4_parser.yy" // lalr1.cc:859 { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2472 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 402: -#line 1429 "dhcp4_parser.yy" // lalr1.cc:859 - { - ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("socket-name", name); + ctx.stack_.pop_back(); ctx.leave(); } #line 2482 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 403: -#line 1437 "dhcp4_parser.yy" // lalr1.cc:859 + case 405: +#line 1440 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2490 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 406: +#line 1442 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 2500 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 407: +#line 1448 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2508 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 408: +#line 1450 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 2518 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 409: +#line 1458 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2493 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2529 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 404: -#line 1442 "dhcp4_parser.yy" // lalr1.cc:859 + case 410: +#line 1463 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2502 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2538 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 405: -#line 1447 "dhcp4_parser.yy" // lalr1.cc:859 + case 411: +#line 1468 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2512 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2548 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 406: -#line 1451 "dhcp4_parser.yy" // lalr1.cc:859 + case 412: +#line 1472 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 2520 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2556 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 425: -#line 1477 "dhcp4_parser.yy" // lalr1.cc:859 + case 431: +#line 1498 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 2529 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2565 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 426: -#line 1482 "dhcp4_parser.yy" // lalr1.cc:859 + case 432: +#line 1503 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2537 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2573 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 427: -#line 1484 "dhcp4_parser.yy" // lalr1.cc:859 + case 433: +#line 1505 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2547 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2583 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 428: -#line 1490 "dhcp4_parser.yy" // lalr1.cc:859 + case 434: +#line 1511 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2555 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2591 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 429: -#line 1492 "dhcp4_parser.yy" // lalr1.cc:859 + case 435: +#line 1513 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2565 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2601 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 430: -#line 1498 "dhcp4_parser.yy" // lalr1.cc:859 + case 436: +#line 1519 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 2574 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2610 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 431: -#line 1503 "dhcp4_parser.yy" // lalr1.cc:859 + case 437: +#line 1524 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2582 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2618 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 432: -#line 1505 "dhcp4_parser.yy" // lalr1.cc:859 + case 438: +#line 1526 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2592 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2628 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 433: -#line 1511 "dhcp4_parser.yy" // lalr1.cc:859 + case 439: +#line 1532 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 2601 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2637 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 434: -#line 1516 "dhcp4_parser.yy" // lalr1.cc:859 + case 440: +#line 1537 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 2610 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2646 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 435: -#line 1521 "dhcp4_parser.yy" // lalr1.cc:859 + case 441: +#line 1542 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NCR_PROTOCOL); } -#line 2618 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2654 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 436: -#line 1523 "dhcp4_parser.yy" // lalr1.cc:859 + case 442: +#line 1544 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2627 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2663 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 437: -#line 1529 "dhcp4_parser.yy" // lalr1.cc:859 + case 443: +#line 1550 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 2633 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2669 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 438: -#line 1530 "dhcp4_parser.yy" // lalr1.cc:859 + case 444: +#line 1551 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 2639 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2675 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 439: -#line 1533 "dhcp4_parser.yy" // lalr1.cc:859 + case 445: +#line 1554 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NCR_FORMAT); } -#line 2647 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2683 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 440: -#line 1535 "dhcp4_parser.yy" // lalr1.cc:859 + case 446: +#line 1556 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 2657 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2693 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 441: -#line 1541 "dhcp4_parser.yy" // lalr1.cc:859 + case 447: +#line 1562 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-include-fqdn", b); } -#line 2666 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2702 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 442: -#line 1546 "dhcp4_parser.yy" // lalr1.cc:859 + case 448: +#line 1567 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allow-client-update", b); } -#line 2675 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2711 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 443: -#line 1551 "dhcp4_parser.yy" // lalr1.cc:859 + case 449: +#line 1572 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 2684 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2720 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 444: -#line 1556 "dhcp4_parser.yy" // lalr1.cc:859 + case 450: +#line 1577 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 2693 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2729 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 445: -#line 1561 "dhcp4_parser.yy" // lalr1.cc:859 + case 451: +#line 1582 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 2701 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2737 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 446: -#line 1563 "dhcp4_parser.yy" // lalr1.cc:859 + case 452: +#line 1584 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2710 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2746 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 447: -#line 1569 "dhcp4_parser.yy" // lalr1.cc:859 + case 453: +#line 1590 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 2718 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2754 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 448: -#line 1572 "dhcp4_parser.yy" // lalr1.cc:859 + case 454: +#line 1593 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 2726 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2762 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 449: -#line 1575 "dhcp4_parser.yy" // lalr1.cc:859 + case 455: +#line 1596 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 2734 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2770 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 450: -#line 1578 "dhcp4_parser.yy" // lalr1.cc:859 + case 456: +#line 1599 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 2742 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2778 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 451: -#line 1581 "dhcp4_parser.yy" // lalr1.cc:859 + case 457: +#line 1602 "dhcp4_parser.yy" // lalr1.cc:859 { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 2751 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2787 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 452: -#line 1587 "dhcp4_parser.yy" // lalr1.cc:859 + case 458: +#line 1608 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2759 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2795 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 453: -#line 1589 "dhcp4_parser.yy" // lalr1.cc:859 + case 459: +#line 1610 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2769 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2805 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 454: -#line 1597 "dhcp4_parser.yy" // lalr1.cc:859 + case 460: +#line 1618 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2777 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2813 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 455: -#line 1599 "dhcp4_parser.yy" // lalr1.cc:859 + case 461: +#line 1620 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2786 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2822 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 456: -#line 1604 "dhcp4_parser.yy" // lalr1.cc:859 + case 462: +#line 1625 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2794 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2830 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 457: -#line 1606 "dhcp4_parser.yy" // lalr1.cc:859 + case 463: +#line 1627 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2803 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2839 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 458: -#line 1616 "dhcp4_parser.yy" // lalr1.cc:859 + case 464: +#line 1637 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2814 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2850 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 459: -#line 1621 "dhcp4_parser.yy" // lalr1.cc:859 + case 465: +#line 1642 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2823 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2859 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 463: -#line 1638 "dhcp4_parser.yy" // lalr1.cc:859 + case 469: +#line 1659 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2834 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2870 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 464: -#line 1643 "dhcp4_parser.yy" // lalr1.cc:859 + case 470: +#line 1664 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2843 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2879 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 467: -#line 1655 "dhcp4_parser.yy" // lalr1.cc:859 + case 473: +#line 1676 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 2853 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2889 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 468: -#line 1659 "dhcp4_parser.yy" // lalr1.cc:859 + case 474: +#line 1680 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2861 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2897 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 476: -#line 1674 "dhcp4_parser.yy" // lalr1.cc:859 + case 482: +#line 1695 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 2870 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2906 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 477: -#line 1678 "dhcp4_parser.yy" // lalr1.cc:859 + case 483: +#line 1699 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2878 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2914 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 478: -#line 1680 "dhcp4_parser.yy" // lalr1.cc:859 + case 484: +#line 1701 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 2888 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2924 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 479: -#line 1686 "dhcp4_parser.yy" // lalr1.cc:859 + case 485: +#line 1707 "dhcp4_parser.yy" // lalr1.cc:859 { 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 2899 "dhcp4_parser.cc" // lalr1.cc:859 +#line 2935 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 480: -#line 1691 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); - ctx.leave(); -} -#line 2908 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 483: -#line 1700 "dhcp4_parser.yy" // lalr1.cc:859 - { - ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(m); - ctx.stack_.push_back(m); -} -#line 2918 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 484: -#line 1704 "dhcp4_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); -} -#line 2926 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 487: + case 486: #line 1712 "dhcp4_parser.yy" // lalr1.cc:859 { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2934 "dhcp4_parser.cc" // lalr1.cc:859 - break; - - case 488: -#line 1714 "dhcp4_parser.yy" // lalr1.cc:859 - { - ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("output", sev); + ctx.stack_.pop_back(); ctx.leave(); } #line 2944 "dhcp4_parser.cc" // lalr1.cc:859 break; + case 489: +#line 1721 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(m); + ctx.stack_.push_back(m); +} +#line 2954 "dhcp4_parser.cc" // lalr1.cc:859 + break; -#line 2948 "dhcp4_parser.cc" // lalr1.cc:859 + case 490: +#line 1725 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); +} +#line 2962 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 493: +#line 1733 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2970 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 494: +#line 1735 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("output", sev); + ctx.leave(); +} +#line 2980 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + +#line 2984 "dhcp4_parser.cc" // lalr1.cc:859 default: break; } @@ -3206,87 +3242,88 @@ namespace isc { namespace dhcp { const short int Dhcp4Parser::yypact_[] = { - 60, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, 32, 19, 42, 51, 55, 57, 83, 98, - 99, 116, 126, 149, -473, -473, -473, -473, -473, -473, + 62, -473, -473, -473, -473, -473, -473, -473, -473, -473, + -473, -473, 32, 19, 59, 81, 124, 140, 165, 173, + 222, 244, 249, 250, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, -473, -473, 19, 38, 17, 29, - 25, 18, -14, 68, 78, 62, -33, 122, -473, 77, - 173, 189, 169, 200, -473, -473, -473, -473, 203, -473, - 31, -473, -473, -473, -473, -473, -473, 241, 245, -473, - -473, -473, 246, 247, 255, 267, -473, -473, -473, -473, - -473, -473, -473, 269, -473, -473, -473, 45, -473, -473, + -473, -473, -473, -473, -473, -473, 19, -90, 17, 29, + 196, 18, -14, 72, 49, 74, -25, 120, -473, 42, + 70, 123, 131, 193, -473, -473, -473, -473, 137, -473, + 31, -473, -473, -473, -473, -473, -473, 259, 260, -473, + -473, -473, 263, 265, 267, 269, -473, -473, -473, -473, + -473, -473, -473, 270, -473, -473, -473, 52, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, 49, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, 270, 271, -473, -473, -473, -473, -473, - -473, -473, -473, -473, 117, -473, -473, -473, -473, -473, + -473, 56, -473, -473, -473, -473, -473, -473, -473, -473, + -473, -473, -473, 271, 273, -473, -473, -473, -473, -473, + -473, -473, -473, -473, 93, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, -473, 150, -473, -473, -473, -473, + -473, -473, -473, -473, -473, 102, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - 259, 274, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, -473, 276, -473, -473, -473, 277, - -473, -473, 279, 275, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, -473, 280, -473, -473, -473, -473, - 281, 282, -473, -473, -473, -473, -473, -473, -473, -473, - -473, 187, -473, -473, -473, 288, -473, -473, 289, -473, - 290, 295, -473, -473, 296, 302, 303, 304, -473, -473, - -473, 188, -473, -473, -473, -473, -473, -473, -473, -473, + 272, 275, -473, -473, -473, -473, -473, -473, -473, -473, + -473, -473, -473, -473, -473, 277, -473, -473, -473, 280, + -473, -473, 279, 282, -473, -473, -473, -473, -473, -473, + -473, -473, -473, -473, -473, 285, -473, -473, -473, -473, + 284, 290, -473, -473, -473, -473, -473, -473, -473, -473, + -473, 125, -473, -473, -473, 295, -473, -473, 296, -473, + 302, 303, -473, -473, 304, 305, 307, 309, -473, -473, + -473, 126, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, 19, - 19, -473, 179, 307, 309, 310, 311, -473, 17, -473, - 312, 184, 185, 315, 316, 318, 192, 193, 195, 196, - 321, 324, 325, 326, 327, 328, 329, 204, 330, 332, - 29, -473, 333, 334, 25, -473, 76, 335, 336, 337, - 338, 339, 342, 343, 217, 216, 346, 347, 348, 349, - 18, -473, 350, 351, -14, -473, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -473, 68, 361, 362, 237, - 363, 365, 366, 242, -473, 78, 367, 243, -473, 62, - 368, 369, -6, -473, 244, 370, 374, 248, 376, 250, - 251, 379, 380, 252, 253, 254, 256, 384, 386, 122, - -473, -473, -473, 387, 385, 388, 19, 19, -473, 389, - -473, -473, 264, 390, 391, -473, -473, -473, -473, 394, - 395, 396, 397, 398, 399, 400, -473, 401, 402, -473, - 405, 67, -473, -473, -473, -473, -473, -473, -473, -473, - 403, 409, -473, -473, -473, 283, 284, 285, 411, 287, - 291, 293, -473, -473, 294, 298, 413, 412, -473, 299, - 418, -473, 300, 305, 405, 306, 308, 313, 317, 320, - 322, -473, 323, 331, -473, 340, 341, 344, -473, -473, - 345, -473, -473, 364, 19, -473, -473, 371, 372, -473, - 373, -473, -473, 14, 314, -473, -473, -473, -473, 36, - 375, -473, 19, 29, 377, -473, -473, 25, -473, 132, - 132, 426, 427, 430, 186, 23, 432, 91, 11, 122, - -473, -473, -473, -473, -473, 438, -473, 76, -473, -473, - -473, 439, -473, -473, -473, -473, -473, 441, 319, -473, + 19, -473, 162, 310, 311, 312, 313, -473, 17, -473, + 314, 184, 185, 318, 319, 320, 194, 197, 198, 200, + 321, 322, 324, 325, 328, 330, 331, 203, 333, 334, + 29, -473, 335, 336, 196, -473, 65, 337, 338, 339, + 342, 343, 344, 345, 217, 216, 348, 349, 350, 351, + 18, -473, 352, 353, -14, -473, 354, 355, 356, 357, + 358, 359, 360, 361, 362, -473, 72, 363, 364, 241, + 365, 366, 367, 242, -473, 49, 368, 243, -473, 74, + 369, 371, 36, -473, 245, 372, 375, 248, 378, 251, + 252, 379, 382, 253, 254, 255, 256, 383, 388, 120, + -473, -473, -473, 389, 387, 390, 19, 19, -473, 391, + -473, -473, 264, 392, 393, -473, -473, -473, -473, 396, + 397, 398, 399, 400, 401, 402, -473, 403, 404, -473, + 407, 16, -473, -473, -473, -473, -473, -473, -473, -473, + 405, 411, -473, -473, -473, 276, 283, 286, 412, 287, + 288, 289, -473, -473, 291, 292, 420, 409, -473, 297, + 421, -473, 298, 301, 407, 306, 315, 316, 323, 326, + 329, -473, 332, 340, -473, 341, 346, 347, -473, -473, + 370, -473, -473, 373, 19, -473, -473, 374, 376, -473, + 377, -473, -473, 14, 299, -473, -473, -473, -473, 66, + 380, -473, 19, 29, 281, -473, -473, 196, -473, 134, + 134, 427, 428, 429, 189, 30, 430, 150, 138, 120, + -473, -473, -473, -473, -473, 435, -473, 65, -473, -473, + -473, 436, -473, -473, -473, -473, -473, 438, 381, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, 191, -473, 194, -473, -473, 197, - -473, -473, -473, -473, 447, 450, 451, 453, 454, -473, - 201, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, 224, -473, 456, 442, -473, -473, 457, 461, - -473, -473, 459, 463, -473, -473, -473, -473, -473, 151, - -473, -473, -473, -473, -473, -473, 257, -473, 462, 464, - -473, 465, 468, 469, 472, 473, 474, 225, -473, -473, - -473, -473, -473, -473, -473, -473, -473, 226, -473, -473, - -473, 228, 378, 381, -473, -473, 475, 476, -473, -473, - 477, 479, -473, -473, 452, -473, 480, 377, -473, -473, - 481, 482, 483, 484, 382, 272, 383, 273, 392, 132, - -473, -473, 18, -473, 426, 78, -473, 427, 62, -473, - 430, 186, -473, 23, -473, -33, -473, 432, 393, 404, - 406, 407, 408, 410, 91, -473, 486, 487, 11, -473, - -473, -473, 489, 490, -473, -14, -473, 439, 68, -473, - 441, 488, -473, 491, -473, 278, 414, 415, 416, -473, - -473, -473, -473, -473, -473, 232, -473, 492, -473, 496, - -473, -473, -473, 236, -473, -473, -473, -473, -473, -473, - -473, -473, 417, 419, -473, -473, 420, 238, -473, 498, - -473, 421, 500, -473, -473, -473, -473, -473, -473, -473, + -473, -473, -473, -473, 132, -473, 152, -473, -473, 171, + -473, -473, -473, -473, 442, 446, 447, 448, 449, -473, + -473, -473, 191, -473, -473, -473, -473, -473, -473, -473, + -473, -473, -473, -473, -473, -473, 192, -473, 454, 439, + -473, -473, 456, 451, -473, -473, 457, 462, -473, -473, + -473, -473, -473, 35, -473, -473, -473, -473, -473, -473, + 46, -473, 460, 464, -473, 465, 466, 467, 470, 471, + 472, 195, -473, -473, -473, -473, -473, -473, -473, -473, + -473, 236, -473, -473, -473, 237, 384, 385, -473, -473, + 474, 478, -473, -473, 476, 480, -473, -473, 469, -473, + 481, 281, -473, -473, 482, 483, 484, 485, 386, 394, + 395, 406, 410, 486, 487, 134, -473, -473, 18, -473, + 427, 49, -473, 428, 74, -473, 429, 189, -473, 30, + -473, -25, -473, 430, 413, 414, 415, 416, 417, 418, + 150, -473, 488, 489, 138, -473, -473, -473, 490, 491, + -473, -14, -473, 436, 72, -473, 438, 493, -473, 463, + -473, 278, 408, 422, 423, -473, -473, -473, -473, -473, + 424, 425, -473, 238, -473, 492, -473, 495, -473, -473, + -473, 239, -473, -473, -473, -473, -473, -473, -473, -473, + 426, 431, -473, -473, 432, 240, -473, 496, -473, 433, + 477, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, 258, -473, -13, 500, -473, -473, 493, -473, - -473, -473, 239, -473, -473, -473, -473, -473, 494, 422, - 495, -13, -473, 504, -473, 424, -473, 503, -473, -473, - 263, -473, 428, 503, -473, -473, 240, -473, -473, 508, - 428, -473, 425, -473, -473 + -473, -473, 105, -473, 41, 477, -473, -473, 494, -473, + -473, -473, 246, -473, -473, -473, -473, -473, 497, 419, + 503, 41, -473, 505, -473, 434, -473, 504, -473, -473, + 199, -473, 437, 504, -473, -473, 247, -473, -473, 509, + 437, -473, 440, -473, -473 }; const unsigned short int @@ -3296,119 +3333,120 @@ namespace isc { namespace dhcp { 20, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 39, 32, 28, 27, 24, 25, 26, 31, 3, 29, 30, 52, 5, 63, 7, - 100, 9, 199, 11, 310, 13, 330, 15, 249, 17, - 284, 19, 164, 21, 405, 23, 41, 35, 0, 0, - 0, 0, 0, 332, 251, 286, 0, 0, 43, 0, - 42, 0, 0, 36, 61, 458, 454, 456, 0, 60, - 0, 54, 56, 58, 59, 57, 94, 0, 0, 348, - 108, 110, 0, 0, 0, 0, 191, 241, 276, 144, - 372, 156, 175, 0, 393, 403, 87, 0, 65, 67, + 100, 9, 205, 11, 316, 13, 336, 15, 255, 17, + 290, 19, 170, 21, 411, 23, 41, 35, 0, 0, + 0, 0, 0, 338, 257, 292, 0, 0, 43, 0, + 42, 0, 0, 36, 61, 464, 460, 462, 0, 60, + 0, 54, 56, 58, 59, 57, 94, 0, 0, 354, + 108, 110, 0, 0, 0, 0, 197, 247, 282, 150, + 378, 162, 181, 0, 399, 409, 87, 0, 65, 67, 68, 69, 70, 84, 85, 72, 73, 74, 75, 79, 80, 71, 77, 78, 86, 76, 81, 82, 83, 102, - 104, 0, 96, 98, 99, 376, 225, 227, 229, 302, - 223, 231, 233, 0, 0, 237, 235, 322, 368, 222, - 203, 204, 205, 217, 0, 201, 208, 219, 220, 221, - 209, 210, 213, 215, 211, 212, 206, 207, 214, 218, - 216, 318, 320, 317, 315, 0, 312, 314, 316, 350, - 352, 366, 356, 358, 362, 360, 364, 354, 347, 343, - 0, 333, 334, 344, 345, 346, 340, 336, 341, 338, - 339, 342, 337, 266, 138, 0, 270, 268, 273, 0, - 262, 263, 0, 252, 253, 255, 265, 256, 257, 258, - 272, 259, 260, 261, 297, 0, 295, 296, 299, 300, - 0, 287, 288, 290, 291, 292, 293, 294, 171, 173, - 168, 0, 166, 169, 170, 0, 426, 428, 0, 431, - 0, 0, 435, 439, 0, 0, 0, 0, 445, 452, - 424, 0, 407, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 40, 0, + 104, 0, 96, 98, 99, 382, 231, 233, 235, 308, + 229, 237, 239, 0, 0, 243, 241, 328, 374, 228, + 209, 210, 211, 223, 0, 207, 214, 225, 226, 227, + 215, 216, 219, 221, 217, 218, 212, 213, 220, 224, + 222, 324, 326, 323, 321, 0, 318, 320, 322, 356, + 358, 372, 362, 364, 368, 366, 370, 360, 353, 349, + 0, 339, 340, 350, 351, 352, 346, 342, 347, 344, + 345, 348, 343, 272, 140, 0, 276, 274, 279, 0, + 268, 269, 0, 258, 259, 261, 271, 262, 263, 264, + 278, 265, 266, 267, 303, 0, 301, 302, 305, 306, + 0, 293, 294, 296, 297, 298, 299, 300, 177, 179, + 174, 0, 172, 175, 176, 0, 432, 434, 0, 437, + 0, 0, 441, 445, 0, 0, 0, 0, 451, 458, + 430, 0, 413, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 40, 0, 0, 33, 0, 0, 0, 0, 0, 51, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 0, 0, 0, 101, 378, 0, 0, 0, + 0, 64, 0, 0, 0, 101, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 200, 0, 0, 0, 311, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 0, 0, 250, 0, 0, 0, 285, 0, - 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, + 0, 206, 0, 0, 0, 317, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, + 0, 0, 0, 0, 256, 0, 0, 0, 291, 0, + 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 406, 44, 37, 0, 0, 0, 0, 0, 55, 0, + 412, 44, 37, 0, 0, 0, 0, 0, 55, 0, 92, 93, 0, 0, 0, 88, 89, 90, 91, 0, - 0, 0, 0, 0, 0, 0, 392, 0, 0, 66, - 0, 0, 97, 390, 388, 389, 384, 385, 386, 387, - 0, 379, 380, 382, 383, 0, 0, 0, 0, 0, - 0, 0, 239, 240, 0, 0, 0, 0, 202, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 335, 0, 0, 264, 0, 0, 0, 275, 254, - 0, 301, 289, 0, 0, 167, 425, 0, 0, 430, - 0, 433, 434, 0, 0, 441, 442, 443, 444, 0, - 0, 408, 0, 0, 0, 455, 457, 0, 349, 0, - 0, 193, 243, 278, 0, 0, 158, 0, 0, 0, - 45, 103, 106, 107, 105, 0, 377, 0, 226, 228, - 230, 304, 224, 232, 234, 238, 236, 324, 0, 319, - 34, 321, 351, 353, 367, 357, 359, 363, 361, 365, - 355, 267, 139, 271, 269, 274, 298, 172, 174, 427, - 429, 432, 437, 438, 436, 440, 447, 448, 449, 450, - 451, 446, 453, 38, 0, 463, 0, 460, 462, 0, - 125, 131, 133, 135, 0, 0, 0, 0, 0, 124, - 0, 112, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 0, 197, 0, 194, 195, 247, 0, 244, - 245, 282, 0, 279, 280, 152, 153, 154, 155, 0, - 146, 148, 149, 150, 151, 374, 0, 162, 0, 159, - 160, 0, 0, 0, 0, 0, 0, 0, 177, 179, - 180, 181, 182, 183, 184, 399, 401, 0, 395, 397, - 398, 0, 47, 0, 381, 308, 0, 305, 306, 328, - 0, 325, 326, 370, 0, 62, 0, 0, 459, 95, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 109, 111, 0, 192, 0, 251, 242, 0, 286, 277, - 0, 0, 145, 0, 373, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 0, 176, 0, 0, 0, 394, - 404, 49, 0, 48, 391, 0, 303, 0, 332, 323, - 0, 0, 369, 0, 461, 0, 0, 0, 0, 137, - 140, 141, 142, 143, 113, 0, 196, 0, 246, 0, - 281, 147, 375, 0, 161, 185, 186, 187, 188, 189, - 190, 178, 0, 0, 396, 46, 0, 0, 307, 0, - 327, 0, 0, 127, 128, 129, 130, 126, 132, 134, - 136, 198, 248, 283, 163, 400, 402, 50, 309, 329, - 371, 467, 0, 465, 0, 0, 464, 479, 0, 477, - 475, 471, 0, 469, 473, 474, 472, 466, 0, 0, - 0, 0, 468, 0, 476, 0, 470, 0, 478, 483, - 0, 481, 0, 0, 480, 487, 0, 485, 482, 0, - 0, 484, 0, 486, 488 + 0, 0, 0, 0, 0, 0, 398, 0, 0, 66, + 0, 0, 97, 396, 394, 395, 390, 391, 392, 393, + 0, 385, 386, 388, 389, 0, 0, 0, 0, 0, + 0, 0, 245, 246, 0, 0, 0, 0, 208, 0, + 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 341, 0, 0, 270, 0, 0, 0, 281, 260, + 0, 307, 295, 0, 0, 173, 431, 0, 0, 436, + 0, 439, 440, 0, 0, 447, 448, 449, 450, 0, + 0, 414, 0, 0, 0, 461, 463, 0, 355, 0, + 0, 199, 249, 284, 0, 0, 164, 0, 0, 0, + 45, 103, 106, 107, 105, 0, 383, 0, 232, 234, + 236, 310, 230, 238, 240, 244, 242, 330, 0, 325, + 34, 327, 357, 359, 373, 363, 365, 369, 367, 371, + 361, 273, 141, 277, 275, 280, 304, 178, 180, 433, + 435, 438, 443, 444, 442, 446, 453, 454, 455, 456, + 457, 452, 459, 38, 0, 469, 0, 466, 468, 0, + 127, 133, 135, 137, 0, 0, 0, 0, 0, 146, + 148, 126, 0, 112, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 203, 0, 200, + 201, 253, 0, 250, 251, 288, 0, 285, 286, 158, + 159, 160, 161, 0, 152, 154, 155, 156, 157, 380, + 0, 168, 0, 165, 166, 0, 0, 0, 0, 0, + 0, 0, 183, 185, 186, 187, 188, 189, 190, 405, + 407, 0, 401, 403, 404, 0, 47, 0, 387, 314, + 0, 311, 312, 334, 0, 331, 332, 376, 0, 62, + 0, 0, 465, 95, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 109, 111, 0, 198, + 0, 257, 248, 0, 292, 283, 0, 0, 151, 0, + 379, 0, 163, 0, 0, 0, 0, 0, 0, 0, + 0, 182, 0, 0, 0, 400, 410, 49, 0, 48, + 397, 0, 309, 0, 338, 329, 0, 0, 375, 0, + 467, 0, 0, 0, 0, 139, 142, 143, 144, 145, + 0, 0, 113, 0, 202, 0, 252, 0, 287, 153, + 381, 0, 167, 191, 192, 193, 194, 195, 196, 184, + 0, 0, 402, 46, 0, 0, 313, 0, 333, 0, + 0, 129, 130, 131, 132, 128, 134, 136, 138, 147, + 149, 204, 254, 289, 169, 406, 408, 50, 315, 335, + 377, 473, 0, 471, 0, 0, 470, 485, 0, 483, + 481, 477, 0, 475, 479, 480, 478, 472, 0, 0, + 0, 0, 474, 0, 482, 0, 476, 0, 484, 489, + 0, 487, 0, 0, 486, 493, 0, 491, 488, 0, + 0, 490, 0, 492, 494 }; const short int Dhcp4Parser::yypgoto_[] = { -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -42, -473, 40, -473, -473, -473, -473, + -473, -473, -473, -42, -473, 55, -473, -473, -473, -473, -473, -473, -473, -473, 71, -473, -473, -473, -58, -473, - -473, -473, 229, -473, -473, -473, -473, 33, 208, -60, - -44, -40, -473, -473, -39, -473, -473, 34, 205, -473, + -473, -473, 211, -473, -473, -473, -473, 37, 204, -60, + -44, -40, -473, -473, -39, -473, -473, 34, 208, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - 30, -137, -473, -473, -473, -473, -473, -473, -473, -473, + 28, -142, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -63, -473, -473, -473, -473, -473, -473, -473, - -473, -146, -473, -473, -473, -473, -473, -473, -473, -473, - -151, -473, -473, -473, -148, 166, -473, -473, -473, -473, - -473, -473, -473, -155, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, -134, -473, -473, -473, -131, 202, + -473, -473, -473, -473, -473, -153, -473, -473, -473, -473, + -473, -473, -473, -473, -158, -473, -473, -473, -155, 168, + -473, -473, -473, -473, -473, -473, -473, -163, -473, -473, + -473, -473, -473, -473, -473, -473, -473, -473, -139, -473, + -473, -473, -136, 205, -473, -473, -473, -473, -473, -473, + -473, -473, -473, -473, -473, -473, -472, -473, -473, -473, + -473, -473, -473, -473, -473, -473, -140, -473, -473, -473, + -137, -473, 181, -473, -49, -473, -473, -473, -473, -473, + -47, -473, -473, -473, -473, -473, -51, -473, -473, -473, + -138, -473, -473, -473, -135, -473, 178, -473, -473, -473, + -473, -473, -473, -473, -473, -473, -473, -161, -473, -473, + -473, -157, 225, -473, -473, -473, -473, -473, -473, -473, + -473, -146, -473, -473, -473, -159, -473, 215, -48, -473, + -297, -473, -296, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -472, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -133, -473, -473, -473, -132, -473, 181, -473, - -49, -473, -473, -473, -473, -473, -47, -473, -473, -473, - -473, -473, -51, -473, -473, -473, -130, -473, -473, -473, - -125, -473, 198, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -149, -473, -473, -473, -143, 222, -473, - -473, -473, -473, -473, -473, -473, -473, -142, -473, -473, - -473, -139, -473, 214, -48, -473, -297, -473, -296, -473, + -473, -473, -473, -473, -473, -473, -473, -473, 60, -473, + -473, -473, -473, -473, -473, -473, -132, -473, -473, -473, + -473, -473, -473, -473, -473, 69, 190, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, 54, -473, -473, -473, -473, -473, - -473, -473, -126, -473, -473, -473, -473, -473, -473, -473, - -473, 64, 190, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, -473, -473, -473, -473, -473, -473, - -473, -473, -473, -473, -83, -473, -473, -473, -200, -473, - -473, -215, -473, -473, -473, -473, -473, -473, -226, -473, - -473, -232, -473 + -473, -473, -473, -473, -473, -473, -473, -473, -81, -473, + -473, -473, -204, -473, -473, -218, -473, -473, -473, -473, + -473, -473, -229, -473, -473, -235, -473 }; const short int @@ -3416,35 +3454,35 @@ namespace isc { namespace dhcp { { -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 32, 33, 34, 57, 521, 72, 73, - 35, 56, 69, 70, 501, 632, 692, 693, 106, 37, + 35, 56, 69, 70, 501, 636, 698, 699, 106, 37, 58, 80, 81, 82, 283, 39, 59, 107, 108, 109, 110, 111, 112, 113, 114, 115, 290, 131, 132, 41, 60, 133, 312, 134, 313, 504, 116, 294, 117, 295, - 570, 571, 572, 650, 747, 573, 651, 574, 652, 575, - 653, 576, 211, 348, 578, 579, 580, 581, 118, 303, - 599, 600, 601, 602, 603, 604, 119, 305, 608, 609, - 610, 675, 53, 66, 241, 242, 243, 360, 244, 361, - 120, 306, 617, 618, 619, 620, 621, 622, 623, 624, - 121, 300, 584, 585, 586, 662, 43, 61, 154, 155, - 156, 321, 157, 317, 158, 318, 159, 319, 160, 322, - 161, 323, 162, 327, 163, 326, 164, 165, 122, 301, - 588, 589, 590, 665, 49, 64, 212, 213, 214, 215, - 216, 217, 218, 347, 219, 351, 220, 350, 221, 222, - 352, 223, 123, 302, 592, 593, 594, 668, 51, 65, - 230, 231, 232, 233, 234, 356, 235, 236, 237, 167, - 320, 636, 637, 638, 695, 45, 62, 175, 176, 177, - 332, 178, 333, 168, 328, 640, 641, 642, 698, 47, - 63, 190, 191, 192, 124, 293, 194, 336, 195, 337, - 196, 344, 197, 339, 198, 340, 199, 342, 200, 341, - 201, 343, 202, 338, 170, 329, 644, 701, 125, 304, - 606, 316, 420, 421, 422, 423, 424, 505, 126, 127, - 308, 627, 628, 629, 686, 630, 687, 128, 309, 55, - 67, 261, 262, 263, 264, 365, 265, 366, 266, 267, - 368, 268, 269, 270, 371, 544, 271, 372, 272, 273, - 274, 275, 276, 377, 551, 277, 378, 83, 285, 84, - 286, 85, 284, 556, 557, 558, 646, 762, 763, 764, - 772, 773, 774, 775, 780, 776, 778, 790, 791, 792, - 796, 797, 799 + 572, 573, 574, 654, 755, 575, 655, 576, 656, 577, + 657, 578, 211, 348, 580, 581, 582, 583, 584, 663, + 585, 664, 118, 303, 603, 604, 605, 606, 607, 608, + 119, 305, 612, 613, 614, 681, 53, 66, 241, 242, + 243, 360, 244, 361, 120, 306, 621, 622, 623, 624, + 625, 626, 627, 628, 121, 300, 588, 589, 590, 668, + 43, 61, 154, 155, 156, 321, 157, 317, 158, 318, + 159, 319, 160, 322, 161, 323, 162, 327, 163, 326, + 164, 165, 122, 301, 592, 593, 594, 671, 49, 64, + 212, 213, 214, 215, 216, 217, 218, 347, 219, 351, + 220, 350, 221, 222, 352, 223, 123, 302, 596, 597, + 598, 674, 51, 65, 230, 231, 232, 233, 234, 356, + 235, 236, 237, 167, 320, 640, 641, 642, 701, 45, + 62, 175, 176, 177, 332, 178, 333, 168, 328, 644, + 645, 646, 704, 47, 63, 190, 191, 192, 124, 293, + 194, 336, 195, 337, 196, 344, 197, 339, 198, 340, + 199, 342, 200, 341, 201, 343, 202, 338, 170, 329, + 648, 707, 125, 304, 610, 316, 420, 421, 422, 423, + 424, 505, 126, 127, 308, 631, 632, 633, 692, 634, + 693, 128, 309, 55, 67, 261, 262, 263, 264, 365, + 265, 366, 266, 267, 368, 268, 269, 270, 371, 544, + 271, 372, 272, 273, 274, 275, 276, 377, 551, 277, + 378, 83, 285, 84, 286, 85, 284, 556, 557, 558, + 650, 772, 773, 774, 782, 783, 784, 785, 790, 786, + 788, 800, 801, 802, 806, 807, 809 }; const unsigned short int @@ -3452,77 +3490,78 @@ namespace isc { namespace dhcp { { 79, 150, 227, 149, 173, 188, 210, 226, 240, 260, 166, 174, 189, 169, 68, 193, 228, 151, 229, 418, - 419, 152, 153, 605, 25, 135, 26, 74, 27, 542, - 135, 98, 24, 204, 288, 88, 89, 129, 130, 289, - 86, 171, 172, 238, 239, 87, 88, 89, 310, 36, - 90, 91, 314, 311, 92, 93, 94, 315, 38, 136, - 137, 138, 40, 98, 42, 92, 93, 94, 95, 96, - 238, 239, 139, 97, 98, 140, 141, 142, 143, 144, - 145, 502, 503, 278, 146, 147, 89, 179, 180, 146, - 44, 148, 99, 100, 89, 179, 180, 78, 625, 626, - 767, 203, 768, 769, 101, 46, 48, 102, 204, 224, - 205, 206, 225, 98, 103, 104, 78, 78, 105, 543, - 330, 98, 204, 50, 204, 331, 205, 206, 75, 207, - 208, 209, 181, 52, 76, 77, 182, 183, 184, 185, - 186, 413, 187, 546, 547, 548, 549, 78, 78, 28, - 29, 30, 31, 334, 671, 560, 54, 672, 335, 78, - 561, 562, 563, 564, 565, 566, 567, 568, 71, 550, - 611, 612, 613, 614, 615, 616, 279, 281, 204, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 362, 379, 78, 280, 310, 363, 380, 647, 78, 645, - 314, 722, 648, 282, 659, 649, 78, 287, 78, 660, + 419, 152, 153, 609, 25, 135, 26, 74, 27, 542, + 502, 503, 24, 98, 288, 88, 89, 135, 677, 289, + 86, 678, 71, 171, 172, 87, 88, 89, 278, 679, + 90, 91, 680, 238, 239, 310, 92, 93, 94, 314, + 311, 136, 137, 138, 315, 98, 36, 92, 93, 94, + 95, 96, 203, 279, 139, 97, 98, 140, 141, 142, + 143, 144, 145, 89, 179, 180, 146, 147, 38, 204, + 89, 179, 180, 148, 99, 100, 330, 204, 146, 205, + 206, 331, 207, 208, 209, 334, 101, 78, 775, 102, + 335, 776, 98, 204, 238, 239, 103, 104, 78, 98, + 105, 543, 204, 224, 205, 206, 225, 280, 362, 379, + 75, 40, 413, 363, 380, 310, 76, 77, 181, 281, + 649, 287, 182, 183, 184, 185, 186, 42, 187, 78, + 78, 28, 29, 30, 31, 651, 777, 560, 778, 779, + 652, 78, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 44, 78, 314, 546, 547, 548, 549, 653, + 46, 78, 204, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 665, 665, 282, 78, 690, 666, + 667, 550, 803, 691, 78, 804, 78, 730, 129, 130, 418, 419, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 659, 684, 688, - 79, 379, 661, 685, 689, 330, 690, 381, 382, 362, - 751, 334, 781, 800, 754, 291, 758, 782, 801, 292, - 296, 297, 78, 415, 595, 596, 597, 598, 414, 298, - 673, 765, 78, 674, 766, 416, 793, 345, 417, 794, - 150, 299, 149, 307, 324, 325, 173, 346, 355, 166, - 349, 353, 169, 174, 357, 359, 151, 354, 188, 358, - 152, 153, 364, 367, 369, 189, 227, 210, 193, 370, - 373, 226, 743, 744, 745, 746, 374, 375, 376, 383, - 228, 384, 229, 385, 386, 387, 389, 390, 391, 392, - 393, 260, 394, 395, 396, 399, 397, 398, 400, 401, - 402, 403, 404, 405, 407, 406, 408, 410, 411, 425, - 426, 427, 428, 429, 485, 486, 430, 431, 432, 433, - 434, 435, 436, 437, 439, 440, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 452, 453, 455, 454, 456, - 457, 460, 463, 464, 467, 458, 461, 466, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 479, 478, - 480, 482, 483, 643, 488, 484, 487, 489, 490, 491, - 492, 493, 494, 495, 496, 710, 712, 497, 498, 499, - 500, 506, 507, 508, 509, 510, 511, 512, 517, 518, - 545, 513, 538, 514, 515, 26, 577, 577, 516, 519, - 522, 569, 569, 583, 587, 523, 525, 591, 526, 607, - 553, 260, 633, 527, 415, 664, 635, 528, 639, 414, - 529, 654, 530, 531, 655, 656, 416, 657, 658, 417, - 702, 532, 663, 666, 667, 669, 670, 677, 676, 678, - 533, 534, 679, 680, 535, 536, 681, 682, 683, 697, - 520, 696, 700, 699, 703, 705, 706, 707, 708, 555, - 732, 733, 741, 736, 537, 735, 742, 779, 783, 785, - 752, 539, 540, 541, 753, 552, 759, 761, 691, 787, - 789, 694, 802, 709, 711, 524, 554, 388, 409, 412, - 582, 559, 714, 713, 725, 721, 724, 723, 465, 731, - 716, 715, 438, 717, 718, 726, 459, 727, 728, 729, - 720, 730, 795, 719, 748, 749, 750, 755, 738, 756, - 757, 760, 737, 784, 788, 804, 441, 462, 740, 739, - 451, 634, 734, 631, 704, 777, 786, 798, 803, 481, + 253, 254, 255, 256, 257, 258, 259, 629, 630, 48, + 79, 615, 616, 617, 618, 619, 620, 381, 382, 694, + 379, 330, 362, 334, 695, 696, 761, 764, 768, 791, + 810, 50, 78, 415, 792, 811, 52, 54, 414, 599, + 600, 601, 602, 291, 292, 416, 78, 296, 417, 297, + 150, 298, 149, 299, 307, 324, 173, 325, 346, 166, + 345, 349, 169, 174, 353, 355, 151, 354, 188, 357, + 152, 153, 358, 359, 383, 189, 227, 210, 193, 364, + 367, 226, 751, 752, 753, 754, 369, 370, 373, 374, + 228, 375, 229, 376, 384, 385, 386, 387, 389, 390, + 391, 260, 392, 393, 394, 399, 400, 395, 401, 402, + 396, 397, 403, 398, 404, 405, 406, 407, 408, 410, + 411, 425, 426, 427, 485, 486, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 439, 440, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 452, 453, 455, + 456, 457, 460, 463, 454, 464, 467, 458, 461, 468, + 466, 469, 470, 473, 471, 472, 474, 479, 475, 476, + 477, 478, 480, 482, 483, 555, 488, 484, 487, 489, + 490, 491, 492, 493, 494, 495, 496, 545, 508, 497, + 498, 499, 500, 506, 507, 509, 518, 511, 510, 512, + 513, 514, 538, 515, 516, 517, 579, 579, 26, 519, + 522, 571, 571, 523, 587, 591, 595, 611, 525, 637, + 553, 260, 670, 639, 415, 643, 658, 526, 527, 414, + 659, 660, 661, 662, 673, 528, 416, 647, 529, 417, + 669, 530, 672, 675, 531, 676, 682, 683, 750, 684, + 685, 686, 532, 533, 687, 688, 689, 708, 534, 535, + 702, 703, 705, 706, 771, 709, 711, 712, 713, 714, + 720, 721, 740, 741, 744, 520, 743, 749, 789, 388, + 762, 793, 536, 763, 769, 537, 539, 795, 540, 541, + 797, 799, 552, 812, 409, 524, 697, 700, 586, 715, + 554, 559, 412, 722, 729, 732, 731, 739, 717, 716, + 465, 724, 723, 726, 725, 438, 459, 462, 728, 727, + 756, 718, 746, 719, 745, 747, 733, 734, 735, 736, + 737, 738, 794, 805, 757, 758, 759, 760, 765, 441, + 748, 451, 742, 766, 767, 770, 798, 638, 635, 481, + 710, 787, 814, 796, 808, 813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, - 0, 569, 150, 0, 149, 227, 0, 210, 0, 0, - 226, 166, 0, 0, 169, 0, 0, 240, 151, 228, - 0, 229, 152, 153, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, - 188, 0, 0, 0, 174, 0, 0, 189, 0, 0, - 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 579, 0, 0, 0, 0, 571, 150, 0, + 149, 227, 0, 210, 0, 0, 226, 166, 0, 0, + 169, 0, 0, 240, 151, 228, 0, 229, 152, 153, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 173, 0, 0, 188, 0, 0, 0, + 174, 0, 0, 189, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 771, 0, 0, 0, 0, 770, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 771, 0, - 0, 0, 0, 770 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 781, 0, 0, 0, 0, 780, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 781, 0, + 0, 0, 0, 780 }; const short int @@ -3531,216 +3570,219 @@ namespace isc { namespace dhcp { 58, 61, 65, 61, 62, 63, 64, 65, 66, 67, 61, 62, 63, 61, 56, 63, 65, 61, 65, 316, 316, 61, 61, 495, 5, 7, 7, 10, 9, 15, - 7, 45, 0, 46, 3, 17, 18, 12, 13, 8, - 11, 55, 56, 76, 77, 16, 17, 18, 3, 7, - 21, 22, 3, 8, 36, 37, 38, 8, 7, 41, - 42, 43, 7, 45, 7, 36, 37, 38, 39, 40, - 76, 77, 54, 44, 45, 57, 58, 59, 60, 61, - 62, 14, 15, 6, 66, 67, 18, 19, 20, 66, - 7, 73, 63, 64, 18, 19, 20, 130, 87, 88, - 113, 23, 115, 116, 75, 7, 7, 78, 46, 47, - 48, 49, 50, 45, 85, 86, 130, 130, 89, 105, - 3, 45, 46, 7, 46, 8, 48, 49, 111, 51, - 52, 53, 64, 7, 117, 118, 68, 69, 70, 71, - 72, 65, 74, 107, 108, 109, 110, 130, 130, 130, - 131, 132, 133, 3, 3, 23, 7, 6, 8, 130, - 28, 29, 30, 31, 32, 33, 34, 35, 130, 133, - 79, 80, 81, 82, 83, 84, 3, 8, 46, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 3, 3, 130, 4, 3, 8, 8, 3, 130, 8, - 3, 673, 8, 3, 3, 8, 130, 4, 130, 8, - 507, 507, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 3, 3, 3, - 288, 3, 8, 8, 8, 3, 8, 279, 280, 3, - 8, 3, 3, 3, 8, 4, 8, 8, 8, 4, - 4, 4, 130, 316, 68, 69, 70, 71, 316, 4, - 3, 3, 130, 6, 6, 316, 3, 8, 316, 6, - 330, 4, 330, 4, 4, 4, 334, 3, 3, 330, - 4, 4, 330, 334, 4, 3, 330, 8, 346, 8, - 330, 330, 4, 4, 4, 346, 359, 355, 346, 4, - 4, 359, 24, 25, 26, 27, 4, 4, 4, 130, - 359, 4, 359, 4, 4, 4, 4, 133, 133, 4, - 4, 379, 4, 131, 131, 4, 131, 131, 4, 4, - 4, 4, 4, 4, 4, 131, 4, 4, 4, 4, - 4, 4, 4, 4, 386, 387, 4, 4, 131, 133, + 14, 15, 0, 47, 3, 17, 18, 7, 3, 8, + 11, 6, 132, 57, 58, 16, 17, 18, 6, 3, + 21, 22, 6, 78, 79, 3, 38, 39, 40, 3, + 8, 43, 44, 45, 8, 47, 7, 38, 39, 40, + 41, 42, 23, 3, 56, 46, 47, 59, 60, 61, + 62, 63, 64, 18, 19, 20, 68, 69, 7, 48, + 18, 19, 20, 75, 65, 66, 3, 48, 68, 50, + 51, 8, 53, 54, 55, 3, 77, 132, 3, 80, + 8, 6, 47, 48, 78, 79, 87, 88, 132, 47, + 91, 107, 48, 49, 50, 51, 52, 4, 3, 3, + 113, 7, 67, 8, 8, 3, 119, 120, 66, 8, + 8, 4, 70, 71, 72, 73, 74, 7, 76, 132, + 132, 132, 133, 134, 135, 3, 115, 23, 117, 118, + 8, 132, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 7, 132, 3, 109, 110, 111, 112, 8, + 7, 132, 48, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 3, 3, 3, 132, 3, 8, + 8, 135, 3, 8, 132, 6, 132, 679, 12, 13, + 507, 507, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 89, 90, 7, + 288, 81, 82, 83, 84, 85, 86, 279, 280, 3, + 3, 3, 3, 3, 8, 8, 8, 8, 8, 3, + 3, 7, 132, 316, 8, 8, 7, 7, 316, 70, + 71, 72, 73, 4, 4, 316, 132, 4, 316, 4, + 330, 4, 330, 4, 4, 4, 334, 4, 3, 330, + 8, 4, 330, 334, 4, 3, 330, 8, 346, 4, + 330, 330, 8, 3, 132, 346, 359, 355, 346, 4, + 4, 359, 24, 25, 26, 27, 4, 4, 4, 4, + 359, 4, 359, 4, 4, 4, 4, 4, 4, 135, + 135, 379, 4, 4, 4, 4, 4, 133, 4, 4, + 133, 133, 4, 133, 4, 4, 133, 4, 4, 4, + 4, 4, 4, 4, 386, 387, 4, 4, 4, 4, + 133, 135, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 131, 4, - 4, 4, 4, 4, 4, 133, 133, 133, 4, 131, - 4, 131, 131, 4, 4, 133, 133, 133, 4, 133, - 4, 4, 7, 74, 130, 7, 7, 7, 7, 5, - 5, 5, 5, 5, 5, 133, 133, 7, 7, 7, - 5, 8, 3, 130, 130, 130, 5, 130, 5, 7, - 106, 130, 464, 130, 130, 7, 489, 490, 130, 130, - 130, 489, 490, 7, 7, 130, 130, 7, 130, 7, - 482, 499, 4, 130, 507, 3, 7, 130, 7, 507, - 130, 4, 130, 130, 4, 4, 507, 4, 4, 507, - 8, 130, 6, 6, 3, 6, 3, 3, 6, 4, - 130, 130, 4, 4, 130, 130, 4, 4, 4, 3, - 440, 6, 3, 6, 4, 4, 4, 4, 4, 112, - 4, 4, 4, 3, 130, 6, 5, 4, 4, 4, - 8, 130, 130, 130, 8, 130, 8, 7, 130, 5, - 7, 130, 4, 131, 131, 444, 483, 288, 310, 314, - 490, 487, 659, 131, 131, 671, 677, 675, 362, 684, - 664, 662, 330, 665, 667, 131, 355, 131, 131, 131, - 670, 131, 114, 668, 130, 130, 130, 130, 697, 130, - 130, 130, 695, 131, 130, 130, 334, 359, 700, 698, - 346, 507, 688, 499, 647, 765, 781, 793, 800, 379, + 4, 4, 4, 4, 133, 4, 4, 135, 135, 4, + 135, 133, 4, 4, 133, 133, 4, 4, 135, 135, + 135, 135, 4, 4, 7, 114, 132, 7, 7, 7, + 7, 5, 5, 5, 5, 5, 5, 108, 132, 7, + 7, 7, 5, 8, 3, 132, 7, 5, 132, 132, + 132, 132, 464, 132, 132, 5, 489, 490, 7, 132, + 132, 489, 490, 132, 7, 7, 7, 7, 132, 4, + 482, 499, 3, 7, 507, 7, 4, 132, 132, 507, + 4, 4, 4, 4, 3, 132, 507, 76, 132, 507, + 6, 132, 6, 6, 132, 3, 6, 3, 5, 4, + 4, 4, 132, 132, 4, 4, 4, 8, 132, 132, + 6, 3, 6, 3, 7, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 3, 440, 6, 4, 4, 288, + 8, 4, 132, 8, 8, 132, 132, 4, 132, 132, + 5, 7, 132, 4, 310, 444, 132, 132, 490, 133, + 483, 487, 314, 665, 677, 683, 681, 690, 133, 135, + 362, 670, 668, 673, 671, 330, 355, 359, 676, 674, + 132, 135, 703, 133, 701, 704, 133, 133, 133, 133, + 133, 133, 133, 116, 132, 132, 132, 132, 132, 334, + 706, 346, 694, 132, 132, 132, 132, 507, 499, 379, + 651, 775, 132, 791, 803, 810, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 659, -1, -1, -1, - -1, 659, 662, -1, 662, 668, -1, 665, -1, -1, - 668, 662, -1, -1, 662, -1, -1, 675, 662, 668, - -1, 668, 662, 662, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 695, -1, -1, - 698, -1, -1, -1, 695, -1, -1, 698, -1, -1, - 698, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 665, -1, -1, -1, -1, 665, 668, -1, + 668, 674, -1, 671, -1, -1, 674, 668, -1, -1, + 668, -1, -1, 681, 668, 674, -1, 674, 668, 668, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 701, -1, -1, 704, -1, -1, -1, + 701, -1, -1, 704, -1, -1, 704, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 764, -1, -1, -1, -1, 764, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 781, -1, - -1, -1, -1, 781 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 774, -1, -1, -1, -1, 774, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 791, -1, + -1, -1, -1, 791 }; const unsigned short int Dhcp4Parser::yystos_[] = { - 0, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 0, 5, 7, 9, 130, 131, - 132, 133, 147, 148, 149, 154, 7, 163, 7, 169, - 7, 183, 7, 250, 7, 319, 7, 333, 7, 278, - 7, 302, 7, 226, 7, 383, 155, 150, 164, 170, - 184, 251, 320, 334, 279, 303, 227, 384, 147, 156, - 157, 130, 152, 153, 10, 111, 117, 118, 130, 162, - 165, 166, 167, 411, 413, 415, 11, 16, 17, 18, - 21, 22, 36, 37, 38, 39, 40, 44, 45, 63, - 64, 75, 78, 85, 86, 89, 162, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 190, 192, 212, 220, - 234, 244, 272, 296, 338, 362, 372, 373, 381, 12, - 13, 181, 182, 185, 187, 7, 41, 42, 43, 54, - 57, 58, 59, 60, 61, 62, 66, 67, 73, 162, - 173, 174, 175, 178, 252, 253, 254, 256, 258, 260, - 262, 264, 266, 268, 270, 271, 296, 313, 327, 338, - 358, 55, 56, 162, 296, 321, 322, 323, 325, 19, - 20, 64, 68, 69, 70, 71, 72, 74, 162, 296, - 335, 336, 337, 338, 340, 342, 344, 346, 348, 350, - 352, 354, 356, 23, 46, 48, 49, 51, 52, 53, - 162, 206, 280, 281, 282, 283, 284, 285, 286, 288, - 290, 292, 293, 295, 47, 50, 162, 206, 284, 290, - 304, 305, 306, 307, 308, 310, 311, 312, 76, 77, - 162, 228, 229, 230, 232, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 162, 385, 386, 387, 388, 390, 392, 393, 395, 396, - 397, 400, 402, 403, 404, 405, 406, 409, 6, 3, - 4, 8, 3, 168, 416, 412, 414, 4, 3, 8, - 180, 4, 4, 339, 191, 193, 4, 4, 4, 4, - 245, 273, 297, 213, 363, 221, 235, 4, 374, 382, - 3, 8, 186, 188, 3, 8, 365, 257, 259, 261, - 314, 255, 263, 265, 4, 4, 269, 267, 328, 359, - 3, 8, 324, 326, 3, 8, 341, 343, 357, 347, - 349, 353, 351, 355, 345, 8, 3, 287, 207, 4, - 291, 289, 294, 4, 8, 3, 309, 4, 8, 3, - 231, 233, 3, 8, 4, 389, 391, 4, 394, 4, - 4, 398, 401, 4, 4, 4, 4, 407, 410, 3, - 8, 147, 147, 130, 4, 4, 4, 4, 166, 4, - 133, 133, 4, 4, 4, 131, 131, 131, 131, 4, - 4, 4, 4, 4, 4, 4, 131, 4, 4, 172, - 4, 4, 182, 65, 162, 206, 296, 338, 340, 342, - 366, 367, 368, 369, 370, 4, 4, 4, 4, 4, - 4, 4, 131, 133, 4, 4, 4, 4, 253, 4, - 4, 322, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 337, 4, 4, 131, 4, 4, 4, 133, 282, - 4, 133, 306, 4, 4, 229, 133, 4, 4, 131, - 4, 131, 131, 4, 4, 133, 133, 133, 133, 4, - 4, 386, 4, 7, 7, 147, 147, 7, 130, 7, + 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 0, 5, 7, 9, 132, 133, + 134, 135, 149, 150, 151, 156, 7, 165, 7, 171, + 7, 185, 7, 256, 7, 325, 7, 339, 7, 284, + 7, 308, 7, 232, 7, 389, 157, 152, 166, 172, + 186, 257, 326, 340, 285, 309, 233, 390, 149, 158, + 159, 132, 154, 155, 10, 113, 119, 120, 132, 164, + 167, 168, 169, 417, 419, 421, 11, 16, 17, 18, + 21, 22, 38, 39, 40, 41, 42, 46, 47, 65, + 66, 77, 80, 87, 88, 91, 164, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 192, 194, 218, 226, + 240, 250, 278, 302, 344, 368, 378, 379, 387, 12, + 13, 183, 184, 187, 189, 7, 43, 44, 45, 56, + 59, 60, 61, 62, 63, 64, 68, 69, 75, 164, + 175, 176, 177, 180, 258, 259, 260, 262, 264, 266, + 268, 270, 272, 274, 276, 277, 302, 319, 333, 344, + 364, 57, 58, 164, 302, 327, 328, 329, 331, 19, + 20, 66, 70, 71, 72, 73, 74, 76, 164, 302, + 341, 342, 343, 344, 346, 348, 350, 352, 354, 356, + 358, 360, 362, 23, 48, 50, 51, 53, 54, 55, + 164, 208, 286, 287, 288, 289, 290, 291, 292, 294, + 296, 298, 299, 301, 49, 52, 164, 208, 290, 296, + 310, 311, 312, 313, 314, 316, 317, 318, 78, 79, + 164, 234, 235, 236, 238, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 164, 391, 392, 393, 394, 396, 398, 399, 401, 402, + 403, 406, 408, 409, 410, 411, 412, 415, 6, 3, + 4, 8, 3, 170, 422, 418, 420, 4, 3, 8, + 182, 4, 4, 345, 193, 195, 4, 4, 4, 4, + 251, 279, 303, 219, 369, 227, 241, 4, 380, 388, + 3, 8, 188, 190, 3, 8, 371, 263, 265, 267, + 320, 261, 269, 271, 4, 4, 275, 273, 334, 365, + 3, 8, 330, 332, 3, 8, 347, 349, 363, 353, + 355, 359, 357, 361, 351, 8, 3, 293, 209, 4, + 297, 295, 300, 4, 8, 3, 315, 4, 8, 3, + 237, 239, 3, 8, 4, 395, 397, 4, 400, 4, + 4, 404, 407, 4, 4, 4, 4, 413, 416, 3, + 8, 149, 149, 132, 4, 4, 4, 4, 168, 4, + 135, 135, 4, 4, 4, 133, 133, 133, 133, 4, + 4, 4, 4, 4, 4, 4, 133, 4, 4, 174, + 4, 4, 184, 67, 164, 208, 302, 344, 346, 348, + 372, 373, 374, 375, 376, 4, 4, 4, 4, 4, + 4, 4, 133, 135, 4, 4, 4, 4, 259, 4, + 4, 328, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 343, 4, 4, 133, 4, 4, 4, 135, 288, + 4, 135, 312, 4, 4, 235, 135, 4, 4, 133, + 4, 133, 133, 4, 4, 135, 135, 135, 135, 4, + 4, 392, 4, 7, 7, 149, 149, 7, 132, 7, 7, 5, 5, 5, 5, 5, 5, 7, 7, 7, - 5, 158, 14, 15, 189, 371, 8, 3, 130, 130, - 130, 5, 130, 130, 130, 130, 130, 5, 7, 130, - 149, 151, 130, 130, 158, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 147, 130, - 130, 130, 15, 105, 399, 106, 107, 108, 109, 110, - 133, 408, 130, 147, 171, 112, 417, 418, 419, 181, - 23, 28, 29, 30, 31, 32, 33, 34, 35, 162, - 194, 195, 196, 199, 201, 203, 205, 206, 208, 209, - 210, 211, 194, 7, 246, 247, 248, 7, 274, 275, - 276, 7, 298, 299, 300, 68, 69, 70, 71, 214, - 215, 216, 217, 218, 219, 266, 364, 7, 222, 223, - 224, 79, 80, 81, 82, 83, 84, 236, 237, 238, - 239, 240, 241, 242, 243, 87, 88, 375, 376, 377, - 379, 385, 159, 4, 368, 7, 315, 316, 317, 7, - 329, 330, 331, 74, 360, 8, 420, 3, 8, 8, - 197, 200, 202, 204, 4, 4, 4, 4, 4, 3, - 8, 8, 249, 6, 3, 277, 6, 3, 301, 6, - 3, 3, 6, 3, 6, 225, 6, 3, 4, 4, - 4, 4, 4, 4, 3, 8, 378, 380, 3, 8, - 8, 130, 160, 161, 130, 318, 6, 3, 332, 6, - 3, 361, 8, 4, 418, 4, 4, 4, 4, 131, - 133, 131, 133, 131, 195, 252, 248, 280, 276, 304, - 300, 215, 266, 228, 224, 131, 131, 131, 131, 131, - 131, 237, 4, 4, 376, 6, 3, 321, 317, 335, - 331, 4, 5, 24, 25, 26, 27, 198, 130, 130, - 130, 8, 8, 8, 8, 130, 130, 130, 8, 8, - 130, 7, 421, 422, 423, 3, 6, 113, 115, 116, - 162, 206, 424, 425, 426, 427, 429, 422, 430, 4, - 428, 3, 8, 4, 131, 4, 425, 5, 130, 7, - 431, 432, 433, 3, 6, 114, 434, 435, 432, 436, - 3, 8, 4, 435, 130 + 5, 160, 14, 15, 191, 377, 8, 3, 132, 132, + 132, 5, 132, 132, 132, 132, 132, 5, 7, 132, + 151, 153, 132, 132, 160, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 149, 132, + 132, 132, 15, 107, 405, 108, 109, 110, 111, 112, + 135, 414, 132, 149, 173, 114, 423, 424, 425, 183, + 23, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 164, 196, 197, 198, 201, 203, 205, 207, 208, + 210, 211, 212, 213, 214, 216, 196, 7, 252, 253, + 254, 7, 280, 281, 282, 7, 304, 305, 306, 70, + 71, 72, 73, 220, 221, 222, 223, 224, 225, 272, + 370, 7, 228, 229, 230, 81, 82, 83, 84, 85, + 86, 242, 243, 244, 245, 246, 247, 248, 249, 89, + 90, 381, 382, 383, 385, 391, 161, 4, 374, 7, + 321, 322, 323, 7, 335, 336, 337, 76, 366, 8, + 426, 3, 8, 8, 199, 202, 204, 206, 4, 4, + 4, 4, 4, 215, 217, 3, 8, 8, 255, 6, + 3, 283, 6, 3, 307, 6, 3, 3, 6, 3, + 6, 231, 6, 3, 4, 4, 4, 4, 4, 4, + 3, 8, 384, 386, 3, 8, 8, 132, 162, 163, + 132, 324, 6, 3, 338, 6, 3, 367, 8, 4, + 424, 4, 4, 4, 4, 133, 135, 133, 135, 133, + 4, 4, 197, 258, 254, 286, 282, 310, 306, 221, + 272, 234, 230, 133, 133, 133, 133, 133, 133, 243, + 4, 4, 382, 6, 3, 327, 323, 341, 337, 4, + 5, 24, 25, 26, 27, 200, 132, 132, 132, 132, + 132, 8, 8, 8, 8, 132, 132, 132, 8, 8, + 132, 7, 427, 428, 429, 3, 6, 115, 117, 118, + 164, 208, 430, 431, 432, 433, 435, 428, 436, 4, + 434, 3, 8, 4, 133, 4, 431, 5, 132, 7, + 437, 438, 439, 3, 6, 116, 440, 441, 438, 442, + 3, 8, 4, 441, 132 }; const unsigned short int Dhcp4Parser::yyr1_[] = { - 0, 134, 136, 135, 137, 135, 138, 135, 139, 135, - 140, 135, 141, 135, 142, 135, 143, 135, 144, 135, - 145, 135, 146, 135, 147, 147, 147, 147, 147, 147, - 147, 148, 150, 149, 151, 152, 152, 153, 153, 155, - 154, 156, 156, 157, 157, 159, 158, 160, 160, 161, - 161, 162, 164, 163, 165, 165, 166, 166, 166, 166, - 166, 168, 167, 170, 169, 171, 171, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 173, 174, - 175, 176, 177, 178, 180, 179, 181, 181, 182, 182, - 184, 183, 186, 185, 188, 187, 189, 189, 191, 190, - 193, 192, 194, 194, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 197, 196, 198, 198, 198, - 198, 200, 199, 202, 201, 204, 203, 205, 207, 206, - 208, 209, 210, 211, 213, 212, 214, 214, 215, 215, - 215, 215, 216, 217, 218, 219, 221, 220, 222, 222, - 223, 223, 225, 224, 227, 226, 228, 228, 228, 229, - 229, 231, 230, 233, 232, 235, 234, 236, 236, 237, - 237, 237, 237, 237, 237, 238, 239, 240, 241, 242, - 243, 245, 244, 246, 246, 247, 247, 249, 248, 251, - 250, 252, 252, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 255, 254, 257, 256, 259, 258, 261, - 260, 263, 262, 265, 264, 267, 266, 269, 268, 270, - 271, 273, 272, 274, 274, 275, 275, 277, 276, 279, - 278, 280, 280, 281, 281, 282, 282, 282, 282, 282, - 282, 282, 282, 283, 284, 285, 287, 286, 289, 288, - 291, 290, 292, 294, 293, 295, 297, 296, 298, 298, - 299, 299, 301, 300, 303, 302, 304, 304, 305, 305, - 306, 306, 306, 306, 306, 306, 307, 309, 308, 310, - 311, 312, 314, 313, 315, 315, 316, 316, 318, 317, - 320, 319, 321, 321, 322, 322, 322, 322, 324, 323, - 326, 325, 328, 327, 329, 329, 330, 330, 332, 331, - 334, 333, 335, 335, 336, 336, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 339, 338, - 341, 340, 343, 342, 345, 344, 347, 346, 349, 348, + 0, 136, 138, 137, 139, 137, 140, 137, 141, 137, + 142, 137, 143, 137, 144, 137, 145, 137, 146, 137, + 147, 137, 148, 137, 149, 149, 149, 149, 149, 149, + 149, 150, 152, 151, 153, 154, 154, 155, 155, 157, + 156, 158, 158, 159, 159, 161, 160, 162, 162, 163, + 163, 164, 166, 165, 167, 167, 168, 168, 168, 168, + 168, 170, 169, 172, 171, 173, 173, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 175, 176, + 177, 178, 179, 180, 182, 181, 183, 183, 184, 184, + 186, 185, 188, 187, 190, 189, 191, 191, 193, 192, + 195, 194, 196, 196, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 199, 198, 200, + 200, 200, 200, 202, 201, 204, 203, 206, 205, 207, + 209, 208, 210, 211, 212, 213, 215, 214, 217, 216, + 219, 218, 220, 220, 221, 221, 221, 221, 222, 223, + 224, 225, 227, 226, 228, 228, 229, 229, 231, 230, + 233, 232, 234, 234, 234, 235, 235, 237, 236, 239, + 238, 241, 240, 242, 242, 243, 243, 243, 243, 243, + 243, 244, 245, 246, 247, 248, 249, 251, 250, 252, + 252, 253, 253, 255, 254, 257, 256, 258, 258, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 261, + 260, 263, 262, 265, 264, 267, 266, 269, 268, 271, + 270, 273, 272, 275, 274, 276, 277, 279, 278, 280, + 280, 281, 281, 283, 282, 285, 284, 286, 286, 287, + 287, 288, 288, 288, 288, 288, 288, 288, 288, 289, + 290, 291, 293, 292, 295, 294, 297, 296, 298, 300, + 299, 301, 303, 302, 304, 304, 305, 305, 307, 306, + 309, 308, 310, 310, 311, 311, 312, 312, 312, 312, + 312, 312, 313, 315, 314, 316, 317, 318, 320, 319, + 321, 321, 322, 322, 324, 323, 326, 325, 327, 327, + 328, 328, 328, 328, 330, 329, 332, 331, 334, 333, + 335, 335, 336, 336, 338, 337, 340, 339, 341, 341, + 342, 342, 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 345, 344, 347, 346, 349, 348, 351, 350, 353, 352, 355, 354, 357, 356, 359, 358, - 361, 360, 363, 362, 364, 364, 365, 266, 366, 366, - 367, 367, 368, 368, 368, 368, 368, 368, 368, 369, - 371, 370, 372, 374, 373, 375, 375, 376, 376, 378, - 377, 380, 379, 382, 381, 384, 383, 385, 385, 386, - 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, - 386, 386, 386, 386, 386, 387, 389, 388, 391, 390, - 392, 394, 393, 395, 396, 398, 397, 399, 399, 401, - 400, 402, 403, 404, 405, 407, 406, 408, 408, 408, - 408, 408, 410, 409, 412, 411, 414, 413, 416, 415, - 417, 417, 418, 420, 419, 421, 421, 423, 422, 424, - 424, 425, 425, 425, 425, 425, 426, 428, 427, 430, - 429, 431, 431, 433, 432, 434, 434, 436, 435 + 361, 360, 363, 362, 365, 364, 367, 366, 369, 368, + 370, 370, 371, 272, 372, 372, 373, 373, 374, 374, + 374, 374, 374, 374, 374, 375, 377, 376, 378, 380, + 379, 381, 381, 382, 382, 384, 383, 386, 385, 388, + 387, 390, 389, 391, 391, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 393, 395, 394, 397, 396, 398, 400, 399, 401, + 402, 404, 403, 405, 405, 407, 406, 408, 409, 410, + 411, 413, 412, 414, 414, 414, 414, 414, 416, 415, + 418, 417, 420, 419, 422, 421, 423, 423, 424, 426, + 425, 427, 427, 429, 428, 430, 430, 431, 431, 431, + 431, 431, 432, 434, 433, 436, 435, 437, 437, 439, + 438, 440, 440, 442, 441 }; const unsigned char @@ -3758,43 +3800,44 @@ namespace isc { namespace dhcp { 3, 3, 3, 3, 0, 6, 1, 3, 1, 1, 0, 4, 0, 4, 0, 4, 1, 1, 0, 6, 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 3, 0, 4, - 3, 3, 3, 3, 0, 6, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, - 1, 0, 4, 0, 4, 0, 6, 1, 3, 1, - 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, - 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 3, - 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, - 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 0, 4, 0, 4, - 0, 4, 1, 0, 4, 3, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, - 1, 3, 0, 6, 0, 1, 1, 3, 0, 4, - 0, 4, 1, 3, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 0, 1, 1, 3, 0, 4, - 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, - 0, 4, 0, 6, 1, 3, 0, 4, 0, 1, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 3, 0, 6, 1, 3, 1, 1, 0, - 4, 0, 4, 0, 6, 0, 4, 1, 3, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 3, + 0, 4, 3, 3, 3, 3, 0, 4, 0, 4, + 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 6, 0, 1, 1, 3, 0, 4, + 0, 4, 1, 3, 1, 1, 1, 0, 4, 0, + 4, 0, 6, 1, 3, 1, 1, 1, 1, 1, + 1, 3, 3, 3, 3, 3, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 0, 4, 0, 4, - 3, 0, 4, 3, 3, 0, 4, 1, 1, 0, - 4, 3, 3, 3, 3, 0, 4, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 4, 0, 6, - 1, 3, 1, 0, 6, 1, 3, 0, 4, 1, - 3, 1, 1, 1, 1, 1, 3, 0, 4, 0, - 6, 1, 3, 0, 4, 1, 3, 0, 4 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 4, 3, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 0, 4, 0, 4, 0, 4, 1, 0, + 4, 3, 0, 6, 0, 1, 1, 3, 0, 4, + 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 1, 1, 3, 0, 6, + 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 6, 0, 4, 0, 6, + 1, 3, 0, 4, 0, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 3, 0, + 6, 1, 3, 1, 1, 0, 4, 0, 4, 0, + 6, 0, 4, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 0, 4, 0, 4, 3, 0, 4, 3, + 3, 0, 4, 1, 1, 0, 4, 3, 3, 3, + 3, 0, 4, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 4, 0, 6, 1, 3, 1, 0, + 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, + 1, 1, 3, 0, 4, 0, 6, 1, 3, 0, + 4, 1, 3, 0, 4 }; @@ -3812,164 +3855,166 @@ namespace isc { namespace dhcp { "\"lease-database\"", "\"hosts-database\"", "\"type\"", "\"memfile\"", "\"mysql\"", "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"", - "\"readonly\"", "\"connect-timeout\"", "\"valid-lifetime\"", - "\"renew-timer\"", "\"rebind-timer\"", "\"decline-probation-period\"", - "\"subnet4\"", "\"4o6-interface\"", "\"4o6-interface-id\"", - "\"4o6-subnet\"", "\"option-def\"", "\"option-data\"", "\"name\"", - "\"data\"", "\"code\"", "\"space\"", "\"csv-format\"", - "\"record-types\"", "\"encapsulate\"", "\"array\"", "\"pools\"", - "\"pool\"", "\"user-context\"", "\"subnet\"", "\"interface\"", - "\"interface-id\"", "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"", - "\"host-reservation-identifiers\"", "\"client-classes\"", "\"test\"", - "\"client-class\"", "\"reservations\"", "\"duid\"", "\"hw-address\"", - "\"circuit-id\"", "\"client-id\"", "\"hostname\"", "\"relay\"", - "\"ip-address\"", "\"hooks-libraries\"", "\"library\"", "\"parameters\"", - "\"expired-leases-processing\"", "\"reclaim-timer-wait-time\"", - "\"flush-reclaimed-timer-wait-time\"", "\"hold-reclaimed-time\"", - "\"max-reclaim-leases\"", "\"max-reclaim-time\"", - "\"unwarned-reclaim-cycles\"", "\"dhcp4o6-port\"", "\"control-socket\"", - "\"socket-type\"", "\"socket-name\"", "\"dhcp-ddns\"", - "\"enable-updates\"", "\"qualifying-suffix\"", "\"server-ip\"", - "\"server-port\"", "\"sender-ip\"", "\"sender-port\"", - "\"max-queue-size\"", "\"ncr-protocol\"", "\"ncr-format\"", - "\"always-include-fqdn\"", "\"allow-client-update\"", - "\"override-no-update\"", "\"override-client-update\"", - "\"replace-client-name\"", "\"generated-prefix\"", "\"tcp\"", "\"JSON\"", - "\"when-present\"", "\"never\"", "\"always\"", "\"when-not-present\"", - "\"Logging\"", "\"loggers\"", "\"output_options\"", "\"output\"", - "\"debuglevel\"", "\"severity\"", "\"Dhcp6\"", "\"DhcpDdns\"", - "TOPLEVEL_JSON", "TOPLEVEL_DHCP4", "SUB_DHCP4", "SUB_INTERFACES4", - "SUB_SUBNET4", "SUB_POOL4", "SUB_RESERVATION", "SUB_OPTION_DEF", - "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", - "\"constant string\"", "\"integer\"", "\"floating point\"", - "\"boolean\"", "$accept", "start", "$@1", "$@2", "$@3", "$@4", "$@5", - "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "value", "sub_json", "map2", - "$@12", "map_value", "map_content", "not_empty_map", "list_generic", - "$@13", "list_content", "not_empty_list", "list_strings", "$@14", - "list_strings_content", "not_empty_list_strings", "unknown_map_entry", - "syntax_map", "$@15", "global_objects", "global_object", "dhcp4_object", - "$@16", "sub_dhcp4", "$@17", "global_params", "global_param", - "valid_lifetime", "renew_timer", "rebind_timer", - "decline_probation_period", "echo_client_id", "match_client_id", - "interfaces_config", "$@18", "interfaces_config_params", - "interfaces_config_param", "sub_interfaces4", "$@19", "interfaces_list", - "$@20", "dhcp_socket_type", "$@21", "socket_type", "lease_database", - "$@22", "hosts_database", "$@23", "database_map_params", - "database_map_param", "database_type", "$@24", "db_type", "user", "$@25", - "password", "$@26", "host", "$@27", "port", "name", "$@28", "persist", - "lfc_interval", "readonly", "connect_timeout", - "host_reservation_identifiers", "$@29", + "\"readonly\"", "\"connect-timeout\"", "\"contact_points\"", + "\"keyspace\"", "\"valid-lifetime\"", "\"renew-timer\"", + "\"rebind-timer\"", "\"decline-probation-period\"", "\"subnet4\"", + "\"4o6-interface\"", "\"4o6-interface-id\"", "\"4o6-subnet\"", + "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", + "\"space\"", "\"csv-format\"", "\"record-types\"", "\"encapsulate\"", + "\"array\"", "\"pools\"", "\"pool\"", "\"user-context\"", "\"subnet\"", + "\"interface\"", "\"interface-id\"", "\"id\"", "\"rapid-commit\"", + "\"reservation-mode\"", "\"host-reservation-identifiers\"", + "\"client-classes\"", "\"test\"", "\"client-class\"", "\"reservations\"", + "\"duid\"", "\"hw-address\"", "\"circuit-id\"", "\"client-id\"", + "\"hostname\"", "\"relay\"", "\"ip-address\"", "\"hooks-libraries\"", + "\"library\"", "\"parameters\"", "\"expired-leases-processing\"", + "\"reclaim-timer-wait-time\"", "\"flush-reclaimed-timer-wait-time\"", + "\"hold-reclaimed-time\"", "\"max-reclaim-leases\"", + "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"", + "\"dhcp4o6-port\"", "\"control-socket\"", "\"socket-type\"", + "\"socket-name\"", "\"dhcp-ddns\"", "\"enable-updates\"", + "\"qualifying-suffix\"", "\"server-ip\"", "\"server-port\"", + "\"sender-ip\"", "\"sender-port\"", "\"max-queue-size\"", + "\"ncr-protocol\"", "\"ncr-format\"", "\"always-include-fqdn\"", + "\"allow-client-update\"", "\"override-no-update\"", + "\"override-client-update\"", "\"replace-client-name\"", + "\"generated-prefix\"", "\"tcp\"", "\"JSON\"", "\"when-present\"", + "\"never\"", "\"always\"", "\"when-not-present\"", "\"Logging\"", + "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", + "\"severity\"", "\"Dhcp6\"", "\"DhcpDdns\"", "TOPLEVEL_JSON", + "TOPLEVEL_DHCP4", "SUB_DHCP4", "SUB_INTERFACES4", "SUB_SUBNET4", + "SUB_POOL4", "SUB_RESERVATION", "SUB_OPTION_DEF", "SUB_OPTION_DATA", + "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "\"constant string\"", + "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start", + "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", + "$@11", "value", "sub_json", "map2", "$@12", "map_value", "map_content", + "not_empty_map", "list_generic", "$@13", "list_content", + "not_empty_list", "list_strings", "$@14", "list_strings_content", + "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@15", + "global_objects", "global_object", "dhcp4_object", "$@16", "sub_dhcp4", + "$@17", "global_params", "global_param", "valid_lifetime", "renew_timer", + "rebind_timer", "decline_probation_period", "echo_client_id", + "match_client_id", "interfaces_config", "$@18", + "interfaces_config_params", "interfaces_config_param", "sub_interfaces4", + "$@19", "interfaces_list", "$@20", "dhcp_socket_type", "$@21", + "socket_type", "lease_database", "$@22", "hosts_database", "$@23", + "database_map_params", "database_map_param", "database_type", "$@24", + "db_type", "user", "$@25", "password", "$@26", "host", "$@27", "port", + "name", "$@28", "persist", "lfc_interval", "readonly", "connect_timeout", + "contact_points", "$@29", "keyspace", "$@30", + "host_reservation_identifiers", "$@31", "host_reservation_identifiers_list", "host_reservation_identifier", "duid_id", "hw_address_id", "circuit_id", "client_id", "hooks_libraries", - "$@30", "hooks_libraries_list", "not_empty_hooks_libraries_list", - "hooks_library", "$@31", "sub_hooks_library", "$@32", "hooks_params", - "hooks_param", "library", "$@33", "parameters", "$@34", - "expired_leases_processing", "$@35", "expired_leases_params", + "$@32", "hooks_libraries_list", "not_empty_hooks_libraries_list", + "hooks_library", "$@33", "sub_hooks_library", "$@34", "hooks_params", + "hooks_param", "library", "$@35", "parameters", "$@36", + "expired_leases_processing", "$@37", "expired_leases_params", "expired_leases_param", "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time", "unwarned_reclaim_cycles", - "subnet4_list", "$@36", "subnet4_list_content", "not_empty_subnet4_list", - "subnet4", "$@37", "sub_subnet4", "$@38", "subnet4_params", - "subnet4_param", "subnet", "$@39", "subnet_4o6_interface", "$@40", - "subnet_4o6_interface_id", "$@41", "subnet_4o6_subnet", "$@42", - "interface", "$@43", "interface_id", "$@44", "client_class", "$@45", - "reservation_mode", "$@46", "id", "rapid_commit", "option_def_list", - "$@47", "option_def_list_content", "not_empty_option_def_list", - "option_def_entry", "$@48", "sub_option_def", "$@49", + "subnet4_list", "$@38", "subnet4_list_content", "not_empty_subnet4_list", + "subnet4", "$@39", "sub_subnet4", "$@40", "subnet4_params", + "subnet4_param", "subnet", "$@41", "subnet_4o6_interface", "$@42", + "subnet_4o6_interface_id", "$@43", "subnet_4o6_subnet", "$@44", + "interface", "$@45", "interface_id", "$@46", "client_class", "$@47", + "reservation_mode", "$@48", "id", "rapid_commit", "option_def_list", + "$@49", "option_def_list_content", "not_empty_option_def_list", + "option_def_entry", "$@50", "sub_option_def", "$@51", "option_def_params", "not_empty_option_def_params", "option_def_param", - "option_def_name", "code", "option_def_code", "option_def_type", "$@50", - "option_def_record_types", "$@51", "space", "$@52", "option_def_space", - "option_def_encapsulate", "$@53", "option_def_array", "option_data_list", - "$@54", "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@55", "sub_option_data", "$@56", + "option_def_name", "code", "option_def_code", "option_def_type", "$@52", + "option_def_record_types", "$@53", "space", "$@54", "option_def_space", + "option_def_encapsulate", "$@55", "option_def_array", "option_data_list", + "$@56", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@57", "sub_option_data", "$@58", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@57", + "option_data_param", "option_data_name", "option_data_data", "$@59", "option_data_code", "option_data_space", "option_data_csv_format", - "pools_list", "$@58", "pools_list_content", "not_empty_pools_list", - "pool_list_entry", "$@59", "sub_pool4", "$@60", "pool_params", - "pool_param", "pool_entry", "$@61", "user_context", "$@62", - "reservations", "$@63", "reservations_list", - "not_empty_reservations_list", "reservation", "$@64", "sub_reservation", - "$@65", "reservation_params", "not_empty_reservation_params", - "reservation_param", "next_server", "$@66", "server_hostname", "$@67", - "boot_file_name", "$@68", "ip_address", "$@69", "duid", "$@70", - "hw_address", "$@71", "client_id_value", "$@72", "circuit_id_value", - "$@73", "hostname", "$@74", "reservation_client_classes", "$@75", - "relay", "$@76", "relay_map", "$@77", "client_classes", "$@78", - "client_classes_list", "$@79", "client_class_params", + "pools_list", "$@60", "pools_list_content", "not_empty_pools_list", + "pool_list_entry", "$@61", "sub_pool4", "$@62", "pool_params", + "pool_param", "pool_entry", "$@63", "user_context", "$@64", + "reservations", "$@65", "reservations_list", + "not_empty_reservations_list", "reservation", "$@66", "sub_reservation", + "$@67", "reservation_params", "not_empty_reservation_params", + "reservation_param", "next_server", "$@68", "server_hostname", "$@69", + "boot_file_name", "$@70", "ip_address", "$@71", "duid", "$@72", + "hw_address", "$@73", "client_id_value", "$@74", "circuit_id_value", + "$@75", "hostname", "$@76", "reservation_client_classes", "$@77", + "relay", "$@78", "relay_map", "$@79", "client_classes", "$@80", + "client_classes_list", "$@81", "client_class_params", "not_empty_client_class_params", "client_class_param", - "client_class_name", "client_class_test", "$@80", "dhcp4o6_port", - "control_socket", "$@81", "control_socket_params", - "control_socket_param", "control_socket_type", "$@82", - "control_socket_name", "$@83", "dhcp_ddns", "$@84", "sub_dhcp_ddns", - "$@85", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates", - "qualifying_suffix", "$@86", "server_ip", "$@87", "server_port", - "sender_ip", "$@88", "sender_port", "max_queue_size", "ncr_protocol", - "$@89", "ncr_protocol_value", "ncr_format", "$@90", + "client_class_name", "client_class_test", "$@82", "dhcp4o6_port", + "control_socket", "$@83", "control_socket_params", + "control_socket_param", "control_socket_type", "$@84", + "control_socket_name", "$@85", "dhcp_ddns", "$@86", "sub_dhcp_ddns", + "$@87", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates", + "qualifying_suffix", "$@88", "server_ip", "$@89", "server_port", + "sender_ip", "$@90", "sender_port", "max_queue_size", "ncr_protocol", + "$@91", "ncr_protocol_value", "ncr_format", "$@92", "always_include_fqdn", "allow_client_update", "override_no_update", - "override_client_update", "replace_client_name", "$@91", - "replace_client_name_value", "generated_prefix", "$@92", - "dhcp6_json_object", "$@93", "dhcpddns_json_object", "$@94", - "logging_object", "$@95", "logging_params", "logging_param", "loggers", - "$@96", "loggers_entries", "logger_entry", "$@97", "logger_params", - "logger_param", "debuglevel", "severity", "$@98", "output_options_list", - "$@99", "output_options_list_content", "output_entry", "$@100", - "output_params", "output_param", "$@101", YY_NULLPTR + "override_client_update", "replace_client_name", "$@93", + "replace_client_name_value", "generated_prefix", "$@94", + "dhcp6_json_object", "$@95", "dhcpddns_json_object", "$@96", + "logging_object", "$@97", "logging_params", "logging_param", "loggers", + "$@98", "loggers_entries", "logger_entry", "$@99", "logger_params", + "logger_param", "debuglevel", "severity", "$@100", "output_options_list", + "$@101", "output_options_list_content", "output_entry", "$@102", + "output_params", "output_param", "$@103", YY_NULLPTR }; #if PARSER4_DEBUG const unsigned short int Dhcp4Parser::yyrline_[] = { - 0, 214, 214, 214, 215, 215, 216, 216, 217, 217, - 218, 218, 219, 219, 220, 220, 221, 221, 222, 222, - 223, 223, 224, 224, 232, 233, 234, 235, 236, 237, - 238, 241, 246, 246, 257, 260, 261, 264, 268, 275, - 275, 282, 283, 286, 290, 297, 297, 304, 305, 308, - 312, 323, 333, 333, 345, 346, 350, 351, 352, 353, - 354, 357, 357, 374, 374, 382, 383, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 411, 416, - 421, 426, 431, 436, 442, 442, 452, 453, 456, 457, - 460, 460, 468, 468, 478, 478, 485, 486, 489, 489, - 499, 499, 509, 510, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 526, 526, 533, 534, 535, - 536, 539, 539, 547, 547, 555, 555, 563, 568, 568, - 576, 581, 586, 591, 596, 596, 606, 607, 610, 611, - 612, 613, 616, 621, 626, 631, 636, 636, 646, 647, - 650, 651, 654, 654, 662, 662, 670, 671, 672, 675, - 676, 679, 679, 687, 687, 695, 695, 705, 706, 709, - 710, 711, 712, 713, 714, 717, 722, 727, 732, 737, - 742, 750, 750, 763, 764, 767, 768, 775, 775, 798, - 798, 807, 808, 812, 813, 814, 815, 816, 817, 818, - 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, - 829, 830, 831, 834, 834, 842, 842, 850, 850, 858, - 858, 866, 866, 874, 874, 882, 882, 890, 890, 898, - 903, 912, 912, 924, 925, 928, 929, 934, 934, 945, - 945, 955, 956, 959, 960, 963, 964, 965, 966, 967, - 968, 969, 970, 973, 975, 980, 982, 982, 990, 990, - 998, 998, 1006, 1008, 1008, 1016, 1025, 1025, 1037, 1038, - 1043, 1044, 1049, 1049, 1060, 1060, 1071, 1072, 1077, 1078, - 1083, 1084, 1085, 1086, 1087, 1088, 1091, 1093, 1093, 1101, - 1103, 1105, 1113, 1113, 1125, 1126, 1129, 1130, 1133, 1133, - 1141, 1141, 1149, 1150, 1153, 1154, 1155, 1156, 1159, 1159, - 1167, 1167, 1177, 1177, 1187, 1188, 1191, 1192, 1195, 1195, - 1203, 1203, 1211, 1212, 1215, 1216, 1220, 1221, 1222, 1223, - 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1234, 1234, - 1242, 1242, 1250, 1250, 1258, 1258, 1266, 1266, 1274, 1274, - 1282, 1282, 1290, 1290, 1299, 1299, 1307, 1307, 1320, 1320, - 1330, 1330, 1341, 1341, 1351, 1352, 1355, 1355, 1363, 1364, - 1367, 1368, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1380, - 1382, 1382, 1394, 1401, 1401, 1411, 1412, 1415, 1416, 1419, - 1419, 1427, 1427, 1437, 1437, 1447, 1447, 1455, 1456, 1459, - 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, - 1470, 1471, 1472, 1473, 1474, 1477, 1482, 1482, 1490, 1490, - 1498, 1503, 1503, 1511, 1516, 1521, 1521, 1529, 1530, 1533, - 1533, 1541, 1546, 1551, 1556, 1561, 1561, 1569, 1572, 1575, - 1578, 1581, 1587, 1587, 1597, 1597, 1604, 1604, 1616, 1616, - 1629, 1630, 1634, 1638, 1638, 1650, 1651, 1655, 1655, 1663, - 1664, 1667, 1668, 1669, 1670, 1671, 1674, 1678, 1678, 1686, - 1686, 1696, 1697, 1700, 1700, 1708, 1709, 1712, 1712 + 0, 216, 216, 216, 217, 217, 218, 218, 219, 219, + 220, 220, 221, 221, 222, 222, 223, 223, 224, 224, + 225, 225, 226, 226, 234, 235, 236, 237, 238, 239, + 240, 243, 248, 248, 259, 262, 263, 266, 270, 277, + 277, 284, 285, 288, 292, 299, 299, 306, 307, 310, + 314, 325, 335, 335, 347, 348, 352, 353, 354, 355, + 356, 359, 359, 376, 376, 384, 385, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 413, 418, + 423, 428, 433, 438, 444, 444, 454, 455, 458, 459, + 462, 462, 470, 470, 480, 480, 487, 488, 491, 491, + 501, 501, 511, 512, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 530, 530, 537, + 538, 539, 540, 543, 543, 551, 551, 559, 559, 567, + 572, 572, 580, 585, 590, 595, 600, 600, 608, 608, + 617, 617, 627, 628, 631, 632, 633, 634, 637, 642, + 647, 652, 657, 657, 667, 668, 671, 672, 675, 675, + 683, 683, 691, 692, 693, 696, 697, 700, 700, 708, + 708, 716, 716, 726, 727, 730, 731, 732, 733, 734, + 735, 738, 743, 748, 753, 758, 763, 771, 771, 784, + 785, 788, 789, 796, 796, 819, 819, 828, 829, 833, + 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, + 844, 845, 846, 847, 848, 849, 850, 851, 852, 855, + 855, 863, 863, 871, 871, 879, 879, 887, 887, 895, + 895, 903, 903, 911, 911, 919, 924, 933, 933, 945, + 946, 949, 950, 955, 955, 966, 966, 976, 977, 980, + 981, 984, 985, 986, 987, 988, 989, 990, 991, 994, + 996, 1001, 1003, 1003, 1011, 1011, 1019, 1019, 1027, 1029, + 1029, 1037, 1046, 1046, 1058, 1059, 1064, 1065, 1070, 1070, + 1081, 1081, 1092, 1093, 1098, 1099, 1104, 1105, 1106, 1107, + 1108, 1109, 1112, 1114, 1114, 1122, 1124, 1126, 1134, 1134, + 1146, 1147, 1150, 1151, 1154, 1154, 1162, 1162, 1170, 1171, + 1174, 1175, 1176, 1177, 1180, 1180, 1188, 1188, 1198, 1198, + 1208, 1209, 1212, 1213, 1216, 1216, 1224, 1224, 1232, 1233, + 1236, 1237, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, + 1249, 1250, 1251, 1252, 1255, 1255, 1263, 1263, 1271, 1271, + 1279, 1279, 1287, 1287, 1295, 1295, 1303, 1303, 1311, 1311, + 1320, 1320, 1328, 1328, 1341, 1341, 1351, 1351, 1362, 1362, + 1372, 1373, 1376, 1376, 1384, 1385, 1388, 1389, 1392, 1393, + 1394, 1395, 1396, 1397, 1398, 1401, 1403, 1403, 1415, 1422, + 1422, 1432, 1433, 1436, 1437, 1440, 1440, 1448, 1448, 1458, + 1458, 1468, 1468, 1476, 1477, 1480, 1481, 1482, 1483, 1484, + 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, + 1495, 1498, 1503, 1503, 1511, 1511, 1519, 1524, 1524, 1532, + 1537, 1542, 1542, 1550, 1551, 1554, 1554, 1562, 1567, 1572, + 1577, 1582, 1582, 1590, 1593, 1596, 1599, 1602, 1608, 1608, + 1618, 1618, 1625, 1625, 1637, 1637, 1650, 1651, 1655, 1659, + 1659, 1671, 1672, 1676, 1676, 1684, 1685, 1688, 1689, 1690, + 1691, 1692, 1695, 1699, 1699, 1707, 1707, 1717, 1718, 1721, + 1721, 1729, 1730, 1733, 1733 }; // Print the state stack on the debug stream. @@ -4004,8 +4049,8 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" // lalr1.cc:1167 } } // isc::dhcp -#line 4008 "dhcp4_parser.cc" // lalr1.cc:1167 -#line 1720 "dhcp4_parser.yy" // lalr1.cc:1168 +#line 4053 "dhcp4_parser.cc" // lalr1.cc:1167 +#line 1741 "dhcp4_parser.yy" // lalr1.cc:1168 void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 6c4bbe8681..8bf07f41ff 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -379,104 +379,106 @@ namespace isc { namespace dhcp { TOKEN_LFC_INTERVAL = 288, TOKEN_READONLY = 289, TOKEN_CONNECT_TIMEOUT = 290, - TOKEN_VALID_LIFETIME = 291, - TOKEN_RENEW_TIMER = 292, - TOKEN_REBIND_TIMER = 293, - TOKEN_DECLINE_PROBATION_PERIOD = 294, - TOKEN_SUBNET4 = 295, - TOKEN_SUBNET_4O6_INTERFACE = 296, - TOKEN_SUBNET_4O6_INTERFACE_ID = 297, - TOKEN_SUBNET_4O6_SUBNET = 298, - TOKEN_OPTION_DEF = 299, - TOKEN_OPTION_DATA = 300, - TOKEN_NAME = 301, - TOKEN_DATA = 302, - TOKEN_CODE = 303, - TOKEN_SPACE = 304, - TOKEN_CSV_FORMAT = 305, - TOKEN_RECORD_TYPES = 306, - TOKEN_ENCAPSULATE = 307, - TOKEN_ARRAY = 308, - TOKEN_POOLS = 309, - TOKEN_POOL = 310, - TOKEN_USER_CONTEXT = 311, - TOKEN_SUBNET = 312, - TOKEN_INTERFACE = 313, - TOKEN_INTERFACE_ID = 314, - TOKEN_ID = 315, - TOKEN_RAPID_COMMIT = 316, - TOKEN_RESERVATION_MODE = 317, - TOKEN_HOST_RESERVATION_IDENTIFIERS = 318, - TOKEN_CLIENT_CLASSES = 319, - TOKEN_TEST = 320, - TOKEN_CLIENT_CLASS = 321, - TOKEN_RESERVATIONS = 322, - TOKEN_DUID = 323, - TOKEN_HW_ADDRESS = 324, - TOKEN_CIRCUIT_ID = 325, - TOKEN_CLIENT_ID = 326, - TOKEN_HOSTNAME = 327, - TOKEN_RELAY = 328, - TOKEN_IP_ADDRESS = 329, - TOKEN_HOOKS_LIBRARIES = 330, - TOKEN_LIBRARY = 331, - TOKEN_PARAMETERS = 332, - TOKEN_EXPIRED_LEASES_PROCESSING = 333, - TOKEN_RECLAIM_TIMER_WAIT_TIME = 334, - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 335, - TOKEN_HOLD_RECLAIMED_TIME = 336, - TOKEN_MAX_RECLAIM_LEASES = 337, - TOKEN_MAX_RECLAIM_TIME = 338, - TOKEN_UNWARNED_RECLAIM_CYCLES = 339, - TOKEN_DHCP4O6_PORT = 340, - TOKEN_CONTROL_SOCKET = 341, - TOKEN_SOCKET_TYPE = 342, - TOKEN_SOCKET_NAME = 343, - TOKEN_DHCP_DDNS = 344, - TOKEN_ENABLE_UPDATES = 345, - TOKEN_QUALIFYING_SUFFIX = 346, - TOKEN_SERVER_IP = 347, - TOKEN_SERVER_PORT = 348, - TOKEN_SENDER_IP = 349, - TOKEN_SENDER_PORT = 350, - TOKEN_MAX_QUEUE_SIZE = 351, - TOKEN_NCR_PROTOCOL = 352, - TOKEN_NCR_FORMAT = 353, - TOKEN_ALWAYS_INCLUDE_FQDN = 354, - TOKEN_ALLOW_CLIENT_UPDATE = 355, - TOKEN_OVERRIDE_NO_UPDATE = 356, - TOKEN_OVERRIDE_CLIENT_UPDATE = 357, - TOKEN_REPLACE_CLIENT_NAME = 358, - TOKEN_GENERATED_PREFIX = 359, - TOKEN_TCP = 360, - TOKEN_JSON = 361, - TOKEN_WHEN_PRESENT = 362, - TOKEN_NEVER = 363, - TOKEN_ALWAYS = 364, - TOKEN_WHEN_NOT_PRESENT = 365, - TOKEN_LOGGING = 366, - TOKEN_LOGGERS = 367, - TOKEN_OUTPUT_OPTIONS = 368, - TOKEN_OUTPUT = 369, - TOKEN_DEBUGLEVEL = 370, - TOKEN_SEVERITY = 371, - TOKEN_DHCP6 = 372, - TOKEN_DHCPDDNS = 373, - TOKEN_TOPLEVEL_JSON = 374, - TOKEN_TOPLEVEL_DHCP4 = 375, - TOKEN_SUB_DHCP4 = 376, - TOKEN_SUB_INTERFACES4 = 377, - TOKEN_SUB_SUBNET4 = 378, - TOKEN_SUB_POOL4 = 379, - TOKEN_SUB_RESERVATION = 380, - TOKEN_SUB_OPTION_DEF = 381, - TOKEN_SUB_OPTION_DATA = 382, - TOKEN_SUB_HOOKS_LIBRARY = 383, - TOKEN_SUB_DHCP_DDNS = 384, - TOKEN_STRING = 385, - TOKEN_INTEGER = 386, - TOKEN_FLOAT = 387, - TOKEN_BOOLEAN = 388 + TOKEN_CONTACT_POINTS = 291, + TOKEN_KEYSPACE = 292, + TOKEN_VALID_LIFETIME = 293, + TOKEN_RENEW_TIMER = 294, + TOKEN_REBIND_TIMER = 295, + TOKEN_DECLINE_PROBATION_PERIOD = 296, + TOKEN_SUBNET4 = 297, + TOKEN_SUBNET_4O6_INTERFACE = 298, + TOKEN_SUBNET_4O6_INTERFACE_ID = 299, + TOKEN_SUBNET_4O6_SUBNET = 300, + TOKEN_OPTION_DEF = 301, + TOKEN_OPTION_DATA = 302, + TOKEN_NAME = 303, + TOKEN_DATA = 304, + TOKEN_CODE = 305, + TOKEN_SPACE = 306, + TOKEN_CSV_FORMAT = 307, + TOKEN_RECORD_TYPES = 308, + TOKEN_ENCAPSULATE = 309, + TOKEN_ARRAY = 310, + TOKEN_POOLS = 311, + TOKEN_POOL = 312, + TOKEN_USER_CONTEXT = 313, + TOKEN_SUBNET = 314, + TOKEN_INTERFACE = 315, + TOKEN_INTERFACE_ID = 316, + TOKEN_ID = 317, + TOKEN_RAPID_COMMIT = 318, + TOKEN_RESERVATION_MODE = 319, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 320, + TOKEN_CLIENT_CLASSES = 321, + TOKEN_TEST = 322, + TOKEN_CLIENT_CLASS = 323, + TOKEN_RESERVATIONS = 324, + TOKEN_DUID = 325, + TOKEN_HW_ADDRESS = 326, + TOKEN_CIRCUIT_ID = 327, + TOKEN_CLIENT_ID = 328, + TOKEN_HOSTNAME = 329, + TOKEN_RELAY = 330, + TOKEN_IP_ADDRESS = 331, + TOKEN_HOOKS_LIBRARIES = 332, + TOKEN_LIBRARY = 333, + TOKEN_PARAMETERS = 334, + TOKEN_EXPIRED_LEASES_PROCESSING = 335, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 336, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 337, + TOKEN_HOLD_RECLAIMED_TIME = 338, + TOKEN_MAX_RECLAIM_LEASES = 339, + TOKEN_MAX_RECLAIM_TIME = 340, + TOKEN_UNWARNED_RECLAIM_CYCLES = 341, + TOKEN_DHCP4O6_PORT = 342, + TOKEN_CONTROL_SOCKET = 343, + TOKEN_SOCKET_TYPE = 344, + TOKEN_SOCKET_NAME = 345, + TOKEN_DHCP_DDNS = 346, + TOKEN_ENABLE_UPDATES = 347, + TOKEN_QUALIFYING_SUFFIX = 348, + TOKEN_SERVER_IP = 349, + TOKEN_SERVER_PORT = 350, + TOKEN_SENDER_IP = 351, + TOKEN_SENDER_PORT = 352, + TOKEN_MAX_QUEUE_SIZE = 353, + TOKEN_NCR_PROTOCOL = 354, + TOKEN_NCR_FORMAT = 355, + TOKEN_ALWAYS_INCLUDE_FQDN = 356, + TOKEN_ALLOW_CLIENT_UPDATE = 357, + TOKEN_OVERRIDE_NO_UPDATE = 358, + TOKEN_OVERRIDE_CLIENT_UPDATE = 359, + TOKEN_REPLACE_CLIENT_NAME = 360, + TOKEN_GENERATED_PREFIX = 361, + TOKEN_TCP = 362, + TOKEN_JSON = 363, + TOKEN_WHEN_PRESENT = 364, + TOKEN_NEVER = 365, + TOKEN_ALWAYS = 366, + TOKEN_WHEN_NOT_PRESENT = 367, + TOKEN_LOGGING = 368, + TOKEN_LOGGERS = 369, + TOKEN_OUTPUT_OPTIONS = 370, + TOKEN_OUTPUT = 371, + TOKEN_DEBUGLEVEL = 372, + TOKEN_SEVERITY = 373, + TOKEN_DHCP6 = 374, + TOKEN_DHCPDDNS = 375, + TOKEN_TOPLEVEL_JSON = 376, + TOKEN_TOPLEVEL_DHCP4 = 377, + TOKEN_SUB_DHCP4 = 378, + TOKEN_SUB_INTERFACES4 = 379, + TOKEN_SUB_SUBNET4 = 380, + TOKEN_SUB_POOL4 = 381, + TOKEN_SUB_RESERVATION = 382, + TOKEN_SUB_OPTION_DEF = 383, + TOKEN_SUB_OPTION_DATA = 384, + TOKEN_SUB_HOOKS_LIBRARY = 385, + TOKEN_SUB_DHCP_DDNS = 386, + TOKEN_STRING = 387, + TOKEN_INTEGER = 388, + TOKEN_FLOAT = 389, + TOKEN_BOOLEAN = 390 }; }; @@ -727,6 +729,14 @@ namespace isc { namespace dhcp { symbol_type make_CONNECT_TIMEOUT (const location_type& l); + static inline + symbol_type + make_CONTACT_POINTS (const location_type& l); + + static inline + symbol_type + make_KEYSPACE (const location_type& l); + static inline symbol_type make_VALID_LIFETIME (const location_type& l); @@ -1324,12 +1334,12 @@ namespace isc { namespace dhcp { enum { yyeof_ = 0, - yylast_ = 723, ///< Last index in yytable_. - yynnts_ = 303, ///< Number of nonterminal symbols. + yylast_ = 733, ///< Last index in yytable_. + yynnts_ = 307, ///< Number of nonterminal symbols. yyfinal_ = 24, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 134 ///< Number of tokens. + yyntokens_ = 136 ///< Number of tokens. }; @@ -1384,9 +1394,10 @@ namespace isc { namespace dhcp { 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133 + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135 }; - const unsigned int user_token_number_max_ = 388; + const unsigned int user_token_number_max_ = 390; const token_number_type undef_token_ = 2; if (static_cast(t) <= yyeof_) @@ -1419,28 +1430,28 @@ namespace isc { namespace dhcp { { switch (other.type_get ()) { - case 147: // value - case 151: // map_value - case 189: // socket_type - case 198: // db_type - case 399: // ncr_protocol_value - case 408: // replace_client_name_value + case 149: // value + case 153: // map_value + case 191: // socket_type + case 200: // db_type + case 405: // ncr_protocol_value + case 414: // replace_client_name_value value.copy< ElementPtr > (other.value); break; - case 133: // "boolean" + case 135: // "boolean" value.copy< bool > (other.value); break; - case 132: // "floating point" + case 134: // "floating point" value.copy< double > (other.value); break; - case 131: // "integer" + case 133: // "integer" value.copy< int64_t > (other.value); break; - case 130: // "constant string" + case 132: // "constant string" value.copy< std::string > (other.value); break; @@ -1461,28 +1472,28 @@ namespace isc { namespace dhcp { (void) v; switch (this->type_get ()) { - case 147: // value - case 151: // map_value - case 189: // socket_type - case 198: // db_type - case 399: // ncr_protocol_value - case 408: // replace_client_name_value + case 149: // value + case 153: // map_value + case 191: // socket_type + case 200: // db_type + case 405: // ncr_protocol_value + case 414: // replace_client_name_value value.copy< ElementPtr > (v); break; - case 133: // "boolean" + case 135: // "boolean" value.copy< bool > (v); break; - case 132: // "floating point" + case 134: // "floating point" value.copy< double > (v); break; - case 131: // "integer" + case 133: // "integer" value.copy< int64_t > (v); break; - case 130: // "constant string" + case 132: // "constant string" value.copy< std::string > (v); break; @@ -1562,28 +1573,28 @@ namespace isc { namespace dhcp { // Type destructor. switch (yytype) { - case 147: // value - case 151: // map_value - case 189: // socket_type - case 198: // db_type - case 399: // ncr_protocol_value - case 408: // replace_client_name_value + case 149: // value + case 153: // map_value + case 191: // socket_type + case 200: // db_type + case 405: // ncr_protocol_value + case 414: // replace_client_name_value value.template destroy< ElementPtr > (); break; - case 133: // "boolean" + case 135: // "boolean" value.template destroy< bool > (); break; - case 132: // "floating point" + case 134: // "floating point" value.template destroy< double > (); break; - case 131: // "integer" + case 133: // "integer" value.template destroy< int64_t > (); break; - case 130: // "constant string" + case 132: // "constant string" value.template destroy< std::string > (); break; @@ -1610,28 +1621,28 @@ namespace isc { namespace dhcp { super_type::move(s); switch (this->type_get ()) { - case 147: // value - case 151: // map_value - case 189: // socket_type - case 198: // db_type - case 399: // ncr_protocol_value - case 408: // replace_client_name_value + case 149: // value + case 153: // map_value + case 191: // socket_type + case 200: // db_type + case 405: // ncr_protocol_value + case 414: // replace_client_name_value value.move< ElementPtr > (s.value); break; - case 133: // "boolean" + case 135: // "boolean" value.move< bool > (s.value); break; - case 132: // "floating point" + case 134: // "floating point" value.move< double > (s.value); break; - case 131: // "integer" + case 133: // "integer" value.move< int64_t > (s.value); break; - case 130: // "constant string" + case 132: // "constant string" value.move< std::string > (s.value); break; @@ -1703,7 +1714,7 @@ namespace isc { namespace dhcp { 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388 + 385, 386, 387, 388, 389, 390 }; return static_cast (yytoken_number_[type]); } @@ -1912,6 +1923,18 @@ namespace isc { namespace dhcp { return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); } + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONTACT_POINTS (const location_type& l) + { + return symbol_type (token::TOKEN_CONTACT_POINTS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_KEYSPACE (const location_type& l) + { + return symbol_type (token::TOKEN_KEYSPACE, l); + } + Dhcp4Parser::symbol_type Dhcp4Parser::make_VALID_LIFETIME (const location_type& l) { @@ -2503,7 +2526,7 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" // lalr1.cc:377 } } // isc::dhcp -#line 2507 "dhcp4_parser.h" // lalr1.cc:377 +#line 2530 "dhcp4_parser.h" // lalr1.cc:377 diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index f0757d1826..7058028f5e 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,4 +1,4 @@ -// Generated 201701271452 +// Generated 201702101911 // A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ diff --git a/src/bin/dhcp4/position.hh b/src/bin/dhcp4/position.hh index 181df48cbd..5eab96917e 100644 --- a/src/bin/dhcp4/position.hh +++ b/src/bin/dhcp4/position.hh @@ -1,4 +1,4 @@ -// Generated 201701271452 +// Generated 201702101911 // A Bison parser, made by GNU Bison 3.0.4. // Positions for Bison parsers in C++ diff --git a/src/bin/dhcp4/stack.hh b/src/bin/dhcp4/stack.hh index eb79a5da56..a85c92663f 100644 --- a/src/bin/dhcp4/stack.hh +++ b/src/bin/dhcp4/stack.hh @@ -1,4 +1,4 @@ -// Generated 201701271452 +// Generated 201702101911 // A Bison parser, made by GNU Bison 3.0.4. // Stack handling for Bison parsers in C++ diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index d6f185fe13..f9926cc4fa 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -1,13 +1,12 @@ -#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 @@ -36,7 +35,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 1 +#define YY_FLEX_SUBMINOR_VERSION 3 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -45,11 +44,88 @@ /* %endif */ /* %if-c-only */ - + #define yy_create_buffer parser6__create_buffer + + #define yy_delete_buffer parser6__delete_buffer + + #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 yylex parser6_lex + + #define yyrestart parser6_restart + + #define yylex_init parser6_lex_init + + #define yylex_init_extra parser6_lex_init_extra + + #define yylex_destroy parser6_lex_destroy + + #define yyget_debug parser6_get_debug + + #define yyset_debug parser6_set_debug + + #define yyget_extra parser6_get_extra + + #define yyset_extra parser6_set_extra + + #define yyget_in parser6_get_in + + #define yyset_in parser6_set_in + + #define yyget_out parser6_get_out + + #define yyset_out parser6_set_out + + #define yyget_leng parser6_get_leng + + #define yyget_text parser6_get_text + + #define yyget_lineno parser6_get_lineno + + #define yyset_lineno parser6_set_lineno + + #define yywrap parser6_wrap + /* %endif */ + #define yyalloc parser6_alloc + + #define yyrealloc parser6_realloc + + #define yyfree parser6_free + /* %if-c-only */ + #define yytext parser6_text + + #define yyleng parser6_leng + + #define yyin parser6_in + + #define yyout parser6_out + + #define yy_flex_debug parser6__flex_debug + + #define yylineno parser6_lineno + /* %endif */ /* First, we deal with platform-specific or compiler-specific issues. */ @@ -146,19 +222,15 @@ typedef unsigned int flex_uint32_t; #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 */ @@ -173,20 +245,16 @@ 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_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -229,7 +297,7 @@ extern FILE *parser6_in, *parser6_out; #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) @@ -246,7 +314,6 @@ extern FILE *parser6_in, *parser6_out; YY_DO_BEFORE_ACTION; /* set up parser6_text again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -294,7 +361,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. */ @@ -321,7 +388,6 @@ struct yy_buffer_state /* %if-c-only Standard (non-C++) definition */ /* %not-for-header */ - /* %if-not-reentrant */ /* Stack of input buffers. */ @@ -342,7 +408,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -352,7 +417,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* %if-not-reentrant */ /* %not-for-header */ - /* yy_hold_char holds the character lost when parser6_text is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ @@ -371,32 +435,30 @@ static int yy_did_buffer_switch_on_eof; /* %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 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 ); #define YY_FLUSH_BUFFER parser6__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,int len ); +YY_BUFFER_STATE parser6__scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE parser6__scan_string ( const char *yy_str ); +YY_BUFFER_STATE parser6__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 * ); +void *parser6_alloc ( yy_size_t ); +void *parser6_realloc ( void *, yy_size_t ); +void parser6_free ( void * ); #define yy_new_buffer parser6__create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ @@ -406,7 +468,6 @@ void parser6_free (void * ); } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ @@ -416,7 +477,6 @@ void parser6_free (void * ); } \ 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 */ @@ -426,15 +486,13 @@ void parser6_free (void * ); #define YY_SKIP_YYWRAP #define FLEX_DEBUG - -typedef unsigned char YY_CHAR; +typedef flex_uint8_t YY_CHAR; FILE *parser6_in = NULL, *parser6_out = NULL; typedef int yy_state_type; extern int parser6_lineno; - int parser6_lineno = 1; extern char *parser6_text; @@ -447,10 +505,10 @@ extern char *parser6_text; /* %if-c-only Standard (non-C++) definition */ -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yynoreturn yy_fatal_error (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 */ @@ -465,10 +523,9 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ); *yy_cp = '\0'; \ /* %% [3.0] code to copy yytext_ptr to parser6_text[] 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 148 -#define YY_END_OF_BUFFER 149 +#define YY_NUM_RULES 151 +#define YY_END_OF_BUFFER 152 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -476,141 +533,145 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1184] = +static const flex_int16_t yy_accept[1212] = { 0, - 141, 141, 0, 0, 0, 0, 0, 0, 0, 0, - 149, 147, 10, 11, 147, 1, 141, 138, 141, 141, - 147, 140, 139, 147, 147, 147, 147, 147, 134, 135, - 147, 147, 147, 136, 137, 5, 5, 5, 147, 147, - 147, 10, 11, 0, 0, 130, 0, 0, 0, 0, + 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 152, 150, 10, 11, 150, 1, 144, 141, 144, 144, + 150, 143, 142, 150, 150, 150, 150, 150, 137, 138, + 150, 150, 150, 139, 140, 5, 5, 5, 150, 150, + 150, 10, 11, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 141, 141, 0, - 140, 141, 3, 2, 6, 0, 141, 0, 0, 0, - 0, 0, 0, 4, 0, 0, 9, 0, 131, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 144, 144, + 0, 143, 144, 3, 2, 6, 0, 144, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 9, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 8, 0, 0, 0, 110, 0, 0, - 111, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 8, 0, 0, 0, 113, + 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, + 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 146, 144, 0, 143, 142, 0, - 0, 0, 0, 0, 0, 109, 0, 0, 28, 0, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 149, 147, 0, + 146, 145, 0, 0, 0, 0, 0, 0, 112, 0, + 0, 28, 0, 27, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 145, 142, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 31, 0, - 0, 0, 0, 0, 0, 79, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 148, 145, 0, 0, 0, 0, 0, 0, 0, 29, + 0, 0, 31, 0, 0, 0, 0, 0, 0, 82, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, + 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 117, 42, 0, 47, 0, 0, 0, 0, + 0, 131, 36, 0, 33, 0, 32, 0, 0, 0, + 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, + 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, + 0, 0, 7, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, + 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 71, 0, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 91, 114, 42, 0, 47, - 0, 0, 0, 0, 0, 128, 36, 0, 33, 0, - 32, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, + 0, 0, 0, 0, 0, 110, 87, 0, 0, 0, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 0, 132, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 54, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 68, 0, 0, 0, 97, 0, 0, 41, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 111, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 102, 90, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, + 115, 0, 38, 0, 107, 0, 0, 0, 0, 0, + 0, 20, 0, 0, 63, 0, 0, 0, 109, 45, + 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 98, - 0, 0, 0, 0, 7, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 0, 0, 0, 17, 15, 129, 128, 0, + 0, 0, 0, 30, 0, 0, 93, 0, 0, 0, + 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 78, 0, 96, 0, 52, + 0, 0, 0, 19, 0, 0, 0, 0, 0, 80, + 60, 0, 103, 0, 0, 0, 95, 0, 75, 0, - 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, - 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 107, 84, 0, 0, 0, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, - 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, + 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 0, 56, 55, 127, 0, 12, 0, 0, 0, 0, + 0, 0, 0, 40, 0, 39, 18, 0, 0, 88, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, + 0, 0, 0, 53, 0, 71, 0, 0, 0, 0, + 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 65, 0, 0, 0, 94, - 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 26, 0, 0, 0, 0, 124, 0, 0, + 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 123, 0, 23, 57, 0, 0, 0, + 0, 22, 21, 0, 72, 0, 0, 122, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 84, 0, 0, 0, + 0, 0, 120, 125, 61, 0, 0, 0, 119, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 108, 14, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 99, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, - 112, 0, 38, 0, 104, 0, 0, 0, 0, 0, - 0, 20, 0, 0, 60, 0, 0, 0, 106, 45, - 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 80, 0, 0, 0, 61, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, - 0, 0, 0, 17, 15, 126, 125, 0, 0, 0, - 0, 30, 0, 0, 90, 0, 0, 0, 0, 0, - 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 0, 93, 0, 52, 0, 0, 0, 19, - 0, 0, 0, 0, 0, 77, 57, 0, 100, 0, - 0, 0, 92, 0, 72, 0, 0, 0, 0, 0, - 0, 0, 0, 70, 0, 115, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 89, 0, 124, 0, 12, 0, 0, - 0, 0, 0, 0, 0, 40, 0, 39, 18, 0, - 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 0, 0, 0, 53, 0, 68, 0, 0, - 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, - 0, 0, 0, 0, 26, 0, 0, 0, 0, 121, - 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, - - 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 120, 0, 23, 54, 0, - 0, 0, 0, 22, 21, 0, 69, 0, 0, 119, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 24, 0, 81, 0, - 0, 0, 0, 0, 117, 122, 58, 0, 0, 0, - 116, 0, 0, 0, 0, 0, 0, 0, 82, 0, - 0, 118, 0 + 0, 0, 0, 0, 0, 0, 85, 0, 0, 121, + 0 } ; -static yyconst YY_CHAR 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, @@ -642,7 +703,7 @@ static yyconst YY_CHAR yy_ec[256] = 5, 5, 5, 5, 5 } ; -static yyconst YY_CHAR 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, @@ -654,477 +715,486 @@ static yyconst YY_CHAR yy_meta[72] = 3 } ; -static yyconst flex_uint16_t yy_base[1196] = +static const flex_int16_t yy_base[1224] = { 0, 0, 70, 19, 29, 41, 49, 52, 58, 87, 95, - 1547, 1548, 32, 1543, 141, 0, 201, 1548, 206, 88, - 11, 213, 1548, 1525, 114, 25, 2, 6, 1548, 1548, - 73, 11, 17, 1548, 1548, 1548, 104, 1531, 1486, 0, - 1523, 107, 1538, 217, 241, 1548, 185, 1489, 1509, 93, + 1573, 1574, 32, 1569, 141, 0, 201, 1574, 206, 88, + 11, 213, 1574, 1551, 114, 25, 2, 6, 1574, 1574, + 73, 11, 17, 1574, 1574, 1574, 104, 1557, 1512, 0, + 1549, 107, 1564, 217, 241, 1574, 185, 1515, 1535, 93, 58, 190, 91, 211, 200, 14, 267, 213, 175, 188, - 64, 220, 1490, 187, 75, 261, 215, 289, 256, 278, - 1473, 207, 284, 311, 293, 1492, 0, 337, 352, 360, - 366, 372, 1548, 0, 1548, 331, 378, 227, 231, 259, - 329, 341, 325, 1548, 1489, 1528, 1548, 237, 1548, 377, + 64, 220, 1516, 187, 75, 1515, 261, 215, 289, 256, + 278, 1498, 207, 284, 311, 293, 1517, 0, 337, 352, + 360, 366, 372, 1574, 0, 1574, 331, 378, 227, 231, + 320, 294, 341, 325, 1574, 1514, 1553, 1574, 237, 1574, - 335, 1487, 1526, 366, 253, 321, 1481, 362, 306, 366, - 366, 293, 1524, 0, 428, 369, 1468, 1476, 356, 1472, - 1461, 1462, 360, 1478, 1471, 365, 358, 1458, 1464, 361, - 1452, 1508, 423, 1455, 1506, 1472, 1469, 1469, 1463, 364, - 1456, 1449, 1454, 1448, 1445, 1444, 1458, 371, 1494, 1443, - 397, 1455, 1458, 1442, 423, 399, 1454, 1455, 1453, 1435, - 1440, 1436, 1428, 1445, 1437, 0, 374, 408, 414, 427, - 428, 422, 1436, 1548, 0, 444, 1431, 1548, 432, 449, - 1548, 1483, 1438, 456, 1481, 459, 1480, 456, 1479, 1548, - 500, 1426, 466, 1439, 1434, 1433, 297, 1474, 1468, 1434, + 377, 335, 1512, 1551, 366, 253, 323, 1506, 362, 295, + 366, 306, 293, 1549, 0, 428, 369, 1493, 1501, 351, + 1497, 1486, 1487, 358, 1503, 1496, 365, 360, 1483, 1489, + 374, 1477, 1533, 399, 1480, 1531, 1473, 1496, 1493, 1493, + 1487, 364, 1480, 1473, 1478, 1472, 1469, 1468, 1482, 354, + 1518, 1467, 397, 1479, 1482, 1466, 423, 399, 1478, 1479, + 1477, 1459, 1464, 1460, 1452, 1469, 1461, 0, 383, 408, + 398, 399, 410, 400, 1460, 1574, 0, 445, 1455, 1574, + 428, 427, 1574, 1507, 1462, 445, 1505, 446, 1504, 449, + 1503, 1574, 493, 1450, 460, 1463, 1458, 1457, 429, 1498, - 1413, 1421, 1427, 1415, 1426, 1427, 1427, 1422, 1414, 1416, - 1405, 1418, 1418, 1410, 1400, 1403, 1417, 1548, 1403, 1411, - 1414, 1395, 1445, 1394, 1404, 1442, 1441, 1402, 1390, 1401, - 1437, 1395, 1387, 1384, 1400, 1381, 1383, 1379, 1385, 1376, - 1375, 1388, 1381, 1383, 1387, 1381, 80, 1388, 1383, 1375, - 1381, 1381, 1362, 1378, 1371, 1378, 1366, 1359, 1373, 1372, - 1375, 1357, 1365, 470, 1548, 1548, 471, 1548, 1548, 1352, - 0, 452, 477, 480, 1409, 1548, 1362, 466, 1548, 1407, - 1548, 1401, 536, 1345, 461, 1342, 1352, 1402, 1359, 1345, - 1548, 1356, 1398, 1353, 1350, 1351, 487, 1394, 1344, 1339, + 1492, 1458, 1437, 1445, 1451, 1439, 1450, 1451, 1451, 1446, + 1438, 1440, 1429, 1442, 1442, 1434, 1424, 1427, 1441, 1574, + 1427, 1435, 1438, 1419, 1418, 1468, 1417, 1427, 1465, 1464, + 1425, 1413, 1424, 1460, 1418, 1410, 1407, 1423, 1404, 1406, + 1402, 1408, 1399, 1398, 1411, 1404, 1406, 1410, 1404, 80, + 1411, 1406, 1398, 1404, 1404, 1385, 1401, 1394, 1401, 1389, + 1382, 1396, 1395, 1398, 1380, 1388, 462, 1574, 1574, 463, + 1574, 1574, 1375, 0, 444, 481, 473, 1432, 1574, 1385, + 462, 1574, 1430, 1574, 1424, 529, 1368, 452, 1365, 1375, + 1425, 1382, 469, 1574, 1380, 1422, 1377, 1374, 1375, 488, - 1336, 1332, 1334, 1343, 1332, 1381, 1329, 506, 1342, 1342, - 1325, 1326, 1339, 1337, 1332, 1339, 1334, 1319, 385, 1328, - 1324, 1372, 481, 1319, 1312, 1314, 1318, 1307, 1314, 1319, - 62, 1364, 1319, 483, 1316, 1320, 1308, 1308, 1320, 1302, - 1294, 1295, 1316, 1298, 1310, 1309, 1295, 1307, 1306, 1305, - 1346, 1345, 1344, 1288, 497, 1301, 1548, 1548, 1300, 0, - 475, 1340, 1339, 1297, 1337, 1548, 1285, 1335, 1548, 534, - 580, 1329, 477, 1333, 1275, 1548, 1291, 1278, 1277, 1548, - 1279, 1276, 1288, 1284, 1272, 1548, 1281, 1266, 1268, 1279, - 1277, 1313, 1279, 1261, 1310, 1548, 1259, 1275, 1307, 1311, + 1418, 1368, 1363, 1360, 1356, 1358, 1367, 1356, 1405, 1353, + 522, 1366, 1366, 1349, 1350, 1363, 1350, 1360, 1355, 1362, + 1357, 1342, 440, 1351, 1347, 1395, 473, 1342, 1335, 1337, + 1341, 1330, 1337, 1342, 62, 1387, 1342, 477, 1339, 1343, + 1331, 1331, 1343, 1325, 1317, 1318, 1339, 1321, 1333, 1332, + 1318, 1330, 1329, 1328, 1369, 1368, 1367, 1311, 520, 1324, + 1574, 1574, 1323, 0, 500, 1363, 1362, 1320, 1360, 1574, + 1308, 1358, 1574, 526, 572, 1352, 501, 1356, 1298, 1574, + 1314, 1313, 1300, 1299, 1574, 1301, 1298, 1310, 1306, 1294, + 1574, 1303, 1288, 1290, 1301, 1299, 1335, 1301, 1283, 1332, - 1269, 1263, 1265, 1266, 1301, 1254, 1249, 1248, 1250, 1243, - 1258, 1250, 1298, 1548, 1245, 1241, 1244, 1237, 1247, 1250, - 1239, 1238, 1233, 1548, 1288, 1548, 1232, 1231, 1224, 1241, - 1278, 1231, 1240, 1234, 1238, 527, 1273, 1237, 1217, 1220, - 1219, 1227, 1215, 1271, 1213, 1548, 1548, 1548, 1218, 1548, - 1228, 1262, 1224, 0, 1265, 1548, 1548, 1213, 1548, 1219, - 1548, 511, 510, 1222, 530, 1548, 1256, 1203, 1210, 1203, - 1215, 1214, 1198, 1213, 1243, 1247, 1193, 1195, 1207, 1207, - 1192, 1189, 1203, 1195, 1201, 1192, 1200, 1548, 1185, 1196, - 1200, 1182, 1195, 1178, 1172, 1177, 1174, 1189, 1190, 1187, + 1574, 1281, 1297, 1329, 1333, 1291, 1285, 1287, 1288, 1290, + 1322, 1275, 1270, 1269, 1271, 1264, 1279, 1271, 1319, 1574, + 1266, 1262, 1265, 1258, 1268, 1271, 1260, 1259, 1254, 1574, + 1309, 1574, 1253, 1252, 1245, 1262, 1299, 1252, 1261, 1255, + 1259, 553, 1294, 1258, 1238, 1241, 1240, 1248, 1236, 1292, + 1234, 1574, 1574, 1574, 1239, 1574, 1249, 1283, 1245, 0, + 1286, 1574, 1574, 1234, 1574, 1240, 1574, 534, 528, 1243, + 560, 1574, 1277, 1224, 1223, 1230, 1223, 1235, 1234, 1218, + 1233, 1263, 1267, 1213, 1215, 1227, 1227, 1212, 1209, 1223, + 1215, 1221, 1212, 1220, 1574, 1205, 1216, 1220, 1202, 1216, - 1548, 1173, 1175, 1221, 491, 1184, 1167, 1168, 1173, 1164, - 1548, 1178, 1164, 559, 1156, 1177, 1167, 1210, 1164, 1208, - 1548, 1156, 1154, 1168, 1171, 1203, 1202, 1149, 1200, 1548, - 561, 1162, 1151, 1153, 1548, 1548, 1145, 1200, 537, 507, - 1150, 1152, 1157, 1191, 1190, 1144, 1134, 1187, 1149, 1139, - 1184, 1130, 1138, 1140, 1144, 1179, 1141, 1140, 1141, 1134, - 1123, 1136, 1139, 1134, 1129, 1134, 1131, 1134, 1129, 1170, - 1169, 1113, 1109, 1117, 1165, 1114, 1106, 1121, 1548, 1109, - 1118, 1117, 1117, 1101, 1156, 1099, 1112, 1548, 1104, 1096, - 1105, 1098, 1087, 1091, 1142, 1089, 1087, 1098, 1138, 1085, + 1214, 1197, 1191, 1196, 1193, 1208, 1209, 1206, 1574, 1192, + 1194, 1240, 561, 1203, 1186, 1187, 1192, 1183, 1574, 1197, + 1183, 594, 1175, 1196, 1186, 1229, 1183, 1227, 1574, 1175, + 1173, 1187, 1190, 1222, 1221, 1168, 1219, 1574, 530, 1181, + 1170, 1172, 1574, 1574, 1164, 1219, 545, 499, 1169, 1171, + 1176, 1210, 538, 1209, 1163, 1153, 1206, 1168, 1158, 1203, + 1149, 1157, 1159, 1163, 1198, 1160, 1159, 1160, 1153, 1142, + 1155, 1158, 1153, 1148, 1153, 1150, 1149, 1152, 1147, 1188, + 1187, 1131, 1127, 1135, 1183, 1132, 1124, 1139, 1574, 1127, + 1136, 1135, 1135, 1119, 1174, 1117, 1130, 1574, 1122, 1114, - 527, 538, 1079, 535, 1548, 1140, 1098, 1087, 1091, 1136, - 1548, 1130, 553, 1088, 1082, 1083, 1074, 1074, 1091, 1086, - 1074, 1085, 1069, 1071, 1070, 1084, 1065, 1115, 1070, 1078, - 1076, 1067, 1076, 1072, 1113, 1055, 1055, 1068, 1067, 1052, - 1050, 1051, 1548, 1548, 1065, 1062, 1065, 1548, 1064, 1049, - 530, 1047, 1094, 1043, 1097, 1096, 1548, 1041, 1053, 1051, - 1092, 1040, 1040, 1089, 1042, 1030, 1024, 1032, 1034, 1043, - 1036, 1028, 1028, 529, 1027, 1078, 1039, 1014, 1548, 1070, - 1017, 1030, 1548, 557, 574, 1030, 1031, 1032, 1023, 1016, - 1010, 1017, 1010, 1059, 1063, 1010, 1020, 1003, 1017, 1005, + 1123, 1116, 1105, 1109, 1160, 1107, 1105, 1116, 1156, 1103, + 547, 550, 1097, 544, 1574, 1158, 1116, 1105, 1109, 1154, + 1574, 1148, 548, 1106, 1100, 1101, 1092, 1095, 1094, 1090, + 1107, 1102, 1090, 1101, 1085, 1087, 1086, 1100, 1081, 1131, + 1086, 1094, 1092, 1083, 1092, 1088, 1129, 1071, 1071, 1084, + 1083, 1068, 1123, 1065, 1066, 1574, 1574, 1080, 1077, 1080, + 1574, 1079, 1064, 524, 1062, 1109, 1058, 1112, 1111, 1574, + 1056, 1068, 1066, 1107, 1055, 1055, 1104, 1057, 1045, 1039, + 1047, 1049, 1058, 1051, 1043, 1043, 501, 1042, 1093, 1054, + 1029, 1574, 1085, 1032, 1045, 1574, 571, 565, 1045, 1046, - 1015, 1007, 1050, 1016, 998, 997, 1548, 1013, 994, 994, - 602, 992, 1009, 987, 1003, 1039, 997, 63, 200, 218, - 280, 286, 563, 350, 1548, 1548, 393, 479, 496, 1548, - 504, 500, 1548, 517, 523, 551, 552, 564, 559, 559, - 612, 558, 615, 617, 569, 1548, 575, 573, 572, 586, - 587, 604, 606, 581, 584, 578, 585, 596, 637, 638, - 587, 591, 1548, 586, 604, 601, 639, 590, 608, 609, - 595, 603, 612, 592, 613, 653, 654, 1548, 609, 656, - 660, 623, 625, 608, 609, 616, 667, 616, 631, 670, - 625, 623, 621, 674, 675, 627, 677, 673, 633, 638, + 1047, 1038, 1031, 1030, 1029, 1023, 1030, 1023, 1072, 1076, + 1023, 1033, 1016, 1030, 1018, 1028, 1020, 9, 15, 65, + 185, 1574, 237, 298, 351, 616, 440, 1574, 483, 492, + 521, 559, 539, 548, 566, 551, 566, 560, 578, 563, + 1574, 1574, 571, 617, 572, 1574, 581, 576, 1574, 577, + 582, 577, 578, 590, 584, 582, 635, 582, 638, 639, + 585, 1574, 591, 589, 588, 602, 603, 619, 624, 596, + 600, 594, 601, 606, 607, 614, 655, 656, 605, 609, + 1574, 604, 622, 619, 657, 608, 626, 627, 613, 621, + 630, 610, 631, 671, 673, 1574, 630, 677, 678, 640, - 631, 640, 634, 629, 639, 635, 1548, 630, 1548, 1548, - 631, 647, 648, 649, 631, 636, 675, 666, 639, 639, - 642, 657, 652, 1548, 1548, 662, 661, 647, 648, 706, - 661, 666, 653, 664, 656, 662, 658, 676, 677, 1548, - 1548, 675, 1548, 678, 1548, 663, 682, 672, 722, 678, - 720, 1548, 677, 727, 1548, 676, 683, 725, 1548, 1548, - 685, 1548, 676, 676, 679, 693, 680, 691, 738, 697, - 735, 741, 742, 743, 744, 705, 689, 701, 720, 749, - 745, 710, 752, 701, 712, 717, 705, 757, 716, 1548, - 718, 717, 719, 712, 721, 722, 719, 709, 711, 768, + 642, 625, 627, 634, 685, 634, 649, 688, 643, 641, + 639, 692, 693, 645, 695, 691, 651, 656, 649, 658, + 652, 647, 657, 653, 1574, 648, 1574, 1574, 649, 665, + 666, 667, 649, 654, 693, 684, 657, 657, 660, 675, + 667, 668, 673, 1574, 1574, 683, 681, 667, 668, 726, + 681, 686, 673, 684, 676, 682, 678, 696, 698, 1574, + 1574, 696, 1574, 698, 1574, 683, 702, 693, 743, 698, + 740, 1574, 697, 747, 1574, 696, 703, 745, 1574, 1574, + 705, 1574, 696, 696, 699, 713, 700, 711, 758, 717, + 755, 761, 762, 763, 764, 725, 709, 721, 740, 769, - 717, 770, 715, 772, 1548, 710, 725, 775, 1548, 726, - 736, 721, 737, 723, 783, 784, 730, 786, 745, 1548, - 737, 739, 790, 1548, 1548, 1548, 1548, 743, 793, 745, - 777, 1548, 739, 756, 1548, 743, 742, 744, 745, 803, - 1548, 748, 805, 760, 751, 766, 766, 769, 769, 766, - 771, 1548, 763, 1548, 773, 1548, 774, 775, 772, 1548, - 764, 770, 769, 781, 781, 1548, 1548, 820, 1548, 785, - 770, 776, 1548, 791, 1548, 788, 807, 779, 828, 834, - 778, 836, 791, 1548, 838, 1548, 778, 835, 800, 796, - 838, 788, 793, 846, 804, 848, 849, 812, 801, 852, + 765, 730, 772, 721, 717, 718, 734, 739, 727, 779, + 738, 1574, 740, 739, 741, 734, 743, 744, 741, 731, + 733, 790, 739, 792, 737, 794, 1574, 732, 748, 798, + 1574, 748, 758, 743, 759, 745, 804, 806, 752, 808, + 767, 1574, 759, 762, 813, 1574, 1574, 1574, 1574, 766, + 816, 767, 799, 1574, 761, 778, 1574, 765, 764, 767, + 768, 768, 769, 827, 1574, 772, 829, 784, 775, 790, + 790, 793, 793, 790, 795, 1574, 787, 1574, 797, 1574, + 798, 800, 797, 1574, 788, 794, 793, 805, 805, 1574, + 1574, 844, 1574, 809, 794, 800, 1574, 815, 1574, 812, - 796, 813, 798, 813, 797, 854, 855, 820, 816, 863, - 835, 824, 823, 1548, 867, 1548, 816, 1548, 869, 817, - 866, 811, 816, 875, 825, 1548, 831, 1548, 1548, 822, - 837, 1548, 875, 843, 836, 837, 846, 833, 835, 845, - 838, 1548, 889, 852, 837, 1548, 842, 1548, 845, 840, - 839, 897, 852, 1548, 894, 856, 859, 902, 845, 847, - 855, 845, 861, 855, 871, 910, 906, 1548, 855, 872, - 909, 873, 864, 871, 1548, 868, 873, 920, 865, 1548, - 869, 881, 882, 925, 869, 870, 878, 1548, 889, 888, - 880, 879, 882, 894, 885, 894, 896, 1548, 938, 898, + 831, 803, 852, 858, 802, 860, 861, 862, 817, 1574, + 864, 1574, 804, 861, 826, 822, 864, 814, 819, 872, + 830, 874, 875, 838, 827, 878, 822, 839, 824, 840, + 824, 880, 881, 846, 842, 889, 861, 850, 849, 1574, + 893, 1574, 1574, 1574, 842, 1574, 895, 843, 892, 837, + 842, 901, 851, 1574, 857, 1574, 1574, 848, 863, 1574, + 901, 869, 862, 863, 872, 859, 861, 871, 864, 1574, + 915, 878, 863, 1574, 868, 1574, 871, 866, 865, 923, + 878, 1574, 920, 882, 885, 928, 871, 873, 881, 871, + 887, 881, 897, 936, 932, 1574, 881, 898, 935, 899, - 940, 941, 1548, 937, 897, 902, 883, 946, 947, 906, - 949, 908, 909, 952, 911, 1548, 916, 1548, 1548, 898, - 904, 957, 918, 1548, 1548, 904, 1548, 904, 906, 1548, - 911, 906, 918, 914, 1548, 917, 921, 912, 964, 913, - 929, 922, 917, 932, 923, 930, 917, 932, 979, 938, - 981, 926, 942, 933, 947, 943, 1548, 987, 1548, 988, - 989, 946, 945, 946, 1548, 1548, 1548, 993, 937, 953, - 1548, 991, 942, 941, 943, 954, 1001, 952, 1548, 961, - 1004, 1548, 1548, 1010, 1015, 1020, 1025, 1030, 1035, 1040, - 1043, 1017, 1022, 1024, 1037 + 890, 897, 1574, 894, 899, 946, 891, 1574, 895, 907, + 908, 951, 895, 896, 904, 1574, 915, 914, 906, 905, + 908, 920, 911, 920, 922, 1574, 964, 924, 966, 967, + 1574, 963, 923, 928, 909, 972, 973, 932, 975, 934, + 935, 978, 937, 1574, 942, 1574, 1574, 924, 930, 983, + 944, 1574, 1574, 930, 1574, 930, 932, 1574, 937, 932, + 944, 940, 1574, 943, 947, 938, 990, 939, 955, 948, + 943, 958, 949, 956, 943, 958, 1005, 964, 1007, 952, + 968, 959, 973, 969, 1574, 1013, 1574, 1014, 1015, 972, + 971, 972, 1574, 1574, 1574, 1019, 963, 979, 1574, 1017, + 968, 967, 969, 980, 1027, 978, 1574, 987, 1030, 1574, + 1574, 1036, 1041, 1046, 1051, 1056, 1061, 1066, 1069, 1043, + 1048, 1050, 1063 } ; -static yyconst flex_int16_t yy_def[1196] = +static const flex_int16_t yy_def[1224] = { 0, - 1184, 1184, 1185, 1185, 1184, 1184, 1184, 1184, 1184, 1184, - 1183, 1183, 1183, 1183, 1183, 1186, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1187, - 1183, 1183, 1183, 1188, 15, 1183, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1189, 45, 45, 45, + 1212, 1212, 1213, 1213, 1212, 1212, 1212, 1212, 1212, 1212, + 1211, 1211, 1211, 1211, 1211, 1214, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1215, + 1211, 1211, 1211, 1216, 15, 1211, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1217, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1186, 1183, 1183, 1183, - 1183, 1183, 1183, 1190, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1187, 1183, 1188, 1183, 1183, + 45, 45, 45, 45, 45, 45, 45, 1214, 1211, 1211, + 1211, 1211, 1211, 1211, 1218, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1215, 1211, 1216, 1211, + + 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1219, 45, 1217, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1218, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1220, 45, 45, 1211, + 45, 45, 1211, 45, 45, 45, 45, 45, 45, 45, + 1219, 1211, 1217, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1191, 45, 1189, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1190, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1192, 45, 45, 1183, 45, 45, - 1183, 45, 45, 45, 45, 45, 45, 45, 1191, 1183, - 1189, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1183, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1193, 45, 45, 45, 45, 1183, 45, 45, 1183, 45, - 1183, 45, 1189, 45, 45, 45, 45, 45, 45, 45, - 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1221, 45, 45, 45, 45, 1211, 45, + 45, 1211, 45, 1211, 45, 1217, 45, 45, 45, 45, + 45, 45, 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1183, 1183, 1183, 1194, - 45, 45, 45, 45, 45, 1183, 45, 45, 1183, 45, - 1189, 45, 45, 45, 45, 1183, 45, 45, 45, 1183, - 45, 45, 45, 45, 45, 1183, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1211, 1211, 1211, 1222, 45, 45, 45, 45, 45, 1211, + 45, 45, 1211, 45, 1217, 45, 45, 45, 45, 1211, + 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, + 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1211, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1211, + 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1211, 1211, 1211, 45, 1211, 45, 45, 1211, 1223, + 45, 1211, 1211, 45, 1211, 45, 1211, 45, 45, 45, + 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, + 45, 45, 45, 45, 45, 45, 45, 1211, 45, 45, + 45, 45, 1211, 1211, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, + 45, 45, 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1183, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1183, 45, 1183, 45, 45, 45, 45, + 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, + 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1183, 1183, 1183, 45, 1183, - 45, 45, 1183, 1195, 45, 1183, 1183, 45, 1183, 45, - 1183, 45, 45, 45, 45, 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1183, 45, 45, + 45, 45, 45, 45, 45, 1211, 1211, 45, 45, 45, + 1211, 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1211, 45, 45, 45, 1211, 45, 45, 45, 45, - 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1183, 45, 45, 45, 45, 45, 45, 45, 45, 1183, - 45, 45, 45, 45, 1183, 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1211, 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1183, 45, - 45, 45, 45, 45, 45, 45, 45, 1183, 45, 45, + 1211, 1211, 45, 45, 45, 1211, 45, 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, - 45, 45, 45, 45, 1183, 45, 45, 45, 45, 45, - 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1183, 1183, 45, 45, 45, 1183, 45, 45, - 45, 45, 45, 45, 45, 45, 1183, 45, 45, 45, + 45, 45, 45, 45, 1211, 45, 1211, 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1183, 45, - 45, 45, 1183, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 1183, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1183, 1183, 45, 45, 45, 1183, - 45, 45, 1183, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1183, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1183, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1183, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 1183, 45, 1183, 1183, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1183, 1183, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1183, - 1183, 45, 1183, 45, 1183, 45, 45, 45, 45, 45, - 45, 1183, 45, 45, 1183, 45, 45, 45, 1183, 1183, - 45, 1183, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1183, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 1183, 45, 45, 45, 1183, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1183, - 45, 45, 45, 1183, 1183, 1183, 1183, 45, 45, 45, - 45, 1183, 45, 45, 1183, 45, 45, 45, 45, 45, - 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1183, 45, 1183, 45, 1183, 45, 45, 45, 1183, - 45, 45, 45, 45, 45, 1183, 1183, 45, 1183, 45, - 45, 45, 1183, 45, 1183, 45, 45, 45, 45, 45, - 45, 45, 45, 1183, 45, 1183, 45, 45, 45, 45, + 45, 45, 45, 1211, 1211, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1211, + 1211, 45, 1211, 45, 1211, 45, 45, 45, 45, 45, + 45, 1211, 45, 45, 1211, 45, 45, 45, 1211, 1211, + 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1183, 45, 1183, 45, 1183, 45, 45, - 45, 45, 45, 45, 45, 1183, 45, 1183, 1183, 45, - 45, 1183, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1183, 45, 45, 45, 1183, 45, 1183, 45, 45, - 45, 45, 45, 1183, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1183, 45, 45, - 45, 45, 45, 45, 1183, 45, 45, 45, 45, 1183, - 45, 45, 45, 45, 45, 45, 45, 1183, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1183, 45, 45, + 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1211, 45, 45, 45, + 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1211, 45, 45, 45, 1211, 1211, 1211, 1211, 45, + 45, 45, 45, 1211, 45, 45, 1211, 45, 45, 45, + 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1211, 45, 1211, 45, 1211, + 45, 45, 45, 1211, 45, 45, 45, 45, 45, 1211, + 1211, 45, 1211, 45, 45, 45, 1211, 45, 1211, 45, - 45, 45, 1183, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1183, 45, 1183, 1183, 45, - 45, 45, 45, 1183, 1183, 45, 1183, 45, 45, 1183, - 45, 45, 45, 45, 1183, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1211, + 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1183, 45, 1183, 45, - 45, 45, 45, 45, 1183, 1183, 1183, 45, 45, 45, - 1183, 45, 45, 45, 45, 45, 45, 45, 1183, 45, - 45, 1183, 0, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183 + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1211, + 45, 1211, 1211, 1211, 45, 1211, 45, 45, 45, 45, + 45, 45, 45, 1211, 45, 1211, 1211, 45, 45, 1211, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1211, + 45, 45, 45, 1211, 45, 1211, 45, 45, 45, 45, + 45, 1211, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, + 45, 45, 1211, 45, 45, 45, 45, 1211, 45, 45, + 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, + 1211, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1211, 45, 1211, 1211, 45, 45, 45, + 45, 1211, 1211, 45, 1211, 45, 45, 1211, 45, 45, + 45, 45, 1211, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1211, 45, 1211, 45, 45, 45, + 45, 45, 1211, 1211, 1211, 45, 45, 45, 1211, 45, + + 45, 45, 45, 45, 45, 45, 1211, 45, 45, 1211, + 0, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211 } ; -static yyconst flex_uint16_t yy_nxt[1620] = +static const flex_int16_t yy_nxt[1646] = { 0, - 1183, 13, 14, 13, 1183, 15, 16, 1183, 17, 18, - 19, 20, 21, 22, 22, 22, 23, 24, 83, 1183, - 37, 14, 37, 84, 25, 26, 38, 1183, 1183, 27, - 37, 14, 37, 42, 28, 42, 38, 89, 90, 29, - 112, 30, 13, 14, 13, 88, 89, 25, 31, 90, - 13, 14, 13, 13, 14, 13, 32, 40, 1183, 13, - 14, 13, 33, 40, 112, 89, 90, 424, 88, 34, - 35, 13, 14, 13, 92, 15, 16, 93, 17, 18, + 1211, 13, 14, 13, 1211, 15, 16, 1211, 17, 18, + 19, 20, 21, 22, 22, 22, 23, 24, 84, 789, + 37, 14, 37, 85, 25, 26, 38, 1211, 1211, 27, + 37, 14, 37, 42, 28, 42, 38, 90, 91, 29, + 113, 30, 13, 14, 13, 89, 90, 25, 31, 91, + 13, 14, 13, 13, 14, 13, 32, 40, 790, 13, + 14, 13, 33, 40, 113, 90, 91, 430, 89, 34, + 35, 13, 14, 13, 93, 15, 16, 94, 17, 18, 19, 20, 21, 22, 22, 22, 23, 24, 13, 14, - 13, 105, 39, 88, 25, 26, 13, 14, 13, 27, + 13, 106, 39, 89, 25, 26, 13, 14, 13, 27, - 39, 82, 82, 82, 28, 42, 41, 42, 42, 29, - 42, 30, 80, 104, 41, 108, 91, 25, 31, 105, - 126, 133, 86, 425, 86, 787, 32, 87, 87, 87, - 127, 134, 33, 135, 339, 80, 104, 340, 108, 34, + 39, 83, 83, 83, 28, 42, 41, 42, 42, 29, + 42, 30, 81, 105, 41, 109, 92, 25, 31, 106, + 127, 134, 87, 431, 87, 791, 32, 88, 88, 88, + 128, 135, 33, 136, 343, 81, 105, 344, 109, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 48, 49, 50, 45, 51, 52, 53, 45, 45, 45, 45, 54, 55, 45, 56, 45, 45, 57, 45, 45, 58, 45, 59, 60, 61, 62, - 63, 64, 65, 51, 45, 66, 67, 68, 69, 70, + 63, 64, 65, 51, 66, 67, 68, 69, 70, 71, - 71, 72, 73, 74, 75, 76, 56, 45, 45, 45, - 45, 45, 78, 101, 79, 79, 79, 78, 106, 81, - 81, 81, 99, 111, 78, 80, 81, 81, 81, 118, - 80, 122, 119, 109, 120, 123, 121, 80, 124, 101, - 104, 101, 99, 110, 130, 788, 111, 107, 80, 131, - 154, 125, 132, 80, 155, 167, 109, 100, 140, 168, - 80, 45, 141, 104, 45, 45, 45, 116, 45, 45, - 45, 110, 114, 117, 128, 45, 45, 100, 45, 45, - 789, 167, 142, 180, 45, 168, 45, 45, 45, 45, - 45, 45, 45, 45, 169, 45, 45, 45, 45, 45, + 72, 73, 74, 75, 76, 77, 56, 45, 45, 45, + 45, 45, 79, 102, 80, 80, 80, 79, 107, 82, + 82, 82, 100, 112, 79, 81, 82, 82, 82, 119, + 81, 123, 120, 110, 121, 124, 122, 81, 125, 102, + 105, 102, 100, 111, 131, 792, 112, 108, 81, 132, + 156, 126, 133, 81, 157, 169, 110, 101, 142, 170, + 81, 45, 143, 105, 45, 45, 45, 117, 45, 45, + 45, 111, 115, 118, 129, 45, 45, 101, 45, 45, + 793, 169, 144, 182, 45, 170, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 136, 137, - 180, 45, 138, 108, 145, 45, 111, 188, 139, 146, - 147, 148, 169, 45, 149, 150, 181, 45, 790, 45, - 115, 156, 143, 109, 144, 151, 108, 185, 152, 111, - 188, 157, 158, 110, 87, 87, 87, 159, 791, 163, - 82, 82, 82, 289, 164, 182, 109, 167, 160, 290, - 169, 80, 161, 78, 185, 79, 79, 79, 86, 168, - 86, 110, 176, 87, 87, 87, 80, 78, 162, 81, - 81, 81, 98, 170, 80, 82, 82, 82, 172, 98, - 80, 87, 87, 87, 179, 171, 80, 187, 184, 80, + 45, 45, 45, 45, 45, 45, 45, 45, 138, 139, + 182, 45, 140, 109, 147, 45, 112, 190, 141, 148, + 149, 150, 169, 45, 151, 152, 187, 45, 183, 45, + 116, 158, 145, 110, 146, 153, 109, 189, 154, 112, + 190, 159, 160, 111, 88, 88, 88, 161, 172, 165, + 83, 83, 83, 187, 166, 171, 110, 184, 162, 794, + 171, 81, 163, 79, 189, 80, 80, 80, 87, 170, + 87, 111, 178, 88, 88, 88, 81, 79, 164, 82, + 82, 82, 99, 171, 81, 83, 83, 83, 174, 99, + 81, 88, 88, 88, 181, 173, 81, 198, 186, 81, - 176, 186, 196, 209, 201, 202, 176, 264, 206, 226, - 207, 794, 197, 80, 203, 213, 210, 98, 214, 80, - 179, 98, 215, 192, 187, 98, 184, 208, 218, 186, - 227, 235, 236, 98, 193, 264, 265, 98, 266, 98, - 175, 191, 191, 191, 410, 411, 266, 795, 191, 191, - 191, 191, 191, 191, 239, 252, 265, 240, 241, 253, - 264, 266, 265, 254, 272, 274, 245, 246, 247, 269, - 219, 191, 191, 191, 191, 191, 191, 248, 275, 249, - 278, 250, 268, 280, 251, 282, 272, 272, 267, 796, - 361, 362, 363, 274, 357, 357, 579, 384, 368, 361, + 178, 188, 203, 204, 220, 211, 178, 199, 208, 229, + 209, 795, 205, 81, 238, 239, 267, 99, 212, 81, + 181, 99, 269, 194, 269, 99, 186, 210, 215, 188, + 230, 216, 267, 99, 195, 217, 268, 99, 268, 99, + 177, 193, 193, 193, 267, 269, 221, 272, 193, 193, + 193, 193, 193, 193, 242, 255, 278, 243, 244, 256, + 270, 277, 268, 257, 271, 275, 248, 249, 250, 281, + 283, 193, 193, 193, 193, 193, 193, 251, 285, 252, + 275, 253, 365, 278, 254, 292, 361, 361, 275, 277, + 365, 293, 281, 283, 372, 366, 367, 369, 389, 416, - 364, 385, 450, 278, 365, 275, 280, 451, 455, 285, - 455, 396, 282, 283, 283, 283, 397, 357, 358, 361, - 283, 283, 283, 283, 283, 283, 368, 365, 373, 415, - 428, 613, 521, 580, 429, 536, 455, 522, 465, 416, - 542, 539, 540, 283, 283, 283, 283, 283, 283, 371, - 371, 371, 797, 798, 613, 799, 371, 371, 371, 371, - 371, 371, 398, 462, 588, 463, 605, 399, 539, 589, - 540, 612, 800, 720, 801, 743, 606, 721, 672, 371, - 371, 371, 371, 371, 371, 673, 685, 744, 752, 674, - 462, 677, 463, 45, 45, 45, 675, 678, 753, 612, + 417, 799, 390, 288, 368, 285, 286, 286, 286, 361, + 362, 365, 382, 286, 286, 286, 286, 286, 286, 377, + 369, 421, 372, 623, 434, 456, 800, 401, 435, 383, + 457, 422, 402, 461, 461, 615, 286, 286, 286, 286, + 286, 286, 375, 375, 375, 616, 623, 759, 628, 375, + 375, 375, 375, 375, 375, 468, 801, 469, 529, 760, + 548, 461, 471, 530, 547, 544, 589, 736, 802, 803, + 550, 737, 375, 375, 375, 375, 375, 375, 403, 622, + 629, 698, 468, 404, 469, 45, 45, 45, 548, 769, + 804, 547, 45, 45, 45, 45, 45, 45, 685, 598, - 45, 45, 45, 45, 45, 45, 590, 778, 792, 802, - 803, 804, 779, 805, 685, 752, 806, 807, 808, 793, - 809, 753, 810, 45, 45, 45, 45, 45, 45, 811, - 812, 813, 814, 815, 816, 818, 817, 819, 820, 821, - 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, - 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, - 842, 843, 818, 780, 817, 845, 844, 847, 848, 849, - 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, - 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, + 690, 687, 768, 590, 599, 686, 691, 622, 688, 698, + 805, 806, 769, 807, 808, 45, 45, 45, 45, 45, + 45, 796, 809, 810, 812, 813, 797, 814, 815, 768, + 816, 817, 818, 819, 811, 820, 821, 822, 823, 824, + 825, 600, 826, 827, 828, 829, 830, 831, 832, 833, + 834, 835, 837, 836, 838, 839, 840, 841, 842, 843, + 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, + 854, 855, 856, 857, 858, 859, 860, 798, 861, 835, + 836, 862, 863, 865, 867, 868, 869, 864, 870, 871, + 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, - 880, 881, 882, 883, 884, 885, 886, 846, 887, 888, - 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, - 899, 900, 879, 901, 902, 903, 904, 905, 880, 906, - 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, - 917, 918, 919, 920, 921, 922, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 937, 938, - 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, - 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, - 960, 931, 961, 962, 963, 964, 965, 959, 966, 967, - 968, 969, 970, 971, 972, 973, 923, 974, 975, 936, + 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, + 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, + 902, 903, 904, 905, 906, 866, 907, 908, 909, 910, + 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, + 899, 921, 922, 923, 924, 925, 900, 926, 927, 928, + 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, + 939, 940, 941, 942, 943, 944, 946, 947, 948, 949, + 950, 951, 952, 953, 954, 955, 956, 957, 959, 960, + 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, + 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, - 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 998, 999, 977, 1000, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, - 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, - 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, - 1035, 1036, 1037, 1011, 1038, 1039, 1040, 1041, 1042, 1043, - 1044, 1045, 1046, 1047, 1048, 1050, 1051, 1052, 1053, 1049, - 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, - 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1043, 1071, 1072, + 981, 953, 982, 984, 985, 986, 987, 988, 989, 990, + 983, 991, 992, 993, 994, 995, 945, 996, 997, 958, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, + 1018, 1019, 1020, 1021, 1022, 1023, 1001, 1024, 1025, 1026, + 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, + 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, + 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, + 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1037, 1064, 1065, + 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, - 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, - 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, - 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, - 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, - 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, - 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, - 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, - 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, - 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, + 1076, 1078, 1079, 1080, 1081, 1077, 1082, 1083, 1084, 1085, + 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, + 1096, 1097, 1098, 1071, 1099, 1100, 1101, 1102, 1103, 1104, + 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, + 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, + 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, + 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, + 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, + 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, - 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, - 12, 12, 12, 12, 12, 36, 36, 36, 36, 36, - 77, 271, 77, 77, 77, 96, 360, 96, 454, 96, - 98, 98, 98, 98, 98, 113, 113, 113, 113, 113, - 166, 98, 166, 166, 166, 189, 189, 189, 786, 785, - 784, 783, 782, 781, 777, 776, 775, 774, 773, 772, - 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, - 761, 760, 759, 758, 757, 756, 755, 754, 751, 750, - 749, 748, 747, 746, 745, 742, 741, 740, 739, 738, - 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, + 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, + 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, + 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, + 1205, 1206, 1207, 1208, 1209, 1210, 12, 12, 12, 12, + 12, 36, 36, 36, 36, 36, 78, 274, 78, 78, + 78, 97, 364, 97, 460, 97, 99, 99, 99, 99, + 99, 114, 114, 114, 114, 114, 168, 99, 168, 168, + 168, 191, 191, 191, 788, 787, 786, 785, 784, 783, + 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, + 772, 771, 770, 767, 766, 765, 764, 763, 762, 761, - 727, 726, 725, 724, 723, 722, 719, 718, 717, 716, - 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, - 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, - 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, - 684, 683, 682, 681, 680, 679, 676, 671, 670, 669, - 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, - 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, - 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, - 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, - 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, + 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, + 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, + 738, 735, 734, 733, 732, 731, 730, 729, 728, 727, + 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, + 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, + 706, 705, 704, 703, 702, 701, 700, 699, 697, 696, + 695, 694, 693, 692, 689, 684, 683, 682, 681, 680, + 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, + 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, + 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, - 618, 617, 616, 615, 614, 611, 610, 609, 608, 607, - 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, - 594, 593, 592, 591, 587, 586, 585, 584, 583, 582, - 581, 578, 577, 576, 575, 574, 573, 572, 571, 570, - 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, - 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, - 549, 548, 547, 546, 545, 544, 543, 541, 538, 537, - 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, - 526, 525, 524, 523, 520, 519, 518, 517, 516, 515, - 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, + 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, + 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, + 627, 626, 625, 624, 621, 620, 619, 618, 617, 614, + 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, + 603, 602, 601, 597, 596, 595, 594, 593, 592, 591, + 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, + 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, + 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, + 558, 557, 556, 555, 554, 553, 552, 551, 549, 546, + 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, - 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, - 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, - 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, - 474, 473, 472, 471, 470, 469, 468, 467, 466, 464, - 461, 460, 459, 458, 457, 456, 453, 452, 449, 448, - 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, - 437, 436, 435, 434, 433, 432, 431, 430, 427, 426, - 423, 422, 421, 420, 419, 418, 417, 414, 413, 412, - 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, - 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, + 535, 534, 533, 532, 531, 528, 527, 526, 525, 524, + 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, + 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, + 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, + 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, + 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, + 473, 472, 470, 467, 466, 465, 464, 463, 462, 459, + 458, 455, 454, 453, 452, 451, 450, 449, 448, 447, + 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, + 436, 433, 432, 429, 428, 427, 426, 425, 424, 423, - 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, - 372, 370, 369, 367, 366, 359, 356, 355, 354, 353, - 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, - 342, 341, 338, 337, 336, 335, 334, 333, 332, 331, - 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, - 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, - 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, - 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, - 288, 287, 286, 284, 190, 281, 279, 277, 276, 273, - 270, 263, 262, 261, 260, 259, 258, 257, 256, 255, + 420, 419, 418, 415, 414, 413, 412, 411, 410, 409, + 408, 407, 406, 405, 400, 399, 398, 397, 396, 395, + 394, 393, 392, 391, 388, 387, 386, 385, 384, 381, + 380, 379, 378, 376, 374, 373, 371, 370, 363, 360, + 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, + 349, 348, 347, 346, 345, 342, 341, 340, 339, 338, + 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, + 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, + 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, + 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, - 244, 243, 242, 238, 237, 234, 233, 232, 231, 230, - 229, 228, 225, 224, 223, 222, 221, 220, 217, 216, - 212, 211, 205, 204, 200, 199, 198, 195, 194, 190, - 183, 178, 177, 174, 173, 165, 153, 129, 103, 102, - 43, 97, 95, 94, 85, 43, 1183, 11, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, + 297, 296, 295, 294, 291, 290, 289, 287, 192, 284, + 282, 280, 279, 276, 273, 266, 265, 264, 263, 262, + 261, 260, 259, 258, 247, 246, 245, 241, 240, 237, + 236, 235, 234, 233, 232, 231, 228, 227, 226, 225, + 224, 223, 222, 219, 218, 214, 213, 207, 206, 202, + 201, 200, 197, 196, 192, 185, 180, 179, 176, 175, + 167, 155, 137, 130, 104, 103, 43, 98, 96, 95, + 86, 43, 1211, 11, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183 + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211 } ; -static yyconst flex_int16_t yy_chk[1620] = +static const flex_int16_t yy_chk[1646] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 21, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 21, 718, 3, 3, 3, 21, 1, 1, 3, 0, 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 56, 1, 5, 5, 5, 26, 32, 1, 1, 33, - 6, 6, 6, 7, 7, 7, 1, 7, 0, 8, - 8, 8, 1, 8, 56, 27, 28, 331, 26, 1, + 6, 6, 6, 7, 7, 7, 1, 7, 719, 8, + 8, 8, 1, 8, 56, 27, 28, 335, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 51, 5, 31, 2, 2, 10, 10, 10, 2, 6, 20, 20, 20, 2, 37, 9, 37, 42, 2, 42, 2, 20, 50, 10, 53, 31, 2, 2, 51, - 61, 65, 25, 331, 25, 718, 2, 25, 25, 25, - 61, 65, 2, 65, 247, 20, 50, 247, 53, 2, + 61, 65, 25, 335, 25, 720, 2, 25, 25, 25, + 61, 65, 2, 65, 250, 20, 50, 250, 53, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1136,158 +1206,161 @@ static yyconst flex_int16_t yy_chk[1620] = 15, 15, 17, 47, 17, 17, 17, 19, 52, 19, 19, 19, 44, 55, 22, 17, 22, 22, 22, 59, 19, 60, 59, 54, 59, 60, 59, 22, 60, 47, - 62, 58, 98, 54, 64, 719, 55, 52, 17, 64, - 72, 60, 64, 19, 72, 88, 54, 44, 67, 89, - 22, 45, 67, 62, 45, 45, 45, 58, 45, 45, - 45, 54, 57, 58, 62, 45, 45, 98, 45, 57, - 720, 88, 67, 105, 45, 89, 45, 45, 45, 45, - 45, 45, 45, 45, 90, 45, 45, 45, 45, 45, + 62, 58, 99, 54, 64, 721, 55, 52, 17, 64, + 73, 60, 64, 19, 73, 89, 54, 44, 68, 90, + 22, 45, 68, 62, 45, 45, 45, 58, 45, 45, + 45, 54, 57, 58, 62, 45, 45, 99, 45, 57, + 723, 89, 68, 106, 45, 90, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 57, 66, 66, - 105, 57, 66, 68, 69, 57, 75, 112, 66, 69, - 69, 70, 90, 57, 70, 70, 106, 57, 721, 57, - 57, 73, 68, 74, 68, 70, 68, 109, 70, 75, - 112, 73, 73, 74, 86, 86, 86, 73, 722, 75, - 78, 78, 78, 197, 75, 106, 74, 91, 74, 197, - 93, 78, 74, 79, 109, 79, 79, 79, 80, 92, - 80, 74, 101, 80, 80, 80, 79, 81, 74, 81, - 81, 81, 100, 91, 78, 82, 82, 82, 93, 100, - 81, 87, 87, 87, 104, 92, 82, 111, 108, 79, + 45, 45, 45, 45, 45, 45, 45, 57, 67, 67, + 106, 57, 67, 69, 70, 57, 76, 113, 67, 70, + 70, 71, 92, 57, 71, 71, 110, 57, 107, 57, + 57, 74, 69, 75, 69, 71, 69, 112, 71, 76, + 113, 74, 74, 75, 87, 87, 87, 74, 92, 76, + 79, 79, 79, 110, 76, 91, 75, 107, 75, 724, + 94, 79, 75, 80, 112, 80, 80, 80, 81, 93, + 81, 75, 102, 81, 81, 81, 80, 82, 75, 82, + 82, 82, 101, 91, 79, 83, 83, 83, 94, 101, + 82, 88, 88, 88, 105, 93, 83, 120, 109, 80, - 101, 110, 119, 127, 123, 123, 116, 167, 126, 140, - 126, 724, 119, 81, 123, 130, 127, 100, 130, 82, - 104, 100, 130, 116, 111, 100, 108, 126, 133, 110, - 140, 148, 148, 100, 116, 167, 168, 100, 169, 100, - 100, 115, 115, 115, 319, 319, 172, 727, 115, 115, - 115, 115, 115, 115, 151, 156, 171, 151, 151, 156, - 170, 169, 168, 156, 176, 179, 155, 155, 155, 172, - 133, 115, 115, 115, 115, 115, 115, 155, 180, 155, - 184, 155, 171, 186, 155, 188, 193, 176, 170, 728, - 272, 273, 273, 179, 264, 267, 505, 297, 278, 285, + 102, 111, 124, 124, 134, 128, 117, 120, 127, 142, + 127, 725, 124, 82, 150, 150, 169, 101, 128, 83, + 105, 101, 171, 117, 174, 101, 109, 127, 131, 111, + 142, 131, 172, 101, 117, 131, 170, 101, 173, 101, + 101, 116, 116, 116, 169, 171, 134, 174, 116, 116, + 116, 116, 116, 116, 153, 158, 182, 153, 153, 158, + 172, 181, 170, 158, 173, 178, 157, 157, 157, 186, + 188, 116, 116, 116, 116, 116, 116, 157, 190, 157, + 195, 157, 275, 182, 157, 199, 267, 270, 178, 181, + 288, 199, 186, 188, 281, 276, 276, 277, 300, 323, - 273, 297, 355, 184, 274, 180, 186, 355, 361, 193, - 373, 308, 188, 191, 191, 191, 308, 264, 267, 272, - 191, 191, 191, 191, 191, 191, 278, 274, 285, 323, - 334, 540, 436, 505, 334, 465, 361, 436, 373, 323, - 465, 462, 463, 191, 191, 191, 191, 191, 191, 283, - 283, 283, 729, 731, 540, 732, 283, 283, 283, 283, - 283, 283, 308, 370, 514, 370, 531, 308, 462, 514, - 463, 539, 734, 651, 735, 674, 531, 651, 601, 283, - 283, 283, 283, 283, 283, 601, 613, 674, 684, 602, - 370, 604, 370, 371, 371, 371, 602, 604, 685, 539, + 323, 727, 300, 195, 276, 190, 193, 193, 193, 267, + 270, 275, 293, 193, 193, 193, 193, 193, 193, 288, + 277, 327, 281, 548, 338, 359, 729, 311, 338, 293, + 359, 327, 311, 365, 377, 539, 193, 193, 193, 193, + 193, 193, 286, 286, 286, 539, 548, 687, 553, 286, + 286, 286, 286, 286, 286, 374, 730, 374, 442, 687, + 469, 365, 377, 442, 468, 471, 513, 664, 731, 732, + 471, 664, 286, 286, 286, 286, 286, 286, 311, 547, + 553, 623, 374, 311, 374, 375, 375, 375, 469, 698, + 733, 468, 375, 375, 375, 375, 375, 375, 611, 522, - 371, 371, 371, 371, 371, 371, 514, 711, 723, 736, - 737, 738, 711, 739, 613, 684, 740, 741, 742, 723, - 743, 685, 744, 371, 371, 371, 371, 371, 371, 745, - 747, 748, 749, 750, 751, 753, 752, 754, 755, 756, - 757, 758, 759, 760, 761, 762, 764, 765, 766, 767, - 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, - 779, 780, 753, 711, 752, 781, 780, 782, 783, 784, - 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, - 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, - 805, 806, 808, 811, 812, 813, 814, 815, 816, 817, + 614, 612, 697, 513, 522, 611, 614, 547, 612, 623, + 734, 735, 698, 736, 737, 375, 375, 375, 375, 375, + 375, 726, 738, 739, 740, 743, 726, 744, 745, 697, + 747, 748, 750, 751, 739, 752, 753, 754, 755, 756, + 757, 522, 758, 759, 760, 761, 763, 764, 765, 766, + 767, 768, 770, 769, 771, 772, 773, 774, 775, 776, + 777, 778, 779, 780, 782, 783, 784, 785, 786, 787, + 788, 789, 790, 791, 792, 793, 794, 726, 795, 768, + 769, 797, 798, 799, 800, 801, 802, 798, 803, 804, + 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, - 818, 819, 820, 821, 822, 823, 826, 781, 827, 828, - 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, - 839, 842, 817, 844, 846, 847, 848, 849, 818, 850, - 851, 853, 854, 856, 857, 858, 861, 863, 864, 865, - 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, - 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, - 886, 887, 888, 889, 891, 892, 893, 894, 895, 896, - 897, 898, 899, 900, 901, 902, 903, 904, 906, 907, - 908, 879, 910, 911, 912, 913, 914, 907, 915, 916, - 917, 918, 919, 921, 922, 923, 871, 928, 929, 883, + 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, + 826, 829, 830, 831, 832, 833, 834, 835, 836, 837, + 838, 839, 840, 841, 842, 799, 843, 846, 847, 848, + 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, + 835, 859, 862, 864, 866, 867, 836, 868, 869, 870, + 871, 873, 874, 876, 877, 878, 881, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, + 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, + 906, 907, 908, 909, 910, 911, 913, 914, 915, 916, + 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, - 930, 931, 933, 934, 936, 937, 938, 939, 940, 942, - 943, 944, 945, 946, 947, 948, 949, 950, 951, 953, - 955, 957, 958, 959, 931, 961, 962, 963, 964, 965, - 968, 970, 971, 972, 974, 976, 977, 978, 979, 980, - 981, 982, 983, 985, 987, 988, 989, 990, 991, 992, - 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, - 1003, 1004, 1005, 977, 1006, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1015, 1017, 1019, 1020, 1021, 1022, 1023, 1019, - 1024, 1025, 1027, 1030, 1031, 1033, 1034, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 1043, 1044, 1045, 1011, 1047, 1049, + 928, 899, 929, 930, 932, 933, 934, 935, 936, 937, + 929, 938, 939, 940, 941, 943, 891, 944, 945, 903, + 950, 951, 952, 953, 955, 956, 958, 959, 960, 961, + 962, 963, 964, 966, 967, 968, 969, 970, 971, 972, + 973, 974, 975, 977, 979, 981, 953, 982, 983, 985, + 986, 987, 988, 989, 992, 994, 995, 996, 998, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1011, + 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, + 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1001, 1030, 1031, + 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1041, 1045, - 1050, 1051, 1052, 1053, 1055, 1056, 1057, 1058, 1059, 1060, - 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1069, 1070, 1071, - 1072, 1073, 1074, 1076, 1077, 1078, 1079, 1081, 1082, 1083, - 1084, 1085, 1086, 1087, 1089, 1090, 1091, 1092, 1093, 1094, - 1095, 1096, 1097, 1099, 1100, 1101, 1102, 1104, 1105, 1106, - 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1117, - 1120, 1121, 1122, 1123, 1126, 1128, 1129, 1131, 1132, 1133, - 1134, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, - 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, - 1155, 1156, 1158, 1160, 1161, 1162, 1163, 1164, 1168, 1169, + 1047, 1048, 1049, 1050, 1051, 1047, 1052, 1053, 1055, 1058, + 1059, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, + 1071, 1072, 1073, 1037, 1075, 1077, 1078, 1079, 1080, 1081, + 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, + 1093, 1094, 1095, 1097, 1098, 1099, 1100, 1101, 1102, 1104, + 1105, 1106, 1107, 1109, 1110, 1111, 1112, 1113, 1114, 1115, + 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1127, + 1128, 1129, 1130, 1132, 1133, 1134, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, 1142, 1143, 1145, 1148, 1149, 1150, 1151, + 1154, 1156, 1157, 1159, 1160, 1161, 1162, 1164, 1165, 1166, - 1170, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1180, 1181, - 1184, 1184, 1184, 1184, 1184, 1185, 1185, 1185, 1185, 1185, - 1186, 1192, 1186, 1186, 1186, 1187, 1193, 1187, 1194, 1187, - 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189, 1189, - 1190, 1195, 1190, 1190, 1190, 1191, 1191, 1191, 717, 716, - 715, 714, 713, 712, 710, 709, 708, 706, 705, 704, - 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, - 693, 692, 691, 690, 689, 688, 687, 686, 682, 681, - 680, 678, 677, 676, 675, 673, 672, 671, 670, 669, - 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, + 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, + 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1186, 1188, + 1189, 1190, 1191, 1192, 1196, 1197, 1198, 1200, 1201, 1202, + 1203, 1204, 1205, 1206, 1208, 1209, 1212, 1212, 1212, 1212, + 1212, 1213, 1213, 1213, 1213, 1213, 1214, 1220, 1214, 1214, + 1214, 1215, 1221, 1215, 1222, 1215, 1216, 1216, 1216, 1216, + 1216, 1217, 1217, 1217, 1217, 1217, 1218, 1223, 1218, 1218, + 1218, 1219, 1219, 1219, 717, 716, 715, 714, 713, 712, + 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, + 701, 700, 699, 695, 694, 693, 691, 690, 689, 688, - 658, 656, 655, 654, 653, 652, 650, 649, 647, 646, - 645, 642, 641, 640, 639, 638, 637, 636, 635, 634, - 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, - 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, - 612, 610, 609, 608, 607, 606, 603, 600, 599, 598, - 597, 596, 595, 594, 593, 592, 591, 590, 589, 587, - 586, 585, 584, 583, 582, 581, 580, 578, 577, 576, - 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, - 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, - 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, + 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, + 676, 675, 674, 673, 672, 671, 669, 668, 667, 666, + 665, 663, 662, 660, 659, 658, 655, 654, 653, 652, + 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, + 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, + 631, 630, 629, 628, 627, 626, 625, 624, 622, 620, + 619, 618, 617, 616, 613, 610, 609, 608, 607, 606, + 605, 604, 603, 602, 601, 600, 599, 597, 596, 595, + 594, 593, 592, 591, 590, 588, 587, 586, 585, 584, + 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, - 545, 544, 543, 542, 541, 538, 537, 534, 533, 532, - 529, 528, 527, 526, 525, 524, 523, 522, 520, 519, - 518, 517, 516, 515, 513, 512, 510, 509, 508, 507, - 506, 504, 503, 502, 500, 499, 498, 497, 496, 495, - 494, 493, 492, 491, 490, 489, 487, 486, 485, 484, - 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, - 473, 472, 471, 470, 469, 468, 467, 464, 460, 458, - 455, 453, 452, 451, 449, 445, 444, 443, 442, 441, - 440, 439, 438, 437, 435, 434, 433, 432, 431, 430, - 429, 428, 427, 425, 423, 422, 421, 420, 419, 418, + 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, + 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, + 552, 551, 550, 549, 546, 545, 542, 541, 540, 537, + 536, 535, 534, 533, 532, 531, 530, 528, 527, 526, + 525, 524, 523, 521, 520, 518, 517, 516, 515, 514, + 512, 511, 510, 508, 507, 506, 505, 504, 503, 502, + 501, 500, 499, 498, 497, 496, 494, 493, 492, 491, + 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, + 480, 479, 478, 477, 476, 475, 474, 473, 470, 466, + 464, 461, 459, 458, 457, 455, 451, 450, 449, 448, - 417, 416, 415, 413, 412, 411, 410, 409, 408, 407, - 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, - 395, 394, 393, 392, 391, 390, 389, 388, 387, 385, - 384, 383, 382, 381, 379, 378, 377, 375, 374, 372, - 368, 367, 365, 364, 363, 362, 359, 356, 354, 353, - 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, - 342, 341, 340, 339, 338, 337, 336, 335, 333, 332, - 330, 329, 328, 327, 326, 325, 324, 322, 321, 320, - 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, - 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, + 447, 446, 445, 444, 443, 441, 440, 439, 438, 437, + 436, 435, 434, 433, 431, 429, 428, 427, 426, 425, + 424, 423, 422, 421, 419, 418, 417, 416, 415, 414, + 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, + 403, 402, 400, 399, 398, 397, 396, 395, 394, 393, + 392, 390, 389, 388, 387, 386, 384, 383, 382, 381, + 379, 378, 376, 372, 371, 369, 368, 367, 366, 363, + 360, 358, 357, 356, 355, 354, 353, 352, 351, 350, + 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, + 339, 337, 336, 334, 333, 332, 331, 330, 329, 328, - 296, 295, 294, 293, 292, 290, 289, 288, 287, 286, - 284, 282, 280, 277, 275, 270, 263, 262, 261, 260, - 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, - 249, 248, 246, 245, 244, 243, 242, 241, 240, 239, - 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, - 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, - 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, - 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, - 196, 195, 194, 192, 189, 187, 185, 183, 182, 177, - 173, 165, 164, 163, 162, 161, 160, 159, 158, 157, + 326, 325, 324, 322, 321, 320, 319, 318, 317, 316, + 315, 314, 313, 312, 310, 309, 308, 307, 306, 305, + 304, 303, 302, 301, 299, 298, 297, 296, 295, 292, + 291, 290, 289, 287, 285, 283, 280, 278, 273, 266, + 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, + 255, 254, 253, 252, 251, 249, 248, 247, 246, 245, + 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, + 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, + 224, 223, 222, 221, 219, 218, 217, 216, 215, 214, + 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, - 154, 153, 152, 150, 149, 147, 146, 145, 144, 143, - 142, 141, 139, 138, 137, 136, 135, 134, 132, 131, - 129, 128, 125, 124, 122, 121, 120, 118, 117, 113, - 107, 103, 102, 96, 95, 76, 71, 63, 49, 48, - 43, 41, 39, 38, 24, 14, 11, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, + 203, 202, 201, 200, 198, 197, 196, 194, 191, 189, + 187, 185, 184, 179, 175, 167, 166, 165, 164, 163, + 162, 161, 160, 159, 156, 155, 154, 152, 151, 149, + 148, 147, 146, 145, 144, 143, 141, 140, 139, 138, + 137, 136, 135, 133, 132, 130, 129, 126, 125, 123, + 122, 121, 119, 118, 114, 108, 104, 103, 97, 96, + 77, 72, 66, 63, 49, 48, 43, 41, 39, 38, + 24, 14, 11, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183 + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211 } ; static yy_state_type yy_last_accepting_state; @@ -1296,24 +1369,24 @@ static char *yy_last_accepting_cpos; extern int parser6__flex_debug; int parser6__flex_debug = 1; -static yyconst flex_int16_t yy_rule_linenum[148] = +static const flex_int16_t yy_rule_linenum[151] = { 0, - 132, 134, 136, 141, 142, 147, 148, 149, 161, 164, - 169, 176, 185, 194, 203, 212, 221, 230, 239, 248, - 257, 266, 275, 284, 293, 302, 311, 321, 331, 341, - 351, 361, 371, 381, 391, 401, 410, 419, 428, 437, - 446, 455, 467, 476, 485, 494, 503, 513, 523, 533, - 543, 554, 564, 574, 584, 594, 604, 614, 623, 632, - 641, 656, 671, 680, 689, 698, 707, 716, 725, 734, - 743, 752, 762, 771, 780, 789, 798, 807, 816, 826, - 835, 844, 853, 862, 871, 880, 889, 898, 907, 917, - 927, 937, 946, 955, 964, 975, 985, 994, 1004, 1013, + 133, 135, 137, 142, 143, 148, 149, 150, 162, 165, + 170, 177, 186, 195, 204, 213, 222, 231, 240, 249, + 258, 267, 276, 285, 294, 303, 312, 322, 332, 342, + 352, 362, 372, 382, 392, 402, 411, 420, 429, 438, + 447, 456, 468, 477, 486, 495, 504, 514, 524, 534, + 544, 555, 565, 575, 585, 595, 605, 615, 625, 635, + 645, 654, 663, 672, 687, 702, 711, 720, 729, 738, + 747, 756, 765, 774, 783, 793, 802, 811, 820, 829, + 838, 847, 857, 866, 875, 884, 893, 902, 911, 920, + 929, 938, 948, 958, 968, 977, 986, 995, 1006, 1016, - 1022, 1031, 1040, 1049, 1058, 1068, 1077, 1086, 1095, 1104, - 1113, 1122, 1131, 1140, 1149, 1158, 1167, 1176, 1185, 1194, - 1203, 1212, 1221, 1230, 1239, 1248, 1257, 1266, 1275, 1284, - 1382, 1387, 1392, 1397, 1398, 1399, 1400, 1401, 1402, 1404, - 1422, 1435, 1440, 1444, 1446, 1448, 1450 + 1025, 1035, 1044, 1053, 1062, 1071, 1080, 1089, 1099, 1108, + 1117, 1126, 1135, 1144, 1153, 1162, 1171, 1180, 1189, 1198, + 1207, 1216, 1225, 1234, 1243, 1252, 1261, 1270, 1279, 1288, + 1297, 1306, 1315, 1413, 1418, 1423, 1428, 1429, 1430, 1431, + 1432, 1433, 1435, 1453, 1466, 1471, 1475, 1477, 1479, 1481 } ; /* The intent behind this definition is that it'll catch @@ -1344,8 +1417,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 { @@ -1358,9 +1431,10 @@ unsigned int comment_start_line = 0; // To avoid the call to exit... oops! #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) +#line 1434 "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. */ @@ -1368,23 +1442,23 @@ unsigned int comment_start_line = 0; /* 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 86 "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 1388 "dhcp6_lexer.cc" +#define YY_USER_ACTION driver.loc_.columns(yyleng); +#line 1460 "dhcp6_lexer.cc" +#line 1461 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1412,7 +1486,7 @@ unsigned int comment_start_line = 0; /* %if-reentrant */ /* %if-c-only */ -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* %endif */ /* %if-reentrant */ @@ -1422,31 +1496,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 parser6_lex_destroy ( void ); -int parser6_get_debug (void ); +int parser6_get_debug ( void ); -void parser6_set_debug (int debug_flag ); +void parser6_set_debug ( int debug_flag ); -YY_EXTRA_TYPE parser6_get_extra (void ); +YY_EXTRA_TYPE parser6_get_extra ( void ); -void parser6_set_extra (YY_EXTRA_TYPE user_defined ); +void parser6_set_extra ( YY_EXTRA_TYPE user_defined ); -FILE *parser6_get_in (void ); +FILE *parser6_get_in ( void ); -void parser6_set_in (FILE * _in_str ); +void parser6_set_in ( FILE * _in_str ); -FILE *parser6_get_out (void ); +FILE *parser6_get_out ( void ); -void parser6_set_out (FILE * _out_str ); +void parser6_set_out ( FILE * _out_str ); - int parser6_get_leng (void ); + int parser6_get_leng ( void ); -char *parser6_get_text (void ); +char *parser6_get_text ( void ); -int parser6_get_lineno (void ); +int parser6_get_lineno ( void ); -void parser6_set_lineno (int _line_number ); +void parser6_set_lineno ( int _line_number ); /* %if-bison-bridge */ /* %endif */ @@ -1457,14 +1531,13 @@ void parser6_set_lineno (int _line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int parser6_wrap (void ); +extern "C" int parser6_wrap ( void ); #else -extern int parser6_wrap (void ); +extern int parser6_wrap ( void ); #endif #endif /* %not-for-header */ - #ifndef YY_NO_UNPUT #endif @@ -1473,21 +1546,20 @@ extern int parser6_wrap (void ); /* %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 */ @@ -1529,7 +1601,7 @@ 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 ) \ buf[n] = (char) c; \ @@ -1542,7 +1614,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = (int) fread(buf, 1, max_size, parser6_in))==0 && ferror(parser6_in)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, parser6_in)) == 0 && ferror(parser6_in)) \ { \ if( errno != EINTR) \ { \ @@ -1583,11 +1655,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 */ @@ -1626,7 +1696,6 @@ extern int parser6_lex (void); YY_USER_ACTION /* %not-for-header */ - /** The main scanner function which does all the work. */ YY_DECL @@ -1675,11 +1744,12 @@ YY_DECL +#line 96 "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) { @@ -1712,7 +1782,7 @@ YY_DECL } -#line 1716 "dhcp6_lexer.cc" +#line 1785 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1741,13 +1811,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1184 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 1212 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1183 ); + while ( yy_current_state != 1211 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1766,13 +1836,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 148 ) + else if ( yy_act < 151 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], parser6_text ); - else if ( yy_act == 148 ) + else if ( yy_act == 151 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", parser6_text ); - else if ( yy_act == 149 ) + else if ( yy_act == 152 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -1790,17 +1860,17 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 132 "dhcp6_lexer.ll" +#line 133 "dhcp6_lexer.ll" ; YY_BREAK case 2: YY_RULE_SETUP -#line 134 "dhcp6_lexer.ll" +#line 135 "dhcp6_lexer.ll" ; YY_BREAK case 3: YY_RULE_SETUP -#line 136 "dhcp6_lexer.ll" +#line 137 "dhcp6_lexer.ll" { BEGIN(COMMENT); comment_start_line = driver.loc_.end.line;; @@ -1808,38 +1878,38 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 141 "dhcp6_lexer.ll" +#line 142 "dhcp6_lexer.ll" BEGIN(INITIAL); YY_BREAK case 5: YY_RULE_SETUP -#line 142 "dhcp6_lexer.ll" +#line 143 "dhcp6_lexer.ll" ; YY_BREAK case YY_STATE_EOF(COMMENT): -#line 143 "dhcp6_lexer.ll" +#line 144 "dhcp6_lexer.ll" { isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line); } YY_BREAK case 6: YY_RULE_SETUP -#line 147 "dhcp6_lexer.ll" +#line 148 "dhcp6_lexer.ll" BEGIN(DIR_ENTER); YY_BREAK case 7: YY_RULE_SETUP -#line 148 "dhcp6_lexer.ll" +#line 149 "dhcp6_lexer.ll" BEGIN(DIR_INCLUDE); YY_BREAK case 8: YY_RULE_SETUP -#line 149 "dhcp6_lexer.ll" +#line 150 "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); @@ -1848,19 +1918,19 @@ YY_RULE_SETUP case YY_STATE_EOF(DIR_ENTER): case YY_STATE_EOF(DIR_INCLUDE): case YY_STATE_EOF(DIR_EXIT): -#line 158 "dhcp6_lexer.ll" +#line 159 "dhcp6_lexer.ll" { isc_throw(Dhcp6ParseError, "Directive not closed."); } YY_BREAK case 9: YY_RULE_SETUP -#line 161 "dhcp6_lexer.ll" +#line 162 "dhcp6_lexer.ll" BEGIN(INITIAL); YY_BREAK case 10: YY_RULE_SETUP -#line 164 "dhcp6_lexer.ll" +#line 165 "dhcp6_lexer.ll" { // Ok, we found a with space. Let's ignore it and update loc variable. driver.loc_.step(); @@ -1869,16 +1939,16 @@ YY_RULE_SETUP case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 169 "dhcp6_lexer.ll" +#line 170 "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 176 "dhcp6_lexer.ll" +#line 177 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1890,7 +1960,7 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 185 "dhcp6_lexer.ll" +#line 186 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1902,7 +1972,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 194 "dhcp6_lexer.ll" +#line 195 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1914,7 +1984,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 203 "dhcp6_lexer.ll" +#line 204 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1926,7 +1996,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 212 "dhcp6_lexer.ll" +#line 213 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1938,7 +2008,7 @@ YY_RULE_SETUP YY_BREAK case 17: YY_RULE_SETUP -#line 221 "dhcp6_lexer.ll" +#line 222 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1950,7 +2020,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 230 "dhcp6_lexer.ll" +#line 231 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1962,7 +2032,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 239 "dhcp6_lexer.ll" +#line 240 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1974,7 +2044,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 248 "dhcp6_lexer.ll" +#line 249 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1986,7 +2056,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 257 "dhcp6_lexer.ll" +#line 258 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -1998,7 +2068,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 266 "dhcp6_lexer.ll" +#line 267 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2010,7 +2080,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 275 "dhcp6_lexer.ll" +#line 276 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2022,7 +2092,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 284 "dhcp6_lexer.ll" +#line 285 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2034,7 +2104,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 293 "dhcp6_lexer.ll" +#line 294 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2046,7 +2116,7 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 302 "dhcp6_lexer.ll" +#line 303 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_DDNS: @@ -2058,124 +2128,124 @@ YY_RULE_SETUP YY_BREAK case 27: YY_RULE_SETUP -#line 311 "dhcp6_lexer.ll" +#line 312 "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 28: YY_RULE_SETUP -#line 321 "dhcp6_lexer.ll" +#line 322 "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 29: YY_RULE_SETUP -#line 331 "dhcp6_lexer.ll" +#line 332 "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 30: YY_RULE_SETUP -#line 341 "dhcp6_lexer.ll" +#line 342 "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 31: YY_RULE_SETUP -#line 351 "dhcp6_lexer.ll" +#line 352 "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 361 "dhcp6_lexer.ll" +#line 362 "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 33: YY_RULE_SETUP -#line 371 "dhcp6_lexer.ll" +#line 372 "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 34: YY_RULE_SETUP -#line 381 "dhcp6_lexer.ll" +#line 382 "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 35: YY_RULE_SETUP -#line 391 "dhcp6_lexer.ll" +#line 392 "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 36: YY_RULE_SETUP -#line 401 "dhcp6_lexer.ll" +#line 402 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -2187,7 +2257,7 @@ YY_RULE_SETUP YY_BREAK case 37: YY_RULE_SETUP -#line 410 "dhcp6_lexer.ll" +#line 411 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2199,7 +2269,7 @@ YY_RULE_SETUP YY_BREAK case 38: YY_RULE_SETUP -#line 419 "dhcp6_lexer.ll" +#line 420 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::INTERFACES_CONFIG: @@ -2211,7 +2281,7 @@ YY_RULE_SETUP YY_BREAK case 39: YY_RULE_SETUP -#line 428 "dhcp6_lexer.ll" +#line 429 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2223,7 +2293,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 437 "dhcp6_lexer.ll" +#line 438 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2235,7 +2305,7 @@ YY_RULE_SETUP YY_BREAK case 41: YY_RULE_SETUP -#line 446 "dhcp6_lexer.ll" +#line 447 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOSTS_DATABASE: @@ -2247,7 +2317,7 @@ YY_RULE_SETUP YY_BREAK case 42: YY_RULE_SETUP -#line 455 "dhcp6_lexer.ll" +#line 456 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2262,7 +2332,7 @@ YY_RULE_SETUP YY_BREAK case 43: YY_RULE_SETUP -#line 467 "dhcp6_lexer.ll" +#line 468 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2274,7 +2344,7 @@ YY_RULE_SETUP YY_BREAK case 44: YY_RULE_SETUP -#line 476 "dhcp6_lexer.ll" +#line 477 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2286,7 +2356,7 @@ YY_RULE_SETUP YY_BREAK case 45: YY_RULE_SETUP -#line 485 "dhcp6_lexer.ll" +#line 486 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2298,7 +2368,7 @@ YY_RULE_SETUP YY_BREAK case 46: YY_RULE_SETUP -#line 494 "dhcp6_lexer.ll" +#line 495 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2310,7 +2380,7 @@ YY_RULE_SETUP YY_BREAK case 47: YY_RULE_SETUP -#line 503 "dhcp6_lexer.ll" +#line 504 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2323,7 +2393,7 @@ YY_RULE_SETUP YY_BREAK case 48: YY_RULE_SETUP -#line 513 "dhcp6_lexer.ll" +#line 514 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2336,7 +2406,7 @@ YY_RULE_SETUP YY_BREAK case 49: YY_RULE_SETUP -#line 523 "dhcp6_lexer.ll" +#line 524 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2349,7 +2419,7 @@ YY_RULE_SETUP YY_BREAK case 50: YY_RULE_SETUP -#line 533 "dhcp6_lexer.ll" +#line 534 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2362,7 +2432,7 @@ YY_RULE_SETUP YY_BREAK case 51: YY_RULE_SETUP -#line 543 "dhcp6_lexer.ll" +#line 544 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2376,7 +2446,7 @@ YY_RULE_SETUP YY_BREAK case 52: YY_RULE_SETUP -#line 554 "dhcp6_lexer.ll" +#line 555 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2389,7 +2459,7 @@ YY_RULE_SETUP YY_BREAK case 53: YY_RULE_SETUP -#line 564 "dhcp6_lexer.ll" +#line 565 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2402,7 +2472,46 @@ YY_RULE_SETUP YY_BREAK case 54: YY_RULE_SETUP -#line 574 "dhcp6_lexer.ll" +#line 575 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + return isc::dhcp::Dhcp6Parser::make_KEYSPACE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("keyspace", driver.loc_); + } +} + YY_BREAK +case 55: +YY_RULE_SETUP +#line 585 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("contact_points", driver.loc_); + } +} + YY_BREAK +case 56: +YY_RULE_SETUP +#line 595 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_); + } +} + YY_BREAK +case 57: +YY_RULE_SETUP +#line 605 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2413,9 +2522,9 @@ YY_RULE_SETUP } } YY_BREAK -case 55: +case 58: YY_RULE_SETUP -#line 584 "dhcp6_lexer.ll" +#line 615 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2426,9 +2535,9 @@ YY_RULE_SETUP } } YY_BREAK -case 56: +case 59: YY_RULE_SETUP -#line 594 "dhcp6_lexer.ll" +#line 625 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2439,9 +2548,9 @@ YY_RULE_SETUP } } YY_BREAK -case 57: +case 60: YY_RULE_SETUP -#line 604 "dhcp6_lexer.ll" +#line 635 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2452,9 +2561,9 @@ YY_RULE_SETUP } } YY_BREAK -case 58: +case 61: YY_RULE_SETUP -#line 614 "dhcp6_lexer.ll" +#line 645 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2464,9 +2573,9 @@ YY_RULE_SETUP } } YY_BREAK -case 59: +case 62: YY_RULE_SETUP -#line 623 "dhcp6_lexer.ll" +#line 654 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2476,9 +2585,9 @@ YY_RULE_SETUP } } YY_BREAK -case 60: +case 63: YY_RULE_SETUP -#line 632 "dhcp6_lexer.ll" +#line 663 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2488,9 +2597,9 @@ YY_RULE_SETUP } } YY_BREAK -case 61: +case 64: YY_RULE_SETUP -#line 641 "dhcp6_lexer.ll" +#line 672 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2506,9 +2615,9 @@ YY_RULE_SETUP } } YY_BREAK -case 62: +case 65: YY_RULE_SETUP -#line 656 "dhcp6_lexer.ll" +#line 687 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2524,9 +2633,9 @@ YY_RULE_SETUP } } YY_BREAK -case 63: +case 66: YY_RULE_SETUP -#line 671 "dhcp6_lexer.ll" +#line 702 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -2536,9 +2645,9 @@ YY_RULE_SETUP } } YY_BREAK -case 64: +case 67: YY_RULE_SETUP -#line 680 "dhcp6_lexer.ll" +#line 711 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2548,9 +2657,9 @@ YY_RULE_SETUP } } YY_BREAK -case 65: +case 68: YY_RULE_SETUP -#line 689 "dhcp6_lexer.ll" +#line 720 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2560,9 +2669,9 @@ YY_RULE_SETUP } } YY_BREAK -case 66: +case 69: YY_RULE_SETUP -#line 698 "dhcp6_lexer.ll" +#line 729 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2572,9 +2681,9 @@ YY_RULE_SETUP } } YY_BREAK -case 67: +case 70: YY_RULE_SETUP -#line 707 "dhcp6_lexer.ll" +#line 738 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2584,9 +2693,9 @@ YY_RULE_SETUP } } YY_BREAK -case 68: +case 71: YY_RULE_SETUP -#line 716 "dhcp6_lexer.ll" +#line 747 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2596,9 +2705,9 @@ YY_RULE_SETUP } } YY_BREAK -case 69: +case 72: YY_RULE_SETUP -#line 725 "dhcp6_lexer.ll" +#line 756 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2608,9 +2717,9 @@ YY_RULE_SETUP } } YY_BREAK -case 70: +case 73: YY_RULE_SETUP -#line 734 "dhcp6_lexer.ll" +#line 765 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -2620,9 +2729,9 @@ YY_RULE_SETUP } } YY_BREAK -case 71: +case 74: YY_RULE_SETUP -#line 743 "dhcp6_lexer.ll" +#line 774 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -2632,9 +2741,9 @@ YY_RULE_SETUP } } YY_BREAK -case 72: +case 75: YY_RULE_SETUP -#line 752 "dhcp6_lexer.ll" +#line 783 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -2645,9 +2754,9 @@ YY_RULE_SETUP } } YY_BREAK -case 73: +case 76: YY_RULE_SETUP -#line 762 "dhcp6_lexer.ll" +#line 793 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2657,9 +2766,9 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 77: YY_RULE_SETUP -#line 771 "dhcp6_lexer.ll" +#line 802 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2669,9 +2778,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 78: YY_RULE_SETUP -#line 780 "dhcp6_lexer.ll" +#line 811 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2681,9 +2790,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 79: YY_RULE_SETUP -#line 789 "dhcp6_lexer.ll" +#line 820 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2693,9 +2802,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 80: YY_RULE_SETUP -#line 798 "dhcp6_lexer.ll" +#line 829 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2705,9 +2814,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 81: YY_RULE_SETUP -#line 807 "dhcp6_lexer.ll" +#line 838 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2717,9 +2826,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 82: YY_RULE_SETUP -#line 816 "dhcp6_lexer.ll" +#line 847 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -2730,9 +2839,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 83: YY_RULE_SETUP -#line 826 "dhcp6_lexer.ll" +#line 857 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2742,9 +2851,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 84: YY_RULE_SETUP -#line 835 "dhcp6_lexer.ll" +#line 866 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2754,9 +2863,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 85: YY_RULE_SETUP -#line 844 "dhcp6_lexer.ll" +#line 875 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2766,9 +2875,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 86: YY_RULE_SETUP -#line 853 "dhcp6_lexer.ll" +#line 884 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -2778,9 +2887,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 87: YY_RULE_SETUP -#line 862 "dhcp6_lexer.ll" +#line 893 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGING: @@ -2790,9 +2899,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 88: YY_RULE_SETUP -#line 871 "dhcp6_lexer.ll" +#line 902 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -2802,9 +2911,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 89: YY_RULE_SETUP -#line 880 "dhcp6_lexer.ll" +#line 911 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -2814,9 +2923,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 90: YY_RULE_SETUP -#line 889 "dhcp6_lexer.ll" +#line 920 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -2826,9 +2935,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 91: YY_RULE_SETUP -#line 898 "dhcp6_lexer.ll" +#line 929 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -2838,9 +2947,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 92: YY_RULE_SETUP -#line 907 "dhcp6_lexer.ll" +#line 938 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2851,9 +2960,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 93: YY_RULE_SETUP -#line 917 "dhcp6_lexer.ll" +#line 948 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2864,9 +2973,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 94: YY_RULE_SETUP -#line 927 "dhcp6_lexer.ll" +#line 958 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -2877,9 +2986,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 95: YY_RULE_SETUP -#line 937 "dhcp6_lexer.ll" +#line 968 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -2889,9 +2998,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 96: YY_RULE_SETUP -#line 946 "dhcp6_lexer.ll" +#line 977 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -2901,9 +3010,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 97: YY_RULE_SETUP -#line 955 "dhcp6_lexer.ll" +#line 986 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -2913,9 +3022,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 98: YY_RULE_SETUP -#line 964 "dhcp6_lexer.ll" +#line 995 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -2927,9 +3036,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 99: YY_RULE_SETUP -#line 975 "dhcp6_lexer.ll" +#line 1006 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -2940,9 +3049,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 100: YY_RULE_SETUP -#line 985 "dhcp6_lexer.ll" +#line 1016 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -2952,9 +3061,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 101: YY_RULE_SETUP -#line 994 "dhcp6_lexer.ll" +#line 1025 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -2965,9 +3074,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 102: YY_RULE_SETUP -#line 1004 "dhcp6_lexer.ll" +#line 1035 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -2977,9 +3086,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 103: YY_RULE_SETUP -#line 1013 "dhcp6_lexer.ll" +#line 1044 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -2989,9 +3098,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 104: YY_RULE_SETUP -#line 1022 "dhcp6_lexer.ll" +#line 1053 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3001,9 +3110,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 105: YY_RULE_SETUP -#line 1031 "dhcp6_lexer.ll" +#line 1062 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3013,9 +3122,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 106: YY_RULE_SETUP -#line 1040 "dhcp6_lexer.ll" +#line 1071 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3025,9 +3134,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 107: YY_RULE_SETUP -#line 1049 "dhcp6_lexer.ll" +#line 1080 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -3037,9 +3146,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 108: YY_RULE_SETUP -#line 1058 "dhcp6_lexer.ll" +#line 1089 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3049,9 +3158,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 109: YY_RULE_SETUP -#line 1068 "dhcp6_lexer.ll" +#line 1099 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -3061,9 +3170,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 110: YY_RULE_SETUP -#line 1077 "dhcp6_lexer.ll" +#line 1108 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -3073,9 +3182,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 111: YY_RULE_SETUP -#line 1086 "dhcp6_lexer.ll" +#line 1117 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3085,9 +3194,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 112: YY_RULE_SETUP -#line 1095 "dhcp6_lexer.ll" +#line 1126 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -3097,9 +3206,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 113: YY_RULE_SETUP -#line 1104 "dhcp6_lexer.ll" +#line 1135 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -3109,9 +3218,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 114: YY_RULE_SETUP -#line 1113 "dhcp6_lexer.ll" +#line 1144 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -3121,9 +3230,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 115: YY_RULE_SETUP -#line 1122 "dhcp6_lexer.ll" +#line 1153 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -3133,9 +3242,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 116: YY_RULE_SETUP -#line 1131 "dhcp6_lexer.ll" +#line 1162 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -3145,9 +3254,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 117: YY_RULE_SETUP -#line 1140 "dhcp6_lexer.ll" +#line 1171 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -3157,9 +3266,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 118: YY_RULE_SETUP -#line 1149 "dhcp6_lexer.ll" +#line 1180 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -3169,9 +3278,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 119: YY_RULE_SETUP -#line 1158 "dhcp6_lexer.ll" +#line 1189 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3181,9 +3290,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 120: YY_RULE_SETUP -#line 1167 "dhcp6_lexer.ll" +#line 1198 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3193,9 +3302,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 121: YY_RULE_SETUP -#line 1176 "dhcp6_lexer.ll" +#line 1207 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3205,9 +3314,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 122: YY_RULE_SETUP -#line 1185 "dhcp6_lexer.ll" +#line 1216 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3217,9 +3326,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 123: YY_RULE_SETUP -#line 1194 "dhcp6_lexer.ll" +#line 1225 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3229,9 +3338,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 124: YY_RULE_SETUP -#line 1203 "dhcp6_lexer.ll" +#line 1234 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3241,9 +3350,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 125: YY_RULE_SETUP -#line 1212 "dhcp6_lexer.ll" +#line 1243 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -3253,9 +3362,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 126: YY_RULE_SETUP -#line 1221 "dhcp6_lexer.ll" +#line 1252 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3265,9 +3374,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 127: YY_RULE_SETUP -#line 1230 "dhcp6_lexer.ll" +#line 1261 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3277,9 +3386,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 128: YY_RULE_SETUP -#line 1239 "dhcp6_lexer.ll" +#line 1270 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -3289,9 +3398,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 129: YY_RULE_SETUP -#line 1248 "dhcp6_lexer.ll" +#line 1279 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -3301,9 +3410,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 130: YY_RULE_SETUP -#line 1257 "dhcp6_lexer.ll" +#line 1288 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3313,9 +3422,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 131: YY_RULE_SETUP -#line 1266 "dhcp6_lexer.ll" +#line 1297 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3325,9 +3434,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 132: YY_RULE_SETUP -#line 1275 "dhcp6_lexer.ll" +#line 1306 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3337,14 +3446,14 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 133: YY_RULE_SETUP -#line 1284 "dhcp6_lexer.ll" +#line 1315 "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; @@ -3438,68 +3547,68 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 131: -/* rule 131 can match eol */ +case 134: +/* rule 134 can match eol */ YY_RULE_SETUP -#line 1382 "dhcp6_lexer.ll" +#line 1413 "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 132: -/* rule 132 can match eol */ -YY_RULE_SETUP -#line 1387 "dhcp6_lexer.ll" -{ - // Bad string with a bad escape inside - driver.error(driver.loc_, "Bad escape in " + std::string(parser6_text)); -} - YY_BREAK -case 133: -YY_RULE_SETUP -#line 1392 "dhcp6_lexer.ll" -{ - // Bad string with an open escape at the end - driver.error(driver.loc_, "Overflow escape in " + std::string(parser6_text)); -} - YY_BREAK -case 134: -YY_RULE_SETUP -#line 1397 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } - YY_BREAK case 135: +/* rule 135 can match eol */ YY_RULE_SETUP -#line 1398 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } +#line 1418 "dhcp6_lexer.ll" +{ + // Bad string with a bad escape inside + driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); +} YY_BREAK case 136: YY_RULE_SETUP -#line 1399 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } +#line 1423 "dhcp6_lexer.ll" +{ + // Bad string with an open escape at the end + driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); +} YY_BREAK case 137: YY_RULE_SETUP -#line 1400 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } +#line 1428 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 138: YY_RULE_SETUP -#line 1401 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } +#line 1429 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 139: YY_RULE_SETUP -#line 1402 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } +#line 1430 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK case 140: YY_RULE_SETUP -#line 1404 "dhcp6_lexer.ll" +#line 1431 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 141: +YY_RULE_SETUP +#line 1432 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } + YY_BREAK +case 142: +YY_RULE_SETUP +#line 1433 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } + YY_BREAK +case 143: +YY_RULE_SETUP +#line 1435 "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). @@ -3515,12 +3624,12 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 141: +case 144: YY_RULE_SETUP -#line 1422 "dhcp6_lexer.ll" +#line 1453 "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); @@ -3531,43 +3640,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 142: +case 145: YY_RULE_SETUP -#line 1435 "dhcp6_lexer.ll" +#line 1466 "dhcp6_lexer.ll" { - string tmp(parser6_text); + string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 143: +case 146: YY_RULE_SETUP -#line 1440 "dhcp6_lexer.ll" +#line 1471 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 144: -YY_RULE_SETUP -#line 1444 "dhcp6_lexer.ll" -driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); - YY_BREAK -case 145: -YY_RULE_SETUP -#line 1446 "dhcp6_lexer.ll" -driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); - YY_BREAK -case 146: -YY_RULE_SETUP -#line 1448 "dhcp6_lexer.ll" -driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); - YY_BREAK case 147: YY_RULE_SETUP -#line 1450 "dhcp6_lexer.ll" -driver.error (driver.loc_, "Invalid character: " + std::string(parser6_text)); +#line 1475 "dhcp6_lexer.ll" +driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); + YY_BREAK +case 148: +YY_RULE_SETUP +#line 1477 "dhcp6_lexer.ll" +driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); + YY_BREAK +case 149: +YY_RULE_SETUP +#line 1479 "dhcp6_lexer.ll" +driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); + YY_BREAK +case 150: +YY_RULE_SETUP +#line 1481 "dhcp6_lexer.ll" +driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1452 "dhcp6_lexer.ll" +#line 1483 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -3591,12 +3700,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 148: +case 151: YY_RULE_SETUP -#line 1475 "dhcp6_lexer.ll" +#line 1506 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 3600 "dhcp6_lexer.cc" +#line 3708 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -3737,7 +3846,6 @@ ECHO; /* %if-c++-only */ /* %not-for-header */ - /* %ok-for-header */ /* %endif */ @@ -3757,7 +3865,7 @@ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); - yy_size_t number_to_move, i; + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -3786,7 +3894,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (yy_size_t) ((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++); @@ -3822,7 +3930,7 @@ 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 ); + parser6_realloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -3868,10 +3976,10 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((int) ((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. */ int 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 ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parser6_realloc((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()" ); } @@ -3889,7 +3997,6 @@ 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 */ @@ -3913,10 +4020,10 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1184 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 1212 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -3946,11 +4053,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1184 ) - yy_c = yy_meta[(unsigned int) yy_c]; + if ( yy_current_state >= 1212 ) + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 1183); + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_is_jam = (yy_current_state == 1211); return yy_is_jam ? 0 : yy_current_state; } @@ -3989,7 +4096,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int 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( ) ) @@ -4141,12 +4248,12 @@ static void parser6__load_buffer_state (void) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in parser6__create_buffer()" ); - b->yy_buf_size = (yy_size_t)size; + 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 *) parser6_alloc((yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in parser6__create_buffer()" ); @@ -4329,7 +4436,7 @@ static void parser6_ensure_buffer_stack (void) /* %if-c++-only */ /* %endif */ { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -4343,9 +4450,9 @@ static void parser6_ensure_buffer_stack (void) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in parser6_ensure_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; @@ -4376,7 +4483,7 @@ 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 ) { @@ -4392,7 +4499,7 @@ YY_BUFFER_STATE parser6__scan_buffer (char * base, yy_size_t size ) if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in parser6__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 = NULL; @@ -4417,7 +4524,7 @@ YY_BUFFER_STATE parser6__scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * parser6__scan_bytes() instead. */ -YY_BUFFER_STATE parser6__scan_string (yyconst char * yystr ) +YY_BUFFER_STATE parser6__scan_string (const char * yystr ) { return parser6__scan_bytes(yystr,(int) strlen(yystr) ); @@ -4432,15 +4539,15 @@ YY_BUFFER_STATE parser6__scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE parser6__scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE parser6__scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) _yybytes_len + 2; + n = (yy_size_t) (_yybytes_len + 2); buf = (char *) parser6_alloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in parser6__scan_bytes()" ); @@ -4468,7 +4575,7 @@ YY_BUFFER_STATE parser6__scan_bytes (yyconst char * yybytes, int _yybytes_len #endif /* %if-c-only */ -static void yynoreturn yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); @@ -4505,7 +4612,7 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ) */ int parser6_get_lineno (void) { - + return parser6_lineno; } @@ -4649,7 +4756,7 @@ 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 ) { int i; @@ -4659,7 +4766,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) @@ -4699,8 +4806,7 @@ void parser6_free (void * ptr ) /* %ok-for-header */ -#line 1475 "dhcp6_lexer.ll" - +#line 1506 "dhcp6_lexer.ll" using namespace isc::dhcp; @@ -4714,9 +4820,9 @@ 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()); + buffer = yy_scan_bytes(str.c_str(), str.size()); if (!buffer) { fatal("cannot scan string"); // fatal() throws an exception so this can't be reached @@ -4734,7 +4840,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 cc006a6aab..1b084ecf5f 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -253,28 +253,28 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 156: // value - case 160: // map_value - case 201: // db_type - case 389: // duid_type - case 422: // ncr_protocol_value - case 431: // replace_client_name_value + case 158: // value + case 162: // map_value + case 203: // db_type + case 395: // duid_type + case 428: // ncr_protocol_value + case 437: // replace_client_name_value value.move< ElementPtr > (that.value); break; - case 141: // "boolean" + case 143: // "boolean" value.move< bool > (that.value); break; - case 140: // "floating point" + case 142: // "floating point" value.move< double > (that.value); break; - case 139: // "integer" + case 141: // "integer" value.move< int64_t > (that.value); break; - case 138: // "constant string" + case 140: // "constant string" value.move< std::string > (that.value); break; @@ -293,28 +293,28 @@ namespace isc { namespace dhcp { state = that.state; switch (that.type_get ()) { - case 156: // value - case 160: // map_value - case 201: // db_type - case 389: // duid_type - case 422: // ncr_protocol_value - case 431: // replace_client_name_value + case 158: // value + case 162: // map_value + case 203: // db_type + case 395: // duid_type + case 428: // ncr_protocol_value + case 437: // replace_client_name_value value.copy< ElementPtr > (that.value); break; - case 141: // "boolean" + case 143: // "boolean" value.copy< bool > (that.value); break; - case 140: // "floating point" + case 142: // "floating point" value.copy< double > (that.value); break; - case 139: // "integer" + case 141: // "integer" value.copy< int64_t > (that.value); break; - case 138: // "constant string" + case 140: // "constant string" value.copy< std::string > (that.value); break; @@ -354,72 +354,72 @@ namespace isc { namespace dhcp { << yysym.location << ": "; switch (yytype) { - case 138: // "constant string" + case 140: // "constant string" -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< std::string > (); } #line 362 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 139: // "integer" + case 141: // "integer" -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< int64_t > (); } #line 369 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 140: // "floating point" + case 142: // "floating point" -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< double > (); } #line 376 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 141: // "boolean" + case 143: // "boolean" -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< bool > (); } #line 383 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 156: // value + case 158: // value -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 390 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 160: // map_value + case 162: // map_value -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 397 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 201: // db_type + case 203: // db_type -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 404 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 389: // duid_type + case 395: // duid_type -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 411 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 422: // ncr_protocol_value + case 428: // ncr_protocol_value -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 418 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 431: // replace_client_name_value + case 437: // replace_client_name_value -#line 213 "dhcp6_parser.yy" // lalr1.cc:636 +#line 215 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 425 "dhcp6_parser.cc" // lalr1.cc:636 break; @@ -621,28 +621,28 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 156: // value - case 160: // map_value - case 201: // db_type - case 389: // duid_type - case 422: // ncr_protocol_value - case 431: // replace_client_name_value + case 158: // value + case 162: // map_value + case 203: // db_type + case 395: // duid_type + case 428: // ncr_protocol_value + case 437: // replace_client_name_value yylhs.value.build< ElementPtr > (); break; - case 141: // "boolean" + case 143: // "boolean" yylhs.value.build< bool > (); break; - case 140: // "floating point" + case 142: // "floating point" yylhs.value.build< double > (); break; - case 139: // "integer" + case 141: // "integer" yylhs.value.build< int64_t > (); break; - case 138: // "constant string" + case 140: // "constant string" yylhs.value.build< std::string > (); break; @@ -664,121 +664,121 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 222 "dhcp6_parser.yy" // lalr1.cc:859 +#line 224 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.NO_KEYWORD; } #line 670 "dhcp6_parser.cc" // lalr1.cc:859 break; case 4: -#line 223 "dhcp6_parser.yy" // lalr1.cc:859 +#line 225 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.CONFIG; } #line 676 "dhcp6_parser.cc" // lalr1.cc:859 break; case 6: -#line 224 "dhcp6_parser.yy" // lalr1.cc:859 +#line 226 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.DHCP6; } #line 682 "dhcp6_parser.cc" // lalr1.cc:859 break; case 8: -#line 225 "dhcp6_parser.yy" // lalr1.cc:859 +#line 227 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 688 "dhcp6_parser.cc" // lalr1.cc:859 break; case 10: -#line 226 "dhcp6_parser.yy" // lalr1.cc:859 +#line 228 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.SUBNET6; } #line 694 "dhcp6_parser.cc" // lalr1.cc:859 break; case 12: -#line 227 "dhcp6_parser.yy" // lalr1.cc:859 +#line 229 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.POOLS; } #line 700 "dhcp6_parser.cc" // lalr1.cc:859 break; case 14: -#line 228 "dhcp6_parser.yy" // lalr1.cc:859 +#line 230 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.PD_POOLS; } #line 706 "dhcp6_parser.cc" // lalr1.cc:859 break; case 16: -#line 229 "dhcp6_parser.yy" // lalr1.cc:859 +#line 231 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.RESERVATIONS; } #line 712 "dhcp6_parser.cc" // lalr1.cc:859 break; case 18: -#line 230 "dhcp6_parser.yy" // lalr1.cc:859 +#line 232 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DEF; } #line 718 "dhcp6_parser.cc" // lalr1.cc:859 break; case 20: -#line 231 "dhcp6_parser.yy" // lalr1.cc:859 +#line 233 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DATA; } #line 724 "dhcp6_parser.cc" // lalr1.cc:859 break; case 22: -#line 232 "dhcp6_parser.yy" // lalr1.cc:859 +#line 234 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 730 "dhcp6_parser.cc" // lalr1.cc:859 break; case 24: -#line 233 "dhcp6_parser.yy" // lalr1.cc:859 +#line 235 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.DHCP_DDNS; } #line 736 "dhcp6_parser.cc" // lalr1.cc:859 break; case 26: -#line 241 "dhcp6_parser.yy" // lalr1.cc:859 +#line 243 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 742 "dhcp6_parser.cc" // lalr1.cc:859 break; case 27: -#line 242 "dhcp6_parser.yy" // lalr1.cc:859 +#line 244 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } #line 748 "dhcp6_parser.cc" // lalr1.cc:859 break; case 28: -#line 243 "dhcp6_parser.yy" // lalr1.cc:859 +#line 245 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } #line 754 "dhcp6_parser.cc" // lalr1.cc:859 break; case 29: -#line 244 "dhcp6_parser.yy" // lalr1.cc:859 +#line 246 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 760 "dhcp6_parser.cc" // lalr1.cc:859 break; case 30: -#line 245 "dhcp6_parser.yy" // lalr1.cc:859 +#line 247 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 766 "dhcp6_parser.cc" // lalr1.cc:859 break; case 31: -#line 246 "dhcp6_parser.yy" // lalr1.cc:859 +#line 248 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 772 "dhcp6_parser.cc" // lalr1.cc:859 break; case 32: -#line 247 "dhcp6_parser.yy" // lalr1.cc:859 +#line 249 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 778 "dhcp6_parser.cc" // lalr1.cc:859 break; case 33: -#line 250 "dhcp6_parser.yy" // lalr1.cc:859 +#line 252 "dhcp6_parser.yy" // lalr1.cc:859 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); @@ -787,7 +787,7 @@ namespace isc { namespace dhcp { break; case 34: -#line 255 "dhcp6_parser.yy" // lalr1.cc:859 +#line 257 "dhcp6_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@ -798,7 +798,7 @@ namespace isc { namespace dhcp { break; case 35: -#line 260 "dhcp6_parser.yy" // lalr1.cc:859 +#line 262 "dhcp6_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -808,13 +808,13 @@ namespace isc { namespace dhcp { break; case 36: -#line 266 "dhcp6_parser.yy" // lalr1.cc:859 +#line 268 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 814 "dhcp6_parser.cc" // lalr1.cc:859 break; case 39: -#line 273 "dhcp6_parser.yy" // lalr1.cc:859 +#line 275 "dhcp6_parser.yy" // lalr1.cc:859 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); @@ -823,7 +823,7 @@ namespace isc { namespace dhcp { break; case 40: -#line 277 "dhcp6_parser.yy" // lalr1.cc:859 +#line 279 "dhcp6_parser.yy" // lalr1.cc:859 { // map consisting of a shorter map followed by // comma and string:value @@ -833,7 +833,7 @@ namespace isc { namespace dhcp { break; case 41: -#line 284 "dhcp6_parser.yy" // lalr1.cc:859 +#line 286 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -842,7 +842,7 @@ namespace isc { namespace dhcp { break; case 42: -#line 287 "dhcp6_parser.yy" // lalr1.cc:859 +#line 289 "dhcp6_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here } @@ -850,7 +850,7 @@ namespace isc { namespace dhcp { break; case 45: -#line 295 "dhcp6_parser.yy" // lalr1.cc:859 +#line 297 "dhcp6_parser.yy" // lalr1.cc:859 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -859,7 +859,7 @@ namespace isc { namespace dhcp { break; case 46: -#line 299 "dhcp6_parser.yy" // lalr1.cc:859 +#line 301 "dhcp6_parser.yy" // lalr1.cc:859 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -868,7 +868,7 @@ namespace isc { namespace dhcp { break; case 47: -#line 306 "dhcp6_parser.yy" // lalr1.cc:859 +#line 308 "dhcp6_parser.yy" // lalr1.cc:859 { // List parsing about to start } @@ -876,7 +876,7 @@ namespace isc { namespace dhcp { break; case 48: -#line 308 "dhcp6_parser.yy" // lalr1.cc:859 +#line 310 "dhcp6_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -885,7 +885,7 @@ namespace isc { namespace dhcp { break; case 51: -#line 317 "dhcp6_parser.yy" // lalr1.cc:859 +#line 319 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -894,7 +894,7 @@ namespace isc { namespace dhcp { break; case 52: -#line 321 "dhcp6_parser.yy" // lalr1.cc:859 +#line 323 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -903,7 +903,7 @@ namespace isc { namespace dhcp { break; case 53: -#line 332 "dhcp6_parser.yy" // lalr1.cc:859 +#line 334 "dhcp6_parser.yy" // lalr1.cc:859 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); @@ -914,7 +914,7 @@ namespace isc { namespace dhcp { break; case 54: -#line 342 "dhcp6_parser.yy" // lalr1.cc:859 +#line 344 "dhcp6_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@ -925,7 +925,7 @@ namespace isc { namespace dhcp { break; case 55: -#line 347 "dhcp6_parser.yy" // lalr1.cc:859 +#line 349 "dhcp6_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -935,7 +935,7 @@ namespace isc { namespace dhcp { break; case 63: -#line 366 "dhcp6_parser.yy" // lalr1.cc:859 +#line 368 "dhcp6_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@ -948,7 +948,7 @@ namespace isc { namespace dhcp { break; case 64: -#line 373 "dhcp6_parser.yy" // lalr1.cc:859 +#line 375 "dhcp6_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -960,7 +960,7 @@ namespace isc { namespace dhcp { break; case 65: -#line 383 "dhcp6_parser.yy" // lalr1.cc:859 +#line 385 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -970,7 +970,7 @@ namespace isc { namespace dhcp { break; case 66: -#line 387 "dhcp6_parser.yy" // lalr1.cc:859 +#line 389 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } @@ -978,7 +978,7 @@ namespace isc { namespace dhcp { break; case 91: -#line 421 "dhcp6_parser.yy" // lalr1.cc:859 +#line 423 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); @@ -987,7 +987,7 @@ namespace isc { namespace dhcp { break; case 92: -#line 426 "dhcp6_parser.yy" // lalr1.cc:859 +#line 428 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); @@ -996,7 +996,7 @@ namespace isc { namespace dhcp { break; case 93: -#line 431 "dhcp6_parser.yy" // lalr1.cc:859 +#line 433 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); @@ -1005,7 +1005,7 @@ namespace isc { namespace dhcp { break; case 94: -#line 436 "dhcp6_parser.yy" // lalr1.cc:859 +#line 438 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); @@ -1014,7 +1014,7 @@ namespace isc { namespace dhcp { break; case 95: -#line 441 "dhcp6_parser.yy" // lalr1.cc:859 +#line 443 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); @@ -1023,7 +1023,7 @@ namespace isc { namespace dhcp { break; case 96: -#line 446 "dhcp6_parser.yy" // lalr1.cc:859 +#line 448 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); @@ -1034,7 +1034,7 @@ namespace isc { namespace dhcp { break; case 97: -#line 451 "dhcp6_parser.yy" // lalr1.cc:859 +#line 453 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1043,7 +1043,7 @@ namespace isc { namespace dhcp { break; case 98: -#line 456 "dhcp6_parser.yy" // lalr1.cc:859 +#line 458 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1053,7 +1053,7 @@ namespace isc { namespace dhcp { break; case 99: -#line 460 "dhcp6_parser.yy" // lalr1.cc:859 +#line 462 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } @@ -1061,7 +1061,7 @@ namespace isc { namespace dhcp { break; case 100: -#line 464 "dhcp6_parser.yy" // lalr1.cc:859 +#line 466 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); @@ -1072,7 +1072,7 @@ namespace isc { namespace dhcp { break; case 101: -#line 469 "dhcp6_parser.yy" // lalr1.cc:859 +#line 471 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1081,7 +1081,7 @@ namespace isc { namespace dhcp { break; case 102: -#line 474 "dhcp6_parser.yy" // lalr1.cc:859 +#line 476 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); @@ -1092,7 +1092,7 @@ namespace isc { namespace dhcp { break; case 103: -#line 479 "dhcp6_parser.yy" // lalr1.cc:859 +#line 481 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1101,7 +1101,7 @@ namespace isc { namespace dhcp { break; case 104: -#line 484 "dhcp6_parser.yy" // lalr1.cc:859 +#line 486 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); @@ -1112,7 +1112,7 @@ namespace isc { namespace dhcp { break; case 105: -#line 489 "dhcp6_parser.yy" // lalr1.cc:859 +#line 491 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@ -1120,16 +1120,16 @@ namespace isc { namespace dhcp { #line 1121 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 119: -#line 511 "dhcp6_parser.yy" // lalr1.cc:859 + case 121: +#line 515 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.DATABASE_TYPE); } #line 1129 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 120: -#line 513 "dhcp6_parser.yy" // lalr1.cc:859 + case 122: +#line 517 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); @@ -1137,40 +1137,40 @@ namespace isc { namespace dhcp { #line 1138 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 121: -#line 518 "dhcp6_parser.yy" // lalr1.cc:859 + case 123: +#line 522 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 1144 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 122: -#line 519 "dhcp6_parser.yy" // lalr1.cc:859 + case 124: +#line 523 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 1150 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 123: -#line 520 "dhcp6_parser.yy" // lalr1.cc:859 + case 125: +#line 524 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 1156 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 124: -#line 521 "dhcp6_parser.yy" // lalr1.cc:859 + case 126: +#line 525 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } #line 1162 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 125: -#line 524 "dhcp6_parser.yy" // lalr1.cc:859 + case 127: +#line 528 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1170 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 126: -#line 526 "dhcp6_parser.yy" // lalr1.cc:859 + case 128: +#line 530 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -1179,16 +1179,16 @@ namespace isc { namespace dhcp { #line 1180 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 127: -#line 532 "dhcp6_parser.yy" // lalr1.cc:859 + case 129: +#line 536 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1188 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 128: -#line 534 "dhcp6_parser.yy" // lalr1.cc:859 + case 130: +#line 538 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -1197,16 +1197,16 @@ namespace isc { namespace dhcp { #line 1198 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 129: -#line 540 "dhcp6_parser.yy" // lalr1.cc:859 + case 131: +#line 544 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1206 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 130: -#line 542 "dhcp6_parser.yy" // lalr1.cc:859 + case 132: +#line 546 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -1215,8 +1215,8 @@ namespace isc { namespace dhcp { #line 1216 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 131: -#line 548 "dhcp6_parser.yy" // lalr1.cc:859 + case 133: +#line 552 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); @@ -1224,16 +1224,16 @@ namespace isc { namespace dhcp { #line 1225 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 132: -#line 553 "dhcp6_parser.yy" // lalr1.cc:859 + case 134: +#line 557 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1233 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 133: -#line 555 "dhcp6_parser.yy" // lalr1.cc:859 + case 135: +#line 559 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -1242,8 +1242,8 @@ namespace isc { namespace dhcp { #line 1243 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 134: -#line 561 "dhcp6_parser.yy" // lalr1.cc:859 + case 136: +#line 565 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); @@ -1251,8 +1251,8 @@ namespace isc { namespace dhcp { #line 1252 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 135: -#line 566 "dhcp6_parser.yy" // lalr1.cc:859 + case 137: +#line 570 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); @@ -1260,8 +1260,8 @@ namespace isc { namespace dhcp { #line 1261 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 136: -#line 571 "dhcp6_parser.yy" // lalr1.cc:859 + case 138: +#line 575 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); @@ -1269,8 +1269,8 @@ namespace isc { namespace dhcp { #line 1270 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 137: -#line 576 "dhcp6_parser.yy" // lalr1.cc:859 + case 139: +#line 580 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); @@ -1278,290 +1278,326 @@ namespace isc { namespace dhcp { #line 1279 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 138: -#line 581 "dhcp6_parser.yy" // lalr1.cc:859 + case 140: +#line 585 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1287 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 141: +#line 587 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 1297 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 142: +#line 593 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1305 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 143: +#line 595 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("keyspace", ks); + ctx.leave(); +} +#line 1315 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 144: +#line 602 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1290 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1326 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 139: -#line 586 "dhcp6_parser.yy" // lalr1.cc:859 + case 145: +#line 607 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1299 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1335 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 144: -#line 599 "dhcp6_parser.yy" // lalr1.cc:859 + case 150: +#line 620 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1308 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1344 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 145: -#line 604 "dhcp6_parser.yy" // lalr1.cc:859 + case 151: +#line 625 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1317 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1353 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 146: -#line 609 "dhcp6_parser.yy" // lalr1.cc:859 + case 152: +#line 630 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1328 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1364 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 147: -#line 614 "dhcp6_parser.yy" // lalr1.cc:859 + case 153: +#line 635 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1337 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1373 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 152: -#line 627 "dhcp6_parser.yy" // lalr1.cc:859 + case 158: +#line 648 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 1346 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1382 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 153: -#line 634 "dhcp6_parser.yy" // lalr1.cc:859 + case 159: +#line 655 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1357 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1393 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 154: -#line 639 "dhcp6_parser.yy" // lalr1.cc:859 + case 160: +#line 660 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1366 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1402 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 155: -#line 644 "dhcp6_parser.yy" // lalr1.cc:859 + case 161: +#line 665 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1377 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1413 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 156: -#line 649 "dhcp6_parser.yy" // lalr1.cc:859 + case 162: +#line 670 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1386 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1422 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 161: -#line 662 "dhcp6_parser.yy" // lalr1.cc:859 + case 167: +#line 683 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1396 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1432 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 162: -#line 666 "dhcp6_parser.yy" // lalr1.cc:859 + case 168: +#line 687 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1404 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1440 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 163: -#line 670 "dhcp6_parser.yy" // lalr1.cc:859 + case 169: +#line 691 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1414 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 164: -#line 674 "dhcp6_parser.yy" // lalr1.cc:859 - { - // parsing completed -} -#line 1422 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1450 "dhcp6_parser.cc" // lalr1.cc:859 break; case 170: -#line 687 "dhcp6_parser.yy" // lalr1.cc:859 +#line 695 "dhcp6_parser.yy" // lalr1.cc:859 + { + // parsing completed +} +#line 1458 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 176: +#line 708 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1430 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1466 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 171: -#line 689 "dhcp6_parser.yy" // lalr1.cc:859 + case 177: +#line 710 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1440 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1476 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 172: -#line 695 "dhcp6_parser.yy" // lalr1.cc:859 + case 178: +#line 716 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1448 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1484 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 173: -#line 697 "dhcp6_parser.yy" // lalr1.cc:859 + case 179: +#line 718 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1457 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1493 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 174: -#line 703 "dhcp6_parser.yy" // lalr1.cc:859 + case 180: +#line 724 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1468 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1504 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 175: -#line 708 "dhcp6_parser.yy" // lalr1.cc:859 + case 181: +#line 729 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1477 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1513 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 184: -#line 725 "dhcp6_parser.yy" // lalr1.cc:859 + case 190: +#line 746 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1486 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1522 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 185: -#line 730 "dhcp6_parser.yy" // lalr1.cc:859 + case 191: +#line 751 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1495 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1531 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 186: -#line 735 "dhcp6_parser.yy" // lalr1.cc:859 + case 192: +#line 756 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 1504 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1540 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 187: -#line 740 "dhcp6_parser.yy" // lalr1.cc:859 + case 193: +#line 761 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 1513 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1549 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 188: -#line 745 "dhcp6_parser.yy" // lalr1.cc:859 + case 194: +#line 766 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 1522 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1558 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 189: -#line 750 "dhcp6_parser.yy" // lalr1.cc:859 + case 195: +#line 771 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 1531 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1567 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 190: -#line 758 "dhcp6_parser.yy" // lalr1.cc:859 + case 196: +#line 779 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1542 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1578 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 191: -#line 763 "dhcp6_parser.yy" // lalr1.cc:859 + case 197: +#line 784 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1551 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1587 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 196: -#line 783 "dhcp6_parser.yy" // lalr1.cc:859 + case 202: +#line 804 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1561 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1597 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 197: -#line 787 "dhcp6_parser.yy" // lalr1.cc:859 + case 203: +#line 808 "dhcp6_parser.yy" // lalr1.cc:859 { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -1580,1467 +1616,1467 @@ namespace isc { namespace dhcp { // } ctx.stack_.pop_back(); } -#line 1584 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1620 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 198: -#line 806 "dhcp6_parser.yy" // lalr1.cc:859 + case 204: +#line 827 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1594 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1630 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 199: -#line 810 "dhcp6_parser.yy" // lalr1.cc:859 + case 205: +#line 831 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1602 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 219: -#line 839 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1610 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 220: -#line 841 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("subnet", subnet); - ctx.leave(); -} -#line 1620 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 221: -#line 847 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1628 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 222: -#line 849 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("interface", iface); - ctx.leave(); -} #line 1638 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 223: -#line 855 "dhcp6_parser.yy" // lalr1.cc:859 + case 225: +#line 860 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1646 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 224: -#line 857 "dhcp6_parser.yy" // lalr1.cc:859 + case 226: +#line 862 "dhcp6_parser.yy" // lalr1.cc:859 { - ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("interface-id", iface); + ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } #line 1656 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 225: -#line 863 "dhcp6_parser.yy" // lalr1.cc:859 + case 227: +#line 868 "dhcp6_parser.yy" // lalr1.cc:859 { - ctx.enter(ctx.CLIENT_CLASS); + ctx.enter(ctx.NO_KEYWORD); } #line 1664 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 226: -#line 865 "dhcp6_parser.yy" // lalr1.cc:859 + case 228: +#line 870 "dhcp6_parser.yy" // lalr1.cc:859 { - ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("client-class", cls); + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("interface", iface); ctx.leave(); } #line 1674 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 227: -#line 871 "dhcp6_parser.yy" // lalr1.cc:859 + case 229: +#line 876 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1682 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 228: -#line 873 "dhcp6_parser.yy" // lalr1.cc:859 + case 230: +#line 878 "dhcp6_parser.yy" // lalr1.cc:859 { - ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("reservation-mode", rm); + 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 1692 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 229: -#line 879 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("id", id); -} -#line 1701 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 230: + case 231: #line 884 "dhcp6_parser.yy" // lalr1.cc:859 { - ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("rapid-commit", rc); + ctx.enter(ctx.CLIENT_CLASS); +} +#line 1700 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 232: +#line 886 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 1710 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 231: -#line 893 "dhcp6_parser.yy" // lalr1.cc:859 + case 233: +#line 892 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1718 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 234: +#line 894 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("reservation-mode", rm); + ctx.leave(); +} +#line 1728 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 235: +#line 900 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("id", id); +} +#line 1737 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 236: +#line 905 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("rapid-commit", rc); +} +#line 1746 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 237: +#line 914 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1721 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 232: -#line 898 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); - ctx.leave(); -} -#line 1730 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 237: -#line 915 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(m); - ctx.stack_.push_back(m); -} -#line 1740 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1757 "dhcp6_parser.cc" // lalr1.cc:859 break; case 238: #line 919 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); + ctx.leave(); } -#line 1748 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1766 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 239: -#line 926 "dhcp6_parser.yy" // lalr1.cc:859 + case 243: +#line 936 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(m); + ctx.stack_.push_back(m); +} +#line 1776 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 244: +#line 940 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); +} +#line 1784 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 245: +#line 947 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1758 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1794 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 240: -#line 930 "dhcp6_parser.yy" // lalr1.cc:859 + case 246: +#line 951 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1766 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1802 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 254: -#line 956 "dhcp6_parser.yy" // lalr1.cc:859 + case 260: +#line 977 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 1775 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 256: -#line 963 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1783 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 257: -#line 965 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("type", prf); - ctx.leave(); -} -#line 1793 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 258: -#line 971 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1801 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 259: -#line 973 "dhcp6_parser.yy" // lalr1.cc:859 - { - 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 1811 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 260: -#line 979 "dhcp6_parser.yy" // lalr1.cc:859 + case 262: +#line 984 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1819 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 261: -#line 981 "dhcp6_parser.yy" // lalr1.cc:859 + case 263: +#line 986 "dhcp6_parser.yy" // lalr1.cc:859 { - ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("space", space); + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("type", prf); ctx.leave(); } #line 1829 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 263: -#line 989 "dhcp6_parser.yy" // lalr1.cc:859 + case 264: +#line 992 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 1837 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 264: -#line 991 "dhcp6_parser.yy" // lalr1.cc:859 + case 265: +#line 994 "dhcp6_parser.yy" // lalr1.cc:859 { - ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("encapsulate", encap); + 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 1847 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 265: -#line 997 "dhcp6_parser.yy" // lalr1.cc:859 + case 266: +#line 1000 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1855 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 267: +#line 1002 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("space", space); + ctx.leave(); +} +#line 1865 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 269: +#line 1010 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1873 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 270: +#line 1012 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("encapsulate", encap); + ctx.leave(); +} +#line 1883 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 271: +#line 1018 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 1856 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1892 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 266: -#line 1006 "dhcp6_parser.yy" // lalr1.cc:859 + case 272: +#line 1027 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1867 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1903 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 267: -#line 1011 "dhcp6_parser.yy" // lalr1.cc:859 + case 273: +#line 1032 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1876 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1912 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 272: -#line 1030 "dhcp6_parser.yy" // lalr1.cc:859 + case 278: +#line 1051 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1886 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1922 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 273: -#line 1034 "dhcp6_parser.yy" // lalr1.cc:859 + case 279: +#line 1055 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1894 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1930 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 274: -#line 1041 "dhcp6_parser.yy" // lalr1.cc:859 + case 280: +#line 1062 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1904 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1940 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 275: -#line 1045 "dhcp6_parser.yy" // lalr1.cc:859 + case 281: +#line 1066 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1912 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1948 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 287: -#line 1074 "dhcp6_parser.yy" // lalr1.cc:859 + case 293: +#line 1095 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1920 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1956 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 288: -#line 1076 "dhcp6_parser.yy" // lalr1.cc:859 + case 294: +#line 1097 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 1930 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1966 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 291: -#line 1086 "dhcp6_parser.yy" // lalr1.cc:859 + case 297: +#line 1107 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 1939 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1975 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 292: -#line 1094 "dhcp6_parser.yy" // lalr1.cc:859 + case 298: +#line 1115 "dhcp6_parser.yy" // lalr1.cc:859 { 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 1950 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1986 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 293: -#line 1099 "dhcp6_parser.yy" // lalr1.cc:859 + case 299: +#line 1120 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1959 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1995 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 298: -#line 1114 "dhcp6_parser.yy" // lalr1.cc:859 + case 304: +#line 1135 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1969 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2005 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 299: -#line 1118 "dhcp6_parser.yy" // lalr1.cc:859 + case 305: +#line 1139 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1977 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2013 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 300: -#line 1122 "dhcp6_parser.yy" // lalr1.cc:859 + case 306: +#line 1143 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1987 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2023 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 301: -#line 1126 "dhcp6_parser.yy" // lalr1.cc:859 + case 307: +#line 1147 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1995 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2031 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 308: -#line 1140 "dhcp6_parser.yy" // lalr1.cc:859 + case 314: +#line 1161 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2003 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2039 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 309: -#line 1142 "dhcp6_parser.yy" // lalr1.cc:859 + case 315: +#line 1163 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2013 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2049 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 310: -#line 1148 "dhcp6_parser.yy" // lalr1.cc:859 + case 316: +#line 1169 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2021 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2057 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 311: -#line 1150 "dhcp6_parser.yy" // lalr1.cc:859 + case 317: +#line 1171 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("user-context", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2030 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2066 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 312: -#line 1158 "dhcp6_parser.yy" // lalr1.cc:859 + case 318: +#line 1179 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2041 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2077 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 313: -#line 1163 "dhcp6_parser.yy" // lalr1.cc:859 + case 319: +#line 1184 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2050 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2086 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 318: -#line 1178 "dhcp6_parser.yy" // lalr1.cc:859 + case 324: +#line 1199 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2060 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2096 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 319: -#line 1182 "dhcp6_parser.yy" // lalr1.cc:859 + case 325: +#line 1203 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2068 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2104 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 320: -#line 1186 "dhcp6_parser.yy" // lalr1.cc:859 + case 326: +#line 1207 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2078 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2114 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 321: -#line 1190 "dhcp6_parser.yy" // lalr1.cc:859 + case 327: +#line 1211 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 2086 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2122 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 332: -#line 1208 "dhcp6_parser.yy" // lalr1.cc:859 + case 338: +#line 1229 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2094 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2130 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 333: -#line 1210 "dhcp6_parser.yy" // lalr1.cc:859 + case 339: +#line 1231 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 2104 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2140 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 334: -#line 1216 "dhcp6_parser.yy" // lalr1.cc:859 + case 340: +#line 1237 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 2113 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2149 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 335: -#line 1221 "dhcp6_parser.yy" // lalr1.cc:859 + case 341: +#line 1242 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2121 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2157 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 336: -#line 1223 "dhcp6_parser.yy" // lalr1.cc:859 + case 342: +#line 1244 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2131 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2167 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 337: -#line 1229 "dhcp6_parser.yy" // lalr1.cc:859 + case 343: +#line 1250 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 2140 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2176 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 338: -#line 1234 "dhcp6_parser.yy" // lalr1.cc:859 + case 344: +#line 1255 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 2149 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2185 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 339: -#line 1242 "dhcp6_parser.yy" // lalr1.cc:859 + case 345: +#line 1263 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2160 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2196 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 340: -#line 1247 "dhcp6_parser.yy" // lalr1.cc:859 + case 346: +#line 1268 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2169 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2205 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 345: -#line 1260 "dhcp6_parser.yy" // lalr1.cc:859 + case 351: +#line 1281 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2179 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2215 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 346: -#line 1264 "dhcp6_parser.yy" // lalr1.cc:859 + case 352: +#line 1285 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2187 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2223 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 347: -#line 1268 "dhcp6_parser.yy" // lalr1.cc:859 + case 353: +#line 1289 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2197 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2233 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 348: -#line 1272 "dhcp6_parser.yy" // lalr1.cc:859 + case 354: +#line 1293 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 2205 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2241 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 361: -#line 1295 "dhcp6_parser.yy" // lalr1.cc:859 + case 367: +#line 1316 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2216 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2252 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 362: -#line 1300 "dhcp6_parser.yy" // lalr1.cc:859 + case 368: +#line 1321 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2225 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2261 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 363: -#line 1305 "dhcp6_parser.yy" // lalr1.cc:859 + case 369: +#line 1326 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2236 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2272 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 364: -#line 1310 "dhcp6_parser.yy" // lalr1.cc:859 + case 370: +#line 1331 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2245 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 365: -#line 1315 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2253 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 366: -#line 1317 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("duid", d); - ctx.leave(); -} -#line 2263 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 367: -#line 1323 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2271 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 368: -#line 1325 "dhcp6_parser.yy" // lalr1.cc:859 - { - 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 2281 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 369: -#line 1331 "dhcp6_parser.yy" // lalr1.cc:859 + case 371: +#line 1336 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } #line 2289 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 370: -#line 1333 "dhcp6_parser.yy" // lalr1.cc:859 + case 372: +#line 1338 "dhcp6_parser.yy" // lalr1.cc:859 { - ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("hostname", host); + ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("duid", d); ctx.leave(); } #line 2299 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 371: -#line 1339 "dhcp6_parser.yy" // lalr1.cc:859 + case 373: +#line 1344 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2307 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 374: +#line 1346 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 2317 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 375: +#line 1352 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2325 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 376: +#line 1354 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hostname", host); + ctx.leave(); +} +#line 2335 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 377: +#line 1360 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2310 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2346 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 372: -#line 1344 "dhcp6_parser.yy" // lalr1.cc:859 + case 378: +#line 1365 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2319 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2355 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 373: -#line 1352 "dhcp6_parser.yy" // lalr1.cc:859 + case 379: +#line 1373 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2330 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2366 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 374: -#line 1357 "dhcp6_parser.yy" // lalr1.cc:859 + case 380: +#line 1378 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2339 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2375 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 375: -#line 1362 "dhcp6_parser.yy" // lalr1.cc:859 + case 381: +#line 1383 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2347 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2383 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 376: -#line 1364 "dhcp6_parser.yy" // lalr1.cc:859 + case 382: +#line 1385 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr ip(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", ip); ctx.leave(); } -#line 2357 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2393 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 377: -#line 1373 "dhcp6_parser.yy" // lalr1.cc:859 + case 383: +#line 1394 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2368 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2404 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 378: -#line 1378 "dhcp6_parser.yy" // lalr1.cc:859 + case 384: +#line 1399 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2377 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 381: -#line 1387 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(m); - ctx.stack_.push_back(m); -} -#line 2387 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 382: -#line 1391 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); -} -#line 2395 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 392: -#line 1411 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2403 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 393: -#line 1413 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("test", test); - ctx.leave(); -} #line 2413 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 394: -#line 1422 "dhcp6_parser.yy" // lalr1.cc:859 + case 387: +#line 1408 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(m); + ctx.stack_.push_back(m); +} +#line 2423 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 388: +#line 1412 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); +} +#line 2431 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 398: +#line 1432 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2439 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 399: +#line 1434 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("test", test); + ctx.leave(); +} +#line 2449 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 400: +#line 1443 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2424 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2460 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 395: -#line 1427 "dhcp6_parser.yy" // lalr1.cc:859 + case 401: +#line 1448 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2433 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2469 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 405: -#line 1445 "dhcp6_parser.yy" // lalr1.cc:859 + case 411: +#line 1466 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.DUID_TYPE); } -#line 2441 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 406: -#line 1447 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); - ctx.leave(); -} -#line 2450 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 407: -#line 1452 "dhcp6_parser.yy" // lalr1.cc:859 - { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 2456 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 408: -#line 1453 "dhcp6_parser.yy" // lalr1.cc:859 - { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 2462 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 409: -#line 1454 "dhcp6_parser.yy" // lalr1.cc:859 - { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 2468 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 410: -#line 1457 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("htype", htype); -} #line 2477 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 411: -#line 1462 "dhcp6_parser.yy" // lalr1.cc:859 + case 412: +#line 1468 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} +#line 2486 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 413: +#line 1473 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } +#line 2492 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 414: +#line 1474 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } +#line 2498 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 415: +#line 1475 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } +#line 2504 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 416: +#line 1478 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("htype", htype); +} +#line 2513 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 417: +#line 1483 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2485 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2521 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 412: -#line 1464 "dhcp6_parser.yy" // lalr1.cc:859 + case 418: +#line 1485 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 2495 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2531 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 413: -#line 1470 "dhcp6_parser.yy" // lalr1.cc:859 + case 419: +#line 1491 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 2504 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2540 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 414: -#line 1475 "dhcp6_parser.yy" // lalr1.cc:859 + case 420: +#line 1496 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 2513 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2549 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 415: -#line 1482 "dhcp6_parser.yy" // lalr1.cc:859 + case 421: +#line 1503 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 2522 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2558 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 416: -#line 1489 "dhcp6_parser.yy" // lalr1.cc:859 + case 422: +#line 1510 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2533 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 417: -#line 1494 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); - ctx.leave(); -} -#line 2542 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 422: -#line 1507 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2550 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2569 "dhcp6_parser.cc" // lalr1.cc:859 break; case 423: -#line 1509 "dhcp6_parser.yy" // lalr1.cc:859 - { - 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 2560 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 424: #line 1515 "dhcp6_parser.yy" // lalr1.cc:859 { - ctx.enter(ctx.NO_KEYWORD); -} -#line 2568 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 425: -#line 1517 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("socket-name", name); + ctx.stack_.pop_back(); ctx.leave(); } #line 2578 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 426: -#line 1525 "dhcp6_parser.yy" // lalr1.cc:859 + case 428: +#line 1528 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2586 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 429: +#line 1530 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 2596 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 430: +#line 1536 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 2604 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 431: +#line 1538 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 2614 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 432: +#line 1546 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2589 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2625 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 427: -#line 1530 "dhcp6_parser.yy" // lalr1.cc:859 + case 433: +#line 1551 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2598 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2634 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 428: -#line 1535 "dhcp6_parser.yy" // lalr1.cc:859 + case 434: +#line 1556 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2608 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2644 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 429: -#line 1539 "dhcp6_parser.yy" // lalr1.cc:859 + case 435: +#line 1560 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 2616 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2652 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 448: -#line 1565 "dhcp6_parser.yy" // lalr1.cc:859 + case 454: +#line 1586 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 2625 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2661 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 449: -#line 1570 "dhcp6_parser.yy" // lalr1.cc:859 + case 455: +#line 1591 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2633 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2669 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 450: -#line 1572 "dhcp6_parser.yy" // lalr1.cc:859 + case 456: +#line 1593 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2643 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2679 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 451: -#line 1578 "dhcp6_parser.yy" // lalr1.cc:859 + case 457: +#line 1599 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2651 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2687 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 452: -#line 1580 "dhcp6_parser.yy" // lalr1.cc:859 + case 458: +#line 1601 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2661 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2697 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 453: -#line 1586 "dhcp6_parser.yy" // lalr1.cc:859 + case 459: +#line 1607 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 2670 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2706 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 454: -#line 1591 "dhcp6_parser.yy" // lalr1.cc:859 + case 460: +#line 1612 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2678 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2714 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 455: -#line 1593 "dhcp6_parser.yy" // lalr1.cc:859 + case 461: +#line 1614 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2688 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2724 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 456: -#line 1599 "dhcp6_parser.yy" // lalr1.cc:859 + case 462: +#line 1620 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 2697 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2733 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 457: -#line 1604 "dhcp6_parser.yy" // lalr1.cc:859 + case 463: +#line 1625 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 2706 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2742 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 458: -#line 1609 "dhcp6_parser.yy" // lalr1.cc:859 + case 464: +#line 1630 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NCR_PROTOCOL); } -#line 2714 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2750 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 459: -#line 1611 "dhcp6_parser.yy" // lalr1.cc:859 + case 465: +#line 1632 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2723 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2759 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 460: -#line 1617 "dhcp6_parser.yy" // lalr1.cc:859 + case 466: +#line 1638 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 2729 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2765 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 461: -#line 1618 "dhcp6_parser.yy" // lalr1.cc:859 + case 467: +#line 1639 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 2735 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2771 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 462: -#line 1621 "dhcp6_parser.yy" // lalr1.cc:859 + case 468: +#line 1642 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NCR_FORMAT); } -#line 2743 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2779 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 463: -#line 1623 "dhcp6_parser.yy" // lalr1.cc:859 + case 469: +#line 1644 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 2753 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2789 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 464: -#line 1629 "dhcp6_parser.yy" // lalr1.cc:859 + case 470: +#line 1650 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-include-fqdn", b); } -#line 2762 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2798 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 465: -#line 1634 "dhcp6_parser.yy" // lalr1.cc:859 + case 471: +#line 1655 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allow-client-update", b); } -#line 2771 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2807 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 466: -#line 1639 "dhcp6_parser.yy" // lalr1.cc:859 + case 472: +#line 1660 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 2780 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2816 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 467: -#line 1644 "dhcp6_parser.yy" // lalr1.cc:859 + case 473: +#line 1665 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 2789 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2825 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 468: -#line 1649 "dhcp6_parser.yy" // lalr1.cc:859 + case 474: +#line 1670 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 2797 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2833 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 469: -#line 1651 "dhcp6_parser.yy" // lalr1.cc:859 + case 475: +#line 1672 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2806 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2842 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 470: -#line 1657 "dhcp6_parser.yy" // lalr1.cc:859 + case 476: +#line 1678 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 2814 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2850 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 471: -#line 1660 "dhcp6_parser.yy" // lalr1.cc:859 + case 477: +#line 1681 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 2822 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2858 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 472: -#line 1663 "dhcp6_parser.yy" // lalr1.cc:859 + case 478: +#line 1684 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 2830 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2866 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 473: -#line 1666 "dhcp6_parser.yy" // lalr1.cc:859 + case 479: +#line 1687 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 2838 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2874 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 474: -#line 1669 "dhcp6_parser.yy" // lalr1.cc:859 + case 480: +#line 1690 "dhcp6_parser.yy" // lalr1.cc:859 { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 2847 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2883 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 475: -#line 1675 "dhcp6_parser.yy" // lalr1.cc:859 + case 481: +#line 1696 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2855 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2891 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 476: -#line 1677 "dhcp6_parser.yy" // lalr1.cc:859 + case 482: +#line 1698 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2865 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2901 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 477: -#line 1685 "dhcp6_parser.yy" // lalr1.cc:859 + case 483: +#line 1706 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2873 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2909 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 478: -#line 1687 "dhcp6_parser.yy" // lalr1.cc:859 + case 484: +#line 1708 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2882 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2918 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 479: -#line 1692 "dhcp6_parser.yy" // lalr1.cc:859 + case 485: +#line 1713 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2890 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2926 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 480: -#line 1694 "dhcp6_parser.yy" // lalr1.cc:859 + case 486: +#line 1715 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2899 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2935 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 481: -#line 1704 "dhcp6_parser.yy" // lalr1.cc:859 + case 487: +#line 1725 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2910 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2946 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 482: -#line 1709 "dhcp6_parser.yy" // lalr1.cc:859 + case 488: +#line 1730 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2919 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2955 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 486: -#line 1726 "dhcp6_parser.yy" // lalr1.cc:859 + case 492: +#line 1747 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2930 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2966 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 487: -#line 1731 "dhcp6_parser.yy" // lalr1.cc:859 + case 493: +#line 1752 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2939 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2975 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 490: -#line 1743 "dhcp6_parser.yy" // lalr1.cc:859 + case 496: +#line 1764 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 2949 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2985 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 491: -#line 1747 "dhcp6_parser.yy" // lalr1.cc:859 + case 497: +#line 1768 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 2957 "dhcp6_parser.cc" // lalr1.cc:859 +#line 2993 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 499: -#line 1762 "dhcp6_parser.yy" // lalr1.cc:859 + case 505: +#line 1783 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 2966 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3002 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 500: -#line 1766 "dhcp6_parser.yy" // lalr1.cc:859 + case 506: +#line 1787 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 2974 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3010 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 501: -#line 1768 "dhcp6_parser.yy" // lalr1.cc:859 + case 507: +#line 1789 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 2984 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3020 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 502: -#line 1774 "dhcp6_parser.yy" // lalr1.cc:859 + case 508: +#line 1795 "dhcp6_parser.yy" // lalr1.cc:859 { 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 2995 "dhcp6_parser.cc" // lalr1.cc:859 +#line 3031 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 503: -#line 1779 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); - ctx.leave(); -} -#line 3004 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 506: -#line 1788 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(m); - ctx.stack_.push_back(m); -} -#line 3014 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 507: -#line 1792 "dhcp6_parser.yy" // lalr1.cc:859 - { - ctx.stack_.pop_back(); -} -#line 3022 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 510: + case 509: #line 1800 "dhcp6_parser.yy" // lalr1.cc:859 { - ctx.enter(ctx.NO_KEYWORD); -} -#line 3030 "dhcp6_parser.cc" // lalr1.cc:859 - break; - - case 511: -#line 1802 "dhcp6_parser.yy" // lalr1.cc:859 - { - ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("output", sev); + ctx.stack_.pop_back(); ctx.leave(); } #line 3040 "dhcp6_parser.cc" // lalr1.cc:859 break; + case 512: +#line 1809 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(m); + ctx.stack_.push_back(m); +} +#line 3050 "dhcp6_parser.cc" // lalr1.cc:859 + break; -#line 3044 "dhcp6_parser.cc" // lalr1.cc:859 + case 513: +#line 1813 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.pop_back(); +} +#line 3058 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 516: +#line 1821 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 3066 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 517: +#line 1823 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("output", sev); + ctx.leave(); +} +#line 3076 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + +#line 3080 "dhcp6_parser.cc" // lalr1.cc:859 default: break; } @@ -3302,92 +3338,93 @@ namespace isc { namespace dhcp { const short int Dhcp6Parser::yypact_[] = { - 81, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, 98, 19, 41, 95, 114, 118, 120, - 161, 226, 230, 247, 251, 265, -490, -490, -490, -490, + 63, -490, -490, -490, -490, -490, -490, -490, -490, -490, + -490, -490, -490, 74, 19, 104, 116, 149, 151, 196, + 197, 214, 249, 253, 262, 265, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - 19, 57, 17, 31, 215, 23, 37, 68, 62, 32, - 100, -42, 143, -490, 268, 231, 272, 269, 276, -490, - -490, -490, -490, 290, -490, 102, -490, -490, -490, -490, - -490, -490, -490, -490, 291, 293, 294, 295, 297, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, 298, - -490, -490, -490, 146, -490, -490, -490, -490, -490, -490, + 19, -52, 17, 31, 264, 23, -8, 48, 105, 32, + -5, -36, 108, -490, 268, 274, 275, 272, 278, -490, + -490, -490, -490, 282, -490, 83, -490, -490, -490, -490, + -490, -490, -490, -490, 283, 284, 290, 291, 293, -490, + -490, -490, -490, -490, -490, -490, -490, -490, -490, 295, + -490, -490, -490, 102, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, 302, -490, -490, - -490, -490, -490, -490, 299, 307, -490, -490, -490, -490, - -490, -490, -490, -490, -490, 148, -490, -490, -490, -490, + -490, -490, -490, -490, -490, -490, -490, 298, -490, -490, + -490, -490, -490, -490, 297, 299, -490, -490, -490, -490, + -490, -490, -490, -490, -490, 118, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, 159, -490, -490, -490, -490, 308, -490, - 309, 310, -490, -490, -490, 175, -490, -490, -490, -490, + -490, -490, -490, 119, -490, -490, -490, -490, 310, -490, + 311, 312, -490, -490, -490, 128, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - 311, 277, -490, -490, -490, -490, -490, -490, -490, -490, - -490, 312, -490, -490, -490, 313, -490, -490, 314, 303, + 309, 315, -490, -490, -490, -490, -490, -490, -490, -490, + -490, 316, -490, -490, -490, 317, -490, -490, 314, 320, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, 316, -490, -490, -490, -490, 315, 318, -490, -490, - -490, -490, -490, -490, -490, -490, -490, 177, -490, -490, - -490, 321, -490, -490, 322, -490, 323, 324, -490, -490, - 325, 326, 327, 328, -490, -490, -490, 181, -490, -490, + -490, 321, -490, -490, -490, -490, 318, 324, -490, -490, + -490, -490, -490, -490, -490, -490, -490, 130, -490, -490, + -490, 325, -490, -490, 326, -490, 327, 328, -490, -490, + 329, 330, 331, 332, -490, -490, -490, 137, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, 19, 19, -490, 180, 329, - 330, 331, 332, -490, 17, -490, 333, 334, 335, 176, - 201, 202, 203, 204, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 216, 350, 352, 31, -490, 353, - -490, 48, 354, 355, 356, 357, 358, 224, 223, 361, - 362, 363, 364, 23, -490, 365, 366, 37, -490, 367, - 233, 369, 235, 236, 68, -490, 372, 373, 374, 375, - 376, 377, -490, 62, 378, 379, 245, 381, 382, 383, - 248, -490, 32, 384, 250, -490, 100, 386, 388, 11, - -490, 255, 389, 390, 256, 393, 259, 260, 398, 399, - 263, 264, 266, 267, 402, 405, 143, -490, -490, -490, - 406, 404, 407, 19, 19, -490, 408, 409, 410, -490, - -490, -490, -490, -490, 413, 414, 415, 416, 417, 418, + -490, -490, -490, -490, -490, 19, 19, -490, 158, 333, + 334, 335, 336, -490, 17, -490, 337, 338, 339, 161, + 178, 187, 203, 204, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 215, 353, 354, 31, -490, 355, + -490, -6, 356, 357, 358, 359, 360, 224, 223, 363, + 364, 365, 366, 23, -490, 367, 368, -8, -490, 369, + 235, 370, 236, 238, 48, -490, 371, 374, 376, 377, + 378, 379, -490, 105, 380, 381, 245, 383, 384, 385, + 248, -490, 32, 386, 252, -490, -5, 388, 389, -19, + -490, 254, 390, 392, 257, 395, 261, 263, 399, 401, + 266, 267, 269, 270, 402, 403, 108, -490, -490, -490, + 404, 407, 408, 19, 19, -490, 409, 410, 411, -490, + -490, -490, -490, -490, 406, 414, 415, 416, 417, 418, 419, 420, 421, 422, -490, 425, 426, -490, 431, -490, -490, -490, -490, 429, 423, -490, -490, -490, 433, 434, - 274, 275, 289, -490, -490, 304, 306, 435, 438, -490, - 317, 439, -490, 319, -490, 320, -490, -490, -490, 431, - 431, 431, 336, 338, 339, -490, 351, 359, -490, 360, - 368, 370, -490, -490, 371, -490, -490, 380, 19, -490, - -490, 385, 387, -490, 391, -490, -490, 1, 337, -490, - -490, -490, -490, 49, 392, -490, 19, 31, 394, -490, - -490, 215, 14, 14, 440, 442, 444, -37, 19, 65, - 36, 446, 66, 84, 83, 143, -490, -490, 450, -490, - 48, 449, 452, -490, -490, -490, -490, -490, 453, 395, + 287, 300, 302, -490, -490, 304, 305, 441, 440, -490, + 313, 442, -490, 319, -490, 323, -490, -490, -490, 431, + 431, 431, 340, 341, 352, -490, 361, 362, -490, 372, + 373, 375, -490, -490, 382, -490, -490, 387, 19, -490, + -490, 391, 393, -490, 394, -490, -490, 16, 396, -490, + -490, -490, -490, -4, 397, -490, 19, 31, 398, -490, + -490, 264, 126, 126, 443, 444, 447, -32, 19, 96, + 41, 448, 99, 28, 172, 108, -490, -490, 452, -490, + -6, 450, 451, -490, -490, -490, -490, -490, 453, 400, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, 184, -490, 185, -490, -490, 455, - -490, -490, -490, -490, 457, 460, 461, 462, 464, -490, - 188, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, 191, -490, 463, 467, -490, -490, 465, 469, - -490, -490, 472, 470, -490, -490, -490, 43, -490, -490, - -490, 473, -490, -490, 103, -490, -490, -490, 147, -490, - 474, 478, -490, 479, 480, 481, 482, 483, 484, 195, - -490, -490, -490, -490, -490, -490, -490, -490, -490, 486, - 487, 488, -490, -490, 218, -490, -490, -490, -490, -490, - -490, -490, -490, 220, -490, -490, -490, 221, 396, 397, - -490, -490, 476, 491, -490, -490, 489, 493, -490, -490, - 494, 496, -490, -490, 495, -490, 497, 394, -490, -490, - 498, 500, 501, 503, 400, 401, 411, 403, 412, 14, - -490, -490, 23, -490, 440, 32, -490, 442, 100, -490, - 444, -37, -490, -490, 65, -490, 36, -490, -42, -490, - 446, 424, 427, 428, 430, 432, 436, 66, -490, 506, - 507, 437, 441, 443, 84, -490, 508, 510, 83, -490, - -490, -490, 509, 513, -490, 37, -490, 449, 68, -490, - 452, 62, -490, 453, 515, -490, 512, -490, 249, 445, - 447, 448, -490, -490, -490, -490, -490, -490, 227, -490, - 514, -490, 516, -490, -490, -490, -490, 228, -490, -490, - -490, -490, -490, -490, -490, -490, -29, 451, -490, -490, - -490, -490, 454, 456, -490, -490, 458, 252, -490, 253, - -490, 518, -490, 459, 520, -490, -490, -490, -490, -490, + -490, -490, -490, -490, 162, -490, 219, -490, -490, 456, + -490, -490, -490, -490, 457, 461, 462, 463, 464, -490, + -490, -490, 220, -490, -490, -490, -490, -490, -490, -490, + -490, -490, -490, -490, -490, -490, 221, -490, 465, 466, + -490, -490, 467, 469, -490, -490, 470, 474, -490, -490, + -490, 81, -490, -490, -490, 472, -490, -490, 237, -490, + -490, -490, 251, -490, 473, 479, -490, 480, 481, 482, + 483, 484, 485, 227, -490, -490, -490, -490, -490, -490, + -490, -490, -490, 486, 487, 490, -490, -490, 230, -490, + -490, -490, -490, -490, -490, -490, -490, 231, -490, -490, + -490, 233, 405, 412, -490, -490, 477, 492, -490, -490, + 491, 493, -490, -490, 494, 495, -490, -490, 496, -490, + 499, 398, -490, -490, 501, 502, 503, 504, 413, 424, + 427, 428, 432, 505, 506, 126, -490, -490, 23, -490, + 443, 32, -490, 444, -5, -490, 447, -32, -490, -490, + 96, -490, 41, -490, -36, -490, 448, 435, 436, 437, + 438, 439, 445, 99, -490, 510, 512, 446, 449, 454, + 28, -490, 513, 514, 172, -490, -490, -490, 515, 517, + -490, -8, -490, 450, 48, -490, 451, 105, -490, 453, + 519, -490, 520, -490, 294, 430, 458, 459, -490, -490, + -490, -490, -490, 460, 468, -490, 234, -490, 516, -490, + 518, -490, -490, -490, -490, 241, -490, -490, -490, -490, + -490, -490, -490, -490, -37, 471, -490, -490, -490, -490, + 475, 476, -490, -490, 478, 243, -490, 244, -490, 521, + -490, 488, 523, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - 198, -490, 59, 520, -490, -490, 517, -490, -490, -490, - 254, -490, -490, -490, -490, -490, 524, 466, 527, 59, - -490, 528, -490, 468, -490, 525, -490, -490, 199, -490, - 477, 525, -490, -490, 261, -490, -490, 532, 477, -490, - 471, -490, -490 + 258, -490, 65, 523, -490, -490, 524, -490, -490, -490, + 247, -490, -490, -490, -490, -490, 528, 455, 531, 65, + -490, 533, -490, 507, -490, 529, -490, -490, 259, -490, + 489, 529, -490, -490, 250, -490, -490, 535, 489, -490, + 508, -490, -490 }; const unsigned short int @@ -3397,125 +3434,127 @@ namespace isc { namespace dhcp { 20, 22, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 41, 34, 30, 29, 26, 27, 28, 33, 3, 31, 32, 54, 5, - 65, 7, 98, 9, 198, 11, 300, 13, 320, 15, - 347, 17, 239, 19, 274, 21, 163, 23, 428, 25, - 43, 37, 0, 0, 0, 0, 0, 0, 349, 241, - 276, 0, 0, 45, 0, 44, 0, 0, 38, 63, - 481, 477, 479, 0, 62, 0, 56, 58, 60, 61, - 59, 96, 102, 104, 0, 0, 0, 0, 0, 190, - 231, 266, 138, 153, 146, 377, 155, 174, 394, 0, - 416, 426, 90, 0, 67, 69, 70, 71, 72, 73, + 65, 7, 98, 9, 204, 11, 306, 13, 326, 15, + 353, 17, 245, 19, 280, 21, 169, 23, 434, 25, + 43, 37, 0, 0, 0, 0, 0, 0, 355, 247, + 282, 0, 0, 45, 0, 44, 0, 0, 38, 63, + 487, 483, 485, 0, 62, 0, 56, 58, 60, 61, + 59, 96, 102, 104, 0, 0, 0, 0, 0, 196, + 237, 272, 144, 159, 152, 383, 161, 180, 400, 0, + 422, 432, 90, 0, 67, 69, 70, 71, 72, 73, 75, 76, 77, 78, 80, 79, 84, 85, 74, 82, - 83, 81, 86, 87, 88, 89, 100, 0, 381, 292, - 312, 219, 221, 223, 0, 0, 227, 225, 339, 373, - 218, 202, 203, 204, 205, 0, 200, 209, 210, 211, - 214, 216, 212, 213, 206, 207, 208, 215, 217, 308, - 310, 307, 305, 0, 302, 304, 306, 332, 0, 335, - 0, 0, 331, 327, 330, 0, 322, 324, 325, 328, - 329, 326, 371, 361, 363, 365, 367, 369, 360, 359, - 0, 350, 351, 355, 356, 353, 357, 358, 354, 256, - 132, 0, 260, 258, 263, 0, 252, 253, 0, 242, - 243, 245, 255, 246, 247, 248, 262, 249, 250, 251, - 287, 0, 285, 286, 289, 290, 0, 277, 278, 280, - 281, 282, 283, 284, 170, 172, 167, 0, 165, 168, - 169, 0, 449, 451, 0, 454, 0, 0, 458, 462, - 0, 0, 0, 0, 468, 475, 447, 0, 430, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 42, 0, 0, 35, 0, 0, + 83, 81, 86, 87, 88, 89, 100, 0, 387, 298, + 318, 225, 227, 229, 0, 0, 233, 231, 345, 379, + 224, 208, 209, 210, 211, 0, 206, 215, 216, 217, + 220, 222, 218, 219, 212, 213, 214, 221, 223, 314, + 316, 313, 311, 0, 308, 310, 312, 338, 0, 341, + 0, 0, 337, 333, 336, 0, 328, 330, 331, 334, + 335, 332, 377, 367, 369, 371, 373, 375, 366, 365, + 0, 356, 357, 361, 362, 359, 363, 364, 360, 262, + 134, 0, 266, 264, 269, 0, 258, 259, 0, 248, + 249, 251, 261, 252, 253, 254, 268, 255, 256, 257, + 293, 0, 291, 292, 295, 296, 0, 283, 284, 286, + 287, 288, 289, 290, 176, 178, 173, 0, 171, 174, + 175, 0, 455, 457, 0, 460, 0, 0, 464, 468, + 0, 0, 0, 0, 474, 481, 453, 0, 436, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 42, 0, 0, 35, 0, 0, 0, 0, 0, 53, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 99, 383, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 199, 0, 0, 0, 301, 0, - 0, 0, 0, 0, 0, 321, 0, 0, 0, 0, - 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, - 0, 240, 0, 0, 0, 275, 0, 0, 0, 0, - 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 429, 46, 39, + 99, 389, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 205, 0, 0, 0, 307, 0, + 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, + 0, 0, 354, 0, 0, 0, 0, 0, 0, 0, + 0, 246, 0, 0, 0, 281, 0, 0, 0, 0, + 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 435, 46, 39, 0, 0, 0, 0, 0, 57, 0, 0, 0, 91, 92, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 415, 0, 0, 68, 0, 392, - 390, 391, 389, 0, 384, 385, 387, 388, 0, 0, - 0, 0, 0, 229, 230, 0, 0, 0, 0, 201, - 0, 0, 303, 0, 334, 0, 337, 338, 323, 0, - 0, 0, 0, 0, 0, 352, 0, 0, 254, 0, - 0, 0, 265, 244, 0, 291, 279, 0, 0, 166, - 448, 0, 0, 453, 0, 456, 457, 0, 0, 464, - 465, 466, 467, 0, 0, 431, 0, 0, 0, 478, - 480, 0, 0, 0, 192, 233, 268, 0, 43, 0, - 0, 157, 0, 0, 0, 0, 47, 101, 0, 382, - 0, 294, 314, 220, 222, 224, 228, 226, 341, 0, - 309, 36, 311, 333, 336, 372, 362, 364, 366, 368, - 370, 257, 133, 261, 259, 264, 288, 171, 173, 450, - 452, 455, 460, 461, 459, 463, 470, 471, 472, 473, - 474, 469, 476, 40, 0, 486, 0, 483, 485, 0, - 119, 125, 127, 129, 0, 0, 0, 0, 0, 118, - 0, 106, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 0, 196, 0, 193, 194, 237, 0, 234, - 235, 272, 0, 269, 270, 144, 145, 0, 140, 142, - 143, 0, 152, 150, 0, 148, 151, 379, 0, 161, - 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, - 176, 178, 179, 180, 181, 182, 183, 405, 411, 0, - 0, 0, 404, 403, 0, 396, 398, 401, 399, 400, - 402, 422, 424, 0, 418, 420, 421, 0, 49, 0, - 386, 298, 0, 295, 296, 318, 0, 315, 316, 345, - 0, 342, 343, 375, 0, 64, 0, 0, 482, 97, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 103, 105, 0, 191, 0, 241, 232, 0, 276, 267, - 0, 0, 139, 154, 0, 147, 0, 378, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, - 0, 0, 0, 0, 0, 395, 0, 0, 0, 417, - 427, 51, 0, 50, 393, 0, 293, 0, 0, 313, - 0, 349, 340, 0, 0, 374, 0, 484, 0, 0, - 0, 0, 131, 134, 135, 136, 137, 107, 0, 195, - 0, 236, 0, 271, 141, 149, 380, 0, 160, 184, - 185, 186, 187, 188, 189, 177, 0, 0, 410, 413, - 414, 397, 0, 0, 419, 48, 0, 0, 297, 0, - 317, 0, 344, 0, 0, 121, 122, 123, 124, 120, - 126, 128, 130, 197, 238, 273, 162, 407, 408, 409, - 406, 412, 423, 425, 52, 299, 319, 346, 376, 490, - 0, 488, 0, 0, 487, 502, 0, 500, 498, 494, - 0, 492, 496, 497, 495, 489, 0, 0, 0, 0, - 491, 0, 499, 0, 493, 0, 501, 506, 0, 504, - 0, 0, 503, 510, 0, 508, 505, 0, 0, 507, - 0, 509, 511 + 0, 0, 0, 0, 421, 0, 0, 68, 0, 398, + 396, 397, 395, 0, 390, 391, 393, 394, 0, 0, + 0, 0, 0, 235, 236, 0, 0, 0, 0, 207, + 0, 0, 309, 0, 340, 0, 343, 344, 329, 0, + 0, 0, 0, 0, 0, 358, 0, 0, 260, 0, + 0, 0, 271, 250, 0, 297, 285, 0, 0, 172, + 454, 0, 0, 459, 0, 462, 463, 0, 0, 470, + 471, 472, 473, 0, 0, 437, 0, 0, 0, 484, + 486, 0, 0, 0, 198, 239, 274, 0, 43, 0, + 0, 163, 0, 0, 0, 0, 47, 101, 0, 388, + 0, 300, 320, 226, 228, 230, 234, 232, 347, 0, + 315, 36, 317, 339, 342, 378, 368, 370, 372, 374, + 376, 263, 135, 267, 265, 270, 294, 177, 179, 456, + 458, 461, 466, 467, 465, 469, 476, 477, 478, 479, + 480, 475, 482, 40, 0, 492, 0, 489, 491, 0, + 121, 127, 129, 131, 0, 0, 0, 0, 0, 140, + 142, 120, 0, 106, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 0, 202, 0, 199, + 200, 243, 0, 240, 241, 278, 0, 275, 276, 150, + 151, 0, 146, 148, 149, 0, 158, 156, 0, 154, + 157, 385, 0, 167, 0, 164, 165, 0, 0, 0, + 0, 0, 0, 0, 182, 184, 185, 186, 187, 188, + 189, 411, 417, 0, 0, 0, 410, 409, 0, 402, + 404, 407, 405, 406, 408, 428, 430, 0, 424, 426, + 427, 0, 49, 0, 392, 304, 0, 301, 302, 324, + 0, 321, 322, 351, 0, 348, 349, 381, 0, 64, + 0, 0, 488, 97, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 103, 105, 0, 197, + 0, 247, 238, 0, 282, 273, 0, 0, 145, 160, + 0, 153, 0, 384, 0, 162, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, + 0, 401, 0, 0, 0, 423, 433, 51, 0, 50, + 399, 0, 299, 0, 0, 319, 0, 355, 346, 0, + 0, 380, 0, 490, 0, 0, 0, 0, 133, 136, + 137, 138, 139, 0, 0, 107, 0, 201, 0, 242, + 0, 277, 147, 155, 386, 0, 166, 190, 191, 192, + 193, 194, 195, 183, 0, 0, 416, 419, 420, 403, + 0, 0, 425, 48, 0, 0, 303, 0, 323, 0, + 350, 0, 0, 123, 124, 125, 126, 122, 128, 130, + 132, 141, 143, 203, 244, 279, 168, 413, 414, 415, + 412, 418, 429, 431, 52, 305, 325, 352, 382, 496, + 0, 494, 0, 0, 493, 508, 0, 506, 504, 500, + 0, 498, 502, 503, 501, 495, 0, 0, 0, 0, + 497, 0, 505, 0, 499, 0, 507, 512, 0, 510, + 0, 0, 509, 516, 0, 514, 511, 0, 0, 513, + 0, 515, 517 }; const short int Dhcp6Parser::yypgoto_[] = { -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, 7, -490, 79, -490, -490, -490, - -490, -490, -490, 39, -490, -163, -490, -490, -490, -62, - -490, -490, -490, 244, -490, -490, -490, -490, 53, 229, - -63, -50, -49, -43, -490, -490, -490, -490, -490, 50, - -490, -490, -490, -490, -490, 52, -136, -490, -490, -490, + -490, -490, -490, -490, 7, -490, 29, -490, -490, -490, + -490, -490, -490, 1, -490, -265, -490, -490, -490, -62, + -490, -490, -490, 246, -490, -490, -490, -490, 54, 225, + -63, -50, -49, -43, -490, -490, -490, -490, -490, 52, + -490, -490, -490, -490, -490, 51, -139, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -58, -490, -489, - -490, -490, -490, -490, -490, -490, -144, -474, -490, -490, - -490, -490, -146, -490, -490, -490, -490, -490, -490, -490, - -151, -490, -490, -490, -145, 183, -490, -490, -490, -490, - -490, -490, -490, -153, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -129, -490, -490, -490, -126, 225, - -490, -490, -490, -490, -490, -490, -477, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -130, -490, -490, -490, - -125, -490, 197, -490, -59, -490, -490, -490, -490, -490, - -57, -490, -490, -490, -490, -490, -48, -490, -490, -490, - -128, -490, -490, -490, -127, -490, 206, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -162, -490, -490, - -490, -161, 237, -490, -490, -66, -490, -490, -490, -490, - -490, -160, -490, -490, -490, -155, 234, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -165, -490, - -490, -490, -154, -490, 238, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, 69, -490, -490, - -490, -490, -490, -490, -133, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -134, -490, -490, - -490, -490, -490, -490, -490, -490, 82, 207, -490, -490, + -150, -474, -490, -490, -490, -490, -152, -490, -490, -490, + -490, -490, -490, -490, -157, -490, -490, -490, -154, 182, + -490, -490, -490, -490, -490, -490, -490, -160, -490, -490, + -490, -490, -490, -490, -490, -490, -490, -490, -135, -490, + -490, -490, -132, 226, -490, -490, -490, -490, -490, -490, + -477, -490, -490, -490, -490, -490, -490, -490, -490, -490, + -136, -490, -490, -490, -133, -490, 198, -490, -59, -490, + -490, -490, -490, -490, -57, -490, -490, -490, -490, -490, + -48, -490, -490, -490, -134, -490, -490, -490, -131, -490, + 195, -490, -490, -490, -490, -490, -490, -490, -490, -490, + -490, -169, -490, -490, -490, -166, 229, -490, -490, -66, + -490, -490, -490, -490, -490, -167, -490, -490, -490, -162, + 239, -490, -490, -490, -490, -490, -490, -490, -490, -490, + -490, -490, -165, -490, -490, -490, -156, -490, 222, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -79, - -490, -490, -490, -223, -490, -490, -234, -490, -490, -490, - -490, -490, -490, -242, -490, -490, -248, -490 + -490, 72, -490, -490, -490, -490, -490, -490, -129, -490, + -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, + -490, -140, -490, -490, -490, -490, -490, -490, -490, -490, + 80, 202, -490, -490, -490, -490, -490, -490, -490, -490, + -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, + -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, + -490, -490, -490, -82, -490, -490, -490, -231, -490, -490, + -246, -490, -490, -490, -490, -490, -490, -257, -490, -490, + -261, -490 }; const short int @@ -3523,119 +3562,121 @@ namespace isc { namespace dhcp { { -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 73, 35, 36, 61, 522, 77, - 78, 37, 60, 74, 75, 507, 648, 722, 723, 112, + 78, 37, 60, 74, 75, 507, 652, 728, 729, 112, 39, 62, 85, 86, 87, 289, 41, 63, 113, 114, 115, 116, 117, 118, 119, 120, 296, 43, 64, 137, - 319, 121, 297, 122, 298, 570, 571, 572, 670, 789, - 573, 671, 574, 672, 575, 673, 576, 217, 355, 578, - 579, 580, 581, 123, 307, 597, 598, 599, 600, 124, - 309, 604, 605, 606, 125, 308, 126, 311, 610, 611, - 612, 698, 57, 71, 247, 248, 249, 367, 250, 368, - 127, 312, 619, 620, 621, 622, 623, 624, 625, 626, - 128, 304, 584, 585, 586, 682, 45, 65, 155, 156, - 157, 324, 158, 325, 159, 326, 160, 330, 161, 329, - 162, 163, 129, 305, 588, 589, 590, 685, 53, 69, - 218, 219, 220, 221, 222, 223, 224, 354, 225, 358, - 226, 357, 227, 228, 359, 229, 130, 306, 592, 593, - 594, 688, 55, 70, 236, 237, 238, 239, 240, 363, - 241, 242, 243, 165, 322, 652, 653, 654, 725, 47, - 66, 173, 174, 175, 335, 176, 336, 166, 323, 656, - 657, 658, 728, 49, 67, 185, 186, 187, 339, 188, - 189, 341, 190, 191, 167, 331, 660, 661, 662, 731, - 51, 68, 200, 201, 202, 203, 347, 204, 348, 205, - 349, 206, 350, 207, 351, 208, 346, 168, 332, 664, - 734, 131, 310, 608, 321, 423, 424, 425, 426, 427, - 508, 132, 313, 634, 635, 636, 709, 800, 637, 638, - 710, 639, 640, 133, 134, 315, 643, 644, 645, 716, - 646, 717, 135, 316, 59, 72, 267, 268, 269, 270, - 372, 271, 373, 272, 273, 375, 274, 275, 276, 378, - 544, 277, 379, 278, 279, 280, 281, 282, 384, 551, - 283, 385, 88, 291, 89, 292, 90, 290, 556, 557, - 558, 666, 810, 811, 812, 820, 821, 822, 823, 828, - 824, 826, 838, 839, 840, 844, 845, 847 + 319, 121, 297, 122, 298, 572, 573, 574, 674, 797, + 575, 675, 576, 676, 577, 677, 578, 217, 355, 580, + 581, 582, 583, 584, 683, 585, 684, 123, 307, 601, + 602, 603, 604, 124, 309, 608, 609, 610, 125, 308, + 126, 311, 614, 615, 616, 704, 57, 71, 247, 248, + 249, 367, 250, 368, 127, 312, 623, 624, 625, 626, + 627, 628, 629, 630, 128, 304, 588, 589, 590, 688, + 45, 65, 155, 156, 157, 324, 158, 325, 159, 326, + 160, 330, 161, 329, 162, 163, 129, 305, 592, 593, + 594, 691, 53, 69, 218, 219, 220, 221, 222, 223, + 224, 354, 225, 358, 226, 357, 227, 228, 359, 229, + 130, 306, 596, 597, 598, 694, 55, 70, 236, 237, + 238, 239, 240, 363, 241, 242, 243, 165, 322, 656, + 657, 658, 731, 47, 66, 173, 174, 175, 335, 176, + 336, 166, 323, 660, 661, 662, 734, 49, 67, 185, + 186, 187, 339, 188, 189, 341, 190, 191, 167, 331, + 664, 665, 666, 737, 51, 68, 200, 201, 202, 203, + 347, 204, 348, 205, 349, 206, 350, 207, 351, 208, + 346, 168, 332, 668, 740, 131, 310, 612, 321, 423, + 424, 425, 426, 427, 508, 132, 313, 638, 639, 640, + 715, 810, 641, 642, 716, 643, 644, 133, 134, 315, + 647, 648, 649, 722, 650, 723, 135, 316, 59, 72, + 267, 268, 269, 270, 372, 271, 373, 272, 273, 375, + 274, 275, 276, 378, 544, 277, 379, 278, 279, 280, + 281, 282, 384, 551, 283, 385, 88, 291, 89, 292, + 90, 290, 556, 557, 558, 670, 820, 821, 822, 830, + 831, 832, 833, 838, 834, 836, 848, 849, 850, 854, + 855, 857 }; const unsigned short int Dhcp6Parser::yytable_[] = { 84, 184, 151, 150, 171, 182, 198, 216, 232, 246, - 266, 234, 233, 235, 633, 152, 153, 164, 172, 183, - 199, 34, 154, 607, 27, 603, 28, 79, 29, 560, - 138, 595, 244, 245, 561, 562, 563, 564, 565, 566, - 567, 568, 91, 138, 92, 93, 691, 209, 38, 692, - 210, 94, 95, 96, 97, 797, 798, 799, 101, 94, - 95, 96, 97, 98, 99, 100, 101, 139, 210, 140, - 211, 212, 101, 213, 214, 215, 141, 142, 143, 144, - 145, 146, 169, 101, 210, 244, 245, 147, 148, 170, - 102, 103, 104, 105, 149, 210, 83, 101, 26, 627, - 147, 596, 40, 101, 106, 294, 694, 107, 565, 695, - 295, 419, 542, 543, 108, 177, 178, 179, 180, 181, - 170, 42, 109, 110, 192, 44, 111, 46, 193, 194, - 195, 196, 197, 595, 602, 80, 210, 230, 211, 212, - 231, 81, 82, 613, 614, 615, 616, 617, 618, 317, - 696, 333, 83, 697, 318, 83, 334, 30, 31, 32, - 33, 83, 337, 546, 547, 548, 549, 338, 48, 83, - 83, 628, 629, 630, 631, 83, 641, 642, 344, 815, - 369, 816, 817, 345, 386, 370, 83, 317, 667, 387, - 550, 679, 665, 668, 679, 76, 680, 83, 707, 681, - 83, 813, 841, 708, 814, 842, 83, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 756, - 603, 714, 83, 718, 386, 633, 715, 136, 719, 720, - 333, 369, 84, 50, 285, 793, 796, 52, 83, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 54, 337, 344, 829, 56, 420, - 805, 806, 830, 421, 848, 785, 786, 787, 788, 849, - 151, 150, 58, 422, 284, 171, 286, 287, 184, 288, - 353, 83, 182, 152, 153, 164, 525, 526, 527, 172, - 154, 198, 388, 389, 293, 299, 183, 300, 301, 302, - 216, 303, 314, 327, 232, 199, 362, 234, 233, 235, - 320, 328, 340, 342, 343, 399, 356, 360, 390, 352, - 364, 366, 361, 365, 266, 371, 374, 376, 377, 380, - 381, 382, 383, 391, 392, 393, 394, 396, 397, 398, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 415, 414, 416, 418, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 440, - 441, 443, 444, 445, 446, 447, 449, 450, 451, 452, - 453, 454, 456, 457, 458, 459, 460, 461, 464, 462, - 467, 465, 468, 471, 472, 473, 470, 474, 475, 476, - 489, 490, 477, 478, 479, 480, 483, 481, 482, 484, - 486, 487, 513, 514, 488, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 510, 515, 502, 503, - 569, 569, 504, 505, 577, 577, 506, 509, 511, 512, - 518, 632, 516, 266, 517, 519, 28, 583, 420, 587, - 545, 591, 421, 609, 649, 520, 651, 523, 524, 655, - 659, 674, 422, 669, 675, 676, 677, 663, 678, 683, - 684, 686, 687, 690, 528, 538, 529, 530, 689, 693, - 699, 700, 726, 701, 702, 703, 704, 705, 706, 531, - 711, 712, 713, 553, 727, 729, 730, 532, 533, 733, - 732, 736, 738, 735, 739, 740, 534, 741, 535, 536, - 766, 767, 772, 555, 773, 775, 776, 784, 537, 783, - 521, 827, 794, 539, 795, 540, 807, 809, 831, 541, - 552, 833, 837, 835, 721, 724, 850, 601, 395, 742, - 554, 559, 743, 747, 745, 582, 417, 754, 755, 758, - 744, 746, 469, 757, 765, 749, 748, 751, 439, 463, - 750, 752, 753, 759, 777, 778, 760, 761, 782, 762, - 780, 763, 466, 779, 442, 764, 768, 781, 448, 650, - 769, 771, 770, 790, 774, 791, 792, 647, 737, 801, - 825, 455, 802, 485, 803, 834, 804, 808, 843, 846, - 851, 0, 0, 0, 0, 832, 836, 0, 0, 852, - 0, 0, 0, 0, 0, 0, 0, 569, 0, 151, - 150, 577, 0, 216, 0, 0, 232, 0, 0, 234, - 233, 235, 152, 153, 164, 0, 246, 0, 0, 154, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 632, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 184, 171, 0, 0, 182, 0, 0, 198, - 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, - 183, 0, 0, 199, 0, 0, 0, 0, 0, 0, + 266, 234, 233, 235, 637, 152, 153, 164, 172, 183, + 199, 34, 154, 611, 27, 607, 28, 79, 29, 101, + 138, 101, 210, 210, 230, 211, 212, 231, 599, 169, + 244, 245, 91, 631, 92, 93, 170, 209, 138, 807, + 808, 809, 565, 94, 95, 96, 97, 244, 245, 419, + 101, 94, 95, 96, 97, 98, 99, 100, 101, 139, + 210, 140, 211, 212, 26, 213, 214, 215, 141, 142, + 143, 144, 145, 146, 697, 101, 294, 698, 76, 147, + 148, 295, 102, 103, 104, 105, 149, 177, 178, 179, + 180, 181, 170, 210, 83, 317, 106, 147, 600, 107, + 318, 38, 546, 547, 548, 549, 108, 632, 633, 634, + 635, 333, 337, 40, 109, 110, 334, 338, 111, 542, + 543, 344, 83, 369, 83, 83, 345, 80, 370, 550, + 386, 560, 101, 81, 82, 387, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 42, 83, 44, 30, + 31, 32, 33, 83, 210, 317, 599, 606, 83, 192, + 669, 83, 83, 193, 194, 195, 196, 197, 617, 618, + 619, 620, 621, 622, 525, 526, 527, 825, 83, 826, + 827, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 46, 48, 83, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 50, 671, 685, 685, 764, 607, 672, 686, 687, + 713, 637, 84, 720, 724, 714, 386, 333, 721, 725, + 700, 726, 803, 701, 369, 83, 337, 344, 83, 806, + 839, 815, 816, 858, 702, 840, 52, 703, 859, 420, + 54, 823, 851, 421, 824, 852, 83, 645, 646, 56, + 151, 150, 58, 422, 284, 171, 136, 285, 184, 286, + 287, 288, 182, 152, 153, 164, 293, 299, 300, 172, + 154, 198, 388, 389, 301, 302, 183, 303, 390, 314, + 216, 327, 399, 328, 232, 199, 320, 234, 233, 235, + 793, 794, 795, 796, 340, 342, 343, 352, 353, 400, + 356, 360, 361, 362, 266, 364, 365, 366, 401, 371, + 374, 376, 377, 380, 381, 382, 383, 391, 392, 393, + 394, 396, 397, 398, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 418, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 440, 441, 443, 445, 449, 444, 446, 450, 447, + 451, 452, 453, 454, 456, 457, 458, 459, 460, 461, + 464, 462, 467, 468, 471, 465, 472, 470, 473, 474, + 489, 490, 475, 477, 476, 478, 483, 484, 486, 479, + 480, 494, 481, 482, 487, 488, 491, 492, 493, 495, + 496, 497, 498, 499, 500, 501, 510, 513, 502, 503, + 571, 571, 504, 505, 579, 579, 506, 509, 511, 512, + 514, 636, 515, 266, 516, 517, 518, 519, 420, 28, + 587, 591, 421, 520, 595, 613, 653, 655, 659, 523, + 663, 678, 422, 524, 673, 679, 680, 681, 682, 690, + 521, 689, 693, 692, 667, 538, 695, 696, 699, 705, + 528, 529, 706, 732, 707, 708, 709, 710, 711, 712, + 717, 718, 530, 553, 719, 733, 736, 735, 739, 605, + 738, 531, 532, 742, 741, 744, 745, 746, 747, 753, + 754, 545, 533, 534, 774, 535, 775, 780, 781, 555, + 784, 783, 536, 791, 804, 792, 805, 537, 837, 817, + 819, 539, 841, 540, 541, 843, 847, 552, 845, 860, + 395, 554, 417, 559, 586, 727, 755, 762, 763, 766, + 765, 469, 730, 773, 748, 757, 756, 759, 758, 439, + 463, 466, 761, 760, 786, 785, 442, 749, 750, 788, + 798, 751, 787, 752, 790, 455, 767, 768, 769, 770, + 771, 789, 654, 448, 782, 651, 772, 776, 485, 743, + 777, 779, 835, 844, 856, 778, 842, 861, 799, 800, + 801, 0, 0, 0, 0, 0, 0, 0, 802, 0, + 0, 811, 853, 0, 0, 812, 813, 0, 814, 0, + 0, 0, 0, 571, 0, 151, 150, 579, 818, 216, + 0, 0, 232, 0, 0, 234, 233, 235, 152, 153, + 164, 0, 246, 0, 0, 154, 0, 846, 862, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 636, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 184, 171, + 0, 0, 182, 0, 0, 198, 0, 0, 0, 0, + 0, 0, 0, 172, 0, 0, 183, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 818, 0, 0, 0, 819, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 818, 0, 0, - 0, 819 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 828, 0, 0, 0, 829, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 828, 0, 0, + 0, 829 }; const short int @@ -3643,230 +3684,232 @@ namespace isc { namespace dhcp { { 62, 67, 65, 65, 66, 67, 68, 69, 70, 71, 72, 70, 70, 70, 503, 65, 65, 65, 66, 67, - 68, 14, 65, 500, 5, 499, 7, 10, 9, 15, - 7, 68, 74, 75, 20, 21, 22, 23, 24, 25, - 26, 27, 11, 7, 13, 14, 3, 15, 7, 6, - 36, 28, 29, 30, 31, 84, 85, 86, 35, 28, - 29, 30, 31, 32, 33, 34, 35, 44, 36, 46, - 38, 39, 35, 41, 42, 43, 53, 54, 55, 56, - 57, 58, 45, 35, 36, 74, 75, 64, 65, 52, - 59, 60, 61, 62, 71, 36, 138, 35, 0, 15, - 64, 138, 7, 35, 73, 3, 3, 76, 24, 6, - 8, 63, 111, 112, 83, 47, 48, 49, 50, 51, - 52, 7, 91, 92, 62, 7, 95, 7, 66, 67, - 68, 69, 70, 68, 69, 118, 36, 37, 38, 39, - 40, 124, 125, 77, 78, 79, 80, 81, 82, 3, - 3, 3, 138, 6, 8, 138, 8, 138, 139, 140, - 141, 138, 3, 114, 115, 116, 117, 8, 7, 138, - 138, 87, 88, 89, 90, 138, 93, 94, 3, 120, - 3, 122, 123, 8, 3, 8, 138, 3, 3, 8, - 141, 3, 8, 8, 3, 138, 8, 138, 3, 8, - 138, 3, 3, 8, 6, 6, 138, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 696, - 694, 3, 138, 3, 3, 714, 8, 12, 8, 8, - 3, 3, 294, 7, 3, 8, 8, 7, 138, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 7, 3, 3, 3, 7, 321, - 8, 8, 8, 321, 3, 16, 17, 18, 19, 8, - 333, 333, 7, 321, 6, 337, 4, 8, 344, 3, - 3, 138, 344, 333, 333, 333, 449, 450, 451, 337, - 333, 353, 285, 286, 4, 4, 344, 4, 4, 4, - 362, 4, 4, 4, 366, 353, 3, 366, 366, 366, - 8, 4, 4, 4, 4, 139, 4, 4, 138, 8, - 4, 3, 8, 8, 386, 4, 4, 4, 4, 4, + 68, 14, 65, 500, 5, 499, 7, 10, 9, 37, + 7, 37, 38, 38, 39, 40, 41, 42, 70, 47, + 76, 77, 11, 15, 13, 14, 54, 15, 7, 86, + 87, 88, 24, 30, 31, 32, 33, 76, 77, 65, + 37, 30, 31, 32, 33, 34, 35, 36, 37, 46, + 38, 48, 40, 41, 0, 43, 44, 45, 55, 56, + 57, 58, 59, 60, 3, 37, 3, 6, 140, 66, + 67, 8, 61, 62, 63, 64, 73, 49, 50, 51, + 52, 53, 54, 38, 140, 3, 75, 66, 140, 78, + 8, 7, 116, 117, 118, 119, 85, 89, 90, 91, + 92, 3, 3, 7, 93, 94, 8, 8, 97, 113, + 114, 3, 140, 3, 140, 140, 8, 120, 8, 143, + 3, 15, 37, 126, 127, 8, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 7, 140, 7, 140, + 141, 142, 143, 140, 38, 3, 70, 71, 140, 64, + 8, 140, 140, 68, 69, 70, 71, 72, 79, 80, + 81, 82, 83, 84, 449, 450, 451, 122, 140, 124, + 125, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 7, 7, 140, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 7, 3, 3, 3, 702, 700, 8, 8, 8, + 3, 720, 294, 3, 3, 8, 3, 3, 8, 8, + 3, 8, 8, 6, 3, 140, 3, 3, 140, 8, + 3, 8, 8, 3, 3, 8, 7, 6, 8, 321, + 7, 3, 3, 321, 6, 6, 140, 95, 96, 7, + 333, 333, 7, 321, 6, 337, 12, 3, 344, 4, + 8, 3, 344, 333, 333, 333, 4, 4, 4, 337, + 333, 353, 285, 286, 4, 4, 344, 4, 140, 4, + 362, 4, 141, 4, 366, 353, 8, 366, 366, 366, + 16, 17, 18, 19, 4, 4, 4, 8, 3, 141, + 4, 4, 8, 3, 386, 4, 8, 3, 141, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 139, 139, 139, 139, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 139, 4, 4, 4, 4, - 4, 4, 4, 139, 141, 4, 4, 4, 4, 4, - 4, 4, 139, 4, 139, 139, 4, 4, 4, 4, - 4, 4, 4, 4, 139, 4, 4, 4, 4, 141, - 4, 141, 4, 4, 4, 139, 141, 4, 139, 139, - 393, 394, 4, 4, 141, 141, 4, 141, 141, 4, - 4, 7, 138, 138, 7, 7, 7, 7, 5, 5, - 5, 5, 5, 5, 5, 5, 3, 138, 7, 7, + 4, 4, 4, 4, 141, 141, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 141, 4, 4, 4, + 4, 4, 4, 4, 4, 141, 143, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 141, 141, 4, 141, + 4, 4, 4, 4, 4, 4, 141, 4, 4, 4, + 4, 143, 4, 4, 4, 143, 4, 143, 141, 4, + 393, 394, 141, 4, 141, 4, 4, 4, 4, 143, + 143, 5, 143, 143, 7, 7, 7, 7, 7, 5, + 5, 5, 5, 5, 5, 5, 3, 140, 7, 7, 492, 493, 7, 7, 492, 493, 5, 8, 5, 5, - 5, 503, 138, 505, 138, 7, 7, 7, 510, 7, - 113, 7, 510, 7, 4, 138, 7, 138, 138, 7, - 7, 4, 510, 8, 4, 4, 4, 72, 4, 6, - 3, 6, 3, 3, 138, 468, 138, 138, 6, 6, - 6, 3, 6, 4, 4, 4, 4, 4, 4, 138, - 4, 4, 4, 486, 3, 6, 3, 138, 138, 3, - 6, 4, 4, 8, 4, 4, 138, 4, 138, 138, - 4, 4, 4, 119, 4, 6, 3, 5, 138, 4, - 441, 4, 8, 138, 8, 138, 8, 7, 4, 138, - 138, 4, 7, 5, 138, 138, 4, 498, 294, 139, - 487, 491, 141, 679, 141, 493, 317, 691, 694, 700, - 139, 139, 369, 698, 707, 684, 682, 687, 333, 362, - 685, 688, 690, 139, 725, 727, 139, 139, 733, 139, - 730, 139, 366, 728, 337, 139, 139, 731, 344, 510, - 139, 714, 139, 138, 718, 138, 138, 505, 667, 138, - 813, 353, 138, 386, 138, 829, 138, 138, 121, 841, - 848, -1, -1, -1, -1, 139, 138, -1, -1, 138, - -1, -1, -1, -1, -1, -1, -1, 679, -1, 682, - 682, 679, -1, 685, -1, -1, 688, -1, -1, 688, - 688, 688, 682, 682, 682, -1, 698, -1, -1, 682, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 714, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 728, 725, -1, -1, 728, -1, -1, 731, - -1, -1, -1, -1, -1, -1, -1, 725, -1, -1, - 728, -1, -1, 731, -1, -1, -1, -1, -1, -1, + 140, 503, 140, 505, 140, 140, 5, 7, 510, 7, + 7, 7, 510, 140, 7, 7, 4, 7, 7, 140, + 7, 4, 510, 140, 8, 4, 4, 4, 4, 3, + 441, 6, 3, 6, 74, 468, 6, 3, 6, 6, + 140, 140, 3, 6, 4, 4, 4, 4, 4, 4, + 4, 4, 140, 486, 4, 3, 3, 6, 3, 498, + 6, 140, 140, 4, 8, 4, 4, 4, 4, 4, + 4, 115, 140, 140, 4, 140, 4, 4, 4, 121, + 3, 6, 140, 4, 8, 5, 8, 140, 4, 8, + 7, 140, 4, 140, 140, 4, 7, 140, 5, 4, + 294, 487, 317, 491, 493, 140, 685, 697, 700, 706, + 704, 369, 140, 713, 141, 690, 688, 693, 691, 333, + 362, 366, 696, 694, 733, 731, 337, 143, 141, 736, + 140, 143, 734, 141, 739, 353, 141, 141, 141, 141, + 141, 737, 510, 344, 724, 505, 141, 141, 386, 671, + 141, 720, 823, 839, 851, 141, 141, 858, 140, 140, + 140, -1, -1, -1, -1, -1, -1, -1, 140, -1, + -1, 140, 123, -1, -1, 140, 140, -1, 140, -1, + -1, -1, -1, 685, -1, 688, 688, 685, 140, 691, + -1, -1, 694, -1, -1, 694, 694, 694, 688, 688, + 688, -1, 704, -1, -1, 688, -1, 140, 140, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 720, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 734, 731, + -1, -1, 734, -1, -1, 737, -1, -1, -1, -1, + -1, -1, -1, 731, -1, -1, 734, -1, -1, 737, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 812, -1, -1, -1, 812, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 829, -1, -1, - -1, 829 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 822, -1, -1, -1, 822, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 839, -1, -1, + -1, 839 }; const unsigned short int Dhcp6Parser::yystos_[] = { - 0, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 0, 5, 7, 9, - 138, 139, 140, 141, 156, 157, 158, 163, 7, 172, - 7, 178, 7, 189, 7, 258, 7, 321, 7, 335, - 7, 352, 7, 280, 7, 304, 7, 234, 7, 406, - 164, 159, 173, 179, 190, 259, 322, 336, 353, 281, - 305, 235, 407, 156, 165, 166, 138, 161, 162, 10, - 118, 124, 125, 138, 171, 174, 175, 176, 434, 436, - 438, 11, 13, 14, 28, 29, 30, 31, 32, 33, - 34, 35, 59, 60, 61, 62, 73, 76, 83, 91, - 92, 95, 171, 180, 181, 182, 183, 184, 185, 186, - 187, 193, 195, 215, 221, 226, 228, 242, 252, 274, - 298, 373, 383, 395, 396, 404, 12, 191, 7, 44, - 46, 53, 54, 55, 56, 57, 58, 64, 65, 71, - 171, 182, 183, 184, 185, 260, 261, 262, 264, 266, - 268, 270, 272, 273, 298, 315, 329, 346, 369, 45, - 52, 171, 298, 323, 324, 325, 327, 47, 48, 49, - 50, 51, 171, 298, 327, 337, 338, 339, 341, 342, - 344, 345, 62, 66, 67, 68, 69, 70, 171, 298, - 354, 355, 356, 357, 359, 361, 363, 365, 367, 15, - 36, 38, 39, 41, 42, 43, 171, 209, 282, 283, - 284, 285, 286, 287, 288, 290, 292, 294, 295, 297, - 37, 40, 171, 209, 286, 292, 306, 307, 308, 309, - 310, 312, 313, 314, 74, 75, 171, 236, 237, 238, - 240, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 171, 408, 409, 410, - 411, 413, 415, 416, 418, 419, 420, 423, 425, 426, - 427, 428, 429, 432, 6, 3, 4, 8, 3, 177, - 439, 435, 437, 4, 3, 8, 188, 194, 196, 4, - 4, 4, 4, 4, 253, 275, 299, 216, 227, 222, - 374, 229, 243, 384, 4, 397, 405, 3, 8, 192, - 8, 376, 316, 330, 263, 265, 267, 4, 4, 271, - 269, 347, 370, 3, 8, 326, 328, 3, 8, 340, - 4, 343, 4, 4, 3, 8, 368, 358, 360, 362, - 364, 366, 8, 3, 289, 210, 4, 293, 291, 296, - 4, 8, 3, 311, 4, 8, 3, 239, 241, 3, - 8, 4, 412, 414, 4, 417, 4, 4, 421, 424, - 4, 4, 4, 4, 430, 433, 3, 8, 156, 156, - 138, 4, 4, 4, 4, 175, 4, 4, 4, 139, - 139, 139, 139, 139, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 139, 4, 4, 181, 4, 63, - 171, 209, 298, 377, 378, 379, 380, 381, 4, 4, - 4, 4, 4, 139, 141, 4, 4, 4, 4, 261, - 4, 4, 324, 4, 139, 4, 139, 139, 338, 4, - 4, 4, 4, 4, 4, 356, 4, 4, 139, 4, - 4, 4, 141, 284, 4, 141, 308, 4, 4, 237, - 141, 4, 4, 139, 4, 139, 139, 4, 4, 141, - 141, 141, 141, 4, 4, 409, 4, 7, 7, 156, - 156, 7, 7, 7, 5, 5, 5, 5, 5, 5, - 5, 5, 7, 7, 7, 7, 5, 167, 382, 8, - 3, 5, 5, 138, 138, 138, 138, 138, 5, 7, - 138, 158, 160, 138, 138, 167, 167, 167, 138, 138, - 138, 138, 138, 138, 138, 138, 138, 138, 156, 138, - 138, 138, 111, 112, 422, 113, 114, 115, 116, 117, - 141, 431, 138, 156, 180, 119, 440, 441, 442, 191, - 15, 20, 21, 22, 23, 24, 25, 26, 27, 171, - 197, 198, 199, 202, 204, 206, 208, 209, 211, 212, - 213, 214, 197, 7, 254, 255, 256, 7, 276, 277, - 278, 7, 300, 301, 302, 68, 138, 217, 218, 219, - 220, 165, 69, 219, 223, 224, 225, 268, 375, 7, - 230, 231, 232, 77, 78, 79, 80, 81, 82, 244, - 245, 246, 247, 248, 249, 250, 251, 15, 87, 88, - 89, 90, 171, 211, 385, 386, 387, 390, 391, 393, - 394, 93, 94, 398, 399, 400, 402, 408, 168, 4, - 379, 7, 317, 318, 319, 7, 331, 332, 333, 7, - 348, 349, 350, 72, 371, 8, 443, 3, 8, 8, - 200, 203, 205, 207, 4, 4, 4, 4, 4, 3, - 8, 8, 257, 6, 3, 279, 6, 3, 303, 6, - 3, 3, 6, 6, 3, 6, 3, 6, 233, 6, - 3, 4, 4, 4, 4, 4, 4, 3, 8, 388, - 392, 4, 4, 4, 3, 8, 401, 403, 3, 8, - 8, 138, 169, 170, 138, 320, 6, 3, 334, 6, - 3, 351, 6, 3, 372, 8, 4, 441, 4, 4, - 4, 4, 139, 141, 139, 141, 139, 198, 260, 256, - 282, 278, 306, 302, 218, 224, 268, 236, 232, 139, - 139, 139, 139, 139, 139, 245, 4, 4, 139, 139, - 139, 386, 4, 4, 399, 6, 3, 323, 319, 337, - 333, 354, 350, 4, 5, 16, 17, 18, 19, 201, - 138, 138, 138, 8, 8, 8, 8, 84, 85, 86, - 389, 138, 138, 138, 138, 8, 8, 8, 138, 7, - 444, 445, 446, 3, 6, 120, 122, 123, 171, 209, - 447, 448, 449, 450, 452, 445, 453, 4, 451, 3, - 8, 4, 139, 4, 448, 5, 138, 7, 454, 455, - 456, 3, 6, 121, 457, 458, 455, 459, 3, 8, - 4, 458, 138 + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 0, 5, 7, 9, + 140, 141, 142, 143, 158, 159, 160, 165, 7, 174, + 7, 180, 7, 191, 7, 264, 7, 327, 7, 341, + 7, 358, 7, 286, 7, 310, 7, 240, 7, 412, + 166, 161, 175, 181, 192, 265, 328, 342, 359, 287, + 311, 241, 413, 158, 167, 168, 140, 163, 164, 10, + 120, 126, 127, 140, 173, 176, 177, 178, 440, 442, + 444, 11, 13, 14, 30, 31, 32, 33, 34, 35, + 36, 37, 61, 62, 63, 64, 75, 78, 85, 93, + 94, 97, 173, 182, 183, 184, 185, 186, 187, 188, + 189, 195, 197, 221, 227, 232, 234, 248, 258, 280, + 304, 379, 389, 401, 402, 410, 12, 193, 7, 46, + 48, 55, 56, 57, 58, 59, 60, 66, 67, 73, + 173, 184, 185, 186, 187, 266, 267, 268, 270, 272, + 274, 276, 278, 279, 304, 321, 335, 352, 375, 47, + 54, 173, 304, 329, 330, 331, 333, 49, 50, 51, + 52, 53, 173, 304, 333, 343, 344, 345, 347, 348, + 350, 351, 64, 68, 69, 70, 71, 72, 173, 304, + 360, 361, 362, 363, 365, 367, 369, 371, 373, 15, + 38, 40, 41, 43, 44, 45, 173, 211, 288, 289, + 290, 291, 292, 293, 294, 296, 298, 300, 301, 303, + 39, 42, 173, 211, 292, 298, 312, 313, 314, 315, + 316, 318, 319, 320, 76, 77, 173, 242, 243, 244, + 246, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 173, 414, 415, 416, + 417, 419, 421, 422, 424, 425, 426, 429, 431, 432, + 433, 434, 435, 438, 6, 3, 4, 8, 3, 179, + 445, 441, 443, 4, 3, 8, 190, 196, 198, 4, + 4, 4, 4, 4, 259, 281, 305, 222, 233, 228, + 380, 235, 249, 390, 4, 403, 411, 3, 8, 194, + 8, 382, 322, 336, 269, 271, 273, 4, 4, 277, + 275, 353, 376, 3, 8, 332, 334, 3, 8, 346, + 4, 349, 4, 4, 3, 8, 374, 364, 366, 368, + 370, 372, 8, 3, 295, 212, 4, 299, 297, 302, + 4, 8, 3, 317, 4, 8, 3, 245, 247, 3, + 8, 4, 418, 420, 4, 423, 4, 4, 427, 430, + 4, 4, 4, 4, 436, 439, 3, 8, 158, 158, + 140, 4, 4, 4, 4, 177, 4, 4, 4, 141, + 141, 141, 141, 141, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 141, 4, 4, 183, 4, 65, + 173, 211, 304, 383, 384, 385, 386, 387, 4, 4, + 4, 4, 4, 141, 143, 4, 4, 4, 4, 267, + 4, 4, 330, 4, 141, 4, 141, 141, 344, 4, + 4, 4, 4, 4, 4, 362, 4, 4, 141, 4, + 4, 4, 143, 290, 4, 143, 314, 4, 4, 243, + 143, 4, 4, 141, 4, 141, 141, 4, 4, 143, + 143, 143, 143, 4, 4, 415, 4, 7, 7, 158, + 158, 7, 7, 7, 5, 5, 5, 5, 5, 5, + 5, 5, 7, 7, 7, 7, 5, 169, 388, 8, + 3, 5, 5, 140, 140, 140, 140, 140, 5, 7, + 140, 160, 162, 140, 140, 169, 169, 169, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 158, 140, + 140, 140, 113, 114, 428, 115, 116, 117, 118, 119, + 143, 437, 140, 158, 182, 121, 446, 447, 448, 193, + 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 173, 199, 200, 201, 204, 206, 208, 210, 211, + 213, 214, 215, 216, 217, 219, 199, 7, 260, 261, + 262, 7, 282, 283, 284, 7, 306, 307, 308, 70, + 140, 223, 224, 225, 226, 167, 71, 225, 229, 230, + 231, 274, 381, 7, 236, 237, 238, 79, 80, 81, + 82, 83, 84, 250, 251, 252, 253, 254, 255, 256, + 257, 15, 89, 90, 91, 92, 173, 213, 391, 392, + 393, 396, 397, 399, 400, 95, 96, 404, 405, 406, + 408, 414, 170, 4, 385, 7, 323, 324, 325, 7, + 337, 338, 339, 7, 354, 355, 356, 74, 377, 8, + 449, 3, 8, 8, 202, 205, 207, 209, 4, 4, + 4, 4, 4, 218, 220, 3, 8, 8, 263, 6, + 3, 285, 6, 3, 309, 6, 3, 3, 6, 6, + 3, 6, 3, 6, 239, 6, 3, 4, 4, 4, + 4, 4, 4, 3, 8, 394, 398, 4, 4, 4, + 3, 8, 407, 409, 3, 8, 8, 140, 171, 172, + 140, 326, 6, 3, 340, 6, 3, 357, 6, 3, + 378, 8, 4, 447, 4, 4, 4, 4, 141, 143, + 141, 143, 141, 4, 4, 200, 266, 262, 288, 284, + 312, 308, 224, 230, 274, 242, 238, 141, 141, 141, + 141, 141, 141, 251, 4, 4, 141, 141, 141, 392, + 4, 4, 405, 6, 3, 329, 325, 343, 339, 360, + 356, 4, 5, 16, 17, 18, 19, 203, 140, 140, + 140, 140, 140, 8, 8, 8, 8, 86, 87, 88, + 395, 140, 140, 140, 140, 8, 8, 8, 140, 7, + 450, 451, 452, 3, 6, 122, 124, 125, 173, 211, + 453, 454, 455, 456, 458, 451, 459, 4, 457, 3, + 8, 4, 141, 4, 454, 5, 140, 7, 460, 461, + 462, 3, 6, 123, 463, 464, 461, 465, 3, 8, + 4, 464, 140 }; const unsigned short int Dhcp6Parser::yyr1_[] = { - 0, 142, 144, 143, 145, 143, 146, 143, 147, 143, - 148, 143, 149, 143, 150, 143, 151, 143, 152, 143, - 153, 143, 154, 143, 155, 143, 156, 156, 156, 156, - 156, 156, 156, 157, 159, 158, 160, 161, 161, 162, - 162, 164, 163, 165, 165, 166, 166, 168, 167, 169, - 169, 170, 170, 171, 173, 172, 174, 174, 175, 175, - 175, 175, 175, 177, 176, 179, 178, 180, 180, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 182, 183, 184, 185, 186, 188, 187, 190, 189, - 192, 191, 194, 193, 196, 195, 197, 197, 198, 198, - 198, 198, 198, 198, 198, 198, 198, 198, 198, 200, - 199, 201, 201, 201, 201, 203, 202, 205, 204, 207, - 206, 208, 210, 209, 211, 212, 213, 214, 216, 215, - 217, 217, 218, 218, 219, 220, 222, 221, 223, 223, - 224, 224, 225, 227, 226, 229, 228, 230, 230, 231, - 231, 233, 232, 235, 234, 236, 236, 236, 237, 237, - 239, 238, 241, 240, 243, 242, 244, 244, 245, 245, - 245, 245, 245, 245, 246, 247, 248, 249, 250, 251, - 253, 252, 254, 254, 255, 255, 257, 256, 259, 258, - 260, 260, 261, 261, 261, 261, 261, 261, 261, 261, - 261, 261, 261, 261, 261, 261, 261, 261, 261, 263, - 262, 265, 264, 267, 266, 269, 268, 271, 270, 272, - 273, 275, 274, 276, 276, 277, 277, 279, 278, 281, - 280, 282, 282, 283, 283, 284, 284, 284, 284, 284, - 284, 284, 284, 285, 286, 287, 289, 288, 291, 290, - 293, 292, 294, 296, 295, 297, 299, 298, 300, 300, - 301, 301, 303, 302, 305, 304, 306, 306, 307, 307, - 308, 308, 308, 308, 308, 308, 309, 311, 310, 312, - 313, 314, 316, 315, 317, 317, 318, 318, 320, 319, - 322, 321, 323, 323, 324, 324, 324, 324, 326, 325, - 328, 327, 330, 329, 331, 331, 332, 332, 334, 333, - 336, 335, 337, 337, 338, 338, 338, 338, 338, 338, - 338, 338, 340, 339, 341, 343, 342, 344, 345, 347, - 346, 348, 348, 349, 349, 351, 350, 353, 352, 354, - 354, 355, 355, 356, 356, 356, 356, 356, 356, 356, - 356, 358, 357, 360, 359, 362, 361, 364, 363, 366, - 365, 368, 367, 370, 369, 372, 371, 374, 373, 375, - 375, 376, 268, 377, 377, 378, 378, 379, 379, 379, - 379, 380, 382, 381, 384, 383, 385, 385, 386, 386, - 386, 386, 386, 386, 386, 388, 387, 389, 389, 389, - 390, 392, 391, 393, 394, 395, 397, 396, 398, 398, - 399, 399, 401, 400, 403, 402, 405, 404, 407, 406, - 408, 408, 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 409, 410, 412, - 411, 414, 413, 415, 417, 416, 418, 419, 421, 420, - 422, 422, 424, 423, 425, 426, 427, 428, 430, 429, - 431, 431, 431, 431, 431, 433, 432, 435, 434, 437, - 436, 439, 438, 440, 440, 441, 443, 442, 444, 444, - 446, 445, 447, 447, 448, 448, 448, 448, 448, 449, - 451, 450, 453, 452, 454, 454, 456, 455, 457, 457, - 459, 458 + 0, 144, 146, 145, 147, 145, 148, 145, 149, 145, + 150, 145, 151, 145, 152, 145, 153, 145, 154, 145, + 155, 145, 156, 145, 157, 145, 158, 158, 158, 158, + 158, 158, 158, 159, 161, 160, 162, 163, 163, 164, + 164, 166, 165, 167, 167, 168, 168, 170, 169, 171, + 171, 172, 172, 173, 175, 174, 176, 176, 177, 177, + 177, 177, 177, 179, 178, 181, 180, 182, 182, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 184, 185, 186, 187, 188, 190, 189, 192, 191, + 194, 193, 196, 195, 198, 197, 199, 199, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 202, 201, 203, 203, 203, 203, 205, 204, 207, + 206, 209, 208, 210, 212, 211, 213, 214, 215, 216, + 218, 217, 220, 219, 222, 221, 223, 223, 224, 224, + 225, 226, 228, 227, 229, 229, 230, 230, 231, 233, + 232, 235, 234, 236, 236, 237, 237, 239, 238, 241, + 240, 242, 242, 242, 243, 243, 245, 244, 247, 246, + 249, 248, 250, 250, 251, 251, 251, 251, 251, 251, + 252, 253, 254, 255, 256, 257, 259, 258, 260, 260, + 261, 261, 263, 262, 265, 264, 266, 266, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 269, 268, 271, 270, 273, + 272, 275, 274, 277, 276, 278, 279, 281, 280, 282, + 282, 283, 283, 285, 284, 287, 286, 288, 288, 289, + 289, 290, 290, 290, 290, 290, 290, 290, 290, 291, + 292, 293, 295, 294, 297, 296, 299, 298, 300, 302, + 301, 303, 305, 304, 306, 306, 307, 307, 309, 308, + 311, 310, 312, 312, 313, 313, 314, 314, 314, 314, + 314, 314, 315, 317, 316, 318, 319, 320, 322, 321, + 323, 323, 324, 324, 326, 325, 328, 327, 329, 329, + 330, 330, 330, 330, 332, 331, 334, 333, 336, 335, + 337, 337, 338, 338, 340, 339, 342, 341, 343, 343, + 344, 344, 344, 344, 344, 344, 344, 344, 346, 345, + 347, 349, 348, 350, 351, 353, 352, 354, 354, 355, + 355, 357, 356, 359, 358, 360, 360, 361, 361, 362, + 362, 362, 362, 362, 362, 362, 362, 364, 363, 366, + 365, 368, 367, 370, 369, 372, 371, 374, 373, 376, + 375, 378, 377, 380, 379, 381, 381, 382, 274, 383, + 383, 384, 384, 385, 385, 385, 385, 386, 388, 387, + 390, 389, 391, 391, 392, 392, 392, 392, 392, 392, + 392, 394, 393, 395, 395, 395, 396, 398, 397, 399, + 400, 401, 403, 402, 404, 404, 405, 405, 407, 406, + 409, 408, 411, 410, 413, 412, 414, 414, 415, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, + 415, 415, 415, 415, 416, 418, 417, 420, 419, 421, + 423, 422, 424, 425, 427, 426, 428, 428, 430, 429, + 431, 432, 433, 434, 436, 435, 437, 437, 437, 437, + 437, 439, 438, 441, 440, 443, 442, 445, 444, 446, + 446, 447, 449, 448, 450, 450, 452, 451, 453, 453, + 454, 454, 454, 454, 454, 455, 457, 456, 459, 458, + 460, 460, 462, 461, 463, 463, 465, 464 }; const unsigned char @@ -3883,47 +3926,47 @@ namespace isc { namespace dhcp { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 6, 0, 4, 0, 4, 0, 6, 0, 6, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 4, 3, 0, 4, 3, 3, 3, 3, 0, 6, - 1, 3, 1, 1, 1, 1, 0, 6, 1, 3, - 1, 1, 1, 0, 6, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 4, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 4, 3, 0, 4, 3, 3, 3, 3, 0, 4, 0, 4, 0, 6, 1, 3, 1, 1, - 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 3, - 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, - 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 0, 4, 0, 4, - 0, 4, 1, 0, 4, 3, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, - 1, 3, 0, 6, 0, 1, 1, 3, 0, 4, - 0, 4, 1, 3, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 0, 1, 1, 3, 0, 4, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 3, 0, 4, 3, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, - 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 6, 0, 4, 0, 6, 1, - 3, 0, 4, 0, 1, 1, 3, 1, 1, 1, - 1, 1, 0, 4, 0, 6, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, - 3, 0, 4, 3, 3, 3, 0, 6, 1, 3, - 1, 1, 0, 4, 0, 4, 0, 6, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, - 4, 0, 4, 3, 0, 4, 3, 3, 0, 4, - 1, 1, 0, 4, 3, 3, 3, 3, 0, 4, + 1, 1, 0, 6, 1, 3, 1, 1, 1, 0, + 6, 0, 6, 0, 1, 1, 3, 0, 4, 0, + 4, 1, 3, 1, 1, 1, 0, 4, 0, 4, + 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 0, 6, 0, 1, + 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 4, 0, 6, 1, 3, 1, 0, 6, 1, 3, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 3, - 0, 4, 0, 6, 1, 3, 0, 4, 1, 3, - 0, 4 + 4, 0, 4, 0, 4, 3, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 0, 4, 0, 4, 0, 4, 1, 0, + 4, 3, 0, 6, 0, 1, 1, 3, 0, 4, + 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 1, 1, 3, 0, 6, + 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 3, 0, 4, 3, 3, 0, 6, 0, 1, 1, + 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 6, 0, 4, 0, 6, 1, 3, 0, 4, 0, + 1, 1, 3, 1, 1, 1, 1, 1, 0, 4, + 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 0, 4, 1, 1, 1, 3, 0, 4, 3, + 3, 3, 0, 6, 1, 3, 1, 1, 0, 4, + 0, 4, 0, 6, 0, 4, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 0, 4, 0, 4, 3, + 0, 4, 3, 3, 0, 4, 1, 1, 0, 4, + 3, 3, 3, 3, 0, 4, 1, 1, 1, 1, + 1, 0, 4, 0, 4, 0, 4, 0, 6, 1, + 3, 1, 0, 6, 1, 3, 0, 4, 1, 3, + 1, 1, 1, 1, 1, 3, 0, 4, 0, 6, + 1, 3, 0, 4, 1, 3, 0, 4 }; @@ -3939,20 +3982,21 @@ namespace isc { namespace dhcp { "\"hosts-database\"", "\"type\"", "\"memfile\"", "\"mysql\"", "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"", - "\"connect-timeout\"", "\"preferred-lifetime\"", "\"valid-lifetime\"", - "\"renew-timer\"", "\"rebind-timer\"", "\"decline-probation-period\"", - "\"subnet6\"", "\"option-def\"", "\"option-data\"", "\"name\"", - "\"data\"", "\"code\"", "\"space\"", "\"csv-format\"", - "\"record-types\"", "\"encapsulate\"", "\"array\"", "\"pools\"", - "\"pool\"", "\"pd-pools\"", "\"prefix\"", "\"prefix-len\"", - "\"excluded-prefix\"", "\"excluded-prefix-len\"", "\"delegated-len\"", - "\"user-context\"", "\"subnet\"", "\"interface\"", "\"interface-id\"", - "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"", "\"mac-sources\"", - "\"relay-supplied-options\"", "\"host-reservation-identifiers\"", - "\"client-classes\"", "\"test\"", "\"client-class\"", "\"reservations\"", - "\"ip-addresses\"", "\"prefixes\"", "\"duid\"", "\"hw-address\"", - "\"hostname\"", "\"relay\"", "\"ip-address\"", "\"hooks-libraries\"", - "\"library\"", "\"parameters\"", "\"expired-leases-processing\"", + "\"connect-timeout\"", "\"contact_points\"", "\"keyspace\"", + "\"preferred-lifetime\"", "\"valid-lifetime\"", "\"renew-timer\"", + "\"rebind-timer\"", "\"decline-probation-period\"", "\"subnet6\"", + "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", + "\"space\"", "\"csv-format\"", "\"record-types\"", "\"encapsulate\"", + "\"array\"", "\"pools\"", "\"pool\"", "\"pd-pools\"", "\"prefix\"", + "\"prefix-len\"", "\"excluded-prefix\"", "\"excluded-prefix-len\"", + "\"delegated-len\"", "\"user-context\"", "\"subnet\"", "\"interface\"", + "\"interface-id\"", "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"", + "\"mac-sources\"", "\"relay-supplied-options\"", + "\"host-reservation-identifiers\"", "\"client-classes\"", "\"test\"", + "\"client-class\"", "\"reservations\"", "\"ip-addresses\"", + "\"prefixes\"", "\"duid\"", "\"hw-address\"", "\"hostname\"", + "\"relay\"", "\"ip-address\"", "\"hooks-libraries\"", "\"library\"", + "\"parameters\"", "\"expired-leases-processing\"", "\"reclaim-timer-wait-time\"", "\"flush-reclaimed-timer-wait-time\"", "\"hold-reclaimed-time\"", "\"max-reclaim-leases\"", "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"", "\"server-id\"", @@ -3987,125 +4031,126 @@ namespace isc { namespace dhcp { "database_map_params", "database_map_param", "database_type", "$@24", "db_type", "user", "$@25", "password", "$@26", "host", "$@27", "port", "name", "$@28", "persist", "lfc_interval", "readonly", "connect_timeout", - "mac_sources", "$@29", "mac_sources_list", "mac_sources_value", - "duid_id", "string_id", "host_reservation_identifiers", "$@30", + "contact_points", "$@29", "keyspace", "$@30", "mac_sources", "$@31", + "mac_sources_list", "mac_sources_value", "duid_id", "string_id", + "host_reservation_identifiers", "$@32", "host_reservation_identifiers_list", "host_reservation_identifier", - "hw_address_id", "relay_supplied_options", "$@31", "hooks_libraries", - "$@32", "hooks_libraries_list", "not_empty_hooks_libraries_list", - "hooks_library", "$@33", "sub_hooks_library", "$@34", "hooks_params", - "hooks_param", "library", "$@35", "parameters", "$@36", - "expired_leases_processing", "$@37", "expired_leases_params", + "hw_address_id", "relay_supplied_options", "$@33", "hooks_libraries", + "$@34", "hooks_libraries_list", "not_empty_hooks_libraries_list", + "hooks_library", "$@35", "sub_hooks_library", "$@36", "hooks_params", + "hooks_param", "library", "$@37", "parameters", "$@38", + "expired_leases_processing", "$@39", "expired_leases_params", "expired_leases_param", "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time", "unwarned_reclaim_cycles", - "subnet6_list", "$@38", "subnet6_list_content", "not_empty_subnet6_list", - "subnet6", "$@39", "sub_subnet6", "$@40", "subnet6_params", - "subnet6_param", "subnet", "$@41", "interface", "$@42", "interface_id", - "$@43", "client_class", "$@44", "reservation_mode", "$@45", "id", - "rapid_commit", "option_def_list", "$@46", "option_def_list_content", - "not_empty_option_def_list", "option_def_entry", "$@47", - "sub_option_def", "$@48", "option_def_params", + "subnet6_list", "$@40", "subnet6_list_content", "not_empty_subnet6_list", + "subnet6", "$@41", "sub_subnet6", "$@42", "subnet6_params", + "subnet6_param", "subnet", "$@43", "interface", "$@44", "interface_id", + "$@45", "client_class", "$@46", "reservation_mode", "$@47", "id", + "rapid_commit", "option_def_list", "$@48", "option_def_list_content", + "not_empty_option_def_list", "option_def_entry", "$@49", + "sub_option_def", "$@50", "option_def_params", "not_empty_option_def_params", "option_def_param", "option_def_name", - "code", "option_def_code", "option_def_type", "$@49", - "option_def_record_types", "$@50", "space", "$@51", "option_def_space", - "option_def_encapsulate", "$@52", "option_def_array", "option_data_list", - "$@53", "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@54", "sub_option_data", "$@55", + "code", "option_def_code", "option_def_type", "$@51", + "option_def_record_types", "$@52", "space", "$@53", "option_def_space", + "option_def_encapsulate", "$@54", "option_def_array", "option_data_list", + "$@55", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@56", "sub_option_data", "$@57", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@56", + "option_data_param", "option_data_name", "option_data_data", "$@58", "option_data_code", "option_data_space", "option_data_csv_format", - "pools_list", "$@57", "pools_list_content", "not_empty_pools_list", - "pool_list_entry", "$@58", "sub_pool6", "$@59", "pool_params", - "pool_param", "pool_entry", "$@60", "user_context", "$@61", - "pd_pools_list", "$@62", "pd_pools_list_content", - "not_empty_pd_pools_list", "pd_pool_entry", "$@63", "sub_pd_pool", - "$@64", "pd_pool_params", "pd_pool_param", "pd_prefix", "$@65", - "pd_prefix_len", "excluded_prefix", "$@66", "excluded_prefix_len", - "pd_delegated_len", "reservations", "$@67", "reservations_list", - "not_empty_reservations_list", "reservation", "$@68", "sub_reservation", - "$@69", "reservation_params", "not_empty_reservation_params", - "reservation_param", "ip_addresses", "$@70", "prefixes", "$@71", "duid", - "$@72", "hw_address", "$@73", "hostname", "$@74", - "reservation_client_classes", "$@75", "relay", "$@76", "relay_map", - "$@77", "client_classes", "$@78", "client_classes_list", "$@79", + "pools_list", "$@59", "pools_list_content", "not_empty_pools_list", + "pool_list_entry", "$@60", "sub_pool6", "$@61", "pool_params", + "pool_param", "pool_entry", "$@62", "user_context", "$@63", + "pd_pools_list", "$@64", "pd_pools_list_content", + "not_empty_pd_pools_list", "pd_pool_entry", "$@65", "sub_pd_pool", + "$@66", "pd_pool_params", "pd_pool_param", "pd_prefix", "$@67", + "pd_prefix_len", "excluded_prefix", "$@68", "excluded_prefix_len", + "pd_delegated_len", "reservations", "$@69", "reservations_list", + "not_empty_reservations_list", "reservation", "$@70", "sub_reservation", + "$@71", "reservation_params", "not_empty_reservation_params", + "reservation_param", "ip_addresses", "$@72", "prefixes", "$@73", "duid", + "$@74", "hw_address", "$@75", "hostname", "$@76", + "reservation_client_classes", "$@77", "relay", "$@78", "relay_map", + "$@79", "client_classes", "$@80", "client_classes_list", "$@81", "client_class_params", "not_empty_client_class_params", - "client_class_param", "client_class_name", "client_class_test", "$@80", - "server_id", "$@81", "server_id_params", "server_id_param", - "server_id_type", "$@82", "duid_type", "htype", "identifier", "$@83", - "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@84", - "control_socket_params", "control_socket_param", "socket_type", "$@85", - "socket_name", "$@86", "dhcp_ddns", "$@87", "sub_dhcp_ddns", "$@88", + "client_class_param", "client_class_name", "client_class_test", "$@82", + "server_id", "$@83", "server_id_params", "server_id_param", + "server_id_type", "$@84", "duid_type", "htype", "identifier", "$@85", + "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@86", + "control_socket_params", "control_socket_param", "socket_type", "$@87", + "socket_name", "$@88", "dhcp_ddns", "$@89", "sub_dhcp_ddns", "$@90", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates", - "qualifying_suffix", "$@89", "server_ip", "$@90", "server_port", - "sender_ip", "$@91", "sender_port", "max_queue_size", "ncr_protocol", - "$@92", "ncr_protocol_value", "ncr_format", "$@93", + "qualifying_suffix", "$@91", "server_ip", "$@92", "server_port", + "sender_ip", "$@93", "sender_port", "max_queue_size", "ncr_protocol", + "$@94", "ncr_protocol_value", "ncr_format", "$@95", "always_include_fqdn", "allow_client_update", "override_no_update", - "override_client_update", "replace_client_name", "$@94", - "replace_client_name_value", "generated_prefix", "$@95", - "dhcp4_json_object", "$@96", "dhcpddns_json_object", "$@97", - "logging_object", "$@98", "logging_params", "logging_param", "loggers", - "$@99", "loggers_entries", "logger_entry", "$@100", "logger_params", - "logger_param", "debuglevel", "severity", "$@101", "output_options_list", - "$@102", "output_options_list_content", "output_entry", "$@103", - "output_params", "output_param", "$@104", YY_NULLPTR + "override_client_update", "replace_client_name", "$@96", + "replace_client_name_value", "generated_prefix", "$@97", + "dhcp4_json_object", "$@98", "dhcpddns_json_object", "$@99", + "logging_object", "$@100", "logging_params", "logging_param", "loggers", + "$@101", "loggers_entries", "logger_entry", "$@102", "logger_params", + "logger_param", "debuglevel", "severity", "$@103", "output_options_list", + "$@104", "output_options_list_content", "output_entry", "$@105", + "output_params", "output_param", "$@106", YY_NULLPTR }; #if PARSER6_DEBUG const unsigned short int Dhcp6Parser::yyrline_[] = { - 0, 222, 222, 222, 223, 223, 224, 224, 225, 225, - 226, 226, 227, 227, 228, 228, 229, 229, 230, 230, - 231, 231, 232, 232, 233, 233, 241, 242, 243, 244, - 245, 246, 247, 250, 255, 255, 266, 269, 270, 273, - 277, 284, 284, 291, 292, 295, 299, 306, 306, 313, - 314, 317, 321, 332, 342, 342, 354, 355, 359, 360, - 361, 362, 363, 366, 366, 383, 383, 391, 392, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 421, 426, 431, 436, 441, 446, 446, 456, 456, - 464, 464, 474, 474, 484, 484, 494, 495, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 511, - 511, 518, 519, 520, 521, 524, 524, 532, 532, 540, - 540, 548, 553, 553, 561, 566, 571, 576, 581, 581, - 591, 592, 595, 596, 599, 604, 609, 609, 619, 620, - 623, 624, 627, 634, 634, 644, 644, 654, 655, 658, - 659, 662, 662, 670, 670, 678, 679, 680, 683, 684, - 687, 687, 695, 695, 703, 703, 713, 714, 717, 718, - 719, 720, 721, 722, 725, 730, 735, 740, 745, 750, - 758, 758, 771, 772, 775, 776, 783, 783, 806, 806, - 815, 816, 820, 821, 822, 823, 824, 825, 826, 827, - 828, 829, 830, 831, 832, 833, 834, 835, 836, 839, - 839, 847, 847, 855, 855, 863, 863, 871, 871, 879, - 884, 893, 893, 905, 906, 909, 910, 915, 915, 926, - 926, 936, 937, 940, 941, 944, 945, 946, 947, 948, - 949, 950, 951, 954, 956, 961, 963, 963, 971, 971, - 979, 979, 987, 989, 989, 997, 1006, 1006, 1018, 1019, - 1024, 1025, 1030, 1030, 1041, 1041, 1052, 1053, 1058, 1059, - 1064, 1065, 1066, 1067, 1068, 1069, 1072, 1074, 1074, 1082, - 1084, 1086, 1094, 1094, 1106, 1107, 1110, 1111, 1114, 1114, - 1122, 1122, 1130, 1131, 1134, 1135, 1136, 1137, 1140, 1140, - 1148, 1148, 1158, 1158, 1170, 1171, 1174, 1175, 1178, 1178, - 1186, 1186, 1194, 1195, 1198, 1199, 1200, 1201, 1202, 1203, - 1204, 1205, 1208, 1208, 1216, 1221, 1221, 1229, 1234, 1242, - 1242, 1252, 1253, 1256, 1257, 1260, 1260, 1268, 1268, 1276, - 1277, 1280, 1281, 1285, 1286, 1287, 1288, 1289, 1290, 1291, - 1292, 1295, 1295, 1305, 1305, 1315, 1315, 1323, 1323, 1331, - 1331, 1339, 1339, 1352, 1352, 1362, 1362, 1373, 1373, 1383, - 1384, 1387, 1387, 1395, 1396, 1399, 1400, 1403, 1404, 1405, - 1406, 1409, 1411, 1411, 1422, 1422, 1432, 1433, 1436, 1437, - 1438, 1439, 1440, 1441, 1442, 1445, 1445, 1452, 1453, 1454, - 1457, 1462, 1462, 1470, 1475, 1482, 1489, 1489, 1499, 1500, - 1503, 1504, 1507, 1507, 1515, 1515, 1525, 1525, 1535, 1535, - 1543, 1544, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, - 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1565, 1570, - 1570, 1578, 1578, 1586, 1591, 1591, 1599, 1604, 1609, 1609, - 1617, 1618, 1621, 1621, 1629, 1634, 1639, 1644, 1649, 1649, - 1657, 1660, 1663, 1666, 1669, 1675, 1675, 1685, 1685, 1692, - 1692, 1704, 1704, 1717, 1718, 1722, 1726, 1726, 1738, 1739, - 1743, 1743, 1751, 1752, 1755, 1756, 1757, 1758, 1759, 1762, - 1766, 1766, 1774, 1774, 1784, 1785, 1788, 1788, 1796, 1797, - 1800, 1800 + 0, 224, 224, 224, 225, 225, 226, 226, 227, 227, + 228, 228, 229, 229, 230, 230, 231, 231, 232, 232, + 233, 233, 234, 234, 235, 235, 243, 244, 245, 246, + 247, 248, 249, 252, 257, 257, 268, 271, 272, 275, + 279, 286, 286, 293, 294, 297, 301, 308, 308, 315, + 316, 319, 323, 334, 344, 344, 356, 357, 361, 362, + 363, 364, 365, 368, 368, 385, 385, 393, 394, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 423, 428, 433, 438, 443, 448, 448, 458, 458, + 466, 466, 476, 476, 486, 486, 496, 497, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 515, 515, 522, 523, 524, 525, 528, 528, 536, + 536, 544, 544, 552, 557, 557, 565, 570, 575, 580, + 585, 585, 593, 593, 602, 602, 612, 613, 616, 617, + 620, 625, 630, 630, 640, 641, 644, 645, 648, 655, + 655, 665, 665, 675, 676, 679, 680, 683, 683, 691, + 691, 699, 700, 701, 704, 705, 708, 708, 716, 716, + 724, 724, 734, 735, 738, 739, 740, 741, 742, 743, + 746, 751, 756, 761, 766, 771, 779, 779, 792, 793, + 796, 797, 804, 804, 827, 827, 836, 837, 841, 842, + 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 860, 860, 868, 868, 876, + 876, 884, 884, 892, 892, 900, 905, 914, 914, 926, + 927, 930, 931, 936, 936, 947, 947, 957, 958, 961, + 962, 965, 966, 967, 968, 969, 970, 971, 972, 975, + 977, 982, 984, 984, 992, 992, 1000, 1000, 1008, 1010, + 1010, 1018, 1027, 1027, 1039, 1040, 1045, 1046, 1051, 1051, + 1062, 1062, 1073, 1074, 1079, 1080, 1085, 1086, 1087, 1088, + 1089, 1090, 1093, 1095, 1095, 1103, 1105, 1107, 1115, 1115, + 1127, 1128, 1131, 1132, 1135, 1135, 1143, 1143, 1151, 1152, + 1155, 1156, 1157, 1158, 1161, 1161, 1169, 1169, 1179, 1179, + 1191, 1192, 1195, 1196, 1199, 1199, 1207, 1207, 1215, 1216, + 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1229, 1229, + 1237, 1242, 1242, 1250, 1255, 1263, 1263, 1273, 1274, 1277, + 1278, 1281, 1281, 1289, 1289, 1297, 1298, 1301, 1302, 1306, + 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1316, 1316, 1326, + 1326, 1336, 1336, 1344, 1344, 1352, 1352, 1360, 1360, 1373, + 1373, 1383, 1383, 1394, 1394, 1404, 1405, 1408, 1408, 1416, + 1417, 1420, 1421, 1424, 1425, 1426, 1427, 1430, 1432, 1432, + 1443, 1443, 1453, 1454, 1457, 1458, 1459, 1460, 1461, 1462, + 1463, 1466, 1466, 1473, 1474, 1475, 1478, 1483, 1483, 1491, + 1496, 1503, 1510, 1510, 1520, 1521, 1524, 1525, 1528, 1528, + 1536, 1536, 1546, 1546, 1556, 1556, 1564, 1565, 1568, 1569, + 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, + 1580, 1581, 1582, 1583, 1586, 1591, 1591, 1599, 1599, 1607, + 1612, 1612, 1620, 1625, 1630, 1630, 1638, 1639, 1642, 1642, + 1650, 1655, 1660, 1665, 1670, 1670, 1678, 1681, 1684, 1687, + 1690, 1696, 1696, 1706, 1706, 1713, 1713, 1725, 1725, 1738, + 1739, 1743, 1747, 1747, 1759, 1760, 1764, 1764, 1772, 1773, + 1776, 1777, 1778, 1779, 1780, 1783, 1787, 1787, 1795, 1795, + 1805, 1806, 1809, 1809, 1817, 1818, 1821, 1821 }; // Print the state stack on the debug stream. @@ -4140,8 +4185,8 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" // lalr1.cc:1167 } } // isc::dhcp -#line 4144 "dhcp6_parser.cc" // lalr1.cc:1167 -#line 1808 "dhcp6_parser.yy" // lalr1.cc:1168 +#line 4189 "dhcp6_parser.cc" // lalr1.cc:1167 +#line 1829 "dhcp6_parser.yy" // lalr1.cc:1168 void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index c9fdfa3c0d..8061bff30b 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -371,120 +371,122 @@ namespace isc { namespace dhcp { TOKEN_LFC_INTERVAL = 280, TOKEN_READONLY = 281, TOKEN_CONNECT_TIMEOUT = 282, - TOKEN_PREFERRED_LIFETIME = 283, - TOKEN_VALID_LIFETIME = 284, - TOKEN_RENEW_TIMER = 285, - TOKEN_REBIND_TIMER = 286, - TOKEN_DECLINE_PROBATION_PERIOD = 287, - TOKEN_SUBNET6 = 288, - TOKEN_OPTION_DEF = 289, - TOKEN_OPTION_DATA = 290, - TOKEN_NAME = 291, - TOKEN_DATA = 292, - TOKEN_CODE = 293, - TOKEN_SPACE = 294, - TOKEN_CSV_FORMAT = 295, - TOKEN_RECORD_TYPES = 296, - TOKEN_ENCAPSULATE = 297, - TOKEN_ARRAY = 298, - TOKEN_POOLS = 299, - TOKEN_POOL = 300, - TOKEN_PD_POOLS = 301, - TOKEN_PREFIX = 302, - TOKEN_PREFIX_LEN = 303, - TOKEN_EXCLUDED_PREFIX = 304, - TOKEN_EXCLUDED_PREFIX_LEN = 305, - TOKEN_DELEGATED_LEN = 306, - TOKEN_USER_CONTEXT = 307, - TOKEN_SUBNET = 308, - TOKEN_INTERFACE = 309, - TOKEN_INTERFACE_ID = 310, - TOKEN_ID = 311, - TOKEN_RAPID_COMMIT = 312, - TOKEN_RESERVATION_MODE = 313, - TOKEN_MAC_SOURCES = 314, - TOKEN_RELAY_SUPPLIED_OPTIONS = 315, - TOKEN_HOST_RESERVATION_IDENTIFIERS = 316, - TOKEN_CLIENT_CLASSES = 317, - TOKEN_TEST = 318, - TOKEN_CLIENT_CLASS = 319, - TOKEN_RESERVATIONS = 320, - TOKEN_IP_ADDRESSES = 321, - TOKEN_PREFIXES = 322, - TOKEN_DUID = 323, - TOKEN_HW_ADDRESS = 324, - TOKEN_HOSTNAME = 325, - TOKEN_RELAY = 326, - TOKEN_IP_ADDRESS = 327, - TOKEN_HOOKS_LIBRARIES = 328, - TOKEN_LIBRARY = 329, - TOKEN_PARAMETERS = 330, - TOKEN_EXPIRED_LEASES_PROCESSING = 331, - TOKEN_RECLAIM_TIMER_WAIT_TIME = 332, - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 333, - TOKEN_HOLD_RECLAIMED_TIME = 334, - TOKEN_MAX_RECLAIM_LEASES = 335, - TOKEN_MAX_RECLAIM_TIME = 336, - TOKEN_UNWARNED_RECLAIM_CYCLES = 337, - TOKEN_SERVER_ID = 338, - TOKEN_LLT = 339, - TOKEN_EN = 340, - TOKEN_LL = 341, - TOKEN_IDENTIFIER = 342, - TOKEN_HTYPE = 343, - TOKEN_TIME = 344, - TOKEN_ENTERPRISE_ID = 345, - TOKEN_DHCP4O6_PORT = 346, - TOKEN_CONTROL_SOCKET = 347, - TOKEN_SOCKET_TYPE = 348, - TOKEN_SOCKET_NAME = 349, - TOKEN_DHCP_DDNS = 350, - TOKEN_ENABLE_UPDATES = 351, - TOKEN_QUALIFYING_SUFFIX = 352, - TOKEN_SERVER_IP = 353, - TOKEN_SERVER_PORT = 354, - TOKEN_SENDER_IP = 355, - TOKEN_SENDER_PORT = 356, - TOKEN_MAX_QUEUE_SIZE = 357, - TOKEN_NCR_PROTOCOL = 358, - TOKEN_NCR_FORMAT = 359, - TOKEN_ALWAYS_INCLUDE_FQDN = 360, - TOKEN_ALLOW_CLIENT_UPDATE = 361, - TOKEN_OVERRIDE_NO_UPDATE = 362, - TOKEN_OVERRIDE_CLIENT_UPDATE = 363, - TOKEN_REPLACE_CLIENT_NAME = 364, - TOKEN_GENERATED_PREFIX = 365, - TOKEN_UDP = 366, - TOKEN_TCP = 367, - TOKEN_JSON = 368, - TOKEN_WHEN_PRESENT = 369, - TOKEN_NEVER = 370, - TOKEN_ALWAYS = 371, - TOKEN_WHEN_NOT_PRESENT = 372, - TOKEN_LOGGING = 373, - TOKEN_LOGGERS = 374, - TOKEN_OUTPUT_OPTIONS = 375, - TOKEN_OUTPUT = 376, - TOKEN_DEBUGLEVEL = 377, - TOKEN_SEVERITY = 378, - TOKEN_DHCP4 = 379, - TOKEN_DHCPDDNS = 380, - TOKEN_TOPLEVEL_JSON = 381, - TOKEN_TOPLEVEL_DHCP6 = 382, - TOKEN_SUB_DHCP6 = 383, - TOKEN_SUB_INTERFACES6 = 384, - TOKEN_SUB_SUBNET6 = 385, - TOKEN_SUB_POOL6 = 386, - TOKEN_SUB_PD_POOL = 387, - TOKEN_SUB_RESERVATION = 388, - TOKEN_SUB_OPTION_DEF = 389, - TOKEN_SUB_OPTION_DATA = 390, - TOKEN_SUB_HOOKS_LIBRARY = 391, - TOKEN_SUB_DHCP_DDNS = 392, - TOKEN_STRING = 393, - TOKEN_INTEGER = 394, - TOKEN_FLOAT = 395, - TOKEN_BOOLEAN = 396 + TOKEN_CONTACT_POINTS = 283, + TOKEN_KEYSPACE = 284, + TOKEN_PREFERRED_LIFETIME = 285, + TOKEN_VALID_LIFETIME = 286, + TOKEN_RENEW_TIMER = 287, + TOKEN_REBIND_TIMER = 288, + TOKEN_DECLINE_PROBATION_PERIOD = 289, + TOKEN_SUBNET6 = 290, + TOKEN_OPTION_DEF = 291, + TOKEN_OPTION_DATA = 292, + TOKEN_NAME = 293, + TOKEN_DATA = 294, + TOKEN_CODE = 295, + TOKEN_SPACE = 296, + TOKEN_CSV_FORMAT = 297, + TOKEN_RECORD_TYPES = 298, + TOKEN_ENCAPSULATE = 299, + TOKEN_ARRAY = 300, + TOKEN_POOLS = 301, + TOKEN_POOL = 302, + TOKEN_PD_POOLS = 303, + TOKEN_PREFIX = 304, + TOKEN_PREFIX_LEN = 305, + TOKEN_EXCLUDED_PREFIX = 306, + TOKEN_EXCLUDED_PREFIX_LEN = 307, + TOKEN_DELEGATED_LEN = 308, + TOKEN_USER_CONTEXT = 309, + TOKEN_SUBNET = 310, + TOKEN_INTERFACE = 311, + TOKEN_INTERFACE_ID = 312, + TOKEN_ID = 313, + TOKEN_RAPID_COMMIT = 314, + TOKEN_RESERVATION_MODE = 315, + TOKEN_MAC_SOURCES = 316, + TOKEN_RELAY_SUPPLIED_OPTIONS = 317, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 318, + TOKEN_CLIENT_CLASSES = 319, + TOKEN_TEST = 320, + TOKEN_CLIENT_CLASS = 321, + TOKEN_RESERVATIONS = 322, + TOKEN_IP_ADDRESSES = 323, + TOKEN_PREFIXES = 324, + TOKEN_DUID = 325, + TOKEN_HW_ADDRESS = 326, + TOKEN_HOSTNAME = 327, + TOKEN_RELAY = 328, + TOKEN_IP_ADDRESS = 329, + TOKEN_HOOKS_LIBRARIES = 330, + TOKEN_LIBRARY = 331, + TOKEN_PARAMETERS = 332, + TOKEN_EXPIRED_LEASES_PROCESSING = 333, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 334, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 335, + TOKEN_HOLD_RECLAIMED_TIME = 336, + TOKEN_MAX_RECLAIM_LEASES = 337, + TOKEN_MAX_RECLAIM_TIME = 338, + TOKEN_UNWARNED_RECLAIM_CYCLES = 339, + TOKEN_SERVER_ID = 340, + TOKEN_LLT = 341, + TOKEN_EN = 342, + TOKEN_LL = 343, + TOKEN_IDENTIFIER = 344, + TOKEN_HTYPE = 345, + TOKEN_TIME = 346, + TOKEN_ENTERPRISE_ID = 347, + TOKEN_DHCP4O6_PORT = 348, + TOKEN_CONTROL_SOCKET = 349, + TOKEN_SOCKET_TYPE = 350, + TOKEN_SOCKET_NAME = 351, + TOKEN_DHCP_DDNS = 352, + TOKEN_ENABLE_UPDATES = 353, + TOKEN_QUALIFYING_SUFFIX = 354, + TOKEN_SERVER_IP = 355, + TOKEN_SERVER_PORT = 356, + TOKEN_SENDER_IP = 357, + TOKEN_SENDER_PORT = 358, + TOKEN_MAX_QUEUE_SIZE = 359, + TOKEN_NCR_PROTOCOL = 360, + TOKEN_NCR_FORMAT = 361, + TOKEN_ALWAYS_INCLUDE_FQDN = 362, + TOKEN_ALLOW_CLIENT_UPDATE = 363, + TOKEN_OVERRIDE_NO_UPDATE = 364, + TOKEN_OVERRIDE_CLIENT_UPDATE = 365, + TOKEN_REPLACE_CLIENT_NAME = 366, + TOKEN_GENERATED_PREFIX = 367, + TOKEN_UDP = 368, + TOKEN_TCP = 369, + TOKEN_JSON = 370, + TOKEN_WHEN_PRESENT = 371, + TOKEN_NEVER = 372, + TOKEN_ALWAYS = 373, + TOKEN_WHEN_NOT_PRESENT = 374, + TOKEN_LOGGING = 375, + TOKEN_LOGGERS = 376, + TOKEN_OUTPUT_OPTIONS = 377, + TOKEN_OUTPUT = 378, + TOKEN_DEBUGLEVEL = 379, + TOKEN_SEVERITY = 380, + TOKEN_DHCP4 = 381, + TOKEN_DHCPDDNS = 382, + TOKEN_TOPLEVEL_JSON = 383, + TOKEN_TOPLEVEL_DHCP6 = 384, + TOKEN_SUB_DHCP6 = 385, + TOKEN_SUB_INTERFACES6 = 386, + TOKEN_SUB_SUBNET6 = 387, + TOKEN_SUB_POOL6 = 388, + TOKEN_SUB_PD_POOL = 389, + TOKEN_SUB_RESERVATION = 390, + TOKEN_SUB_OPTION_DEF = 391, + TOKEN_SUB_OPTION_DATA = 392, + TOKEN_SUB_HOOKS_LIBRARY = 393, + TOKEN_SUB_DHCP_DDNS = 394, + TOKEN_STRING = 395, + TOKEN_INTEGER = 396, + TOKEN_FLOAT = 397, + TOKEN_BOOLEAN = 398 }; }; @@ -703,6 +705,14 @@ namespace isc { namespace dhcp { symbol_type make_CONNECT_TIMEOUT (const location_type& l); + static inline + symbol_type + make_CONTACT_POINTS (const location_type& l); + + static inline + symbol_type + make_KEYSPACE (const location_type& l); + static inline symbol_type make_PREFERRED_LIFETIME (const location_type& l); @@ -1364,12 +1374,12 @@ namespace isc { namespace dhcp { enum { yyeof_ = 0, - yylast_ = 771, ///< Last index in yytable_. - yynnts_ = 318, ///< Number of nonterminal symbols. + yylast_ = 781, ///< Last index in yytable_. + yynnts_ = 322, ///< Number of nonterminal symbols. yyfinal_ = 26, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 142 ///< Number of tokens. + yyntokens_ = 144 ///< Number of tokens. }; @@ -1425,9 +1435,9 @@ namespace isc { namespace dhcp { 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141 + 135, 136, 137, 138, 139, 140, 141, 142, 143 }; - const unsigned int user_token_number_max_ = 396; + const unsigned int user_token_number_max_ = 398; const token_number_type undef_token_ = 2; if (static_cast(t) <= yyeof_) @@ -1460,28 +1470,28 @@ namespace isc { namespace dhcp { { switch (other.type_get ()) { - case 156: // value - case 160: // map_value - case 201: // db_type - case 389: // duid_type - case 422: // ncr_protocol_value - case 431: // replace_client_name_value + case 158: // value + case 162: // map_value + case 203: // db_type + case 395: // duid_type + case 428: // ncr_protocol_value + case 437: // replace_client_name_value value.copy< ElementPtr > (other.value); break; - case 141: // "boolean" + case 143: // "boolean" value.copy< bool > (other.value); break; - case 140: // "floating point" + case 142: // "floating point" value.copy< double > (other.value); break; - case 139: // "integer" + case 141: // "integer" value.copy< int64_t > (other.value); break; - case 138: // "constant string" + case 140: // "constant string" value.copy< std::string > (other.value); break; @@ -1502,28 +1512,28 @@ namespace isc { namespace dhcp { (void) v; switch (this->type_get ()) { - case 156: // value - case 160: // map_value - case 201: // db_type - case 389: // duid_type - case 422: // ncr_protocol_value - case 431: // replace_client_name_value + case 158: // value + case 162: // map_value + case 203: // db_type + case 395: // duid_type + case 428: // ncr_protocol_value + case 437: // replace_client_name_value value.copy< ElementPtr > (v); break; - case 141: // "boolean" + case 143: // "boolean" value.copy< bool > (v); break; - case 140: // "floating point" + case 142: // "floating point" value.copy< double > (v); break; - case 139: // "integer" + case 141: // "integer" value.copy< int64_t > (v); break; - case 138: // "constant string" + case 140: // "constant string" value.copy< std::string > (v); break; @@ -1603,28 +1613,28 @@ namespace isc { namespace dhcp { // Type destructor. switch (yytype) { - case 156: // value - case 160: // map_value - case 201: // db_type - case 389: // duid_type - case 422: // ncr_protocol_value - case 431: // replace_client_name_value + case 158: // value + case 162: // map_value + case 203: // db_type + case 395: // duid_type + case 428: // ncr_protocol_value + case 437: // replace_client_name_value value.template destroy< ElementPtr > (); break; - case 141: // "boolean" + case 143: // "boolean" value.template destroy< bool > (); break; - case 140: // "floating point" + case 142: // "floating point" value.template destroy< double > (); break; - case 139: // "integer" + case 141: // "integer" value.template destroy< int64_t > (); break; - case 138: // "constant string" + case 140: // "constant string" value.template destroy< std::string > (); break; @@ -1651,28 +1661,28 @@ namespace isc { namespace dhcp { super_type::move(s); switch (this->type_get ()) { - case 156: // value - case 160: // map_value - case 201: // db_type - case 389: // duid_type - case 422: // ncr_protocol_value - case 431: // replace_client_name_value + case 158: // value + case 162: // map_value + case 203: // db_type + case 395: // duid_type + case 428: // ncr_protocol_value + case 437: // replace_client_name_value value.move< ElementPtr > (s.value); break; - case 141: // "boolean" + case 143: // "boolean" value.move< bool > (s.value); break; - case 140: // "floating point" + case 142: // "floating point" value.move< double > (s.value); break; - case 139: // "integer" + case 141: // "integer" value.move< int64_t > (s.value); break; - case 138: // "constant string" + case 140: // "constant string" value.move< std::string > (s.value); break; @@ -1745,7 +1755,7 @@ namespace isc { namespace dhcp { 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396 + 395, 396, 397, 398 }; return static_cast (yytoken_number_[type]); } @@ -1906,6 +1916,18 @@ namespace isc { namespace dhcp { return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); } + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTACT_POINTS (const location_type& l) + { + return symbol_type (token::TOKEN_CONTACT_POINTS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_KEYSPACE (const location_type& l) + { + return symbol_type (token::TOKEN_KEYSPACE, l); + } + Dhcp6Parser::symbol_type Dhcp6Parser::make_PREFERRED_LIFETIME (const location_type& l) { @@ -2593,7 +2615,7 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" // lalr1.cc:377 } } // isc::dhcp -#line 2597 "dhcp6_parser.h" // lalr1.cc:377 +#line 2619 "dhcp6_parser.h" // lalr1.cc:377 diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index 11bee9ac01..c5f6788612 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,4 +1,4 @@ -// Generated 201701271452 +// Generated 201702101911 // A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ diff --git a/src/bin/dhcp6/position.hh b/src/bin/dhcp6/position.hh index ddd0b2fcc4..45cfbb95b7 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,4 +1,4 @@ -// Generated 201701271452 +// Generated 201702101911 // A Bison parser, made by GNU Bison 3.0.4. // Positions for Bison parsers in C++ diff --git a/src/bin/dhcp6/stack.hh b/src/bin/dhcp6/stack.hh index 636b186b92..1442032cd9 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,4 +1,4 @@ -// Generated 201701271452 +// Generated 201702101911 // A Bison parser, made by GNU Bison 3.0.4. // Stack handling for Bison parsers in C++