39#define yylex parser4_lex
47#line 34 "dhcp4_parser.yy"
52#if defined(__GNUC__) || defined(__clang__)
53#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
56#line 57 "dhcp4_parser.cc"
60# if defined YYENABLE_NLS && YYENABLE_NLS
63# define YY_(msgid) dgettext ("bison-runtime", msgid)
67# define YY_(msgid) msgid
74# if defined __GNUC__ && !defined __EXCEPTIONS
75# define YY_EXCEPTIONS 0
77# define YY_EXCEPTIONS 1
81#define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
86# ifndef YYLLOC_DEFAULT
87# define YYLLOC_DEFAULT(Current, Rhs, N) \
91 (Current).begin = YYRHSLOC (Rhs, 1).begin; \
92 (Current).end = YYRHSLOC (Rhs, N).end; \
96 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
106# define YYCDEBUG if (yydebug_) (*yycdebug_)
108# define YY_SYMBOL_PRINT(Title, Symbol) \
112 *yycdebug_ << Title << ' '; \
113 yy_print_ (*yycdebug_, Symbol); \
114 *yycdebug_ << '\n'; \
118# define YY_REDUCE_PRINT(Rule) \
121 yy_reduce_print_ (Rule); \
124# define YY_STACK_PRINT() \
127 yy_stack_print_ (); \
132# define YYCDEBUG if (false) std::cerr
133# define YY_SYMBOL_PRINT(Title, Symbol) YY_USE (Symbol)
134# define YY_REDUCE_PRINT(Rule) static_cast<void> (0)
135# define YY_STACK_PRINT() static_cast<void> (0)
139#define yyerrok (yyerrstatus_ = 0)
140#define yyclearin (yyla.clear ())
142#define YYACCEPT goto yyacceptlab
143#define YYABORT goto yyabortlab
144#define YYERROR goto yyerrorlab
145#define YYRECOVERING() (!!yyerrstatus_)
147#line 14 "dhcp4_parser.yy"
148namespace isc {
namespace dhcp {
149#line 150 "dhcp4_parser.cc"
155 yycdebug_ (&std::cerr),
176 : state (empty_state)
179 Dhcp4Parser::by_state::by_state (
const by_state& that)
YY_NOEXCEPT
190 Dhcp4Parser::by_state::move (by_state& that)
196 Dhcp4Parser::by_state::by_state (state_type s)
YY_NOEXCEPT
203 if (state == empty_state)
209 Dhcp4Parser::stack_symbol_type::stack_symbol_type ()
212 Dhcp4Parser::stack_symbol_type::stack_symbol_type (
YY_RVREF (stack_symbol_type) that)
215 switch (that.kind ())
230 value.YY_MOVE_OR_COPY<
bool > (
YY_MOVE (that.value));
234 value.YY_MOVE_OR_COPY<
double > (
YY_MOVE (that.value));
238 value.YY_MOVE_OR_COPY< int64_t > (
YY_MOVE (that.value));
242 value.YY_MOVE_OR_COPY< std::string > (
YY_MOVE (that.value));
249#if 201103L <= YY_CPLUSPLUS
251 that.state = empty_state;
255 Dhcp4Parser::stack_symbol_type::stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) that)
256 : super_type (s,
YY_MOVE (that.location))
258 switch (that.kind ())
273 value.move<
bool > (
YY_MOVE (that.value));
277 value.move<
double > (
YY_MOVE (that.value));
281 value.move< int64_t > (
YY_MOVE (that.value));
285 value.move< std::string > (
YY_MOVE (that.value));
296#if YY_CPLUSPLUS < 201103L
297 Dhcp4Parser::stack_symbol_type&
298 Dhcp4Parser::stack_symbol_type::operator= (
const stack_symbol_type& that)
301 switch (that.kind ())
316 value.copy<
bool > (that.value);
320 value.copy<
double > (that.value);
324 value.copy< int64_t > (that.value);
328 value.copy< std::string > (that.value);
335 location = that.location;
339 Dhcp4Parser::stack_symbol_type&
340 Dhcp4Parser::stack_symbol_type::operator= (stack_symbol_type& that)
343 switch (that.kind ())
358 value.move<
bool > (that.value);
362 value.move<
double > (that.value);
366 value.move< int64_t > (that.value);
370 value.move< std::string > (that.value);
377 location = that.location;
379 that.state = empty_state;
384 template <
typename Base>
386 Dhcp4Parser::yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const
393 template <
typename Base>
395 Dhcp4Parser::yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const
397 std::ostream& yyoutput = yyo;
400 yyo <<
"empty symbol";
404 yyo << (yykind <
YYNTOKENS ?
"token" :
"nterm")
405 <<
' ' << yysym.name () <<
" ("
406 << yysym.location <<
": ";
410#line 301 "dhcp4_parser.yy"
411 { yyoutput << yysym.value.template as < std::string > (); }
412#line 413 "dhcp4_parser.cc"
416#line 301 "dhcp4_parser.yy"
417 { yyoutput << yysym.value.template as < int64_t > (); }
418#line 419 "dhcp4_parser.cc"
422#line 301 "dhcp4_parser.yy"
423 { yyoutput << yysym.value.template as < double > (); }
424#line 425 "dhcp4_parser.cc"
428#line 301 "dhcp4_parser.yy"
429 { yyoutput << yysym.value.template as < bool > (); }
430#line 431 "dhcp4_parser.cc"
434#line 301 "dhcp4_parser.yy"
435 { yyoutput << yysym.value.template as < ElementPtr > (); }
436#line 437 "dhcp4_parser.cc"
440#line 301 "dhcp4_parser.yy"
441 { yyoutput << yysym.value.template as < ElementPtr > (); }
442#line 443 "dhcp4_parser.cc"
446#line 301 "dhcp4_parser.yy"
447 { yyoutput << yysym.value.template as < ElementPtr > (); }
448#line 449 "dhcp4_parser.cc"
452#line 301 "dhcp4_parser.yy"
453 { yyoutput << yysym.value.template as < ElementPtr > (); }
454#line 455 "dhcp4_parser.cc"
458#line 301 "dhcp4_parser.yy"
459 { yyoutput << yysym.value.template as < ElementPtr > (); }
460#line 461 "dhcp4_parser.cc"
464#line 301 "dhcp4_parser.yy"
465 { yyoutput << yysym.value.template as < ElementPtr > (); }
466#line 467 "dhcp4_parser.cc"
470#line 301 "dhcp4_parser.yy"
471 { yyoutput << yysym.value.template as < ElementPtr > (); }
472#line 473 "dhcp4_parser.cc"
476#line 301 "dhcp4_parser.yy"
477 { yyoutput << yysym.value.template as < ElementPtr > (); }
478#line 479 "dhcp4_parser.cc"
482#line 301 "dhcp4_parser.yy"
483 { yyoutput << yysym.value.template as < ElementPtr > (); }
484#line 485 "dhcp4_parser.cc"
496 Dhcp4Parser::yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym)
504 Dhcp4Parser::yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym)
506#if 201103L <= YY_CPLUSPLUS
507 yypush_ (m, stack_symbol_type (s, std::move (sym)));
509 stack_symbol_type ss (s, sym);
522 Dhcp4Parser::debug_stream ()
const
528 Dhcp4Parser::set_debug_stream (std::ostream& o)
534 Dhcp4Parser::debug_level_type
535 Dhcp4Parser::debug_level ()
const
541 Dhcp4Parser::set_debug_level (debug_level_type l)
547 Dhcp4Parser::state_type
548 Dhcp4Parser::yy_lr_goto_state_ (state_type yystate,
int yysym)
550 int yyr = yypgoto_[yysym -
YYNTOKENS] + yystate;
551 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
552 return yytable_[yyr];
558 Dhcp4Parser::yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT
560 return yyvalue == yypact_ninf_;
564 Dhcp4Parser::yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT
566 return yyvalue == yytable_ninf_;
584 int yyerrstatus_ = 0;
590 stack_symbol_type yyerror_range[3];
607 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
613 YYCDEBUG <<
"Entering state " << int (yystack_[0].state) <<
'\n';
617 if (yystack_[0].state == yyfinal_)
628 yyn = yypact_[+yystack_[0].state];
629 if (yy_pact_value_is_default_ (yyn))
641 yyla.move (yylookahead);
646 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
667 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ())
676 if (yy_table_value_is_error_ (yyn))
687 yypush_ (
"Shifting", state_type (yyn),
YY_MOVE (yyla));
695 yyn = yydefact_[+yystack_[0].state];
707 stack_symbol_type yylhs;
708 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
727 yylhs.value.emplace<
bool > ();
731 yylhs.value.emplace<
double > ();
735 yylhs.value.emplace< int64_t > ();
739 yylhs.value.emplace< std::string > ();
751 yyerror_range[1].location = yylhs.location;
763#line 310 "dhcp4_parser.yy"
765#line 766 "dhcp4_parser.cc"
769#line 311 "dhcp4_parser.yy"
771#line 772 "dhcp4_parser.cc"
775#line 312 "dhcp4_parser.yy"
777#line 778 "dhcp4_parser.cc"
781#line 313 "dhcp4_parser.yy"
783#line 784 "dhcp4_parser.cc"
787#line 314 "dhcp4_parser.yy"
789#line 790 "dhcp4_parser.cc"
793#line 315 "dhcp4_parser.yy"
795#line 796 "dhcp4_parser.cc"
799#line 316 "dhcp4_parser.yy"
801#line 802 "dhcp4_parser.cc"
805#line 317 "dhcp4_parser.yy"
807#line 808 "dhcp4_parser.cc"
811#line 318 "dhcp4_parser.yy"
813#line 814 "dhcp4_parser.cc"
817#line 319 "dhcp4_parser.yy"
819#line 820 "dhcp4_parser.cc"
823#line 320 "dhcp4_parser.yy"
825#line 826 "dhcp4_parser.cc"
829#line 321 "dhcp4_parser.yy"
831#line 832 "dhcp4_parser.cc"
835#line 322 "dhcp4_parser.yy"
837#line 838 "dhcp4_parser.cc"
841#line 330 "dhcp4_parser.yy"
843#line 844 "dhcp4_parser.cc"
847#line 331 "dhcp4_parser.yy"
849#line 850 "dhcp4_parser.cc"
853#line 332 "dhcp4_parser.yy"
855#line 856 "dhcp4_parser.cc"
859#line 333 "dhcp4_parser.yy"
861#line 862 "dhcp4_parser.cc"
865#line 334 "dhcp4_parser.yy"
867#line 868 "dhcp4_parser.cc"
871#line 335 "dhcp4_parser.yy"
873#line 874 "dhcp4_parser.cc"
877#line 336 "dhcp4_parser.yy"
879#line 880 "dhcp4_parser.cc"
883#line 339 "dhcp4_parser.yy"
888#line 889 "dhcp4_parser.cc"
892#line 344 "dhcp4_parser.yy"
899#line 900 "dhcp4_parser.cc"
903#line 349 "dhcp4_parser.yy"
909#line 910 "dhcp4_parser.cc"
913#line 355 "dhcp4_parser.yy"
915#line 916 "dhcp4_parser.cc"
919#line 362 "dhcp4_parser.yy"
922 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
923 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
925#line 926 "dhcp4_parser.cc"
929#line 367 "dhcp4_parser.yy"
933 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
934 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
936#line 937 "dhcp4_parser.cc"
940#line 373 "dhcp4_parser.yy"
944#line 945 "dhcp4_parser.cc"
948#line 378 "dhcp4_parser.yy"
953#line 954 "dhcp4_parser.cc"
957#line 381 "dhcp4_parser.yy"
961#line 962 "dhcp4_parser.cc"
965#line 389 "dhcp4_parser.yy"
970#line 971 "dhcp4_parser.cc"
974#line 393 "dhcp4_parser.yy"
979#line 980 "dhcp4_parser.cc"
983#line 397 "dhcp4_parser.yy"
987#line 988 "dhcp4_parser.cc"
991#line 403 "dhcp4_parser.yy"
995#line 996 "dhcp4_parser.cc"
999#line 405 "dhcp4_parser.yy"
1004#line 1005 "dhcp4_parser.cc"
1008#line 414 "dhcp4_parser.yy"
1011 ctx.
stack_.back()->add(s);
1013#line 1014 "dhcp4_parser.cc"
1017#line 418 "dhcp4_parser.yy"
1020 ctx.
stack_.back()->add(s);
1022#line 1023 "dhcp4_parser.cc"
1026#line 422 "dhcp4_parser.yy"
1030#line 1031 "dhcp4_parser.cc"
1034#line 432 "dhcp4_parser.yy"
1037 const std::string& keyword = yystack_[1].value.as < std::string > ();
1038 error(yystack_[1].location,
1039 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
1041#line 1042 "dhcp4_parser.cc"
1045#line 441 "dhcp4_parser.yy"
1052#line 1053 "dhcp4_parser.cc"
1056#line 446 "dhcp4_parser.yy"
1065#line 1066 "dhcp4_parser.cc"
1069#line 456 "dhcp4_parser.yy"
1076 ctx.
stack_.back()->set(
"Dhcp4", m);
1080#line 1081 "dhcp4_parser.cc"
1084#line 465 "dhcp4_parser.yy"
1090#line 1091 "dhcp4_parser.cc"
1094#line 473 "dhcp4_parser.yy"
1098#line 1099 "dhcp4_parser.cc"
1102#line 479 "dhcp4_parser.yy"
1108#line 1109 "dhcp4_parser.cc"
1112#line 483 "dhcp4_parser.yy"
1117#line 1118 "dhcp4_parser.cc"
1121#line 490 "dhcp4_parser.yy"
1125#line 1126 "dhcp4_parser.cc"
1129#line 567 "dhcp4_parser.yy"
1131 ctx.
unique(
"valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1133 ctx.
stack_.back()->set(
"valid-lifetime", prf);
1135#line 1136 "dhcp4_parser.cc"
1139#line 573 "dhcp4_parser.yy"
1141 ctx.
unique(
"min-valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1143 ctx.
stack_.back()->set(
"min-valid-lifetime", prf);
1145#line 1146 "dhcp4_parser.cc"
1149#line 579 "dhcp4_parser.yy"
1151 ctx.
unique(
"max-valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1153 ctx.
stack_.back()->set(
"max-valid-lifetime", prf);
1155#line 1156 "dhcp4_parser.cc"
1159#line 585 "dhcp4_parser.yy"
1161 ctx.
unique(
"renew-timer", ctx.
loc2pos(yystack_[2].location));
1163 ctx.
stack_.back()->set(
"renew-timer", prf);
1165#line 1166 "dhcp4_parser.cc"
1169#line 591 "dhcp4_parser.yy"
1171 ctx.
unique(
"rebind-timer", ctx.
loc2pos(yystack_[2].location));
1173 ctx.
stack_.back()->set(
"rebind-timer", prf);
1175#line 1176 "dhcp4_parser.cc"
1179#line 597 "dhcp4_parser.yy"
1181 ctx.
unique(
"calculate-tee-times", ctx.
loc2pos(yystack_[2].location));
1183 ctx.
stack_.back()->set(
"calculate-tee-times", ctt);
1185#line 1186 "dhcp4_parser.cc"
1189#line 603 "dhcp4_parser.yy"
1191 ctx.
unique(
"t1-percent", ctx.
loc2pos(yystack_[2].location));
1193 ctx.
stack_.back()->set(
"t1-percent", t1);
1195#line 1196 "dhcp4_parser.cc"
1199#line 609 "dhcp4_parser.yy"
1201 ctx.
unique(
"t2-percent", ctx.
loc2pos(yystack_[2].location));
1203 ctx.
stack_.back()->set(
"t2-percent", t2);
1205#line 1206 "dhcp4_parser.cc"
1209#line 615 "dhcp4_parser.yy"
1211 ctx.
unique(
"cache-threshold", ctx.
loc2pos(yystack_[2].location));
1213 ctx.
stack_.back()->set(
"cache-threshold", ct);
1215#line 1216 "dhcp4_parser.cc"
1219#line 621 "dhcp4_parser.yy"
1221 ctx.
unique(
"cache-max-age", ctx.
loc2pos(yystack_[2].location));
1223 ctx.
stack_.back()->set(
"cache-max-age", cm);
1225#line 1226 "dhcp4_parser.cc"
1229#line 627 "dhcp4_parser.yy"
1231 ctx.
unique(
"decline-probation-period", ctx.
loc2pos(yystack_[2].location));
1233 ctx.
stack_.back()->set(
"decline-probation-period", dpp);
1235#line 1236 "dhcp4_parser.cc"
1239#line 633 "dhcp4_parser.yy"
1241 ctx.
unique(
"server-tag", ctx.
loc2pos(yystack_[0].location));
1244#line 1245 "dhcp4_parser.cc"
1248#line 636 "dhcp4_parser.yy"
1251 ctx.
stack_.back()->set(
"server-tag", stag);
1254#line 1255 "dhcp4_parser.cc"
1258#line 642 "dhcp4_parser.yy"
1260 ctx.
unique(
"parked-packet-limit", ctx.
loc2pos(yystack_[2].location));
1262 ctx.
stack_.back()->set(
"parked-packet-limit", ppl);
1264#line 1265 "dhcp4_parser.cc"
1268#line 648 "dhcp4_parser.yy"
1273#line 1274 "dhcp4_parser.cc"
1277#line 651 "dhcp4_parser.yy"
1280 ctx.
stack_.back()->set(
"allocator", al);
1283#line 1284 "dhcp4_parser.cc"
1287#line 657 "dhcp4_parser.yy"
1289 ctx.
unique(
"echo-client-id", ctx.
loc2pos(yystack_[2].location));
1291 ctx.
stack_.back()->set(
"echo-client-id", echo);
1293#line 1294 "dhcp4_parser.cc"
1297#line 663 "dhcp4_parser.yy"
1299 ctx.
unique(
"match-client-id", ctx.
loc2pos(yystack_[2].location));
1301 ctx.
stack_.back()->set(
"match-client-id", match);
1303#line 1304 "dhcp4_parser.cc"
1307#line 669 "dhcp4_parser.yy"
1309 ctx.
unique(
"authoritative", ctx.
loc2pos(yystack_[2].location));
1311 ctx.
stack_.back()->set(
"authoritative", prf);
1313#line 1314 "dhcp4_parser.cc"
1317#line 675 "dhcp4_parser.yy"
1319 ctx.
unique(
"ddns-send-updates", ctx.
loc2pos(yystack_[2].location));
1321 ctx.
stack_.back()->set(
"ddns-send-updates", b);
1323#line 1324 "dhcp4_parser.cc"
1327#line 681 "dhcp4_parser.yy"
1329 ctx.
unique(
"ddns-override-no-update", ctx.
loc2pos(yystack_[2].location));
1331 ctx.
stack_.back()->set(
"ddns-override-no-update", b);
1333#line 1334 "dhcp4_parser.cc"
1337#line 687 "dhcp4_parser.yy"
1339 ctx.
unique(
"ddns-override-client-update", ctx.
loc2pos(yystack_[2].location));
1341 ctx.
stack_.back()->set(
"ddns-override-client-update", b);
1343#line 1344 "dhcp4_parser.cc"
1347#line 693 "dhcp4_parser.yy"
1350 ctx.
unique(
"ddns-replace-client-name", ctx.
loc2pos(yystack_[0].location));
1352#line 1353 "dhcp4_parser.cc"
1356#line 696 "dhcp4_parser.yy"
1358 ctx.
stack_.back()->set(
"ddns-replace-client-name", yystack_[0].value.as <
ElementPtr > ());
1361#line 1362 "dhcp4_parser.cc"
1365#line 702 "dhcp4_parser.yy"
1369#line 1370 "dhcp4_parser.cc"
1373#line 705 "dhcp4_parser.yy"
1377#line 1378 "dhcp4_parser.cc"
1381#line 708 "dhcp4_parser.yy"
1385#line 1386 "dhcp4_parser.cc"
1389#line 711 "dhcp4_parser.yy"
1393#line 1394 "dhcp4_parser.cc"
1397#line 714 "dhcp4_parser.yy"
1399 error(yystack_[0].location,
"boolean values for the ddns-replace-client-name are "
1400 "no longer supported");
1402#line 1403 "dhcp4_parser.cc"
1406#line 720 "dhcp4_parser.yy"
1408 ctx.
unique(
"ddns-generated-prefix", ctx.
loc2pos(yystack_[0].location));
1411#line 1412 "dhcp4_parser.cc"
1415#line 723 "dhcp4_parser.yy"
1418 ctx.
stack_.back()->set(
"ddns-generated-prefix", s);
1421#line 1422 "dhcp4_parser.cc"
1425#line 729 "dhcp4_parser.yy"
1427 ctx.
unique(
"ddns-qualifying-suffix", ctx.
loc2pos(yystack_[0].location));
1430#line 1431 "dhcp4_parser.cc"
1434#line 732 "dhcp4_parser.yy"
1437 ctx.
stack_.back()->set(
"ddns-qualifying-suffix", s);
1440#line 1441 "dhcp4_parser.cc"
1444#line 738 "dhcp4_parser.yy"
1446 ctx.
unique(
"ddns-update-on-renew", ctx.
loc2pos(yystack_[2].location));
1448 ctx.
stack_.back()->set(
"ddns-update-on-renew", b);
1450#line 1451 "dhcp4_parser.cc"
1454#line 747 "dhcp4_parser.yy"
1456 ctx.
unique(
"ddns-use-conflict-resolution", ctx.
loc2pos(yystack_[2].location));
1458 ctx.
warning(yystack_[1].location,
"ddns-use-conflict-resolution is deprecated. "
1459 "Substituting ddns-conflict-resolution-mode");
1461 :
"no-check-with-dhcid"));
1462 ctx.
stack_.back()->set(
"ddns-conflict-resolution-mode", mode);
1464#line 1465 "dhcp4_parser.cc"
1468#line 757 "dhcp4_parser.yy"
1470 ctx.
unique(
"ddns-conflict-resolution-mode", ctx.
loc2pos(yystack_[0].location));
1473#line 1474 "dhcp4_parser.cc"
1477#line 760 "dhcp4_parser.yy"
1479 ctx.
stack_.back()->set(
"ddns-conflict-resolution-mode", yystack_[0].value.as <
ElementPtr > ());
1482#line 1483 "dhcp4_parser.cc"
1486#line 766 "dhcp4_parser.yy"
1490#line 1491 "dhcp4_parser.cc"
1494#line 769 "dhcp4_parser.yy"
1498#line 1499 "dhcp4_parser.cc"
1502#line 772 "dhcp4_parser.yy"
1506#line 1507 "dhcp4_parser.cc"
1510#line 775 "dhcp4_parser.yy"
1514#line 1515 "dhcp4_parser.cc"
1518#line 780 "dhcp4_parser.yy"
1520 ctx.
unique(
"ddns-ttl-percent", ctx.
loc2pos(yystack_[2].location));
1522 ctx.
stack_.back()->set(
"ddns-ttl-percent", ttl);
1524#line 1525 "dhcp4_parser.cc"
1528#line 786 "dhcp4_parser.yy"
1530 ctx.
unique(
"hostname-char-set", ctx.
loc2pos(yystack_[0].location));
1533#line 1534 "dhcp4_parser.cc"
1537#line 789 "dhcp4_parser.yy"
1540 ctx.
stack_.back()->set(
"hostname-char-set", s);
1543#line 1544 "dhcp4_parser.cc"
1547#line 795 "dhcp4_parser.yy"
1549 ctx.
unique(
"hostname-char-replacement", ctx.
loc2pos(yystack_[0].location));
1552#line 1553 "dhcp4_parser.cc"
1556#line 798 "dhcp4_parser.yy"
1559 ctx.
stack_.back()->set(
"hostname-char-replacement", s);
1562#line 1563 "dhcp4_parser.cc"
1566#line 804 "dhcp4_parser.yy"
1568 ctx.
unique(
"store-extended-info", ctx.
loc2pos(yystack_[2].location));
1570 ctx.
stack_.back()->set(
"store-extended-info", b);
1572#line 1573 "dhcp4_parser.cc"
1576#line 810 "dhcp4_parser.yy"
1578 ctx.
unique(
"statistic-default-sample-count", ctx.
loc2pos(yystack_[2].location));
1580 ctx.
stack_.back()->set(
"statistic-default-sample-count", count);
1582#line 1583 "dhcp4_parser.cc"
1586#line 816 "dhcp4_parser.yy"
1588 ctx.
unique(
"statistic-default-sample-age", ctx.
loc2pos(yystack_[2].location));
1590 ctx.
stack_.back()->set(
"statistic-default-sample-age", age);
1592#line 1593 "dhcp4_parser.cc"
1596#line 822 "dhcp4_parser.yy"
1598 ctx.
unique(
"early-global-reservations-lookup", ctx.
loc2pos(yystack_[2].location));
1600 ctx.
stack_.back()->set(
"early-global-reservations-lookup", early);
1602#line 1603 "dhcp4_parser.cc"
1606#line 828 "dhcp4_parser.yy"
1608 ctx.
unique(
"ip-reservations-unique", ctx.
loc2pos(yystack_[2].location));
1610 ctx.
stack_.back()->set(
"ip-reservations-unique", unique);
1612#line 1613 "dhcp4_parser.cc"
1616#line 834 "dhcp4_parser.yy"
1618 ctx.
unique(
"reservations-lookup-first", ctx.
loc2pos(yystack_[2].location));
1620 ctx.
stack_.back()->set(
"reservations-lookup-first", first);
1622#line 1623 "dhcp4_parser.cc"
1626#line 840 "dhcp4_parser.yy"
1628 ctx.
unique(
"offer-lifetime", ctx.
loc2pos(yystack_[2].location));
1630 ctx.
stack_.back()->set(
"offer-lifetime", offer_lifetime);
1632#line 1633 "dhcp4_parser.cc"
1636#line 846 "dhcp4_parser.yy"
1638 ctx.
unique(
"stash-agent-options", ctx.
loc2pos(yystack_[2].location));
1640 ctx.
stack_.back()->set(
"stash-agent-options", stash);
1642#line 1643 "dhcp4_parser.cc"
1646#line 852 "dhcp4_parser.yy"
1648 ctx.
unique(
"interfaces-config", ctx.
loc2pos(yystack_[0].location));
1650 ctx.
stack_.back()->set(
"interfaces-config", i);
1654#line 1655 "dhcp4_parser.cc"
1658#line 858 "dhcp4_parser.yy"
1664#line 1665 "dhcp4_parser.cc"
1668#line 866 "dhcp4_parser.yy"
1672#line 1673 "dhcp4_parser.cc"
1676#line 883 "dhcp4_parser.yy"
1682#line 1683 "dhcp4_parser.cc"
1686#line 887 "dhcp4_parser.yy"
1691#line 1692 "dhcp4_parser.cc"
1695#line 892 "dhcp4_parser.yy"
1697 ctx.
unique(
"interfaces", ctx.
loc2pos(yystack_[0].location));
1699 ctx.
stack_.back()->set(
"interfaces", l);
1703#line 1704 "dhcp4_parser.cc"
1707#line 898 "dhcp4_parser.yy"
1712#line 1713 "dhcp4_parser.cc"
1716#line 903 "dhcp4_parser.yy"
1718 ctx.
unique(
"dhcp-socket-type", ctx.
loc2pos(yystack_[0].location));
1721#line 1722 "dhcp4_parser.cc"
1725#line 906 "dhcp4_parser.yy"
1727 ctx.
stack_.back()->set(
"dhcp-socket-type", yystack_[0].value.as <
ElementPtr > ());
1730#line 1731 "dhcp4_parser.cc"
1734#line 911 "dhcp4_parser.yy"
1736#line 1737 "dhcp4_parser.cc"
1740#line 912 "dhcp4_parser.yy"
1742#line 1743 "dhcp4_parser.cc"
1746#line 915 "dhcp4_parser.yy"
1748 ctx.
unique(
"outbound-interface", ctx.
loc2pos(yystack_[0].location));
1751#line 1752 "dhcp4_parser.cc"
1755#line 918 "dhcp4_parser.yy"
1757 ctx.
stack_.back()->set(
"outbound-interface", yystack_[0].value.as <
ElementPtr > ());
1760#line 1761 "dhcp4_parser.cc"
1764#line 923 "dhcp4_parser.yy"
1768#line 1769 "dhcp4_parser.cc"
1772#line 925 "dhcp4_parser.yy"
1776#line 1777 "dhcp4_parser.cc"
1780#line 929 "dhcp4_parser.yy"
1784 ctx.
stack_.back()->set(
"re-detect", b);
1786#line 1787 "dhcp4_parser.cc"
1790#line 935 "dhcp4_parser.yy"
1792 ctx.
unique(
"service-sockets-require-all", ctx.
loc2pos(yystack_[2].location));
1794 ctx.
stack_.back()->set(
"service-sockets-require-all", b);
1796#line 1797 "dhcp4_parser.cc"
1800#line 941 "dhcp4_parser.yy"
1802 ctx.
unique(
"service-sockets-retry-wait-time", ctx.
loc2pos(yystack_[2].location));
1804 ctx.
stack_.back()->set(
"service-sockets-retry-wait-time", n);
1806#line 1807 "dhcp4_parser.cc"
1810#line 947 "dhcp4_parser.yy"
1812 ctx.
unique(
"service-sockets-max-retries", ctx.
loc2pos(yystack_[2].location));
1814 ctx.
stack_.back()->set(
"service-sockets-max-retries", n);
1816#line 1817 "dhcp4_parser.cc"
1820#line 953 "dhcp4_parser.yy"
1822 ctx.
unique(
"lease-database", ctx.
loc2pos(yystack_[0].location));
1824 ctx.
stack_.back()->set(
"lease-database", i);
1828#line 1829 "dhcp4_parser.cc"
1832#line 959 "dhcp4_parser.yy"
1839#line 1840 "dhcp4_parser.cc"
1843#line 966 "dhcp4_parser.yy"
1845 ctx.
unique(
"sanity-checks", ctx.
loc2pos(yystack_[0].location));
1847 ctx.
stack_.back()->set(
"sanity-checks", m);
1851#line 1852 "dhcp4_parser.cc"
1855#line 972 "dhcp4_parser.yy"
1860#line 1861 "dhcp4_parser.cc"
1864#line 979 "dhcp4_parser.yy"
1868#line 1869 "dhcp4_parser.cc"
1872#line 988 "dhcp4_parser.yy"
1874 ctx.
unique(
"lease-checks", ctx.
loc2pos(yystack_[0].location));
1877#line 1878 "dhcp4_parser.cc"
1881#line 991 "dhcp4_parser.yy"
1884 if ( (
string(yystack_[0].value.as < std::string > ()) ==
"none") ||
1885 (
string(yystack_[0].value.as < std::string > ()) ==
"warn") ||
1886 (
string(yystack_[0].value.as < std::string > ()) ==
"fix") ||
1887 (
string(yystack_[0].value.as < std::string > ()) ==
"fix-del") ||
1888 (
string(yystack_[0].value.as < std::string > ()) ==
"del")) {
1890 ctx.
stack_.back()->set(
"lease-checks", user);
1893 error(yystack_[0].location,
"Unsupported 'lease-checks value: " +
string(yystack_[0].value.as < std::string > ()) +
1894 ", supported values are: none, warn, fix, fix-del, del");
1897#line 1898 "dhcp4_parser.cc"
1901#line 1007 "dhcp4_parser.yy"
1903 ctx.
unique(
"extended-info-checks", ctx.
loc2pos(yystack_[0].location));
1906#line 1907 "dhcp4_parser.cc"
1910#line 1010 "dhcp4_parser.yy"
1913 if ( (
string(yystack_[0].value.as < std::string > ()) ==
"none") ||
1914 (
string(yystack_[0].value.as < std::string > ()) ==
"fix") ||
1915 (
string(yystack_[0].value.as < std::string > ()) ==
"strict") ||
1916 (
string(yystack_[0].value.as < std::string > ()) ==
"pedantic")) {
1918 ctx.
stack_.back()->set(
"extended-info-checks", user);
1921 error(yystack_[0].location,
"Unsupported 'extended-info-checks value: " +
string(yystack_[0].value.as < std::string > ()) +
1922 ", supported values are: none, fix, strict, pedantic");
1925#line 1926 "dhcp4_parser.cc"
1929#line 1025 "dhcp4_parser.yy"
1931 ctx.
unique(
"hosts-database", ctx.
loc2pos(yystack_[0].location));
1933 ctx.
stack_.back()->set(
"hosts-database", i);
1937#line 1938 "dhcp4_parser.cc"
1941#line 1031 "dhcp4_parser.yy"
1948#line 1949 "dhcp4_parser.cc"
1952#line 1038 "dhcp4_parser.yy"
1954 ctx.
unique(
"hosts-databases", ctx.
loc2pos(yystack_[0].location));
1956 ctx.
stack_.back()->set(
"hosts-databases", l);
1960#line 1961 "dhcp4_parser.cc"
1964#line 1044 "dhcp4_parser.yy"
1969#line 1970 "dhcp4_parser.cc"
1973#line 1055 "dhcp4_parser.yy"
1977#line 1978 "dhcp4_parser.cc"
1981#line 1060 "dhcp4_parser.yy"
1984 ctx.
stack_.back()->add(m);
1987#line 1988 "dhcp4_parser.cc"
1991#line 1064 "dhcp4_parser.yy"
1997#line 1998 "dhcp4_parser.cc"
2001#line 1072 "dhcp4_parser.yy"
2005#line 2006 "dhcp4_parser.cc"
2009#line 1102 "dhcp4_parser.yy"
2014#line 2015 "dhcp4_parser.cc"
2018#line 1105 "dhcp4_parser.yy"
2023#line 2024 "dhcp4_parser.cc"
2027#line 1110 "dhcp4_parser.yy"
2029#line 2030 "dhcp4_parser.cc"
2033#line 1111 "dhcp4_parser.yy"
2035#line 2036 "dhcp4_parser.cc"
2039#line 1112 "dhcp4_parser.yy"
2041#line 2042 "dhcp4_parser.cc"
2045#line 1115 "dhcp4_parser.yy"
2050#line 2051 "dhcp4_parser.cc"
2054#line 1118 "dhcp4_parser.yy"
2057 ctx.
stack_.back()->set(
"user", user);
2060#line 2061 "dhcp4_parser.cc"
2064#line 1124 "dhcp4_parser.yy"
2069#line 2070 "dhcp4_parser.cc"
2073#line 1127 "dhcp4_parser.yy"
2076 ctx.
stack_.back()->set(
"password", pwd);
2079#line 2080 "dhcp4_parser.cc"
2083#line 1133 "dhcp4_parser.yy"
2088#line 2089 "dhcp4_parser.cc"
2092#line 1136 "dhcp4_parser.yy"
2095 ctx.
stack_.back()->set(
"host", h);
2098#line 2099 "dhcp4_parser.cc"
2102#line 1142 "dhcp4_parser.yy"
2106 ctx.
stack_.back()->set(
"port", p);
2108#line 2109 "dhcp4_parser.cc"
2112#line 1148 "dhcp4_parser.yy"
2117#line 2118 "dhcp4_parser.cc"
2121#line 1151 "dhcp4_parser.yy"
2124 ctx.
stack_.back()->set(
"name", name);
2127#line 2128 "dhcp4_parser.cc"
2131#line 1157 "dhcp4_parser.yy"
2135 ctx.
stack_.back()->set(
"persist", n);
2137#line 2138 "dhcp4_parser.cc"
2141#line 1163 "dhcp4_parser.yy"
2143 ctx.
unique(
"lfc-interval", ctx.
loc2pos(yystack_[2].location));
2145 ctx.
stack_.back()->set(
"lfc-interval", n);
2147#line 2148 "dhcp4_parser.cc"
2151#line 1169 "dhcp4_parser.yy"
2155 ctx.
stack_.back()->set(
"readonly", n);
2157#line 2158 "dhcp4_parser.cc"
2161#line 1175 "dhcp4_parser.yy"
2163 ctx.
unique(
"connect-timeout", ctx.
loc2pos(yystack_[2].location));
2165 ctx.
stack_.back()->set(
"connect-timeout", n);
2167#line 2168 "dhcp4_parser.cc"
2171#line 1181 "dhcp4_parser.yy"
2173 ctx.
unique(
"read-timeout", ctx.
loc2pos(yystack_[2].location));
2175 ctx.
stack_.back()->set(
"read-timeout", n);
2177#line 2178 "dhcp4_parser.cc"
2181#line 1187 "dhcp4_parser.yy"
2183 ctx.
unique(
"write-timeout", ctx.
loc2pos(yystack_[2].location));
2185 ctx.
stack_.back()->set(
"write-timeout", n);
2187#line 2188 "dhcp4_parser.cc"
2191#line 1193 "dhcp4_parser.yy"
2193 ctx.
unique(
"tcp-user-timeout", ctx.
loc2pos(yystack_[2].location));
2195 ctx.
stack_.back()->set(
"tcp-user-timeout", n);
2197#line 2198 "dhcp4_parser.cc"
2201#line 1199 "dhcp4_parser.yy"
2203 ctx.
unique(
"max-reconnect-tries", ctx.
loc2pos(yystack_[2].location));
2205 ctx.
stack_.back()->set(
"max-reconnect-tries", n);
2207#line 2208 "dhcp4_parser.cc"
2211#line 1205 "dhcp4_parser.yy"
2213 ctx.
unique(
"reconnect-wait-time", ctx.
loc2pos(yystack_[2].location));
2215 ctx.
stack_.back()->set(
"reconnect-wait-time", n);
2217#line 2218 "dhcp4_parser.cc"
2221#line 1211 "dhcp4_parser.yy"
2226#line 2227 "dhcp4_parser.cc"
2230#line 1214 "dhcp4_parser.yy"
2235#line 2236 "dhcp4_parser.cc"
2239#line 1219 "dhcp4_parser.yy"
2241#line 2242 "dhcp4_parser.cc"
2245#line 1220 "dhcp4_parser.yy"
2247#line 2248 "dhcp4_parser.cc"
2251#line 1221 "dhcp4_parser.yy"
2253#line 2254 "dhcp4_parser.cc"
2257#line 1224 "dhcp4_parser.yy"
2259 ctx.
unique(
"retry-on-startup", ctx.
loc2pos(yystack_[2].location));
2261 ctx.
stack_.back()->set(
"retry-on-startup", n);
2263#line 2264 "dhcp4_parser.cc"
2267#line 1230 "dhcp4_parser.yy"
2269 ctx.
unique(
"max-row-errors", ctx.
loc2pos(yystack_[2].location));
2271 ctx.
stack_.back()->set(
"max-row-errors", n);
2273#line 2274 "dhcp4_parser.cc"
2277#line 1236 "dhcp4_parser.yy"
2279 ctx.
unique(
"trust-anchor", ctx.
loc2pos(yystack_[0].location));
2282#line 2283 "dhcp4_parser.cc"
2286#line 1239 "dhcp4_parser.yy"
2289 ctx.
stack_.back()->set(
"trust-anchor", ca);
2292#line 2293 "dhcp4_parser.cc"
2296#line 1245 "dhcp4_parser.yy"
2301#line 2302 "dhcp4_parser.cc"
2305#line 1248 "dhcp4_parser.yy"
2308 ctx.
stack_.back()->set(
"cert-file", cert);
2311#line 2312 "dhcp4_parser.cc"
2315#line 1254 "dhcp4_parser.yy"
2320#line 2321 "dhcp4_parser.cc"
2324#line 1257 "dhcp4_parser.yy"
2327 ctx.
stack_.back()->set(
"key-file", key);
2330#line 2331 "dhcp4_parser.cc"
2334#line 1263 "dhcp4_parser.yy"
2336 ctx.
unique(
"cipher-list", ctx.
loc2pos(yystack_[0].location));
2339#line 2340 "dhcp4_parser.cc"
2343#line 1266 "dhcp4_parser.yy"
2346 ctx.
stack_.back()->set(
"cipher-list", cl);
2349#line 2350 "dhcp4_parser.cc"
2353#line 1272 "dhcp4_parser.yy"
2355 ctx.
unique(
"host-reservation-identifiers", ctx.
loc2pos(yystack_[0].location));
2357 ctx.
stack_.back()->set(
"host-reservation-identifiers", l);
2361#line 2362 "dhcp4_parser.cc"
2365#line 1278 "dhcp4_parser.yy"
2370#line 2371 "dhcp4_parser.cc"
2374#line 1285 "dhcp4_parser.yy"
2378#line 2379 "dhcp4_parser.cc"
2382#line 1297 "dhcp4_parser.yy"
2385 ctx.
stack_.back()->add(duid);
2387#line 2388 "dhcp4_parser.cc"
2391#line 1302 "dhcp4_parser.yy"
2394 ctx.
stack_.back()->add(hwaddr);
2396#line 2397 "dhcp4_parser.cc"
2400#line 1307 "dhcp4_parser.yy"
2403 ctx.
stack_.back()->add(circuit);
2405#line 2406 "dhcp4_parser.cc"
2409#line 1312 "dhcp4_parser.yy"
2412 ctx.
stack_.back()->add(client);
2414#line 2415 "dhcp4_parser.cc"
2418#line 1317 "dhcp4_parser.yy"
2421 ctx.
stack_.back()->add(flex_id);
2423#line 2424 "dhcp4_parser.cc"
2427#line 1324 "dhcp4_parser.yy"
2429 ctx.
unique(
"multi-threading", ctx.
loc2pos(yystack_[0].location));
2431 ctx.
stack_.back()->set(
"multi-threading", mt);
2432 ctx.
stack_.push_back(mt);
2435#line 2436 "dhcp4_parser.cc"
2439#line 1330 "dhcp4_parser.yy"
2442 ctx.
require(
"enable-multi-threading", ctx.
loc2pos(yystack_[2].location), ctx.
loc2pos(yystack_[0].location));
2446#line 2447 "dhcp4_parser.cc"
2450#line 1339 "dhcp4_parser.yy"
2454#line 2455 "dhcp4_parser.cc"
2458#line 1352 "dhcp4_parser.yy"
2460 ctx.
unique(
"enable-multi-threading", ctx.
loc2pos(yystack_[2].location));
2462 ctx.
stack_.back()->set(
"enable-multi-threading", b);
2464#line 2465 "dhcp4_parser.cc"
2468#line 1358 "dhcp4_parser.yy"
2470 ctx.
unique(
"thread-pool-size", ctx.
loc2pos(yystack_[2].location));
2472 ctx.
stack_.back()->set(
"thread-pool-size", prf);
2474#line 2475 "dhcp4_parser.cc"
2478#line 1364 "dhcp4_parser.yy"
2480 ctx.
unique(
"packet-queue-size", ctx.
loc2pos(yystack_[2].location));
2482 ctx.
stack_.back()->set(
"packet-queue-size", prf);
2484#line 2485 "dhcp4_parser.cc"
2488#line 1370 "dhcp4_parser.yy"
2490 ctx.
unique(
"hooks-libraries", ctx.
loc2pos(yystack_[0].location));
2492 ctx.
stack_.back()->set(
"hooks-libraries", l);
2496#line 2497 "dhcp4_parser.cc"
2500#line 1376 "dhcp4_parser.yy"
2505#line 2506 "dhcp4_parser.cc"
2509#line 1387 "dhcp4_parser.yy"
2513#line 2514 "dhcp4_parser.cc"
2517#line 1392 "dhcp4_parser.yy"
2520 ctx.
stack_.back()->add(m);
2523#line 2524 "dhcp4_parser.cc"
2527#line 1396 "dhcp4_parser.yy"
2533#line 2534 "dhcp4_parser.cc"
2537#line 1402 "dhcp4_parser.yy"
2543#line 2544 "dhcp4_parser.cc"
2547#line 1406 "dhcp4_parser.yy"
2553#line 2554 "dhcp4_parser.cc"
2557#line 1414 "dhcp4_parser.yy"
2561#line 2562 "dhcp4_parser.cc"
2565#line 1424 "dhcp4_parser.yy"
2570#line 2571 "dhcp4_parser.cc"
2574#line 1427 "dhcp4_parser.yy"
2577 ctx.
stack_.back()->set(
"library", lib);
2580#line 2581 "dhcp4_parser.cc"
2584#line 1433 "dhcp4_parser.yy"
2586 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
2589#line 2590 "dhcp4_parser.cc"
2593#line 1436 "dhcp4_parser.yy"
2595 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
2598#line 2599 "dhcp4_parser.cc"
2602#line 1442 "dhcp4_parser.yy"
2604 ctx.
unique(
"expired-leases-processing", ctx.
loc2pos(yystack_[0].location));
2606 ctx.
stack_.back()->set(
"expired-leases-processing", m);
2610#line 2611 "dhcp4_parser.cc"
2614#line 1448 "dhcp4_parser.yy"
2620#line 2621 "dhcp4_parser.cc"
2624#line 1456 "dhcp4_parser.yy"
2628#line 2629 "dhcp4_parser.cc"
2632#line 1469 "dhcp4_parser.yy"
2634 ctx.
unique(
"reclaim-timer-wait-time", ctx.
loc2pos(yystack_[2].location));
2636 ctx.
stack_.back()->set(
"reclaim-timer-wait-time", value);
2638#line 2639 "dhcp4_parser.cc"
2642#line 1475 "dhcp4_parser.yy"
2644 ctx.
unique(
"flush-reclaimed-timer-wait-time", ctx.
loc2pos(yystack_[2].location));
2646 ctx.
stack_.back()->set(
"flush-reclaimed-timer-wait-time", value);
2648#line 2649 "dhcp4_parser.cc"
2652#line 1481 "dhcp4_parser.yy"
2654 ctx.
unique(
"hold-reclaimed-time", ctx.
loc2pos(yystack_[2].location));
2656 ctx.
stack_.back()->set(
"hold-reclaimed-time", value);
2658#line 2659 "dhcp4_parser.cc"
2662#line 1487 "dhcp4_parser.yy"
2664 ctx.
unique(
"max-reclaim-leases", ctx.
loc2pos(yystack_[2].location));
2666 ctx.
stack_.back()->set(
"max-reclaim-leases", value);
2668#line 2669 "dhcp4_parser.cc"
2672#line 1493 "dhcp4_parser.yy"
2674 ctx.
unique(
"max-reclaim-time", ctx.
loc2pos(yystack_[2].location));
2676 ctx.
stack_.back()->set(
"max-reclaim-time", value);
2678#line 2679 "dhcp4_parser.cc"
2682#line 1499 "dhcp4_parser.yy"
2684 ctx.
unique(
"unwarned-reclaim-cycles", ctx.
loc2pos(yystack_[2].location));
2686 ctx.
stack_.back()->set(
"unwarned-reclaim-cycles", value);
2688#line 2689 "dhcp4_parser.cc"
2692#line 1508 "dhcp4_parser.yy"
2696 ctx.
stack_.back()->set(
"subnet4", l);
2700#line 2701 "dhcp4_parser.cc"
2704#line 1514 "dhcp4_parser.yy"
2709#line 2710 "dhcp4_parser.cc"
2713#line 1528 "dhcp4_parser.yy"
2717#line 2718 "dhcp4_parser.cc"
2721#line 1537 "dhcp4_parser.yy"
2724 ctx.
stack_.back()->add(m);
2727#line 2728 "dhcp4_parser.cc"
2731#line 1541 "dhcp4_parser.yy"
2753#line 2754 "dhcp4_parser.cc"
2757#line 1563 "dhcp4_parser.yy"
2763#line 2764 "dhcp4_parser.cc"
2767#line 1567 "dhcp4_parser.yy"
2773#line 2774 "dhcp4_parser.cc"
2777#line 1576 "dhcp4_parser.yy"
2781#line 2782 "dhcp4_parser.cc"
2785#line 1632 "dhcp4_parser.yy"
2790#line 2791 "dhcp4_parser.cc"
2794#line 1635 "dhcp4_parser.yy"
2797 ctx.
stack_.back()->set(
"subnet", subnet);
2800#line 2801 "dhcp4_parser.cc"
2804#line 1641 "dhcp4_parser.yy"
2806 ctx.
unique(
"4o6-interface", ctx.
loc2pos(yystack_[0].location));
2809#line 2810 "dhcp4_parser.cc"
2813#line 1644 "dhcp4_parser.yy"
2816 ctx.
stack_.back()->set(
"4o6-interface", iface);
2819#line 2820 "dhcp4_parser.cc"
2823#line 1650 "dhcp4_parser.yy"
2825 ctx.
unique(
"4o6-interface-id", ctx.
loc2pos(yystack_[0].location));
2828#line 2829 "dhcp4_parser.cc"
2832#line 1653 "dhcp4_parser.yy"
2835 ctx.
stack_.back()->set(
"4o6-interface-id", iface);
2838#line 2839 "dhcp4_parser.cc"
2842#line 1659 "dhcp4_parser.yy"
2844 ctx.
unique(
"4o6-subnet", ctx.
loc2pos(yystack_[0].location));
2847#line 2848 "dhcp4_parser.cc"
2851#line 1662 "dhcp4_parser.yy"
2854 ctx.
stack_.back()->set(
"4o6-subnet", iface);
2857#line 2858 "dhcp4_parser.cc"
2861#line 1668 "dhcp4_parser.yy"
2866#line 2867 "dhcp4_parser.cc"
2870#line 1671 "dhcp4_parser.yy"
2873 ctx.
stack_.back()->set(
"interface", iface);
2876#line 2877 "dhcp4_parser.cc"
2880#line 1677 "dhcp4_parser.yy"
2882 ctx.
unique(
"client-class", ctx.
loc2pos(yystack_[0].location));
2885#line 2886 "dhcp4_parser.cc"
2889#line 1680 "dhcp4_parser.yy"
2892 ctx.
stack_.back()->set(
"client-class", cls);
2895#line 2896 "dhcp4_parser.cc"
2899#line 1686 "dhcp4_parser.yy"
2901 ctx.
unique(
"require-client-classes", ctx.
loc2pos(yystack_[0].location));
2903 ctx.
stack_.back()->set(
"require-client-classes", c);
2907#line 2908 "dhcp4_parser.cc"
2911#line 1692 "dhcp4_parser.yy"
2916#line 2917 "dhcp4_parser.cc"
2920#line 1697 "dhcp4_parser.yy"
2922 ctx.
unique(
"reservations-global", ctx.
loc2pos(yystack_[2].location));
2924 ctx.
stack_.back()->set(
"reservations-global", b);
2926#line 2927 "dhcp4_parser.cc"
2930#line 1703 "dhcp4_parser.yy"
2932 ctx.
unique(
"reservations-in-subnet", ctx.
loc2pos(yystack_[2].location));
2934 ctx.
stack_.back()->set(
"reservations-in-subnet", b);
2936#line 2937 "dhcp4_parser.cc"
2940#line 1709 "dhcp4_parser.yy"
2942 ctx.
unique(
"reservations-out-of-pool", ctx.
loc2pos(yystack_[2].location));
2944 ctx.
stack_.back()->set(
"reservations-out-of-pool", b);
2946#line 2947 "dhcp4_parser.cc"
2950#line 1715 "dhcp4_parser.yy"
2954 ctx.
stack_.back()->set(
"id",
id);
2956#line 2957 "dhcp4_parser.cc"
2960#line 1723 "dhcp4_parser.yy"
2962 ctx.
unique(
"shared-networks", ctx.
loc2pos(yystack_[0].location));
2964 ctx.
stack_.back()->set(
"shared-networks", l);
2968#line 2969 "dhcp4_parser.cc"
2972#line 1729 "dhcp4_parser.yy"
2977#line 2978 "dhcp4_parser.cc"
2981#line 1742 "dhcp4_parser.yy"
2985#line 2986 "dhcp4_parser.cc"
2989#line 1747 "dhcp4_parser.yy"
2992 ctx.
stack_.back()->add(m);
2995#line 2996 "dhcp4_parser.cc"
2999#line 1751 "dhcp4_parser.yy"
3003#line 3004 "dhcp4_parser.cc"
3007#line 1757 "dhcp4_parser.yy"
3011#line 3012 "dhcp4_parser.cc"
3015#line 1811 "dhcp4_parser.yy"
3017 ctx.
unique(
"option-def", ctx.
loc2pos(yystack_[0].location));
3019 ctx.
stack_.back()->set(
"option-def", l);
3023#line 3024 "dhcp4_parser.cc"
3027#line 1817 "dhcp4_parser.yy"
3032#line 3033 "dhcp4_parser.cc"
3036#line 1825 "dhcp4_parser.yy"
3041#line 3042 "dhcp4_parser.cc"
3045#line 1828 "dhcp4_parser.yy"
3049#line 3050 "dhcp4_parser.cc"
3053#line 1840 "dhcp4_parser.yy"
3057#line 3058 "dhcp4_parser.cc"
3061#line 1847 "dhcp4_parser.yy"
3064 ctx.
stack_.back()->add(m);
3067#line 3068 "dhcp4_parser.cc"
3071#line 1851 "dhcp4_parser.yy"
3079#line 3080 "dhcp4_parser.cc"
3083#line 1862 "dhcp4_parser.yy"
3089#line 3090 "dhcp4_parser.cc"
3093#line 1866 "dhcp4_parser.yy"
3101#line 3102 "dhcp4_parser.cc"
3105#line 1882 "dhcp4_parser.yy"
3109#line 3110 "dhcp4_parser.cc"
3113#line 1901 "dhcp4_parser.yy"
3117 ctx.
stack_.back()->set(
"code", code);
3119#line 3120 "dhcp4_parser.cc"
3123#line 1909 "dhcp4_parser.yy"
3128#line 3129 "dhcp4_parser.cc"
3132#line 1912 "dhcp4_parser.yy"
3135 ctx.
stack_.back()->set(
"type", prf);
3138#line 3139 "dhcp4_parser.cc"
3142#line 1918 "dhcp4_parser.yy"
3144 ctx.
unique(
"record-types", ctx.
loc2pos(yystack_[0].location));
3147#line 3148 "dhcp4_parser.cc"
3151#line 1921 "dhcp4_parser.yy"
3154 ctx.
stack_.back()->set(
"record-types", rtypes);
3157#line 3158 "dhcp4_parser.cc"
3161#line 1927 "dhcp4_parser.yy"
3166#line 3167 "dhcp4_parser.cc"
3170#line 1930 "dhcp4_parser.yy"
3173 ctx.
stack_.back()->set(
"space", space);
3176#line 3177 "dhcp4_parser.cc"
3180#line 1938 "dhcp4_parser.yy"
3182 ctx.
unique(
"encapsulate", ctx.
loc2pos(yystack_[0].location));
3185#line 3186 "dhcp4_parser.cc"
3189#line 1941 "dhcp4_parser.yy"
3192 ctx.
stack_.back()->set(
"encapsulate", encap);
3195#line 3196 "dhcp4_parser.cc"
3199#line 1947 "dhcp4_parser.yy"
3203 ctx.
stack_.back()->set(
"array", array);
3205#line 3206 "dhcp4_parser.cc"
3209#line 1957 "dhcp4_parser.yy"
3211 ctx.
unique(
"option-data", ctx.
loc2pos(yystack_[0].location));
3213 ctx.
stack_.back()->set(
"option-data", l);
3217#line 3218 "dhcp4_parser.cc"
3221#line 1963 "dhcp4_parser.yy"
3226#line 3227 "dhcp4_parser.cc"
3230#line 1978 "dhcp4_parser.yy"
3234#line 3235 "dhcp4_parser.cc"
3238#line 1985 "dhcp4_parser.yy"
3241 ctx.
stack_.back()->add(m);
3244#line 3245 "dhcp4_parser.cc"
3248#line 1989 "dhcp4_parser.yy"
3253#line 3254 "dhcp4_parser.cc"
3257#line 1997 "dhcp4_parser.yy"
3263#line 3264 "dhcp4_parser.cc"
3267#line 2001 "dhcp4_parser.yy"
3272#line 3273 "dhcp4_parser.cc"
3276#line 2017 "dhcp4_parser.yy"
3280#line 3281 "dhcp4_parser.cc"
3284#line 2038 "dhcp4_parser.yy"
3289#line 3290 "dhcp4_parser.cc"
3293#line 2041 "dhcp4_parser.yy"
3296 ctx.
stack_.back()->set(
"data", data);
3299#line 3300 "dhcp4_parser.cc"
3303#line 2051 "dhcp4_parser.yy"
3305 ctx.
unique(
"csv-format", ctx.
loc2pos(yystack_[2].location));
3307 ctx.
stack_.back()->set(
"csv-format", csv);
3309#line 3310 "dhcp4_parser.cc"
3313#line 2057 "dhcp4_parser.yy"
3315 ctx.
unique(
"always-send", ctx.
loc2pos(yystack_[2].location));
3317 ctx.
stack_.back()->set(
"always-send", persist);
3319#line 3320 "dhcp4_parser.cc"
3323#line 2063 "dhcp4_parser.yy"
3325 ctx.
unique(
"never-send", ctx.
loc2pos(yystack_[2].location));
3327 ctx.
stack_.back()->set(
"never-send", cancel);
3329#line 3330 "dhcp4_parser.cc"
3333#line 2072 "dhcp4_parser.yy"
3337 ctx.
stack_.back()->set(
"pools", l);
3341#line 3342 "dhcp4_parser.cc"
3345#line 2078 "dhcp4_parser.yy"
3350#line 3351 "dhcp4_parser.cc"
3354#line 2091 "dhcp4_parser.yy"
3358#line 3359 "dhcp4_parser.cc"
3362#line 2096 "dhcp4_parser.yy"
3365 ctx.
stack_.back()->add(m);
3368#line 3369 "dhcp4_parser.cc"
3372#line 2100 "dhcp4_parser.yy"
3378#line 3379 "dhcp4_parser.cc"
3382#line 2106 "dhcp4_parser.yy"
3388#line 3389 "dhcp4_parser.cc"
3392#line 2110 "dhcp4_parser.yy"
3398#line 3399 "dhcp4_parser.cc"
3402#line 2118 "dhcp4_parser.yy"
3406#line 3407 "dhcp4_parser.cc"
3410#line 2133 "dhcp4_parser.yy"
3415#line 3416 "dhcp4_parser.cc"
3419#line 2136 "dhcp4_parser.yy"
3422 ctx.
stack_.back()->set(
"pool", pool);
3425#line 3426 "dhcp4_parser.cc"
3429#line 2142 "dhcp4_parser.yy"
3433 ctx.
stack_.back()->set(
"pool-id",
id);
3435#line 3436 "dhcp4_parser.cc"
3439#line 2148 "dhcp4_parser.yy"
3443#line 3444 "dhcp4_parser.cc"
3447#line 2150 "dhcp4_parser.yy"
3456 if ((old->size() != 1) || !old->contains(
"comment")) {
3457 std::stringstream msg;
3458 msg <<
"duplicate user-context entries (previous at "
3459 << old->getPosition().str() <<
")";
3460 error(yystack_[3].location, msg.str());
3463 user_context->set(
"comment", old->get(
"comment"));
3467 parent->set(
"user-context", user_context);
3470#line 3471 "dhcp4_parser.cc"
3474#line 2173 "dhcp4_parser.yy"
3478#line 3479 "dhcp4_parser.cc"
3482#line 2175 "dhcp4_parser.yy"
3487 user_context->set(
"comment", comment);
3493 if (old->contains(
"comment")) {
3494 std::stringstream msg;
3495 msg <<
"duplicate user-context/comment entries (previous at "
3496 << old->getPosition().str() <<
")";
3497 error(yystack_[3].location, msg.str());
3500 merge(user_context, old);
3504 parent->set(
"user-context", user_context);
3507#line 3508 "dhcp4_parser.cc"
3511#line 2203 "dhcp4_parser.yy"
3513 ctx.
unique(
"reservations", ctx.
loc2pos(yystack_[0].location));
3515 ctx.
stack_.back()->set(
"reservations", l);
3519#line 3520 "dhcp4_parser.cc"
3523#line 2209 "dhcp4_parser.yy"
3528#line 3529 "dhcp4_parser.cc"
3532#line 2220 "dhcp4_parser.yy"
3536#line 3537 "dhcp4_parser.cc"
3540#line 2225 "dhcp4_parser.yy"
3543 ctx.
stack_.back()->add(m);
3546#line 3547 "dhcp4_parser.cc"
3550#line 2229 "dhcp4_parser.yy"
3555#line 3556 "dhcp4_parser.cc"
3559#line 2234 "dhcp4_parser.yy"
3565#line 3566 "dhcp4_parser.cc"
3569#line 2238 "dhcp4_parser.yy"
3574#line 3575 "dhcp4_parser.cc"
3578#line 2249 "dhcp4_parser.yy"
3582#line 3583 "dhcp4_parser.cc"
3586#line 2272 "dhcp4_parser.yy"
3588 ctx.
unique(
"next-server", ctx.
loc2pos(yystack_[0].location));
3591#line 3592 "dhcp4_parser.cc"
3595#line 2275 "dhcp4_parser.yy"
3598 ctx.
stack_.back()->set(
"next-server", next_server);
3601#line 3602 "dhcp4_parser.cc"
3605#line 2281 "dhcp4_parser.yy"
3607 ctx.
unique(
"server-hostname", ctx.
loc2pos(yystack_[0].location));
3610#line 3611 "dhcp4_parser.cc"
3614#line 2284 "dhcp4_parser.yy"
3617 ctx.
stack_.back()->set(
"server-hostname", srv);
3620#line 3621 "dhcp4_parser.cc"
3624#line 2290 "dhcp4_parser.yy"
3626 ctx.
unique(
"boot-file-name", ctx.
loc2pos(yystack_[0].location));
3629#line 3630 "dhcp4_parser.cc"
3633#line 2293 "dhcp4_parser.yy"
3636 ctx.
stack_.back()->set(
"boot-file-name", bootfile);
3639#line 3640 "dhcp4_parser.cc"
3643#line 2299 "dhcp4_parser.yy"
3645 ctx.
unique(
"ip-address", ctx.
loc2pos(yystack_[0].location));
3648#line 3649 "dhcp4_parser.cc"
3652#line 2302 "dhcp4_parser.yy"
3655 ctx.
stack_.back()->set(
"ip-address", addr);
3658#line 3659 "dhcp4_parser.cc"
3662#line 2308 "dhcp4_parser.yy"
3667#line 3668 "dhcp4_parser.cc"
3671#line 2311 "dhcp4_parser.yy"
3674 ctx.
stack_.back()->set(
"duid", d);
3677#line 3678 "dhcp4_parser.cc"
3681#line 2317 "dhcp4_parser.yy"
3683 ctx.
unique(
"hw-address", ctx.
loc2pos(yystack_[0].location));
3686#line 3687 "dhcp4_parser.cc"
3690#line 2320 "dhcp4_parser.yy"
3693 ctx.
stack_.back()->set(
"hw-address", hw);
3696#line 3697 "dhcp4_parser.cc"
3700#line 2326 "dhcp4_parser.yy"
3705#line 3706 "dhcp4_parser.cc"
3709#line 2329 "dhcp4_parser.yy"
3712 ctx.
stack_.back()->set(
"client-id", hw);
3715#line 3716 "dhcp4_parser.cc"
3719#line 2335 "dhcp4_parser.yy"
3721 ctx.
unique(
"circuit-id", ctx.
loc2pos(yystack_[0].location));
3724#line 3725 "dhcp4_parser.cc"
3728#line 2338 "dhcp4_parser.yy"
3731 ctx.
stack_.back()->set(
"circuit-id", hw);
3734#line 3735 "dhcp4_parser.cc"
3738#line 2344 "dhcp4_parser.yy"
3743#line 3744 "dhcp4_parser.cc"
3747#line 2347 "dhcp4_parser.yy"
3750 ctx.
stack_.back()->set(
"flex-id", hw);
3753#line 3754 "dhcp4_parser.cc"
3757#line 2353 "dhcp4_parser.yy"
3762#line 3763 "dhcp4_parser.cc"
3766#line 2356 "dhcp4_parser.yy"
3769 ctx.
stack_.back()->set(
"hostname", host);
3772#line 3773 "dhcp4_parser.cc"
3776#line 2362 "dhcp4_parser.yy"
3778 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
3780 ctx.
stack_.back()->set(
"client-classes", c);
3784#line 3785 "dhcp4_parser.cc"
3788#line 2368 "dhcp4_parser.yy"
3793#line 3794 "dhcp4_parser.cc"
3797#line 2376 "dhcp4_parser.yy"
3801 ctx.
stack_.back()->set(
"relay", m);
3805#line 3806 "dhcp4_parser.cc"
3809#line 2382 "dhcp4_parser.yy"
3814#line 3815 "dhcp4_parser.cc"
3818#line 2390 "dhcp4_parser.yy"
3820 ctx.
unique(
"ip-addresses", ctx.
loc2pos(yystack_[0].location));
3822 ctx.
stack_.back()->set(
"ip-addresses", l);
3826#line 3827 "dhcp4_parser.cc"
3830#line 2396 "dhcp4_parser.yy"
3835#line 3836 "dhcp4_parser.cc"
3839#line 2404 "dhcp4_parser.yy"
3841 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
3843 ctx.
stack_.back()->set(
"client-classes", l);
3847#line 3848 "dhcp4_parser.cc"
3851#line 2410 "dhcp4_parser.yy"
3856#line 3857 "dhcp4_parser.cc"
3860#line 2417 "dhcp4_parser.yy"
3864#line 3865 "dhcp4_parser.cc"
3868#line 2422 "dhcp4_parser.yy"
3871 ctx.
stack_.back()->add(m);
3874#line 3875 "dhcp4_parser.cc"
3878#line 2426 "dhcp4_parser.yy"
3884#line 3885 "dhcp4_parser.cc"
3888#line 2438 "dhcp4_parser.yy"
3892#line 3893 "dhcp4_parser.cc"
3896#line 2463 "dhcp4_parser.yy"
3901#line 3902 "dhcp4_parser.cc"
3905#line 2466 "dhcp4_parser.yy"
3908 ctx.
stack_.back()->set(
"test", test);
3911#line 3912 "dhcp4_parser.cc"
3915#line 2472 "dhcp4_parser.yy"
3917 ctx.
unique(
"template-test", ctx.
loc2pos(yystack_[0].location));
3920#line 3921 "dhcp4_parser.cc"
3924#line 2475 "dhcp4_parser.yy"
3927 ctx.
stack_.back()->set(
"template-test", template_test);
3930#line 3931 "dhcp4_parser.cc"
3934#line 2481 "dhcp4_parser.yy"
3936 ctx.
unique(
"only-if-required", ctx.
loc2pos(yystack_[2].location));
3938 ctx.
stack_.back()->set(
"only-if-required", b);
3940#line 3941 "dhcp4_parser.cc"
3944#line 2489 "dhcp4_parser.yy"
3946 ctx.
unique(
"dhcp4o6-port", ctx.
loc2pos(yystack_[2].location));
3948 ctx.
stack_.back()->set(
"dhcp4o6-port", time);
3950#line 3951 "dhcp4_parser.cc"
3954#line 2497 "dhcp4_parser.yy"
3956 ctx.
unique(
"control-socket", ctx.
loc2pos(yystack_[0].location));
3958 ctx.
stack_.back()->set(
"control-socket", m);
3962#line 3963 "dhcp4_parser.cc"
3966#line 2503 "dhcp4_parser.yy"
3971#line 3972 "dhcp4_parser.cc"
3975#line 2510 "dhcp4_parser.yy"
3979#line 3980 "dhcp4_parser.cc"
3983#line 2522 "dhcp4_parser.yy"
3985 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
3988#line 3989 "dhcp4_parser.cc"
3992#line 2525 "dhcp4_parser.yy"
3995 ctx.
stack_.back()->set(
"socket-type", stype);
3998#line 3999 "dhcp4_parser.cc"
4002#line 2531 "dhcp4_parser.yy"
4004 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
4007#line 4008 "dhcp4_parser.cc"
4011#line 2534 "dhcp4_parser.yy"
4014 ctx.
stack_.back()->set(
"socket-name", name);
4017#line 4018 "dhcp4_parser.cc"
4021#line 2543 "dhcp4_parser.yy"
4023 ctx.
unique(
"dhcp-queue-control", ctx.
loc2pos(yystack_[0].location));
4025 ctx.
stack_.back()->set(
"dhcp-queue-control", qc);
4026 ctx.
stack_.push_back(qc);
4029#line 4030 "dhcp4_parser.cc"
4033#line 2549 "dhcp4_parser.yy"
4040#line 4041 "dhcp4_parser.cc"
4044#line 2558 "dhcp4_parser.yy"
4048#line 4049 "dhcp4_parser.cc"
4052#line 2571 "dhcp4_parser.yy"
4054 ctx.
unique(
"enable-queue", ctx.
loc2pos(yystack_[2].location));
4056 ctx.
stack_.back()->set(
"enable-queue", b);
4058#line 4059 "dhcp4_parser.cc"
4062#line 2577 "dhcp4_parser.yy"
4064 ctx.
unique(
"queue-type", ctx.
loc2pos(yystack_[0].location));
4067#line 4068 "dhcp4_parser.cc"
4071#line 2580 "dhcp4_parser.yy"
4074 ctx.
stack_.back()->set(
"queue-type", qt);
4077#line 4078 "dhcp4_parser.cc"
4081#line 2586 "dhcp4_parser.yy"
4085 ctx.
stack_.back()->set(
"capacity", c);
4087#line 4088 "dhcp4_parser.cc"
4091#line 2592 "dhcp4_parser.yy"
4093 ctx.
unique(yystack_[0].value.as < std::string > (), ctx.
loc2pos(yystack_[0].location));
4096#line 4097 "dhcp4_parser.cc"
4100#line 2595 "dhcp4_parser.yy"
4102 ctx.
stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
4105#line 4106 "dhcp4_parser.cc"
4109#line 2602 "dhcp4_parser.yy"
4113 ctx.
stack_.back()->set(
"dhcp-ddns", m);
4117#line 4118 "dhcp4_parser.cc"
4121#line 2608 "dhcp4_parser.yy"
4124 ctx.
require(
"enable-updates", ctx.
loc2pos(yystack_[2].location), ctx.
loc2pos(yystack_[0].location));
4128#line 4129 "dhcp4_parser.cc"
4132#line 2615 "dhcp4_parser.yy"
4138#line 4139 "dhcp4_parser.cc"
4142#line 2619 "dhcp4_parser.yy"
4145 ctx.
require(
"enable-updates", ctx.
loc2pos(yystack_[3].location), ctx.
loc2pos(yystack_[0].location));
4148#line 4149 "dhcp4_parser.cc"
4152#line 2627 "dhcp4_parser.yy"
4156#line 4157 "dhcp4_parser.cc"
4160#line 2645 "dhcp4_parser.yy"
4162 ctx.
unique(
"enable-updates", ctx.
loc2pos(yystack_[2].location));
4164 ctx.
stack_.back()->set(
"enable-updates", b);
4166#line 4167 "dhcp4_parser.cc"
4170#line 2651 "dhcp4_parser.yy"
4175#line 4176 "dhcp4_parser.cc"
4179#line 2654 "dhcp4_parser.yy"
4182 ctx.
stack_.back()->set(
"server-ip", s);
4185#line 4186 "dhcp4_parser.cc"
4189#line 2660 "dhcp4_parser.yy"
4191 ctx.
unique(
"server-port", ctx.
loc2pos(yystack_[2].location));
4193 ctx.
stack_.back()->set(
"server-port", i);
4195#line 4196 "dhcp4_parser.cc"
4199#line 2666 "dhcp4_parser.yy"
4204#line 4205 "dhcp4_parser.cc"
4208#line 2669 "dhcp4_parser.yy"
4211 ctx.
stack_.back()->set(
"sender-ip", s);
4214#line 4215 "dhcp4_parser.cc"
4218#line 2675 "dhcp4_parser.yy"
4220 ctx.
unique(
"sender-port", ctx.
loc2pos(yystack_[2].location));
4222 ctx.
stack_.back()->set(
"sender-port", i);
4224#line 4225 "dhcp4_parser.cc"
4228#line 2681 "dhcp4_parser.yy"
4230 ctx.
unique(
"max-queue-size", ctx.
loc2pos(yystack_[2].location));
4232 ctx.
stack_.back()->set(
"max-queue-size", i);
4234#line 4235 "dhcp4_parser.cc"
4238#line 2687 "dhcp4_parser.yy"
4240 ctx.
unique(
"ncr-protocol", ctx.
loc2pos(yystack_[0].location));
4243#line 4244 "dhcp4_parser.cc"
4247#line 2690 "dhcp4_parser.yy"
4249 ctx.
stack_.back()->set(
"ncr-protocol", yystack_[0].value.as <
ElementPtr > ());
4252#line 4253 "dhcp4_parser.cc"
4256#line 2696 "dhcp4_parser.yy"
4258#line 4259 "dhcp4_parser.cc"
4262#line 2697 "dhcp4_parser.yy"
4264#line 4265 "dhcp4_parser.cc"
4268#line 2700 "dhcp4_parser.yy"
4270 ctx.
unique(
"ncr-format", ctx.
loc2pos(yystack_[0].location));
4273#line 4274 "dhcp4_parser.cc"
4277#line 2703 "dhcp4_parser.yy"
4280 ctx.
stack_.back()->set(
"ncr-format", json);
4283#line 4284 "dhcp4_parser.cc"
4287#line 2711 "dhcp4_parser.yy"
4289 ctx.
unique(
"config-control", ctx.
loc2pos(yystack_[0].location));
4291 ctx.
stack_.back()->set(
"config-control", i);
4295#line 4296 "dhcp4_parser.cc"
4299#line 2717 "dhcp4_parser.yy"
4305#line 4306 "dhcp4_parser.cc"
4309#line 2723 "dhcp4_parser.yy"
4315#line 4316 "dhcp4_parser.cc"
4319#line 2727 "dhcp4_parser.yy"
4324#line 4325 "dhcp4_parser.cc"
4328#line 2735 "dhcp4_parser.yy"
4332#line 4333 "dhcp4_parser.cc"
4336#line 2745 "dhcp4_parser.yy"
4338 ctx.
unique(
"config-databases", ctx.
loc2pos(yystack_[0].location));
4340 ctx.
stack_.back()->set(
"config-databases", l);
4344#line 4345 "dhcp4_parser.cc"
4348#line 2751 "dhcp4_parser.yy"
4353#line 4354 "dhcp4_parser.cc"
4357#line 2756 "dhcp4_parser.yy"
4359 ctx.
unique(
"config-fetch-wait-time", ctx.
loc2pos(yystack_[2].location));
4361 ctx.
stack_.back()->set(
"config-fetch-wait-time", value);
4363#line 4364 "dhcp4_parser.cc"
4367#line 2764 "dhcp4_parser.yy"
4371 ctx.
stack_.back()->set(
"loggers", l);
4375#line 4376 "dhcp4_parser.cc"
4379#line 2770 "dhcp4_parser.yy"
4384#line 4385 "dhcp4_parser.cc"
4388#line 2779 "dhcp4_parser.yy"
4392#line 4393 "dhcp4_parser.cc"
4396#line 2785 "dhcp4_parser.yy"
4399 ctx.
stack_.back()->add(l);
4402#line 4403 "dhcp4_parser.cc"
4406#line 2789 "dhcp4_parser.yy"
4410#line 4411 "dhcp4_parser.cc"
4414#line 2795 "dhcp4_parser.yy"
4418#line 4419 "dhcp4_parser.cc"
4422#line 2809 "dhcp4_parser.yy"
4424 ctx.
unique(
"debuglevel", ctx.
loc2pos(yystack_[2].location));
4426 ctx.
stack_.back()->set(
"debuglevel", dl);
4428#line 4429 "dhcp4_parser.cc"
4432#line 2815 "dhcp4_parser.yy"
4437#line 4438 "dhcp4_parser.cc"
4441#line 2818 "dhcp4_parser.yy"
4444 ctx.
stack_.back()->set(
"severity", sev);
4447#line 4448 "dhcp4_parser.cc"
4451#line 2824 "dhcp4_parser.yy"
4453 ctx.
unique(
"output-options", ctx.
loc2pos(yystack_[0].location));
4455 ctx.
stack_.back()->set(
"output-options", l);
4459#line 4460 "dhcp4_parser.cc"
4463#line 2830 "dhcp4_parser.yy"
4468#line 4469 "dhcp4_parser.cc"
4472#line 2837 "dhcp4_parser.yy"
4476#line 4477 "dhcp4_parser.cc"
4480#line 2842 "dhcp4_parser.yy"
4483 ctx.
stack_.back()->add(m);
4486#line 4487 "dhcp4_parser.cc"
4490#line 2846 "dhcp4_parser.yy"
4494#line 4495 "dhcp4_parser.cc"
4498#line 2852 "dhcp4_parser.yy"
4502#line 4503 "dhcp4_parser.cc"
4506#line 2864 "dhcp4_parser.yy"
4511#line 4512 "dhcp4_parser.cc"
4515#line 2867 "dhcp4_parser.yy"
4518 ctx.
stack_.back()->set(
"output", sev);
4521#line 4522 "dhcp4_parser.cc"
4525#line 2873 "dhcp4_parser.yy"
4529 ctx.
stack_.back()->set(
"flush", flush);
4531#line 4532 "dhcp4_parser.cc"
4535#line 2879 "dhcp4_parser.yy"
4539 ctx.
stack_.back()->set(
"maxsize", maxsize);
4541#line 4542 "dhcp4_parser.cc"
4545#line 2885 "dhcp4_parser.yy"
4549 ctx.
stack_.back()->set(
"maxver", maxver);
4551#line 4552 "dhcp4_parser.cc"
4555#line 2891 "dhcp4_parser.yy"
4560#line 4561 "dhcp4_parser.cc"
4564#line 2894 "dhcp4_parser.yy"
4567 ctx.
stack_.back()->set(
"pattern", sev);
4570#line 4571 "dhcp4_parser.cc"
4574#line 2900 "dhcp4_parser.yy"
4576 ctx.
unique(
"compatibility", ctx.
loc2pos(yystack_[0].location));
4578 ctx.
stack_.back()->set(
"compatibility", i);
4582#line 4583 "dhcp4_parser.cc"
4586#line 2906 "dhcp4_parser.yy"
4591#line 4592 "dhcp4_parser.cc"
4595#line 2913 "dhcp4_parser.yy"
4599#line 4600 "dhcp4_parser.cc"
4603#line 2925 "dhcp4_parser.yy"
4605 ctx.
unique(
"lenient-option-parsing", ctx.
loc2pos(yystack_[2].location));
4607 ctx.
stack_.back()->set(
"lenient-option-parsing", b);
4609#line 4610 "dhcp4_parser.cc"
4613#line 2931 "dhcp4_parser.yy"
4615 ctx.
unique(
"ignore-dhcp-server-identifier", ctx.
loc2pos(yystack_[2].location));
4617 ctx.
stack_.back()->set(
"ignore-dhcp-server-identifier", b);
4619#line 4620 "dhcp4_parser.cc"
4623#line 2937 "dhcp4_parser.yy"
4625 ctx.
unique(
"ignore-rai-link-selection", ctx.
loc2pos(yystack_[2].location));
4627 ctx.
stack_.back()->set(
"ignore-rai-link-selection", b);
4629#line 4630 "dhcp4_parser.cc"
4633#line 2943 "dhcp4_parser.yy"
4635 ctx.
unique(
"exclude-first-last-24", ctx.
loc2pos(yystack_[2].location));
4637 ctx.
stack_.back()->set(
"exclude-first-last-24", b);
4639#line 4640 "dhcp4_parser.cc"
4643#line 4644 "dhcp4_parser.cc"
4652 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
4662 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
4676 std::string msg = yysyntax_error_ (yyctx);
4681 yyerror_range[1].location = yyla.location;
4682 if (yyerrstatus_ == 3)
4690 else if (!yyla.empty ())
4692 yy_destroy_ (
"Error: discarding", yyla);
4726 yyn = yypact_[+yystack_[0].state];
4727 if (!yy_pact_value_is_default_ (yyn))
4730 if (0 <= yyn && yyn <= yylast_
4733 yyn = yytable_[yyn];
4740 if (yystack_.size () == 1)
4743 yyerror_range[1].location = yystack_[0].location;
4744 yy_destroy_ (
"Error: popping", yystack_[0]);
4749 stack_symbol_type error_token;
4751 yyerror_range[2].location = yyla.location;
4755 error_token.state = state_type (yyn);
4756 yypush_ (
"Shifting",
YY_MOVE (error_token));
4782 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
4788 while (1 < yystack_.size ())
4790 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
4799 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
4803 yy_destroy_ (YY_NULLPTR, yyla);
4805 while (1 < yystack_.size ())
4807 yy_destroy_ (YY_NULLPTR, yystack_[0]);
4818 error (yyexc.location, yyexc.what ());
4827 Dhcp4Parser::yytnamerr_ (
const char *yystr)
4832 char const *yyp = yystr;
4839 goto do_not_strip_quotes;
4843 goto do_not_strip_quotes;
4855 do_not_strip_quotes: ;
4864 return yytnamerr_ (yytname_[yysymbol]);
4871 : yyparser_ (yyparser)
4881 const int yyn = yypact_[+yyparser_.yystack_[0].state];
4882 if (!yy_pact_value_is_default_ (yyn))
4887 const int yyxbegin = yyn < 0 ? -yyn : 0;
4889 const int yychecklim = yylast_ - yyn + 1;
4891 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
4893 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
4897 else if (yycount == yyargn)
4904 if (yyarg && yycount == 0 && 0 < yyargn)
4915 Dhcp4Parser::yy_syntax_error_arguments_ (
const context& yyctx,
4943 if (!yyctx.lookahead ().empty ())
4946 yyarg[0] = yyctx.token ();
4947 int yyn = yyctx.expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
4955 Dhcp4Parser::yysyntax_error_ (
const context& yyctx)
const
4958 enum { YYARGS_MAX = 5 };
4961 int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX);
4963 char const* yyformat = YY_NULLPTR;
4966#define YYCASE_(N, S) \
4972 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
4973 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4974 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4975 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4976 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4982 std::ptrdiff_t yyi = 0;
4983 for (
char const* yyp = yyformat; *yyp; ++yyp)
4984 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
4995 const short Dhcp4Parser::yypact_ninf_ = -985;
4997 const signed char Dhcp4Parser::yytable_ninf_ = -1;
5000 Dhcp4Parser::yypact_[] =
5002 408, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5003 -985, -985, -985, -985, 47, 39, 42, 55, 60, 80,
5004 109, 115, 117, 127, 129, 137, 141, 143, -985, -985,
5005 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5006 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5007 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5008 -985, -985, -985, -985, 39, -158, 68, 188, 163, 625,
5009 -41, 296, 35, 92, 131, -94, 276, 28, -985, 148,
5010 62, 152, 150, 191, -985, 15, -985, -985, -985, -985,
5011 162, 201, 211, -985, -985, -985, 235, 246, -985, -985,
5012 -985, 288, 303, 305, 322, 350, 357, 363, 370, 374,
5013 375, 376, -985, 377, 379, 380, 384, 385, -985, -985,
5014 -985, 386, 387, 391, 392, -985, -985, -985, 393, -985,
5015 -985, -985, -985, -985, 394, 395, 397, -985, -985, -985,
5016 -985, -985, 398, -985, -985, -985, -985, -985, -985, 399,
5017 400, 401, -985, -985, 402, -985, 49, -985, -985, -985,
5018 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5019 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5020 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5021 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5022 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5023 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5024 -985, -985, -985, -985, -985, -985, -985, -985, 405, 406,
5025 407, 411, -985, 93, -985, -985, -985, -985, -985, -985,
5026 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5027 412, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5028 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5029 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5030 -985, -985, 96, -985, -985, -985, -985, -985, -985, -985,
5031 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5032 -985, -985, -985, -985, -985, 413, -985, -985, -985, -985,
5033 103, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5034 -985, -985, -985, -985, -985, -985, -985, -985, 340, 409,
5035 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5036 -985, -985, 415, -985, -985, 417, -985, -985, -985, 420,
5037 -985, -985, 418, 422, -985, -985, -985, -985, -985, -985,
5038 -985, -985, -985, -985, -985, -985, -985, 423, 424, 433,
5039 -985, -985, -985, -985, 431, 437, -985, -985, -985, -985,
5040 -985, -985, -985, -985, -985, -985, -985, -985, -985, 104,
5041 -985, -985, -985, 447, -985, 448, -985, 449, 451, -985,
5042 -985, -985, -985, -985, 111, -985, -985, -985, -985, -985,
5043 -985, -985, -985, -985, -985, 453, 123, -985, -985, -985,
5044 -985, 39, 39, -985, 229, 454, -985, -985, 455, 456,
5045 458, 249, 251, 252, 465, 466, 467, 260, 259, 472,
5046 473, 474, 266, 269, 271, 273, 279, 274, 282, 284,
5047 291, 297, 301, 496, 302, 308, 294, 298, 304, 497,
5048 512, 514, 310, 311, 309, 313, 523, 525, 530, 323,
5049 533, 535, 536, 537, 538, 329, 333, 334, 543, 548,
5050 550, 551, 552, 346, 553, 556, 558, 560, 562, 563,
5051 355, 359, 362, 568, 574, -985, 188, -985, 575, 578,
5052 580, 381, 382, 372, 389, 163, -985, 586, 588, 591,
5053 594, 599, 600, 410, 601, 616, 617, 625, -985, 618,
5054 414, -41, -985, 620, 621, 622, 624, 626, 627, 629,
5055 631, -985, 296, -985, 632, 633, 416, 634, 636, 637,
5056 427, -985, 92, 639, 429, 430, 432, -985, 131, 642,
5057 644, -52, -985, 434, 646, 438, 649, 441, 450, 657,
5058 658, 276, -985, 660, 452, 28, -985, -985, -985, 662,
5059 661, 664, 666, 667, -985, -985, -985, 463, 468, 469,
5060 -985, -985, 670, 671, 674, -985, -985, -985, -985, -985,
5061 -985, -985, -985, -985, -985, -985, 470, -985, -985, -985,
5062 -985, -985, -15, 471, 490, -985, -985, -985, -985, 679,
5063 680, 681, -985, 491, 206, 699, 698, 504, -985, -985,
5064 -985, 715, 717, 718, 719, 723, -985, 724, 725, 728,
5065 729, 513, 526, -985, -985, -985, 732, 734, -985, 745,
5066 319, 160, -985, -985, -985, -985, -985, 527, 539, 541,
5067 749, 545, 547, -985, 745, 549, 748, -985, 555, -985,
5068 -985, 745, 557, 559, 567, 569, 570, 571, 572, -985,
5069 573, 576, -985, 577, 579, 581, -985, -985, 582, -985,
5070 -985, -985, -985, 583, 698, -985, -985, 584, -985, 585,
5071 -985, -985, 19, 492, -985, 755, -985, -985, 39, 188,
5072 28, 163, 349, -985, -985, -985, 1041, 1041, 756, -985,
5073 -985, -985, -985, -985, -985, -985, -985, -985, 757, 758,
5074 761, -985, -985, -985, -985, -985, -985, 763, -985, -985,
5075 -985, 100, 765, 773, 779, 25, -47, 86, -83, 276,
5076 -985, -985, 780, -28, -985, -985, -985, -985, -985, -985,
5077 -985, -985, -985, -985, -985, 783, -985, -985, -985, -985,
5078 650, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5079 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5080 -985, -985, -985, -985, 756, -985, 134, 144, 187, -985,
5081 -985, 198, -985, -985, -985, -985, -985, -985, -985, 794,
5082 795, 796, 797, 798, 799, 800, 803, 804, 805, -985,
5083 816, 817, -985, -985, -985, -985, -985, 204, -985, -985,
5084 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5085 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5086 -985, 205, -985, 829, 759, -985, -985, 830, 819, -985,
5087 -985, 832, 820, -985, -985, 835, 839, -985, -985, 837,
5088 841, -985, -985, -985, -985, -985, -985, 30, -985, -985,
5089 -985, -985, -985, -985, -985, 50, -985, -985, 840, 842,
5090 -985, -985, 843, 844, -985, 846, 849, 850, 851, 852,
5091 853, 208, -985, -985, -985, -985, -985, -985, -985, 854,
5092 855, 858, -985, 239, -985, -985, -985, -985, -985, -985,
5093 -985, -985, -985, -985, -985, 286, -985, -985, -985, 860,
5094 -985, 864, -985, -985, -985, 300, -985, -985, -985, -985,
5095 -985, 312, -985, 97, -985, 865, 867, 868, 869, -985,
5096 324, -985, -985, -985, -985, -985, 663, -985, 870, 845,
5097 -985, -985, 871, -985, 872, -985, -985, -985, 873, 876,
5098 349, -985, 877, 878, 879, 881, 673, 672, 675, 676,
5099 677, 682, 683, 684, 685, 686, 885, 678, 687, 888,
5100 890, 897, 898, 1041, -985, -985, 1041, -985, 756, 625,
5101 -985, 757, 92, -985, 758, 131, -985, 761, 743, -985,
5102 763, 100, -985, 290, 765, -985, 296, -985, 773, -94,
5103 -985, 779, 690, 691, 692, 693, 694, 695, 25, -985,
5104 696, 697, 700, -47, -985, 905, 908, 86, -985, 701,
5105 910, 702, 913, -83, -985, -985, -29, 780, -985, 703,
5106 704, 705, 706, -28, -985, -985, 920, 924, -41, -985,
5107 783, 925, -985, -985, 722, 726, -985, 258, 733, 736,
5108 752, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5109 -985, 306, -985, -985, 753, 771, 774, 778, -985, 330,
5110 -985, 332, -985, 922, -985, 929, -985, -985, -985, -985,
5111 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5112 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5113 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5114 -985, -985, -985, 336, -985, -985, -985, -985, -985, -985,
5115 -985, -985, -985, -985, -985, -985, 963, -985, -985, -985,
5116 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5117 962, 972, -985, -985, -985, -985, -985, -985, 986, -985,
5118 342, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5119 -985, -985, -985, 785, 788, -985, -985, 792, -985, 39,
5120 -985, -985, 991, -985, -985, -985, -985, -985, 344, -985,
5121 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5122 808, 348, -985, 745, -985, -985, -985, -985, -985, -985,
5123 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5124 -985, -985, -985, -985, -985, 743, -985, 1003, 1004, 806,
5125 -985, 290, -985, -985, -985, -985, -985, -985, 1006, 815,
5126 1026, -29, -985, -985, -985, -985, -985, 866, 887, -985,
5127 -985, 1071, -985, 889, -985, -985, -985, 1072, -985, -985,
5128 287, -985, 95, 1072, -985, -985, 1080, 1096, 1104, -985,
5129 352, -985, -985, -985, -985, -985, -985, -985, 1105, 895,
5130 899, 900, 1107, 95, -985, 902, -985, -985, -985, 903,
5135 Dhcp4Parser::yydefact_[] =
5137 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
5138 20, 22, 24, 26, 0, 0, 0, 0, 0, 0,
5139 0, 0, 0, 0, 0, 0, 0, 0, 1, 44,
5140 36, 32, 31, 28, 29, 30, 35, 3, 33, 34,
5141 59, 5, 65, 7, 207, 9, 387, 11, 597, 13,
5142 626, 15, 515, 17, 524, 19, 563, 21, 349, 23,
5143 743, 25, 775, 27, 46, 39, 0, 0, 0, 0,
5144 0, 628, 0, 526, 565, 0, 0, 0, 48, 0,
5145 47, 0, 0, 40, 61, 0, 63, 773, 192, 225,
5146 0, 0, 0, 648, 650, 652, 0, 0, 223, 236,
5147 238, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5148 0, 0, 149, 0, 0, 0, 0, 0, 160, 167,
5149 169, 0, 0, 0, 0, 378, 513, 554, 0, 152,
5150 173, 458, 613, 615, 0, 0, 0, 311, 675, 617,
5151 340, 361, 0, 326, 710, 724, 741, 180, 182, 0,
5152 0, 0, 785, 827, 0, 137, 0, 67, 70, 71,
5153 72, 73, 74, 107, 108, 109, 110, 111, 75, 103,
5154 133, 134, 92, 93, 94, 115, 116, 117, 118, 119,
5155 120, 121, 122, 123, 124, 113, 114, 125, 126, 127,
5156 129, 130, 131, 135, 136, 78, 79, 100, 80, 81,
5157 82, 128, 86, 87, 76, 104, 105, 106, 77, 84,
5158 85, 98, 99, 101, 95, 96, 97, 83, 88, 89,
5159 90, 91, 102, 112, 132, 209, 211, 215, 0, 0,
5160 0, 0, 206, 0, 194, 197, 198, 199, 200, 201,
5161 202, 203, 204, 205, 442, 444, 446, 588, 440, 448,
5162 0, 452, 450, 670, 439, 392, 393, 394, 395, 396,
5163 419, 420, 421, 422, 423, 437, 409, 410, 424, 425,
5164 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
5165 436, 438, 0, 389, 399, 414, 415, 416, 400, 402,
5166 403, 405, 406, 407, 401, 397, 398, 417, 418, 404,
5167 411, 412, 413, 408, 610, 0, 609, 605, 606, 604,
5168 0, 599, 602, 603, 607, 608, 668, 654, 656, 658,
5169 662, 660, 666, 664, 647, 641, 645, 646, 0, 629,
5170 630, 642, 643, 644, 638, 633, 639, 635, 636, 637,
5171 640, 634, 0, 544, 285, 0, 548, 546, 551, 0,
5172 540, 541, 0, 527, 528, 531, 543, 532, 533, 534,
5173 550, 535, 536, 537, 538, 539, 581, 0, 0, 0,
5174 579, 580, 583, 584, 0, 566, 567, 570, 571, 572,
5175 573, 574, 575, 576, 577, 578, 357, 359, 354, 0,
5176 351, 355, 356, 0, 760, 0, 763, 0, 0, 767,
5177 771, 758, 756, 757, 0, 745, 748, 749, 750, 751,
5178 752, 753, 754, 755, 782, 0, 0, 777, 780, 781,
5179 45, 50, 0, 37, 43, 0, 64, 60, 0, 0,
5180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5186 0, 0, 0, 0, 0, 58, 69, 66, 0, 0,
5187 0, 0, 0, 0, 0, 196, 208, 0, 0, 0,
5188 0, 0, 0, 0, 0, 0, 0, 391, 388, 0,
5189 0, 601, 598, 0, 0, 0, 0, 0, 0, 0,
5190 0, 627, 632, 516, 0, 0, 0, 0, 0, 0,
5191 0, 525, 530, 0, 0, 0, 0, 564, 569, 0,
5192 0, 353, 350, 0, 0, 0, 0, 0, 0, 0,
5193 0, 747, 744, 0, 0, 779, 776, 49, 41, 0,
5194 0, 0, 0, 0, 154, 155, 156, 0, 0, 0,
5195 190, 191, 0, 0, 0, 138, 139, 140, 141, 142,
5196 143, 144, 145, 146, 147, 148, 0, 185, 186, 157,
5197 158, 159, 0, 0, 0, 171, 172, 179, 184, 0,
5198 0, 0, 151, 0, 0, 0, 0, 0, 454, 455,
5199 456, 0, 0, 0, 0, 0, 709, 0, 0, 0,
5200 0, 0, 0, 187, 188, 189, 0, 0, 68, 0,
5201 0, 0, 219, 220, 221, 222, 195, 0, 0, 0,
5202 0, 0, 0, 457, 0, 0, 0, 390, 0, 612,
5203 600, 0, 0, 0, 0, 0, 0, 0, 0, 631,
5204 0, 0, 542, 0, 0, 0, 553, 529, 0, 585,
5205 586, 587, 568, 0, 0, 352, 759, 0, 762, 0,
5206 765, 766, 0, 0, 746, 0, 784, 778, 0, 0,
5207 0, 0, 0, 649, 651, 653, 0, 0, 240, 150,
5208 162, 163, 164, 165, 166, 161, 168, 170, 380, 517,
5209 556, 153, 175, 176, 177, 178, 174, 460, 38, 614,
5210 616, 0, 0, 619, 342, 0, 0, 0, 0, 0,
5211 181, 183, 0, 0, 51, 210, 213, 214, 212, 217,
5212 218, 216, 443, 445, 447, 590, 441, 449, 453, 451,
5213 0, 611, 669, 655, 657, 659, 663, 661, 667, 665,
5214 545, 286, 549, 547, 552, 582, 358, 360, 761, 764,
5215 769, 770, 768, 772, 240, 42, 0, 0, 0, 232,
5216 234, 0, 227, 230, 231, 273, 278, 280, 282, 0,
5217 0, 0, 0, 0, 0, 0, 0, 0, 0, 296,
5218 0, 0, 303, 305, 307, 309, 272, 0, 247, 250,
5219 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
5220 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
5221 271, 0, 245, 0, 241, 242, 385, 0, 381, 382,
5222 522, 0, 518, 519, 561, 0, 557, 558, 465, 0,
5223 461, 462, 321, 322, 323, 324, 325, 0, 313, 316,
5224 317, 318, 319, 320, 680, 0, 677, 624, 0, 620,
5225 621, 347, 0, 343, 344, 0, 0, 0, 0, 0,
5226 0, 0, 363, 366, 367, 368, 369, 370, 371, 0,
5227 0, 0, 336, 0, 328, 331, 332, 333, 334, 335,
5228 720, 722, 719, 717, 718, 0, 712, 715, 716, 0,
5229 736, 0, 739, 732, 733, 0, 726, 729, 730, 731,
5230 734, 0, 790, 0, 787, 0, 0, 0, 0, 836,
5231 0, 829, 832, 833, 834, 835, 53, 595, 0, 591,
5232 592, 673, 0, 672, 0, 62, 774, 193, 0, 0,
5233 229, 226, 0, 0, 0, 0, 0, 0, 0, 0,
5234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5235 0, 0, 0, 249, 224, 237, 0, 239, 244, 0,
5236 379, 384, 526, 514, 521, 565, 555, 560, 0, 459,
5237 464, 315, 312, 682, 679, 676, 628, 618, 623, 0,
5238 341, 346, 0, 0, 0, 0, 0, 0, 365, 362,
5239 0, 0, 0, 330, 327, 0, 0, 714, 711, 0,
5240 0, 0, 0, 728, 725, 742, 0, 789, 786, 0,
5241 0, 0, 0, 831, 828, 55, 0, 54, 0, 589,
5242 594, 0, 671, 783, 0, 0, 228, 0, 0, 0,
5243 0, 284, 287, 288, 289, 290, 291, 292, 293, 294,
5244 295, 0, 301, 302, 0, 0, 0, 0, 248, 0,
5245 243, 0, 383, 0, 520, 0, 559, 512, 487, 488,
5246 489, 473, 474, 492, 493, 494, 495, 496, 510, 476,
5247 477, 497, 498, 499, 500, 501, 502, 503, 504, 505,
5248 506, 507, 508, 509, 511, 470, 471, 472, 485, 486,
5249 482, 483, 484, 0, 467, 475, 490, 491, 478, 479,
5250 480, 481, 463, 314, 704, 706, 0, 698, 699, 700,
5251 701, 702, 703, 691, 692, 696, 697, 693, 694, 695,
5252 0, 683, 684, 687, 688, 689, 690, 678, 0, 622,
5253 0, 345, 372, 373, 374, 375, 376, 377, 364, 337,
5254 338, 339, 329, 0, 0, 713, 735, 0, 738, 0,
5255 727, 805, 0, 803, 801, 795, 799, 800, 0, 792,
5256 797, 798, 796, 788, 837, 838, 839, 840, 830, 52,
5257 57, 0, 593, 0, 233, 235, 275, 276, 277, 274,
5258 279, 281, 283, 298, 299, 300, 297, 304, 306, 308,
5259 310, 246, 386, 523, 562, 469, 466, 0, 0, 0,
5260 681, 686, 625, 348, 721, 723, 737, 740, 0, 0,
5261 0, 794, 791, 56, 596, 674, 468, 0, 0, 708,
5262 685, 0, 802, 0, 793, 705, 707, 0, 804, 810,
5263 0, 807, 0, 809, 806, 820, 0, 0, 0, 825,
5264 0, 812, 815, 816, 817, 818, 819, 808, 0, 0,
5265 0, 0, 0, 814, 811, 0, 822, 823, 824, 0,
5270 Dhcp4Parser::yypgoto_[] =
5272 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5273 -985, -985, -985, -985, -985, -59, -985, -590, -985, 435,
5274 -985, -985, -985, -985, -985, -985, -623, -985, -985, -985,
5275 -67, -985, -985, -985, -985, -985, -985, -985, 419, 628,
5276 -37, -30, 33, -54, -27, 0, 14, 16, 29, 44,
5277 -985, -985, -985, -985, 46, -985, -985, 48, 51, 52,
5278 54, 56, 58, -985, -985, 59, -985, 64, -985, 66,
5279 69, 70, -985, -985, 71, 72, -985, 74, -985, 76,
5280 -985, -985, -985, -985, -985, 36, -985, -985, -985, 421,
5281 611, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5282 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5283 157, -985, -985, -985, -985, -985, -985, -985, -985, 337,
5284 -985, 135, -985, -695, 142, -985, -985, -985, -985, -985,
5285 -985, -985, -985, -985, -985, -45, -985, -985, -985, -985,
5286 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5287 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5288 -985, -985, 125, -985, -985, -985, -985, -985, -985, -985,
5289 -985, 105, -985, -985, -985, -985, -985, -985, -985, 118,
5290 -985, -985, -985, 121, 589, -985, -985, -985, -985, -985,
5291 -985, -985, 113, -985, -985, -985, -985, -985, -985, -984,
5292 -985, -985, -985, 145, -985, -985, -985, 146, 615, -985,
5293 -985, -985, -985, -985, -985, -985, -985, -982, -985, 79,
5294 -985, 85, -985, 77, 82, 84, -985, -985, -985, -985,
5295 -985, 139, -985, -985, -91, -62, -985, -985, -985, -985,
5296 -985, 147, -985, -985, -985, 151, -985, 595, -985, -63,
5297 -985, -985, -985, -985, -985, -44, -985, -985, -985, -985,
5298 -985, 3, -985, -985, -985, 149, -985, -985, -985, 153,
5299 -985, 596, -985, -985, -985, -985, -985, -985, -985, -985,
5300 -985, -985, -985, -985, 99, -985, -985, -985, 94, 630,
5301 -985, -985, -985, -49, -985, -10, -985, -56, -985, -985,
5302 -985, 154, -985, -985, -985, 155, -985, 613, -26, -985,
5303 13, -985, 26, -985, -985, -985, -985, -985, -985, -985,
5304 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5305 -981, -985, -985, -985, -985, -985, -985, -985, 156, -985,
5306 -985, -985, -84, -985, -985, -985, -985, -985, -985, -985,
5307 -985, -985, -985, 126, -985, -985, -985, -985, -985, -985,
5308 -985, 119, -985, -985, -985, -985, -985, -985, -985, -985,
5309 -985, -985, 426, 593, -985, -985, -985, -985, -985, -985,
5310 -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
5311 -985, 457, 590, -985, -985, -985, -985, -985, -985, 122,
5312 -985, -985, -85, -985, -985, -985, -985, -985, -985, -113,
5313 -985, -985, -120, -985, -985, -985, -985, -985, -985, -985,
5314 -985, -985, -985, 124, -985, -985, -985, -985
5318 Dhcp4Parser::yydefgoto_[] =
5320 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
5321 23, 24, 25, 26, 27, 36, 37, 38, 65, 729,
5322 82, 83, 39, 64, 79, 80, 745, 946, 1046, 1047,
5323 816, 41, 66, 85, 425, 86, 43, 67, 156, 157,
5324 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
5325 168, 169, 453, 170, 171, 470, 172, 173, 174, 175,
5326 176, 177, 178, 459, 715, 179, 460, 180, 461, 181,
5327 182, 183, 471, 726, 184, 185, 488, 186, 489, 187,
5328 188, 189, 190, 191, 192, 193, 194, 195, 429, 233,
5329 234, 45, 68, 235, 498, 236, 499, 748, 237, 500,
5330 751, 238, 239, 240, 241, 196, 439, 197, 430, 791,
5331 792, 793, 958, 794, 959, 198, 440, 199, 441, 843,
5332 844, 845, 986, 817, 818, 819, 962, 1209, 820, 963,
5333 821, 964, 822, 965, 823, 824, 535, 825, 826, 827,
5334 828, 829, 830, 831, 832, 833, 834, 976, 1216, 835,
5335 836, 837, 979, 838, 980, 839, 981, 840, 982, 200,
5336 478, 867, 868, 869, 870, 871, 872, 873, 201, 484,
5337 903, 904, 905, 906, 907, 202, 481, 882, 883, 884,
5338 1009, 59, 75, 389, 390, 391, 549, 392, 550, 203,
5339 482, 891, 892, 893, 894, 895, 896, 897, 898, 204,
5340 466, 847, 848, 849, 989, 47, 69, 282, 283, 284,
5341 511, 285, 507, 286, 508, 287, 509, 288, 512, 289,
5342 515, 290, 514, 205, 206, 207, 294, 208, 472, 859,
5343 860, 861, 998, 1123, 1124, 209, 467, 53, 72, 851,
5344 852, 853, 992, 55, 73, 352, 353, 354, 355, 356,
5345 357, 358, 534, 359, 538, 360, 537, 361, 362, 539,
5346 363, 210, 468, 855, 856, 857, 995, 57, 74, 374,
5347 375, 376, 377, 378, 543, 379, 380, 381, 382, 383,
5348 296, 510, 948, 949, 950, 1048, 49, 70, 310, 311,
5349 312, 519, 313, 211, 473, 212, 474, 213, 480, 878,
5350 879, 880, 1006, 51, 71, 328, 329, 330, 214, 434,
5351 215, 435, 216, 436, 334, 524, 335, 525, 336, 526,
5352 337, 528, 338, 527, 339, 530, 340, 529, 341, 523,
5353 303, 516, 952, 953, 1051, 217, 479, 875, 876, 1003,
5354 1150, 1151, 1152, 1153, 1154, 1227, 1155, 1228, 1156, 218,
5355 219, 485, 915, 916, 917, 1025, 918, 1026, 220, 486,
5356 925, 926, 927, 928, 1030, 929, 930, 1032, 221, 487,
5357 61, 76, 404, 405, 406, 407, 554, 408, 409, 556,
5358 410, 411, 412, 559, 782, 413, 560, 222, 428, 63,
5359 77, 416, 417, 418, 563, 419, 223, 493, 933, 934,
5360 1036, 1188, 1189, 1190, 1191, 1240, 1192, 1238, 1260, 1261,
5361 1262, 1270, 1271, 1272, 1278, 1273, 1274, 1275, 1276, 1282,
5362 224, 494, 940, 941, 942, 943, 944, 945
5366 Dhcp4Parser::yytable_[] =
5368 155, 232, 254, 306, 324, 78, 350, 370, 388, 401,
5369 342, 372, 841, 299, 1116, 258, 1117, 1131, 426, 242,
5370 297, 314, 326, 427, 364, 384, 728, 402, 351, 371,
5371 373, 758, 255, 1001, 132, 133, 1002, 780, 762, 256,
5372 414, 415, 259, 300, 29, 331, 30, 28, 31, 40,
5373 386, 387, 496, 1004, 81, 127, 1005, 497, 243, 298,
5374 315, 327, 42, 365, 385, 421, 403, 44, 344, 260,
5375 132, 133, 295, 309, 325, 304, 132, 133, 84, 919,
5376 920, 921, 301, 261, 332, 262, 251, 46, 132, 133,
5377 252, 305, 386, 387, 728, 302, 505, 333, 263, 517,
5378 1037, 506, 257, 1038, 518, 281, 521, 551, 899, 900,
5379 901, 522, 552, 264, 561, 265, 48, 266, 154, 562,
5380 267, 268, 50, 269, 52, 270, 565, 271, 272, 922,
5381 126, 566, 343, 273, 54, 274, 56, 496, 275, 276,
5382 277, 278, 955, 279, 58, 280, 291, 565, 60, 307,
5383 62, 292, 956, 293, 420, 308, 422, 1181, 423, 1182,
5384 1183, 710, 711, 712, 713, 154, 431, 935, 936, 937,
5385 938, 154, 885, 886, 887, 888, 889, 890, 225, 226,
5386 749, 750, 227, 154, 154, 228, 229, 230, 231, 344,
5387 505, 345, 346, 781, 424, 957, 347, 348, 349, 87,
5388 714, 960, 88, 132, 133, 432, 961, 983, 983, 132,
5389 133, 1018, 984, 985, 89, 433, 1019, 90, 91, 92,
5390 93, 94, 95, 96, 97, 98, 99, 100, 344, 366,
5391 345, 346, 367, 368, 369, 862, 863, 864, 865, 437,
5392 866, 1116, 1023, 1117, 1131, 910, 911, 1024, 132, 133,
5393 438, 32, 33, 34, 35, 101, 102, 103, 104, 105,
5394 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
5395 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
5396 132, 133, 1265, 126, 127, 1266, 1267, 1268, 1269, 1027,
5397 1263, 1079, 442, 1264, 1028, 128, 129, 130, 154, 1206,
5398 1207, 1208, 131, 1033, 154, 132, 133, 443, 1034, 444,
5399 134, 135, 136, 137, 138, 561, 722, 723, 724, 725,
5400 1035, 139, 93, 94, 95, 96, 445, 1043, 93, 94,
5401 95, 140, 1044, 983, 141, 517, 746, 747, 1221, 1225,
5402 1222, 142, 143, 154, 1226, 551, 144, 1241, 531, 145,
5403 1233, 521, 1242, 146, 446, 1283, 1244, 101, 102, 103,
5404 1284, 447, 567, 568, 1213, 1214, 1215, 448, 147, 148,
5405 149, 150, 151, 152, 449, 154, 789, 790, 450, 451,
5406 452, 454, 153, 455, 456, 126, 127, 344, 457, 458,
5407 462, 463, 127, 132, 133, 464, 465, 469, 475, 476,
5408 154, 477, 483, 490, 491, 492, 495, 132, 133, 501,
5409 502, 503, 532, 132, 133, 504, 513, 520, 1134, 1135,
5410 1136, 536, 316, 533, 540, 542, 541, 544, 545, 155,
5411 317, 318, 319, 320, 321, 322, 323, 546, 232, 547,
5412 548, 569, 393, 394, 395, 396, 397, 398, 399, 400,
5413 254, 553, 555, 557, 306, 558, 242, 564, 570, 571,
5414 572, 299, 573, 258, 574, 324, 575, 576, 297, 577,
5415 578, 579, 314, 580, 581, 350, 582, 583, 584, 585,
5416 255, 370, 586, 326, 587, 372, 588, 256, 154, 590,
5417 259, 300, 589, 364, 401, 243, 591, 351, 592, 384,
5418 596, 602, 154, 371, 373, 593, 331, 298, 154, 599,
5419 594, 315, 402, 600, 595, 597, 603, 260, 604, 601,
5420 295, 598, 327, 607, 309, 605, 606, 609, 608, 610,
5421 301, 261, 365, 262, 611, 325, 612, 613, 385, 614,
5422 615, 616, 617, 302, 618, 332, 263, 621, 619, 620,
5423 257, 403, 622, 281, 623, 624, 625, 627, 333, 626,
5424 628, 264, 629, 265, 630, 266, 631, 632, 267, 268,
5425 633, 269, 636, 270, 634, 271, 272, 635, 637, 639,
5426 1245, 273, 640, 274, 641, 644, 275, 276, 277, 278,
5427 647, 279, 648, 280, 291, 649, 642, 643, 650, 292,
5428 307, 293, 645, 651, 652, 654, 308, 1, 2, 3,
5429 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
5430 655, 656, 658, 653, 661, 662, 663, 659, 664, 672,
5431 665, 666, 155, 667, 232, 668, 670, 671, 673, 785,
5432 674, 675, 676, 678, 679, 680, 683, 681, 684, 686,
5433 687, 688, 242, 689, 690, 91, 92, 93, 94, 95,
5434 96, 692, 693, 691, 695, 696, 698, 783, 699, 902,
5435 912, 700, 401, 701, 702, 703, 939, 706, 707, 708,
5436 704, 705, 709, 716, 718, 719, 720, 908, 913, 923,
5437 402, 243, 101, 102, 103, 104, 105, 106, 107, 108,
5438 109, 110, 717, 721, 727, 30, 115, 116, 117, 118,
5439 119, 120, 121, 122, 123, 124, 730, 244, 245, 246,
5440 731, 127, 732, 733, 734, 740, 909, 914, 924, 403,
5441 735, 736, 737, 129, 130, 738, 739, 742, 741, 752,
5442 247, 743, 132, 133, 248, 249, 250, 134, 135, 136,
5443 744, 753, 251, 754, 755, 760, 252, 756, 139, 757,
5444 784, 759, 988, 842, 846, 850, 253, 761, 854, 763,
5445 858, 764, 874, 91, 92, 93, 94, 95, 96, 765,
5446 877, 766, 767, 768, 769, 770, 881, 932, 771, 772,
5447 947, 773, 951, 774, 775, 776, 778, 779, 966, 967,
5448 968, 969, 970, 971, 972, 147, 148, 973, 974, 975,
5449 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
5450 977, 978, 991, 994, 115, 116, 117, 118, 119, 120,
5451 121, 122, 123, 124, 125, 987, 990, 154, 993, 127,
5452 344, 996, 997, 999, 1000, 1008, 1007, 1011, 1050, 1010,
5453 1012, 129, 130, 1013, 1014, 1015, 1016, 1017, 1020, 1021,
5454 132, 133, 1022, 249, 1029, 134, 135, 136, 1031, 1039,
5455 251, 1040, 1041, 1042, 252, 1045, 1049, 1054, 1053, 1052,
5456 1055, 1057, 1058, 1059, 253, 1060, 1061, 1062, 1063, 1071,
5457 1065, 1064, 1074, 1072, 1075, 1066, 1067, 1068, 1069, 1070,
5458 1073, 1076, 1077, 1162, 1163, 1164, 1165, 1166, 1167, 1173,
5459 1170, 1169, 1174, 1171, 1177, 1178, 1176, 1179, 1194, 1195,
5460 1196, 1197, 254, 147, 148, 350, 1199, 1200, 370, 1203,
5461 1223, 1087, 372, 299, 1204, 258, 1137, 1224, 1205, 324,
5462 297, 1143, 388, 364, 1091, 1210, 384, 351, 1211, 1126,
5463 371, 373, 255, 1115, 1145, 154, 902, 326, 1142, 256,
5464 912, 1088, 259, 300, 1212, 1217, 1138, 1229, 1089, 1184,
5465 1230, 1092, 1128, 1139, 908, 1231, 939, 1147, 913, 298,
5466 331, 306, 365, 1218, 923, 385, 1219, 1186, 1127, 260,
5467 1220, 1185, 295, 1146, 1232, 1239, 327, 1234, 1093, 314,
5468 1235, 1125, 301, 261, 1236, 262, 1144, 1247, 1248, 325,
5469 1251, 1129, 1094, 909, 1095, 302, 1148, 914, 263, 332,
5470 1243, 1249, 257, 924, 1130, 281, 1187, 1096, 1252, 1149,
5471 1253, 1090, 333, 264, 1114, 265, 1140, 266, 315, 1141,
5472 267, 268, 1097, 269, 1098, 270, 1099, 271, 272, 1100,
5473 1101, 309, 1102, 273, 1103, 274, 1104, 1105, 275, 276,
5474 277, 278, 1106, 279, 1107, 280, 291, 1108, 1109, 1110,
5475 1111, 292, 1112, 293, 1113, 1120, 1257, 1118, 1255, 1259,
5476 1121, 795, 1122, 1119, 1279, 796, 797, 798, 799, 800,
5477 801, 802, 803, 804, 805, 806, 807, 808, 809, 1256,
5478 1280, 1258, 810, 811, 812, 813, 814, 815, 1281, 1285,
5479 1286, 1289, 1287, 1288, 1291, 1292, 646, 1056, 786, 777,
5480 1237, 954, 788, 1080, 638, 1078, 1133, 307, 1172, 1161,
5481 1160, 1168, 657, 308, 1246, 1081, 1082, 677, 344, 1132,
5482 685, 1084, 1201, 1083, 682, 669, 1086, 1250, 1085, 1202,
5483 1277, 660, 1180, 1175, 694, 697, 1254, 787, 1087, 1193,
5484 1157, 1158, 1159, 1290, 1137, 931, 0, 1198, 0, 1143,
5485 0, 1091, 0, 0, 1184, 0, 1126, 0, 0, 0,
5486 1115, 0, 1145, 0, 0, 0, 1142, 0, 1088, 0,
5487 0, 0, 1186, 0, 1138, 1089, 1185, 0, 1092, 1128,
5488 0, 1139, 0, 0, 0, 1147, 0, 0, 0, 0,
5489 0, 0, 0, 0, 0, 1127, 0, 0, 0, 0,
5490 0, 1146, 0, 0, 0, 1093, 0, 0, 1125, 0,
5491 0, 1187, 0, 0, 1144, 0, 0, 0, 1129, 1094,
5492 0, 1095, 0, 0, 1148, 0, 0, 0, 0, 0,
5493 0, 1130, 0, 154, 1096, 0, 0, 1149, 1090, 0,
5494 0, 1114, 0, 0, 1140, 0, 0, 1141, 0, 1097,
5495 0, 1098, 0, 1099, 0, 0, 1100, 1101, 0, 1102,
5496 0, 1103, 0, 1104, 1105, 0, 0, 0, 0, 1106,
5497 0, 1107, 0, 0, 1108, 1109, 1110, 1111, 0, 1112,
5498 0, 1113, 1120, 0, 1118, 0, 0, 1121, 0, 1122,
5503 Dhcp4Parser::yycheck_[] =
5505 67, 68, 69, 70, 71, 64, 73, 74, 75, 76,
5506 72, 74, 707, 69, 998, 69, 998, 998, 3, 68,
5507 69, 70, 71, 8, 73, 74, 616, 76, 73, 74,
5508 74, 654, 69, 3, 117, 118, 6, 18, 661, 69,
5509 12, 13, 69, 69, 5, 71, 7, 0, 9, 7,
5510 144, 145, 3, 3, 212, 96, 6, 8, 68, 69,
5511 70, 71, 7, 73, 74, 3, 76, 7, 97, 69,
5512 117, 118, 69, 70, 71, 116, 117, 118, 10, 162,
5513 163, 164, 69, 69, 71, 69, 127, 7, 117, 118,
5514 131, 132, 144, 145, 684, 69, 3, 71, 69, 3,
5515 3, 8, 69, 6, 8, 69, 3, 3, 155, 156,
5516 157, 8, 8, 69, 3, 69, 7, 69, 212, 8,
5517 69, 69, 7, 69, 7, 69, 3, 69, 69, 212,
5518 95, 8, 40, 69, 7, 69, 7, 3, 69, 69,
5519 69, 69, 8, 69, 7, 69, 69, 3, 7, 70,
5520 7, 69, 8, 69, 6, 70, 4, 186, 8, 188,
5521 189, 176, 177, 178, 179, 212, 4, 195, 196, 197,
5522 198, 212, 147, 148, 149, 150, 151, 152, 15, 16,
5523 20, 21, 19, 212, 212, 22, 23, 24, 25, 97,
5524 3, 99, 100, 174, 3, 8, 104, 105, 106, 11,
5525 215, 3, 14, 117, 118, 4, 8, 3, 3, 117,
5526 118, 3, 8, 8, 26, 4, 8, 29, 30, 31,
5527 32, 33, 34, 35, 36, 37, 38, 39, 97, 98,
5528 99, 100, 101, 102, 103, 135, 136, 137, 138, 4,
5529 140, 1225, 3, 1225, 1225, 159, 160, 8, 117, 118,
5530 4, 212, 213, 214, 215, 67, 68, 69, 70, 71,
5531 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
5532 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
5533 117, 118, 187, 95, 96, 190, 191, 192, 193, 3,
5534 3, 986, 4, 6, 8, 107, 108, 109, 212, 41,
5535 42, 43, 114, 3, 212, 117, 118, 4, 8, 4,
5536 122, 123, 124, 125, 126, 3, 110, 111, 112, 113,
5537 8, 133, 32, 33, 34, 35, 4, 3, 32, 33,
5538 34, 143, 8, 3, 146, 3, 17, 18, 8, 3,
5539 8, 153, 154, 212, 8, 3, 158, 3, 8, 161,
5540 8, 3, 8, 165, 4, 3, 8, 67, 68, 69,
5541 8, 4, 421, 422, 58, 59, 60, 4, 180, 181,
5542 182, 183, 184, 185, 4, 212, 27, 28, 4, 4,
5543 4, 4, 194, 4, 4, 95, 96, 97, 4, 4,
5544 4, 4, 96, 117, 118, 4, 4, 4, 4, 4,
5545 212, 4, 4, 4, 4, 4, 4, 117, 118, 4,
5546 4, 4, 3, 117, 118, 4, 4, 4, 128, 129,
5547 130, 4, 126, 8, 4, 3, 8, 4, 4, 496,
5548 134, 135, 136, 137, 138, 139, 140, 4, 505, 8,
5549 3, 212, 166, 167, 168, 169, 170, 171, 172, 173,
5550 517, 4, 4, 4, 521, 4, 505, 4, 4, 4,
5551 4, 517, 4, 517, 215, 532, 215, 215, 517, 4,
5552 4, 4, 521, 213, 215, 542, 4, 4, 4, 213,
5553 517, 548, 213, 532, 213, 548, 213, 517, 212, 215,
5554 517, 517, 213, 542, 561, 505, 214, 542, 214, 548,
5555 4, 4, 212, 548, 548, 214, 532, 517, 212, 215,
5556 213, 521, 561, 215, 213, 213, 4, 517, 4, 215,
5557 517, 213, 532, 214, 521, 215, 215, 4, 215, 4,
5558 517, 517, 542, 517, 4, 532, 213, 4, 548, 4,
5559 4, 4, 4, 517, 215, 532, 517, 4, 215, 215,
5560 517, 561, 4, 517, 4, 4, 4, 4, 532, 213,
5561 4, 517, 4, 517, 4, 517, 4, 4, 517, 517,
5562 215, 517, 4, 517, 215, 517, 517, 215, 4, 4,
5563 1203, 517, 4, 517, 4, 213, 517, 517, 517, 517,
5564 4, 517, 4, 517, 517, 4, 215, 215, 4, 517,
5565 521, 517, 213, 4, 4, 4, 521, 199, 200, 201,
5566 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
5567 4, 4, 4, 213, 4, 4, 4, 213, 4, 213,
5568 4, 4, 699, 4, 701, 4, 4, 4, 4, 698,
5569 4, 4, 215, 4, 215, 215, 4, 215, 4, 215,
5570 4, 213, 701, 4, 213, 30, 31, 32, 33, 34,
5571 35, 4, 4, 213, 4, 213, 4, 175, 7, 736,
5572 737, 7, 739, 7, 7, 212, 743, 7, 7, 5,
5573 212, 212, 212, 212, 5, 5, 5, 736, 737, 738,
5574 739, 701, 67, 68, 69, 70, 71, 72, 73, 74,
5575 75, 76, 212, 212, 5, 7, 81, 82, 83, 84,
5576 85, 86, 87, 88, 89, 90, 212, 92, 93, 94,
5577 5, 96, 5, 5, 5, 212, 736, 737, 738, 739,
5578 7, 7, 7, 108, 109, 7, 7, 5, 212, 212,
5579 115, 7, 117, 118, 119, 120, 121, 122, 123, 124,
5580 5, 212, 127, 212, 5, 7, 131, 212, 133, 212,
5581 5, 212, 3, 7, 7, 7, 141, 212, 7, 212,
5582 7, 212, 7, 30, 31, 32, 33, 34, 35, 212,
5583 7, 212, 212, 212, 212, 212, 7, 7, 212, 212,
5584 7, 212, 142, 212, 212, 212, 212, 212, 4, 4,
5585 4, 4, 4, 4, 4, 180, 181, 4, 4, 4,
5586 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
5587 4, 4, 3, 3, 81, 82, 83, 84, 85, 86,
5588 87, 88, 89, 90, 91, 6, 6, 212, 6, 96,
5589 97, 6, 3, 6, 3, 3, 6, 3, 3, 6,
5590 4, 108, 109, 4, 4, 4, 4, 4, 4, 4,
5591 117, 118, 4, 120, 4, 122, 123, 124, 4, 4,
5592 127, 4, 4, 4, 131, 212, 6, 4, 6, 8,
5593 4, 4, 4, 4, 141, 4, 213, 215, 213, 4,
5594 213, 215, 4, 215, 4, 213, 213, 213, 213, 213,
5595 213, 4, 4, 213, 213, 213, 213, 213, 213, 4,
5596 213, 215, 4, 213, 4, 213, 215, 4, 215, 215,
5597 215, 215, 989, 180, 181, 992, 6, 3, 995, 4,
5598 8, 998, 995, 989, 212, 989, 1003, 8, 212, 1006,
5599 989, 1003, 1009, 992, 998, 212, 995, 992, 212, 998,
5600 995, 995, 989, 998, 1003, 212, 1023, 1006, 1003, 989,
5601 1027, 998, 989, 989, 212, 212, 1003, 4, 998, 1036,
5602 8, 998, 998, 1003, 1023, 3, 1043, 1003, 1027, 989,
5603 1006, 1048, 992, 212, 1033, 995, 212, 1036, 998, 989,
5604 212, 1036, 989, 1003, 8, 4, 1006, 212, 998, 1048,
5605 212, 998, 989, 989, 212, 989, 1003, 4, 4, 1006,
5606 4, 998, 998, 1023, 998, 989, 1003, 1027, 989, 1006,
5607 212, 215, 989, 1033, 998, 989, 1036, 998, 213, 1003,
5608 4, 998, 1006, 989, 998, 989, 1003, 989, 1048, 1003,
5609 989, 989, 998, 989, 998, 989, 998, 989, 989, 998,
5610 998, 1048, 998, 989, 998, 989, 998, 998, 989, 989,
5611 989, 989, 998, 989, 998, 989, 989, 998, 998, 998,
5612 998, 989, 998, 989, 998, 998, 5, 998, 212, 7,
5613 998, 40, 998, 998, 4, 44, 45, 46, 47, 48,
5614 49, 50, 51, 52, 53, 54, 55, 56, 57, 212,
5615 4, 212, 61, 62, 63, 64, 65, 66, 4, 4,
5616 215, 4, 213, 213, 212, 212, 505, 960, 699, 684,
5617 1179, 784, 701, 988, 496, 983, 1001, 1048, 1023, 1011,
5618 1009, 1018, 517, 1048, 1225, 989, 991, 542, 97, 1000,
5619 551, 994, 1048, 992, 548, 532, 997, 1231, 995, 1050,
5620 1263, 521, 1033, 1027, 561, 565, 1241, 700, 1225, 1037,
5621 1004, 1006, 1008, 1283, 1231, 739, -1, 1043, -1, 1231,
5622 -1, 1225, -1, -1, 1241, -1, 1225, -1, -1, -1,
5623 1225, -1, 1231, -1, -1, -1, 1231, -1, 1225, -1,
5624 -1, -1, 1241, -1, 1231, 1225, 1241, -1, 1225, 1225,
5625 -1, 1231, -1, -1, -1, 1231, -1, -1, -1, -1,
5626 -1, -1, -1, -1, -1, 1225, -1, -1, -1, -1,
5627 -1, 1231, -1, -1, -1, 1225, -1, -1, 1225, -1,
5628 -1, 1241, -1, -1, 1231, -1, -1, -1, 1225, 1225,
5629 -1, 1225, -1, -1, 1231, -1, -1, -1, -1, -1,
5630 -1, 1225, -1, 212, 1225, -1, -1, 1231, 1225, -1,
5631 -1, 1225, -1, -1, 1231, -1, -1, 1231, -1, 1225,
5632 -1, 1225, -1, 1225, -1, -1, 1225, 1225, -1, 1225,
5633 -1, 1225, -1, 1225, 1225, -1, -1, -1, -1, 1225,
5634 -1, 1225, -1, -1, 1225, 1225, 1225, 1225, -1, 1225,
5635 -1, 1225, 1225, -1, 1225, -1, -1, 1225, -1, 1225,
5640 Dhcp4Parser::yystos_[] =
5642 0, 199, 200, 201, 202, 203, 204, 205, 206, 207,
5643 208, 209, 210, 211, 217, 218, 219, 220, 221, 222,
5644 223, 224, 225, 226, 227, 228, 229, 230, 0, 5,
5645 7, 9, 212, 213, 214, 215, 231, 232, 233, 238,
5646 7, 247, 7, 252, 7, 307, 7, 421, 7, 502,
5647 7, 519, 7, 453, 7, 459, 7, 483, 7, 397,
5648 7, 586, 7, 605, 239, 234, 248, 253, 308, 422,
5649 503, 520, 454, 460, 484, 398, 587, 606, 231, 240,
5650 241, 212, 236, 237, 10, 249, 251, 11, 14, 26,
5651 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
5652 39, 67, 68, 69, 70, 71, 72, 73, 74, 75,
5653 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
5654 86, 87, 88, 89, 90, 91, 95, 96, 107, 108,
5655 109, 114, 117, 118, 122, 123, 124, 125, 126, 133,
5656 143, 146, 153, 154, 158, 161, 165, 180, 181, 182,
5657 183, 184, 185, 194, 212, 246, 254, 255, 256, 257,
5658 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
5659 269, 270, 272, 273, 274, 275, 276, 277, 278, 281,
5660 283, 285, 286, 287, 290, 291, 293, 295, 296, 297,
5661 298, 299, 300, 301, 302, 303, 321, 323, 331, 333,
5662 375, 384, 391, 405, 415, 439, 440, 441, 443, 451,
5663 477, 509, 511, 513, 524, 526, 528, 551, 565, 566,
5664 574, 584, 603, 612, 636, 15, 16, 19, 22, 23,
5665 24, 25, 246, 305, 306, 309, 311, 314, 317, 318,
5666 319, 320, 509, 511, 92, 93, 94, 115, 119, 120,
5667 121, 127, 131, 141, 246, 256, 257, 258, 259, 260,
5668 261, 262, 263, 264, 265, 270, 273, 274, 275, 276,
5669 277, 278, 281, 283, 285, 286, 287, 290, 291, 293,
5670 295, 301, 423, 424, 425, 427, 429, 431, 433, 435,
5671 437, 439, 440, 441, 442, 477, 496, 509, 511, 513,
5672 524, 526, 528, 546, 116, 132, 246, 435, 437, 477,
5673 504, 505, 506, 508, 509, 511, 126, 134, 135, 136,
5674 137, 138, 139, 140, 246, 477, 509, 511, 521, 522,
5675 523, 524, 526, 528, 530, 532, 534, 536, 538, 540,
5676 542, 544, 451, 40, 97, 99, 100, 104, 105, 106,
5677 246, 351, 461, 462, 463, 464, 465, 466, 467, 469,
5678 471, 473, 474, 476, 509, 511, 98, 101, 102, 103,
5679 246, 351, 465, 471, 485, 486, 487, 488, 489, 491,
5680 492, 493, 494, 495, 509, 511, 144, 145, 246, 399,
5681 400, 401, 403, 166, 167, 168, 169, 170, 171, 172,
5682 173, 246, 509, 511, 588, 589, 590, 591, 593, 594,
5683 596, 597, 598, 601, 12, 13, 607, 608, 609, 611,
5684 6, 3, 4, 8, 3, 250, 3, 8, 604, 304,
5685 324, 4, 4, 4, 525, 527, 529, 4, 4, 322,
5686 332, 334, 4, 4, 4, 4, 4, 4, 4, 4,
5687 4, 4, 4, 268, 4, 4, 4, 4, 4, 279,
5688 282, 284, 4, 4, 4, 4, 416, 452, 478, 4,
5689 271, 288, 444, 510, 512, 4, 4, 4, 376, 552,
5690 514, 392, 406, 4, 385, 567, 575, 585, 292, 294,
5691 4, 4, 4, 613, 637, 4, 3, 8, 310, 312,
5692 315, 4, 4, 4, 4, 3, 8, 428, 430, 432,
5693 497, 426, 434, 4, 438, 436, 547, 3, 8, 507,
5694 4, 3, 8, 545, 531, 533, 535, 539, 537, 543,
5695 541, 8, 3, 8, 468, 352, 4, 472, 470, 475,
5696 4, 8, 3, 490, 4, 4, 4, 8, 3, 402,
5697 404, 3, 8, 4, 592, 4, 595, 4, 4, 599,
5698 602, 3, 8, 610, 4, 3, 8, 231, 231, 212,
5699 4, 4, 4, 4, 215, 215, 215, 4, 4, 4,
5700 213, 215, 4, 4, 4, 213, 213, 213, 213, 213,
5701 215, 214, 214, 214, 213, 213, 4, 213, 213, 215,
5702 215, 215, 4, 4, 4, 215, 215, 214, 215, 4,
5703 4, 4, 213, 4, 4, 4, 4, 4, 215, 215,
5704 215, 4, 4, 4, 4, 4, 213, 4, 4, 4,
5705 4, 4, 4, 215, 215, 215, 4, 4, 255, 4,
5706 4, 4, 215, 215, 213, 213, 306, 4, 4, 4,
5707 4, 4, 4, 213, 4, 4, 4, 424, 4, 213,
5708 505, 4, 4, 4, 4, 4, 4, 4, 4, 523,
5709 4, 4, 213, 4, 4, 4, 215, 463, 4, 215,
5710 215, 215, 487, 4, 4, 400, 215, 4, 213, 4,
5711 213, 213, 4, 4, 589, 4, 213, 608, 4, 7,
5712 7, 7, 7, 212, 212, 212, 7, 7, 5, 212,
5713 176, 177, 178, 179, 215, 280, 212, 212, 5, 5,
5714 5, 212, 110, 111, 112, 113, 289, 5, 233, 235,
5715 212, 5, 5, 5, 5, 7, 7, 7, 7, 7,
5716 212, 212, 5, 7, 5, 242, 17, 18, 313, 20,
5717 21, 316, 212, 212, 212, 5, 212, 212, 242, 212,
5718 7, 212, 242, 212, 212, 212, 212, 212, 212, 212,
5719 212, 212, 212, 212, 212, 212, 212, 235, 212, 212,
5720 18, 174, 600, 175, 5, 231, 254, 607, 305, 27,
5721 28, 325, 326, 327, 329, 40, 44, 45, 46, 47,
5722 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
5723 61, 62, 63, 64, 65, 66, 246, 339, 340, 341,
5724 344, 346, 348, 350, 351, 353, 354, 355, 356, 357,
5725 358, 359, 360, 361, 362, 365, 366, 367, 369, 371,
5726 373, 339, 7, 335, 336, 337, 7, 417, 418, 419,
5727 7, 455, 456, 457, 7, 479, 480, 481, 7, 445,
5728 446, 447, 135, 136, 137, 138, 140, 377, 378, 379,
5729 380, 381, 382, 383, 7, 553, 554, 7, 515, 516,
5730 517, 7, 393, 394, 395, 147, 148, 149, 150, 151,
5731 152, 407, 408, 409, 410, 411, 412, 413, 414, 155,
5732 156, 157, 246, 386, 387, 388, 389, 390, 509, 511,
5733 159, 160, 246, 509, 511, 568, 569, 570, 572, 162,
5734 163, 164, 212, 509, 511, 576, 577, 578, 579, 581,
5735 582, 588, 7, 614, 615, 195, 196, 197, 198, 246,
5736 638, 639, 640, 641, 642, 643, 243, 7, 498, 499,
5737 500, 142, 548, 549, 335, 8, 8, 8, 328, 330,
5738 3, 8, 342, 345, 347, 349, 4, 4, 4, 4,
5739 4, 4, 4, 4, 4, 4, 363, 4, 4, 368,
5740 370, 372, 374, 3, 8, 8, 338, 6, 3, 420,
5741 6, 3, 458, 6, 3, 482, 6, 3, 448, 6,
5742 3, 3, 6, 555, 3, 6, 518, 6, 3, 396,
5743 6, 3, 4, 4, 4, 4, 4, 4, 3, 8,
5744 4, 4, 4, 3, 8, 571, 573, 3, 8, 4,
5745 580, 4, 583, 3, 8, 8, 616, 3, 6, 4,
5746 4, 4, 4, 3, 8, 212, 244, 245, 501, 6,
5747 3, 550, 8, 6, 4, 4, 326, 4, 4, 4,
5748 4, 213, 215, 213, 215, 213, 213, 213, 213, 213,
5749 213, 4, 215, 213, 4, 4, 4, 4, 340, 339,
5750 337, 423, 419, 461, 457, 485, 481, 246, 256, 257,
5751 258, 259, 260, 261, 262, 263, 264, 265, 270, 273,
5752 274, 275, 276, 277, 278, 281, 283, 285, 286, 287,
5753 290, 291, 293, 295, 301, 351, 415, 433, 435, 437,
5754 439, 440, 441, 449, 450, 477, 509, 511, 524, 526,
5755 528, 546, 447, 378, 128, 129, 130, 246, 256, 257,
5756 258, 301, 351, 451, 477, 509, 511, 524, 526, 528,
5757 556, 557, 558, 559, 560, 562, 564, 554, 521, 517,
5758 399, 395, 213, 213, 213, 213, 213, 213, 408, 215,
5759 213, 213, 387, 4, 4, 569, 215, 4, 213, 4,
5760 577, 186, 188, 189, 246, 351, 509, 511, 617, 618,
5761 619, 620, 622, 615, 215, 215, 215, 215, 639, 6,
5762 3, 504, 500, 4, 212, 212, 41, 42, 43, 343,
5763 212, 212, 212, 58, 59, 60, 364, 212, 212, 212,
5764 212, 8, 8, 8, 8, 3, 8, 561, 563, 4,
5765 8, 3, 8, 8, 212, 212, 212, 231, 623, 4,
5766 621, 3, 8, 212, 8, 242, 450, 4, 4, 215,
5767 558, 4, 213, 4, 618, 212, 212, 5, 212, 7,
5768 624, 625, 626, 3, 6, 187, 190, 191, 192, 193,
5769 627, 628, 629, 631, 632, 633, 634, 625, 630, 4,
5770 4, 4, 635, 3, 8, 4, 215, 213, 213, 4,
5775 Dhcp4Parser::yyr1_[] =
5777 0, 216, 218, 217, 219, 217, 220, 217, 221, 217,
5778 222, 217, 223, 217, 224, 217, 225, 217, 226, 217,
5779 227, 217, 228, 217, 229, 217, 230, 217, 231, 231,
5780 231, 231, 231, 231, 231, 232, 234, 233, 235, 236,
5781 236, 237, 237, 237, 239, 238, 240, 240, 241, 241,
5782 241, 243, 242, 244, 244, 245, 245, 245, 246, 248,
5783 247, 250, 249, 249, 251, 253, 252, 254, 254, 254,
5784 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
5785 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
5786 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
5787 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
5788 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
5789 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
5790 255, 255, 255, 255, 255, 255, 255, 255, 256, 257,
5791 258, 259, 260, 261, 262, 263, 264, 265, 266, 268,
5792 267, 269, 271, 270, 272, 273, 274, 275, 276, 277,
5793 279, 278, 280, 280, 280, 280, 280, 282, 281, 284,
5794 283, 285, 286, 288, 287, 289, 289, 289, 289, 290,
5795 292, 291, 294, 293, 295, 296, 297, 298, 299, 300,
5796 301, 302, 304, 303, 305, 305, 305, 306, 306, 306,
5797 306, 306, 306, 306, 306, 306, 306, 308, 307, 310,
5798 309, 312, 311, 313, 313, 315, 314, 316, 316, 317,
5799 318, 319, 320, 322, 321, 324, 323, 325, 325, 325,
5800 326, 326, 328, 327, 330, 329, 332, 331, 334, 333,
5801 335, 335, 336, 336, 336, 338, 337, 339, 339, 339,
5802 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
5803 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
5804 340, 340, 340, 342, 341, 343, 343, 343, 345, 344,
5805 347, 346, 349, 348, 350, 352, 351, 353, 354, 355,
5806 356, 357, 358, 359, 360, 361, 363, 362, 364, 364,
5807 364, 365, 366, 368, 367, 370, 369, 372, 371, 374,
5808 373, 376, 375, 377, 377, 377, 378, 378, 378, 378,
5809 378, 379, 380, 381, 382, 383, 385, 384, 386, 386,
5810 386, 387, 387, 387, 387, 387, 387, 388, 389, 390,
5811 392, 391, 393, 393, 394, 394, 394, 396, 395, 398,
5812 397, 399, 399, 399, 399, 400, 400, 402, 401, 404,
5813 403, 406, 405, 407, 407, 407, 408, 408, 408, 408,
5814 408, 408, 409, 410, 411, 412, 413, 414, 416, 415,
5815 417, 417, 418, 418, 418, 420, 419, 422, 421, 423,
5816 423, 423, 424, 424, 424, 424, 424, 424, 424, 424,
5817 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
5818 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
5819 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
5820 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
5821 426, 425, 428, 427, 430, 429, 432, 431, 434, 433,
5822 436, 435, 438, 437, 439, 440, 441, 442, 444, 443,
5823 445, 445, 446, 446, 446, 448, 447, 449, 449, 449,
5824 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
5825 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
5826 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
5827 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
5828 450, 450, 450, 452, 451, 454, 453, 455, 455, 456,
5829 456, 456, 458, 457, 460, 459, 461, 461, 462, 462,
5830 462, 463, 463, 463, 463, 463, 463, 463, 463, 463,
5831 463, 464, 465, 466, 468, 467, 470, 469, 472, 471,
5832 473, 475, 474, 476, 478, 477, 479, 479, 480, 480,
5833 480, 482, 481, 484, 483, 485, 485, 486, 486, 486,
5834 487, 487, 487, 487, 487, 487, 487, 487, 487, 487,
5835 488, 490, 489, 491, 492, 493, 494, 495, 497, 496,
5836 498, 498, 499, 499, 499, 501, 500, 503, 502, 504,
5837 504, 504, 505, 505, 505, 505, 505, 505, 505, 505,
5838 507, 506, 508, 510, 509, 512, 511, 514, 513, 515,
5839 515, 516, 516, 516, 518, 517, 520, 519, 521, 521,
5840 522, 522, 522, 523, 523, 523, 523, 523, 523, 523,
5841 523, 523, 523, 523, 523, 523, 523, 523, 525, 524,
5842 527, 526, 529, 528, 531, 530, 533, 532, 535, 534,
5843 537, 536, 539, 538, 541, 540, 543, 542, 545, 544,
5844 547, 546, 548, 550, 549, 552, 551, 553, 553, 553,
5845 555, 554, 556, 556, 557, 557, 557, 558, 558, 558,
5846 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
5847 558, 558, 558, 559, 561, 560, 563, 562, 564, 565,
5848 567, 566, 568, 568, 568, 569, 569, 569, 569, 569,
5849 571, 570, 573, 572, 575, 574, 576, 576, 576, 577,
5850 577, 577, 577, 577, 577, 578, 580, 579, 581, 583,
5851 582, 585, 584, 587, 586, 588, 588, 588, 589, 589,
5852 589, 589, 589, 589, 589, 589, 589, 589, 589, 590,
5853 592, 591, 593, 595, 594, 596, 597, 599, 598, 600,
5854 600, 602, 601, 604, 603, 606, 605, 607, 607, 607,
5855 608, 608, 610, 609, 611, 613, 612, 614, 614, 614,
5856 616, 615, 617, 617, 617, 618, 618, 618, 618, 618,
5857 618, 618, 619, 621, 620, 623, 622, 624, 624, 624,
5858 626, 625, 627, 627, 627, 628, 628, 628, 628, 628,
5859 630, 629, 631, 632, 633, 635, 634, 637, 636, 638,
5860 638, 638, 639, 639, 639, 639, 639, 640, 641, 642,
5865 Dhcp4Parser::yyr2_[] =
5867 0, 2, 0, 3, 0, 3, 0, 3, 0, 3,
5868 0, 3, 0, 3, 0, 3, 0, 3, 0, 3,
5869 0, 3, 0, 3, 0, 3, 0, 3, 1, 1,
5870 1, 1, 1, 1, 1, 1, 0, 4, 1, 0,
5871 1, 3, 5, 2, 0, 4, 0, 1, 1, 3,
5872 2, 0, 4, 0, 1, 1, 3, 2, 2, 0,
5873 4, 0, 6, 1, 2, 0, 4, 1, 3, 2,
5874 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5875 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5876 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5877 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5878 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5879 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5880 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
5881 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
5882 4, 3, 0, 4, 3, 3, 3, 3, 3, 3,
5883 0, 4, 1, 1, 1, 1, 1, 0, 4, 0,
5884 4, 3, 3, 0, 4, 1, 1, 1, 1, 3,
5885 0, 4, 0, 4, 3, 3, 3, 3, 3, 3,
5886 3, 3, 0, 6, 1, 3, 2, 1, 1, 1,
5887 1, 1, 1, 1, 1, 1, 1, 0, 4, 0,
5888 4, 0, 4, 1, 1, 0, 4, 1, 1, 3,
5889 3, 3, 3, 0, 6, 0, 6, 1, 3, 2,
5890 1, 1, 0, 4, 0, 4, 0, 6, 0, 6,
5891 0, 1, 1, 3, 2, 0, 4, 1, 3, 2,
5892 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5893 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5894 1, 1, 1, 0, 4, 1, 1, 1, 0, 4,
5895 0, 4, 0, 4, 3, 0, 4, 3, 3, 3,
5896 3, 3, 3, 3, 3, 3, 0, 4, 1, 1,
5897 1, 3, 3, 0, 4, 0, 4, 0, 4, 0,
5898 4, 0, 6, 1, 3, 2, 1, 1, 1, 1,
5899 1, 1, 1, 1, 1, 1, 0, 6, 1, 3,
5900 2, 1, 1, 1, 1, 1, 1, 3, 3, 3,
5901 0, 6, 0, 1, 1, 3, 2, 0, 4, 0,
5902 4, 1, 3, 2, 1, 1, 1, 0, 4, 0,
5903 4, 0, 6, 1, 3, 2, 1, 1, 1, 1,
5904 1, 1, 3, 3, 3, 3, 3, 3, 0, 6,
5905 0, 1, 1, 3, 2, 0, 4, 0, 4, 1,
5906 3, 2, 1, 1, 1, 1, 1, 1, 1, 1,
5907 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5908 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5909 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5910 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5911 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
5912 0, 4, 0, 4, 3, 3, 3, 3, 0, 6,
5913 0, 1, 1, 3, 2, 0, 4, 1, 3, 2,
5914 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5915 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5916 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5917 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5918 1, 1, 1, 0, 6, 0, 4, 0, 1, 1,
5919 3, 2, 0, 4, 0, 4, 0, 1, 1, 3,
5920 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5921 1, 1, 3, 1, 0, 4, 0, 4, 0, 4,
5922 1, 0, 4, 3, 0, 6, 0, 1, 1, 3,
5923 2, 0, 4, 0, 4, 0, 1, 1, 3, 2,
5924 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5925 1, 0, 4, 1, 1, 3, 3, 3, 0, 6,
5926 0, 1, 1, 3, 2, 0, 4, 0, 4, 1,
5927 3, 2, 1, 1, 1, 1, 1, 1, 1, 1,
5928 0, 4, 3, 0, 4, 0, 4, 0, 6, 0,
5929 1, 1, 3, 2, 0, 4, 0, 4, 0, 1,
5930 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
5931 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
5932 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
5933 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
5934 0, 6, 1, 0, 4, 0, 6, 1, 3, 2,
5935 0, 4, 0, 1, 1, 3, 2, 1, 1, 1,
5936 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5937 1, 1, 1, 1, 0, 4, 0, 4, 3, 3,
5938 0, 6, 1, 3, 2, 1, 1, 1, 1, 1,
5939 0, 4, 0, 4, 0, 6, 1, 3, 2, 1,
5940 1, 1, 1, 1, 1, 3, 0, 4, 3, 0,
5941 4, 0, 6, 0, 4, 1, 3, 2, 1, 1,
5942 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
5943 0, 4, 3, 0, 4, 3, 3, 0, 4, 1,
5944 1, 0, 4, 0, 6, 0, 4, 1, 3, 2,
5945 1, 1, 0, 6, 3, 0, 6, 1, 3, 2,
5946 0, 4, 1, 3, 2, 1, 1, 1, 1, 1,
5947 1, 1, 3, 0, 4, 0, 6, 1, 3, 2,
5948 0, 4, 1, 3, 2, 1, 1, 1, 1, 1,
5949 0, 4, 3, 3, 3, 0, 4, 0, 6, 1,
5950 3, 2, 1, 1, 1, 1, 1, 3, 3, 3,
5955#if PARSER4_DEBUG || 1
5959 const Dhcp4Parser::yytname_[] =
5961 "\"end of file\"",
"error",
"\"invalid token\"",
"\",\"",
"\":\"",
5962 "\"[\"",
"\"]\"",
"\"{\"",
"\"}\"",
"\"null\"",
"\"Dhcp4\"",
5963 "\"config-control\"",
"\"config-databases\"",
5964 "\"config-fetch-wait-time\"",
"\"interfaces-config\"",
"\"interfaces\"",
5965 "\"dhcp-socket-type\"",
"\"raw\"",
"\"udp\"",
"\"outbound-interface\"",
5966 "\"same-as-inbound\"",
"\"use-routing\"",
"\"re-detect\"",
5967 "\"service-sockets-require-all\"",
"\"service-sockets-retry-wait-time\"",
5968 "\"service-sockets-max-retries\"",
"\"sanity-checks\"",
5969 "\"lease-checks\"",
"\"extended-info-checks\"",
"\"echo-client-id\"",
5970 "\"match-client-id\"",
"\"authoritative\"",
"\"next-server\"",
5971 "\"server-hostname\"",
"\"boot-file-name\"",
"\"offer-lifetime\"",
5972 "\"stash-agent-options\"",
"\"lease-database\"",
"\"hosts-database\"",
5973 "\"hosts-databases\"",
"\"type\"",
"\"memfile\"",
"\"mysql\"",
5974 "\"postgresql\"",
"\"user\"",
"\"password\"",
"\"host\"",
"\"port\"",
5975 "\"persist\"",
"\"lfc-interval\"",
"\"readonly\"",
"\"connect-timeout\"",
5976 "\"read-timeout\"",
"\"write-timeout\"",
"\"tcp-user-timeout\"",
5977 "\"max-reconnect-tries\"",
"\"reconnect-wait-time\"",
"\"on-fail\"",
5978 "\"stop-retry-exit\"",
"\"serve-retry-exit\"",
5979 "\"serve-retry-continue\"",
"\"retry-on-startup\"",
"\"max-row-errors\"",
5980 "\"trust-anchor\"",
"\"cert-file\"",
"\"key-file\"",
"\"cipher-list\"",
5981 "\"valid-lifetime\"",
"\"min-valid-lifetime\"",
"\"max-valid-lifetime\"",
5982 "\"renew-timer\"",
"\"rebind-timer\"",
"\"calculate-tee-times\"",
5983 "\"t1-percent\"",
"\"t2-percent\"",
"\"cache-threshold\"",
5984 "\"cache-max-age\"",
"\"decline-probation-period\"",
"\"server-tag\"",
5985 "\"statistic-default-sample-count\"",
"\"statistic-default-sample-age\"",
5986 "\"ddns-send-updates\"",
"\"ddns-override-no-update\"",
5987 "\"ddns-override-client-update\"",
"\"ddns-replace-client-name\"",
5988 "\"ddns-generated-prefix\"",
"\"ddns-qualifying-suffix\"",
5989 "\"ddns-update-on-renew\"",
"\"ddns-use-conflict-resolution\"",
5990 "\"ddns-ttl-percent\"",
"\"store-extended-info\"",
"\"subnet4\"",
5991 "\"4o6-interface\"",
"\"4o6-interface-id\"",
"\"4o6-subnet\"",
5992 "\"option-def\"",
"\"option-data\"",
"\"name\"",
"\"data\"",
"\"code\"",
5993 "\"space\"",
"\"csv-format\"",
"\"always-send\"",
"\"never-send\"",
5994 "\"record-types\"",
"\"encapsulate\"",
"\"array\"",
5995 "\"parked-packet-limit\"",
"\"allocator\"",
5996 "\"ddns-conflict-resolution-mode\"",
"\"check-with-dhcid\"",
5997 "\"no-check-with-dhcid\"",
"\"check-exists-with-dhcid\"",
5998 "\"no-check-without-dhcid\"",
"\"shared-networks\"",
"\"pools\"",
5999 "\"pool\"",
"\"user-context\"",
"\"comment\"",
"\"subnet\"",
6000 "\"interface\"",
"\"id\"",
"\"reservations-global\"",
6001 "\"reservations-in-subnet\"",
"\"reservations-out-of-pool\"",
6002 "\"host-reservation-identifiers\"",
"\"client-classes\"",
6003 "\"require-client-classes\"",
"\"test\"",
"\"template-test\"",
6004 "\"only-if-required\"",
"\"client-class\"",
"\"pool-id\"",
6005 "\"reservations\"",
"\"ip-address\"",
"\"duid\"",
"\"hw-address\"",
6006 "\"circuit-id\"",
"\"client-id\"",
"\"hostname\"",
"\"flex-id\"",
6007 "\"relay\"",
"\"ip-addresses\"",
"\"hooks-libraries\"",
"\"library\"",
6008 "\"parameters\"",
"\"expired-leases-processing\"",
6009 "\"reclaim-timer-wait-time\"",
"\"flush-reclaimed-timer-wait-time\"",
6010 "\"hold-reclaimed-time\"",
"\"max-reclaim-leases\"",
6011 "\"max-reclaim-time\"",
"\"unwarned-reclaim-cycles\"",
6012 "\"dhcp4o6-port\"",
"\"multi-threading\"",
"\"enable-multi-threading\"",
6013 "\"thread-pool-size\"",
"\"packet-queue-size\"",
"\"control-socket\"",
6014 "\"socket-type\"",
"\"socket-name\"",
"\"dhcp-queue-control\"",
6015 "\"enable-queue\"",
"\"queue-type\"",
"\"capacity\"",
"\"dhcp-ddns\"",
6016 "\"enable-updates\"",
"\"server-ip\"",
"\"server-port\"",
6017 "\"sender-ip\"",
"\"sender-port\"",
"\"max-queue-size\"",
6018 "\"ncr-protocol\"",
"\"ncr-format\"",
"\"tcp\"",
"\"JSON\"",
6019 "\"when-present\"",
"\"never\"",
"\"always\"",
"\"when-not-present\"",
6020 "\"hostname-char-set\"",
"\"hostname-char-replacement\"",
6021 "\"early-global-reservations-lookup\"",
"\"ip-reservations-unique\"",
6022 "\"reservations-lookup-first\"",
"\"loggers\"",
"\"output-options\"",
6023 "\"output\"",
"\"debuglevel\"",
"\"severity\"",
"\"flush\"",
6024 "\"maxsize\"",
"\"maxver\"",
"\"pattern\"",
"\"compatibility\"",
6025 "\"lenient-option-parsing\"",
"\"ignore-dhcp-server-identifier\"",
6026 "\"ignore-rai-link-selection\"",
"\"exclude-first-last-24\"",
6027 "TOPLEVEL_JSON",
"TOPLEVEL_DHCP4",
"SUB_DHCP4",
"SUB_INTERFACES4",
6028 "SUB_SUBNET4",
"SUB_POOL4",
"SUB_RESERVATION",
"SUB_OPTION_DEFS",
6029 "SUB_OPTION_DEF",
"SUB_OPTION_DATA",
"SUB_HOOKS_LIBRARY",
6030 "SUB_DHCP_DDNS",
"SUB_CONFIG_CONTROL",
"\"constant string\"",
6031 "\"integer\"",
"\"floating point\"",
"\"boolean\"",
"$accept",
"start",
6032 "$@1",
"$@2",
"$@3",
"$@4",
"$@5",
"$@6",
"$@7",
"$@8",
"$@9",
"$@10",
6033 "$@11",
"$@12",
"$@13",
"value",
"sub_json",
"map2",
"$@14",
"map_value",
6034 "map_content",
"not_empty_map",
"list_generic",
"$@15",
"list_content",
6035 "not_empty_list",
"list_strings",
"$@16",
"list_strings_content",
6036 "not_empty_list_strings",
"unknown_map_entry",
"syntax_map",
"$@17",
6037 "global_object",
"$@18",
"global_object_comma",
"sub_dhcp4",
"$@19",
6038 "global_params",
"global_param",
"valid_lifetime",
"min_valid_lifetime",
6039 "max_valid_lifetime",
"renew_timer",
"rebind_timer",
6040 "calculate_tee_times",
"t1_percent",
"t2_percent",
"cache_threshold",
6041 "cache_max_age",
"decline_probation_period",
"server_tag",
"$@20",
6042 "parked_packet_limit",
"allocator",
"$@21",
"echo_client_id",
6043 "match_client_id",
"authoritative",
"ddns_send_updates",
6044 "ddns_override_no_update",
"ddns_override_client_update",
6045 "ddns_replace_client_name",
"$@22",
"ddns_replace_client_name_value",
6046 "ddns_generated_prefix",
"$@23",
"ddns_qualifying_suffix",
"$@24",
6047 "ddns_update_on_renew",
"ddns_use_conflict_resolution",
6048 "ddns_conflict_resolution_mode",
"$@25",
6049 "ddns_conflict_resolution_mode_value",
"ddns_ttl_percent",
6050 "hostname_char_set",
"$@26",
"hostname_char_replacement",
"$@27",
6051 "store_extended_info",
"statistic_default_sample_count",
6052 "statistic_default_sample_age",
"early_global_reservations_lookup",
6053 "ip_reservations_unique",
"reservations_lookup_first",
"offer_lifetime",
6054 "stash_agent_options",
"interfaces_config",
"$@28",
6055 "interfaces_config_params",
"interfaces_config_param",
"sub_interfaces4",
6056 "$@29",
"interfaces_list",
"$@30",
"dhcp_socket_type",
"$@31",
6057 "socket_type",
"outbound_interface",
"$@32",
"outbound_interface_value",
6058 "re_detect",
"service_sockets_require_all",
6059 "service_sockets_retry_wait_time",
"service_sockets_max_retries",
6060 "lease_database",
"$@33",
"sanity_checks",
"$@34",
6061 "sanity_checks_params",
"sanity_checks_param",
"lease_checks",
"$@35",
6062 "extended_info_checks",
"$@36",
"hosts_database",
"$@37",
6063 "hosts_databases",
"$@38",
"database_list",
"not_empty_database_list",
6064 "database",
"$@39",
"database_map_params",
"database_map_param",
6065 "database_type",
"$@40",
"db_type",
"user",
"$@41",
"password",
"$@42",
6066 "host",
"$@43",
"port",
"name",
"$@44",
"persist",
"lfc_interval",
6067 "readonly",
"connect_timeout",
"read_timeout",
"write_timeout",
6068 "tcp_user_timeout",
"max_reconnect_tries",
"reconnect_wait_time",
6069 "on_fail",
"$@45",
"on_fail_mode",
"retry_on_startup",
"max_row_errors",
6070 "trust_anchor",
"$@46",
"cert_file",
"$@47",
"key_file",
"$@48",
6071 "cipher_list",
"$@49",
"host_reservation_identifiers",
"$@50",
6072 "host_reservation_identifiers_list",
"host_reservation_identifier",
6073 "duid_id",
"hw_address_id",
"circuit_id",
"client_id",
"flex_id",
6074 "dhcp_multi_threading",
"$@51",
"multi_threading_params",
6075 "multi_threading_param",
"enable_multi_threading",
"thread_pool_size",
6076 "packet_queue_size",
"hooks_libraries",
"$@52",
"hooks_libraries_list",
6077 "not_empty_hooks_libraries_list",
"hooks_library",
"$@53",
6078 "sub_hooks_library",
"$@54",
"hooks_params",
"hooks_param",
"library",
6079 "$@55",
"parameters",
"$@56",
"expired_leases_processing",
"$@57",
6080 "expired_leases_params",
"expired_leases_param",
6081 "reclaim_timer_wait_time",
"flush_reclaimed_timer_wait_time",
6082 "hold_reclaimed_time",
"max_reclaim_leases",
"max_reclaim_time",
6083 "unwarned_reclaim_cycles",
"subnet4_list",
"$@58",
6084 "subnet4_list_content",
"not_empty_subnet4_list",
"subnet4",
"$@59",
6085 "sub_subnet4",
"$@60",
"subnet4_params",
"subnet4_param",
"subnet",
6086 "$@61",
"subnet_4o6_interface",
"$@62",
"subnet_4o6_interface_id",
6087 "$@63",
"subnet_4o6_subnet",
"$@64",
"interface",
"$@65",
"client_class",
6088 "$@66",
"require_client_classes",
"$@67",
"reservations_global",
6089 "reservations_in_subnet",
"reservations_out_of_pool",
"id",
6090 "shared_networks",
"$@68",
"shared_networks_content",
6091 "shared_networks_list",
"shared_network",
"$@69",
6092 "shared_network_params",
"shared_network_param",
"option_def_list",
6093 "$@70",
"sub_option_def_list",
"$@71",
"option_def_list_content",
6094 "not_empty_option_def_list",
"option_def_entry",
"$@72",
6095 "sub_option_def",
"$@73",
"option_def_params",
6096 "not_empty_option_def_params",
"option_def_param",
"option_def_name",
6097 "code",
"option_def_code",
"option_def_type",
"$@74",
6098 "option_def_record_types",
"$@75",
"space",
"$@76",
"option_def_space",
6099 "option_def_encapsulate",
"$@77",
"option_def_array",
"option_data_list",
6100 "$@78",
"option_data_list_content",
"not_empty_option_data_list",
6101 "option_data_entry",
"$@79",
"sub_option_data",
"$@80",
6102 "option_data_params",
"not_empty_option_data_params",
6103 "option_data_param",
"option_data_name",
"option_data_data",
"$@81",
6104 "option_data_code",
"option_data_space",
"option_data_csv_format",
6105 "option_data_always_send",
"option_data_never_send",
"pools_list",
6106 "$@82",
"pools_list_content",
"not_empty_pools_list",
"pool_list_entry",
6107 "$@83",
"sub_pool4",
"$@84",
"pool_params",
"pool_param",
"pool_entry",
6108 "$@85",
"pool_id",
"user_context",
"$@86",
"comment",
"$@87",
6109 "reservations",
"$@88",
"reservations_list",
6110 "not_empty_reservations_list",
"reservation",
"$@89",
"sub_reservation",
6111 "$@90",
"reservation_params",
"not_empty_reservation_params",
6112 "reservation_param",
"next_server",
"$@91",
"server_hostname",
"$@92",
6113 "boot_file_name",
"$@93",
"ip_address",
"$@94",
"duid",
"$@95",
6114 "hw_address",
"$@96",
"client_id_value",
"$@97",
"circuit_id_value",
6115 "$@98",
"flex_id_value",
"$@99",
"hostname",
"$@100",
6116 "reservation_client_classes",
"$@101",
"relay",
"$@102",
"relay_map",
6117 "ip_addresses",
"$@103",
"client_classes",
"$@104",
6118 "client_classes_list",
"client_class_entry",
"$@105",
6119 "client_class_params",
"not_empty_client_class_params",
6120 "client_class_param",
"client_class_name",
"client_class_test",
"$@106",
6121 "client_class_template_test",
"$@107",
"only_if_required",
6122 "dhcp4o6_port",
"control_socket",
"$@108",
"control_socket_params",
6123 "control_socket_param",
"control_socket_type",
"$@109",
6124 "control_socket_name",
"$@110",
"dhcp_queue_control",
"$@111",
6125 "queue_control_params",
"queue_control_param",
"enable_queue",
6126 "queue_type",
"$@112",
"capacity",
"arbitrary_map_entry",
"$@113",
6127 "dhcp_ddns",
"$@114",
"sub_dhcp_ddns",
"$@115",
"dhcp_ddns_params",
6128 "dhcp_ddns_param",
"enable_updates",
"server_ip",
"$@116",
"server_port",
6129 "sender_ip",
"$@117",
"sender_port",
"max_queue_size",
"ncr_protocol",
6130 "$@118",
"ncr_protocol_value",
"ncr_format",
"$@119",
"config_control",
6131 "$@120",
"sub_config_control",
"$@121",
"config_control_params",
6132 "config_control_param",
"config_databases",
"$@122",
6133 "config_fetch_wait_time",
"loggers",
"$@123",
"loggers_entries",
6134 "logger_entry",
"$@124",
"logger_params",
"logger_param",
"debuglevel",
6135 "severity",
"$@125",
"output_options_list",
"$@126",
6136 "output_options_list_content",
"output_entry",
"$@127",
6137 "output_params_list",
"output_params",
"output",
"$@128",
"flush",
6138 "maxsize",
"maxver",
"pattern",
"$@129",
"compatibility",
"$@130",
6139 "compatibility_params",
"compatibility_param",
"lenient_option_parsing",
6140 "ignore_dhcp_server_identifier",
"ignore_rai_link_selection",
6141 "exclude_first_last_24", YY_NULLPTR
6148 Dhcp4Parser::yyrline_[] =
6150 0, 310, 310, 310, 311, 311, 312, 312, 313, 313,
6151 314, 314, 315, 315, 316, 316, 317, 317, 318, 318,
6152 319, 319, 320, 320, 321, 321, 322, 322, 330, 331,
6153 332, 333, 334, 335, 336, 339, 344, 344, 355, 358,
6154 359, 362, 367, 373, 378, 378, 385, 386, 389, 393,
6155 397, 403, 403, 410, 411, 414, 418, 422, 432, 441,
6156 441, 456, 456, 470, 473, 479, 479, 488, 489, 490,
6157 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
6158 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
6159 517, 518, 519, 520, 521, 522, 523, 524, 525, 526,
6160 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
6161 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
6162 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
6163 557, 558, 559, 560, 561, 562, 563, 564, 567, 573,
6164 579, 585, 591, 597, 603, 609, 615, 621, 627, 633,
6165 633, 642, 648, 648, 657, 663, 669, 675, 681, 687,
6166 693, 693, 702, 705, 708, 711, 714, 720, 720, 729,
6167 729, 738, 747, 757, 757, 766, 769, 772, 775, 780,
6168 786, 786, 795, 795, 804, 810, 816, 822, 828, 834,
6169 840, 846, 852, 852, 864, 865, 866, 871, 872, 873,
6170 874, 875, 876, 877, 878, 879, 880, 883, 883, 892,
6171 892, 903, 903, 911, 912, 915, 915, 923, 925, 929,
6172 935, 941, 947, 953, 953, 966, 966, 977, 978, 979,
6173 984, 985, 988, 988, 1007, 1007, 1025, 1025, 1038, 1038,
6174 1049, 1050, 1053, 1054, 1055, 1060, 1060, 1070, 1071, 1072,
6175 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
6176 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
6177 1097, 1098, 1099, 1102, 1102, 1110, 1111, 1112, 1115, 1115,
6178 1124, 1124, 1133, 1133, 1142, 1148, 1148, 1157, 1163, 1169,
6179 1175, 1181, 1187, 1193, 1199, 1205, 1211, 1211, 1219, 1220,
6180 1221, 1224, 1230, 1236, 1236, 1245, 1245, 1254, 1254, 1263,
6181 1263, 1272, 1272, 1283, 1284, 1285, 1290, 1291, 1292, 1293,
6182 1294, 1297, 1302, 1307, 1312, 1317, 1324, 1324, 1337, 1338,
6183 1339, 1344, 1345, 1346, 1347, 1348, 1349, 1352, 1358, 1364,
6184 1370, 1370, 1381, 1382, 1385, 1386, 1387, 1392, 1392, 1402,
6185 1402, 1412, 1413, 1414, 1417, 1420, 1421, 1424, 1424, 1433,
6186 1433, 1442, 1442, 1454, 1455, 1456, 1461, 1462, 1463, 1464,
6187 1465, 1466, 1469, 1475, 1481, 1487, 1493, 1499, 1508, 1508,
6188 1522, 1523, 1526, 1527, 1528, 1537, 1537, 1563, 1563, 1574,
6189 1575, 1576, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589,
6190 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599,
6191 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609,
6192 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619,
6193 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629,
6194 1632, 1632, 1641, 1641, 1650, 1650, 1659, 1659, 1668, 1668,
6195 1677, 1677, 1686, 1686, 1697, 1703, 1709, 1715, 1723, 1723,
6196 1735, 1736, 1740, 1741, 1742, 1747, 1747, 1755, 1756, 1757,
6197 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771,
6198 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
6199 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791,
6200 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801,
6201 1802, 1803, 1804, 1811, 1811, 1825, 1825, 1834, 1835, 1838,
6202 1839, 1840, 1847, 1847, 1862, 1862, 1876, 1877, 1880, 1881,
6203 1882, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895,
6204 1896, 1899, 1901, 1907, 1909, 1909, 1918, 1918, 1927, 1927,
6205 1936, 1938, 1938, 1947, 1957, 1957, 1970, 1971, 1976, 1977,
6206 1978, 1985, 1985, 1997, 1997, 2009, 2010, 2015, 2016, 2017,
6207 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033,
6208 2036, 2038, 2038, 2047, 2049, 2051, 2057, 2063, 2072, 2072,
6209 2085, 2086, 2089, 2090, 2091, 2096, 2096, 2106, 2106, 2116,
6210 2117, 2118, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130,
6211 2133, 2133, 2142, 2148, 2148, 2173, 2173, 2203, 2203, 2214,
6212 2215, 2218, 2219, 2220, 2225, 2225, 2234, 2234, 2243, 2244,
6213 2247, 2248, 2249, 2255, 2256, 2257, 2258, 2259, 2260, 2261,
6214 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2272, 2272,
6215 2281, 2281, 2290, 2290, 2299, 2299, 2308, 2308, 2317, 2317,
6216 2326, 2326, 2335, 2335, 2344, 2344, 2353, 2353, 2362, 2362,
6217 2376, 2376, 2387, 2390, 2390, 2404, 2404, 2415, 2416, 2417,
6218 2422, 2422, 2432, 2433, 2436, 2437, 2438, 2443, 2444, 2445,
6219 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455,
6220 2456, 2457, 2458, 2461, 2463, 2463, 2472, 2472, 2481, 2489,
6221 2497, 2497, 2508, 2509, 2510, 2515, 2516, 2517, 2518, 2519,
6222 2522, 2522, 2531, 2531, 2543, 2543, 2556, 2557, 2558, 2563,
6223 2564, 2565, 2566, 2567, 2568, 2571, 2577, 2577, 2586, 2592,
6224 2592, 2602, 2602, 2615, 2615, 2625, 2626, 2627, 2632, 2633,
6225 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2645,
6226 2651, 2651, 2660, 2666, 2666, 2675, 2681, 2687, 2687, 2696,
6227 2697, 2700, 2700, 2711, 2711, 2723, 2723, 2733, 2734, 2735,
6228 2741, 2742, 2745, 2745, 2756, 2764, 2764, 2777, 2778, 2779,
6229 2785, 2785, 2793, 2794, 2795, 2800, 2801, 2802, 2803, 2804,
6230 2805, 2806, 2809, 2815, 2815, 2824, 2824, 2835, 2836, 2837,
6231 2842, 2842, 2850, 2851, 2852, 2857, 2858, 2859, 2860, 2861,
6232 2864, 2864, 2873, 2879, 2885, 2891, 2891, 2900, 2900, 2911,
6233 2912, 2913, 2918, 2919, 2920, 2921, 2922, 2925, 2931, 2937,
6238 Dhcp4Parser::yy_stack_print_ ()
const
6240 *yycdebug_ <<
"Stack now";
6241 for (stack_type::const_iterator
6242 i = yystack_.begin (),
6243 i_end = yystack_.end ();
6245 *yycdebug_ <<
' ' <<
int (i->state);
6250 Dhcp4Parser::yy_reduce_print_ (
int yyrule)
const
6252 int yylno = yyrline_[yyrule];
6253 int yynrhs = yyr2_[yyrule];
6255 *yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
6256 <<
" (line " << yylno <<
"):\n";
6258 for (
int yyi = 0; yyi < yynrhs; yyi++)
6260 yystack_[(yynrhs) - (yyi + 1)]);
6265#line 14 "dhcp4_parser.yy"
6267#line 6268 "dhcp4_parser.cc"
6269#line 2949 "dhcp4_parser.yy"
6274 const std::string& what)
6276 ctx.error(loc, what);
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define YY_REDUCE_PRINT(Rule)
#define YY_SYMBOL_PRINT(Title, Symbol)
#define YY_CAST(Type, Val)
#define YY_MOVE_REF(Type)
Notes: IntElement type is changed to int64_t.
context(const Dhcp4Parser &yyparser, const symbol_type &yyla)
int expected_tokens(symbol_kind_type yyarg[], int yyargn) const
Put in YYARG at most YYARGN of the expected tokens, and return the number of tokens stored in YYARG.
Present a slice of the top of a stack.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
virtual int parse()
Parse.
location location_type
Symbol locations.
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static const symbol_kind_type YYNTOKENS
The number of tokens.
static std::string symbol_name(symbol_kind_type yysymbol)
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
Dhcp4Parser(isc::dhcp::Parser4Context &ctx_yyarg)
Build a parser object.
Evaluation context, an interface to the expression evaluation.
void require(const std::string &name, isc::data::Element::Position open_loc, isc::data::Element::Position close_loc)
Check if a required parameter is present.
isc::data::Element::Position loc2pos(isc::dhcp::location &loc)
Converts bison's position to one understandable by isc::data::Element.
void leave()
Leave a syntactic context.
void unique(const std::string &name, isc::data::Element::Position loc)
Check if a parameter is already present.
void enter(const ParserContext &ctx)
Enter a new syntactic context.
void warning(const isc::dhcp::location &loc, const std::string &what)
Warning handler.
void warnAboutExtraCommas(const isc::dhcp::location &loc)
Warning for extra commas.
const std::string contextName()
Get the syntactic context name.
@ SUBNET4
Used while parsing Dhcp4/Subnet4 structures.
@ DATABASE_TYPE
Used while parsing Dhcp4/*-database/type.
@ POOLS
Used while parsing Dhcp4/subnet4/pools structures.
@ CLIENT_CLASSES
Used while parsing Dhcp4/client-classes structures.
@ RESERVATIONS
Used while parsing Dhcp4/reservations structures.
@ HOSTS_DATABASE
Used while parsing Dhcp4/hosts-database[s] structures.
@ NCR_PROTOCOL
Used while parsing Dhcp4/dhcp-ddns/ncr-protocol.
@ LOGGERS
Used while parsing Dhcp4/loggers structures.
@ DATABASE_ON_FAIL
Used while parsing Dhcp4/*-database/on-fail.
@ NCR_FORMAT
Used while parsing Dhcp4/dhcp-ddns/ncr-format.
@ DDNS_CONFLICT_RESOLUTION_MODE
Used while parsing Dhcp4/ib-ddns-conflict-resolution-mode.
@ COMPATIBILITY
Used while parsing compatibility parameters.
@ OUTBOUND_INTERFACE
Used while parsing Dhcp4/interfaces/outbound-interface structures.
@ CONFIG
Used while parsing content of Dhcp4.
@ OUTPUT_OPTIONS
Used while parsing Dhcp4/loggers/output-options structures.
@ CONTROL_SOCKET
Used while parsing Dhcp4/control-socket structures.
@ DHCP_DDNS
Used while parsing Dhcp4/dhcp-ddns.
@ OPTION_DATA
Used while parsing Dhcp4/option-data, Dhcp4/subnet4/option-data or anywhere option-data is present (c...
@ DHCP_MULTI_THREADING
Used while parsing Dhcp4/multi-threading structures.
@ LEASE_DATABASE
Used while parsing Dhcp4/lease-database structures.
@ SHARED_NETWORK
Used while parsing shared-networks structures.
@ EXPIRED_LEASES_PROCESSING
Used while parsing Dhcp4/expired-leases-processing.
@ SANITY_CHECKS
Sanity checks.
@ CONFIG_CONTROL
Used while parsing Dhcp4/config-control.
@ INTERFACES_CONFIG
Used while parsing Dhcp4/interfaces structures.
@ HOST_RESERVATION_IDENTIFIERS
Used while parsing Dhcp4/host-reservation-identifiers.
@ OPTION_DEF
Used while parsing Dhcp4/option-def structures.
@ CONFIG_DATABASE
Used while parsing config-control/config-databases.
@ NO_KEYWORD
This one is used in pure JSON mode.
@ HOOKS_LIBRARIES
Used while parsing Dhcp4/hooks-libraries.
@ DHCP_QUEUE_CONTROL
Used while parsing Dhcp4/dhcp-queue-control structures.
@ REPLACE_CLIENT_NAME
Used while parsing Dhcp4/dhcp-ddns/replace-client-name.
@ RELAY
Used while parsing Dhcp4/subnet4relay structures.
@ DHCP_SOCKET_TYPE
Used while parsing Dhcp4/interfaces/dhcp-socket-type structures.
std::vector< isc::data::ElementPtr > stack_
JSON elements being parsed.
ParserContext ctx_
Current syntactic context.
Define the isc::dhcp::parser class.
void merge(ElementPtr element, ConstElementPtr other)
Merges the data from other into element.
boost::shared_ptr< const Element > ConstElementPtr
boost::shared_ptr< Element > ElementPtr
Defines the logger used by the top-level component of kea-lfc.
@ S_ddns_conflict_resolution_mode_value
@ S_ddns_replace_client_name_value
@ S_outbound_interface_value
"External" symbols: returned by the scanner.
Syntax errors thrown from user actions.
~syntax_error() YY_NOEXCEPT YY_NOTHROW