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"
148 namespace 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 ())
231 value.YY_MOVE_OR_COPY<
bool > (
YY_MOVE (that.value));
235 value.YY_MOVE_OR_COPY<
double > (
YY_MOVE (that.value));
239 value.YY_MOVE_OR_COPY< int64_t > (
YY_MOVE (that.value));
243 value.YY_MOVE_OR_COPY< std::string > (
YY_MOVE (that.value));
250 #if 201103L <= YY_CPLUSPLUS
252 that.state = empty_state;
256 Dhcp4Parser::stack_symbol_type::stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) that)
257 : super_type (s,
YY_MOVE (that.location))
259 switch (that.kind ())
275 value.move<
bool > (
YY_MOVE (that.value));
279 value.move<
double > (
YY_MOVE (that.value));
283 value.move< int64_t > (
YY_MOVE (that.value));
287 value.move< std::string > (
YY_MOVE (that.value));
298 #if YY_CPLUSPLUS < 201103L
299 Dhcp4Parser::stack_symbol_type&
300 Dhcp4Parser::stack_symbol_type::operator= (
const stack_symbol_type& that)
303 switch (that.kind ())
319 value.copy<
bool > (that.value);
323 value.copy<
double > (that.value);
327 value.copy< int64_t > (that.value);
331 value.copy< std::string > (that.value);
338 location = that.location;
342 Dhcp4Parser::stack_symbol_type&
343 Dhcp4Parser::stack_symbol_type::operator= (stack_symbol_type& that)
346 switch (that.kind ())
362 value.move<
bool > (that.value);
366 value.move<
double > (that.value);
370 value.move< int64_t > (that.value);
374 value.move< std::string > (that.value);
381 location = that.location;
383 that.state = empty_state;
388 template <
typename Base>
390 Dhcp4Parser::yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const
397 template <
typename Base>
399 Dhcp4Parser::yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const
401 std::ostream& yyoutput = yyo;
404 yyo <<
"empty symbol";
408 yyo << (yykind <
YYNTOKENS ?
"token" :
"nterm")
409 <<
' ' << yysym.name () <<
" ("
410 << yysym.location <<
": ";
414 #line 310 "dhcp4_parser.yy"
415 { yyoutput << yysym.value.template as < std::string > (); }
416 #line 417 "dhcp4_parser.cc"
420 #line 310 "dhcp4_parser.yy"
421 { yyoutput << yysym.value.template as < int64_t > (); }
422 #line 423 "dhcp4_parser.cc"
426 #line 310 "dhcp4_parser.yy"
427 { yyoutput << yysym.value.template as < double > (); }
428 #line 429 "dhcp4_parser.cc"
432 #line 310 "dhcp4_parser.yy"
433 { yyoutput << yysym.value.template as < bool > (); }
434 #line 435 "dhcp4_parser.cc"
438 #line 310 "dhcp4_parser.yy"
439 { yyoutput << yysym.value.template as < ElementPtr > (); }
440 #line 441 "dhcp4_parser.cc"
444 #line 310 "dhcp4_parser.yy"
445 { yyoutput << yysym.value.template as < ElementPtr > (); }
446 #line 447 "dhcp4_parser.cc"
450 #line 310 "dhcp4_parser.yy"
451 { yyoutput << yysym.value.template as < ElementPtr > (); }
452 #line 453 "dhcp4_parser.cc"
456 #line 310 "dhcp4_parser.yy"
457 { yyoutput << yysym.value.template as < ElementPtr > (); }
458 #line 459 "dhcp4_parser.cc"
462 #line 310 "dhcp4_parser.yy"
463 { yyoutput << yysym.value.template as < ElementPtr > (); }
464 #line 465 "dhcp4_parser.cc"
468 #line 310 "dhcp4_parser.yy"
469 { yyoutput << yysym.value.template as < ElementPtr > (); }
470 #line 471 "dhcp4_parser.cc"
474 #line 310 "dhcp4_parser.yy"
475 { yyoutput << yysym.value.template as < ElementPtr > (); }
476 #line 477 "dhcp4_parser.cc"
480 #line 310 "dhcp4_parser.yy"
481 { yyoutput << yysym.value.template as < ElementPtr > (); }
482 #line 483 "dhcp4_parser.cc"
486 #line 310 "dhcp4_parser.yy"
487 { yyoutput << yysym.value.template as < ElementPtr > (); }
488 #line 489 "dhcp4_parser.cc"
492 #line 310 "dhcp4_parser.yy"
493 { yyoutput << yysym.value.template as < ElementPtr > (); }
494 #line 495 "dhcp4_parser.cc"
506 Dhcp4Parser::yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym)
514 Dhcp4Parser::yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym)
516 #if 201103L <= YY_CPLUSPLUS
517 yypush_ (m, stack_symbol_type (s, std::move (sym)));
519 stack_symbol_type ss (s, sym);
557 Dhcp4Parser::state_type
558 Dhcp4Parser::yy_lr_goto_state_ (state_type yystate,
int yysym)
560 int yyr = yypgoto_[yysym -
YYNTOKENS] + yystate;
561 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
562 return yytable_[yyr];
568 Dhcp4Parser::yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT
570 return yyvalue == yypact_ninf_;
574 Dhcp4Parser::yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT
576 return yyvalue == yytable_ninf_;
594 int yyerrstatus_ = 0;
600 stack_symbol_type yyerror_range[3];
617 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
623 YYCDEBUG <<
"Entering state " << int (yystack_[0].state) <<
'\n';
627 if (yystack_[0].state == yyfinal_)
638 yyn = yypact_[+yystack_[0].state];
639 if (yy_pact_value_is_default_ (yyn))
651 yyla.
move (yylookahead);
656 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
677 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ())
686 if (yy_table_value_is_error_ (yyn))
697 yypush_ (
"Shifting", state_type (yyn),
YY_MOVE (yyla));
705 yyn = yydefact_[+yystack_[0].state];
717 stack_symbol_type yylhs;
718 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
738 yylhs.value.emplace<
bool > ();
742 yylhs.value.emplace<
double > ();
746 yylhs.value.emplace< int64_t > ();
750 yylhs.value.emplace< std::string > ();
762 yyerror_range[1].location = yylhs.location;
774 #line 319 "dhcp4_parser.yy"
776 #line 777 "dhcp4_parser.cc"
780 #line 320 "dhcp4_parser.yy"
782 #line 783 "dhcp4_parser.cc"
786 #line 321 "dhcp4_parser.yy"
788 #line 789 "dhcp4_parser.cc"
792 #line 322 "dhcp4_parser.yy"
794 #line 795 "dhcp4_parser.cc"
798 #line 323 "dhcp4_parser.yy"
800 #line 801 "dhcp4_parser.cc"
804 #line 324 "dhcp4_parser.yy"
806 #line 807 "dhcp4_parser.cc"
810 #line 325 "dhcp4_parser.yy"
812 #line 813 "dhcp4_parser.cc"
816 #line 326 "dhcp4_parser.yy"
818 #line 819 "dhcp4_parser.cc"
822 #line 327 "dhcp4_parser.yy"
824 #line 825 "dhcp4_parser.cc"
828 #line 328 "dhcp4_parser.yy"
830 #line 831 "dhcp4_parser.cc"
834 #line 329 "dhcp4_parser.yy"
836 #line 837 "dhcp4_parser.cc"
840 #line 330 "dhcp4_parser.yy"
842 #line 843 "dhcp4_parser.cc"
846 #line 331 "dhcp4_parser.yy"
848 #line 849 "dhcp4_parser.cc"
852 #line 339 "dhcp4_parser.yy"
854 #line 855 "dhcp4_parser.cc"
858 #line 340 "dhcp4_parser.yy"
860 #line 861 "dhcp4_parser.cc"
864 #line 341 "dhcp4_parser.yy"
866 #line 867 "dhcp4_parser.cc"
870 #line 342 "dhcp4_parser.yy"
872 #line 873 "dhcp4_parser.cc"
876 #line 343 "dhcp4_parser.yy"
878 #line 879 "dhcp4_parser.cc"
882 #line 344 "dhcp4_parser.yy"
884 #line 885 "dhcp4_parser.cc"
888 #line 345 "dhcp4_parser.yy"
890 #line 891 "dhcp4_parser.cc"
894 #line 348 "dhcp4_parser.yy"
899 #line 900 "dhcp4_parser.cc"
903 #line 353 "dhcp4_parser.yy"
910 #line 911 "dhcp4_parser.cc"
914 #line 358 "dhcp4_parser.yy"
920 #line 921 "dhcp4_parser.cc"
924 #line 364 "dhcp4_parser.yy"
926 #line 927 "dhcp4_parser.cc"
930 #line 371 "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 376 "dhcp4_parser.yy"
944 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
945 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
947 #line 948 "dhcp4_parser.cc"
951 #line 382 "dhcp4_parser.yy"
955 #line 956 "dhcp4_parser.cc"
959 #line 387 "dhcp4_parser.yy"
964 #line 965 "dhcp4_parser.cc"
968 #line 390 "dhcp4_parser.yy"
972 #line 973 "dhcp4_parser.cc"
976 #line 398 "dhcp4_parser.yy"
981 #line 982 "dhcp4_parser.cc"
985 #line 402 "dhcp4_parser.yy"
990 #line 991 "dhcp4_parser.cc"
994 #line 406 "dhcp4_parser.yy"
998 #line 999 "dhcp4_parser.cc"
1002 #line 412 "dhcp4_parser.yy"
1006 #line 1007 "dhcp4_parser.cc"
1010 #line 414 "dhcp4_parser.yy"
1015 #line 1016 "dhcp4_parser.cc"
1019 #line 423 "dhcp4_parser.yy"
1022 ctx.
stack_.back()->add(s);
1024 #line 1025 "dhcp4_parser.cc"
1028 #line 427 "dhcp4_parser.yy"
1031 ctx.
stack_.back()->add(s);
1033 #line 1034 "dhcp4_parser.cc"
1037 #line 431 "dhcp4_parser.yy"
1041 #line 1042 "dhcp4_parser.cc"
1045 #line 441 "dhcp4_parser.yy"
1048 const std::string& keyword = yystack_[1].value.as < std::string > ();
1049 error(yystack_[1].location,
1050 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
1052 #line 1053 "dhcp4_parser.cc"
1056 #line 450 "dhcp4_parser.yy"
1063 #line 1064 "dhcp4_parser.cc"
1067 #line 455 "dhcp4_parser.yy"
1076 #line 1077 "dhcp4_parser.cc"
1080 #line 465 "dhcp4_parser.yy"
1087 ctx.
stack_.back()->set(
"Dhcp4", m);
1091 #line 1092 "dhcp4_parser.cc"
1095 #line 474 "dhcp4_parser.yy"
1101 #line 1102 "dhcp4_parser.cc"
1105 #line 482 "dhcp4_parser.yy"
1109 #line 1110 "dhcp4_parser.cc"
1113 #line 488 "dhcp4_parser.yy"
1119 #line 1120 "dhcp4_parser.cc"
1123 #line 492 "dhcp4_parser.yy"
1128 #line 1129 "dhcp4_parser.cc"
1132 #line 499 "dhcp4_parser.yy"
1136 #line 1137 "dhcp4_parser.cc"
1140 #line 576 "dhcp4_parser.yy"
1142 ctx.
unique(
"valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1144 ctx.
stack_.back()->set(
"valid-lifetime", prf);
1146 #line 1147 "dhcp4_parser.cc"
1150 #line 582 "dhcp4_parser.yy"
1152 ctx.
unique(
"min-valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1154 ctx.
stack_.back()->set(
"min-valid-lifetime", prf);
1156 #line 1157 "dhcp4_parser.cc"
1160 #line 588 "dhcp4_parser.yy"
1162 ctx.
unique(
"max-valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1164 ctx.
stack_.back()->set(
"max-valid-lifetime", prf);
1166 #line 1167 "dhcp4_parser.cc"
1170 #line 594 "dhcp4_parser.yy"
1172 ctx.
unique(
"renew-timer", ctx.
loc2pos(yystack_[2].location));
1174 ctx.
stack_.back()->set(
"renew-timer", prf);
1176 #line 1177 "dhcp4_parser.cc"
1180 #line 600 "dhcp4_parser.yy"
1182 ctx.
unique(
"rebind-timer", ctx.
loc2pos(yystack_[2].location));
1184 ctx.
stack_.back()->set(
"rebind-timer", prf);
1186 #line 1187 "dhcp4_parser.cc"
1190 #line 606 "dhcp4_parser.yy"
1192 ctx.
unique(
"calculate-tee-times", ctx.
loc2pos(yystack_[2].location));
1194 ctx.
stack_.back()->set(
"calculate-tee-times", ctt);
1196 #line 1197 "dhcp4_parser.cc"
1200 #line 612 "dhcp4_parser.yy"
1202 ctx.
unique(
"t1-percent", ctx.
loc2pos(yystack_[2].location));
1204 ctx.
stack_.back()->set(
"t1-percent", t1);
1206 #line 1207 "dhcp4_parser.cc"
1210 #line 618 "dhcp4_parser.yy"
1212 ctx.
unique(
"t2-percent", ctx.
loc2pos(yystack_[2].location));
1214 ctx.
stack_.back()->set(
"t2-percent", t2);
1216 #line 1217 "dhcp4_parser.cc"
1220 #line 624 "dhcp4_parser.yy"
1222 ctx.
unique(
"cache-threshold", ctx.
loc2pos(yystack_[2].location));
1224 ctx.
stack_.back()->set(
"cache-threshold", ct);
1226 #line 1227 "dhcp4_parser.cc"
1230 #line 630 "dhcp4_parser.yy"
1232 ctx.
unique(
"cache-max-age", ctx.
loc2pos(yystack_[2].location));
1234 ctx.
stack_.back()->set(
"cache-max-age", cm);
1236 #line 1237 "dhcp4_parser.cc"
1240 #line 636 "dhcp4_parser.yy"
1242 ctx.
unique(
"decline-probation-period", ctx.
loc2pos(yystack_[2].location));
1244 ctx.
stack_.back()->set(
"decline-probation-period", dpp);
1246 #line 1247 "dhcp4_parser.cc"
1250 #line 642 "dhcp4_parser.yy"
1252 ctx.
unique(
"server-tag", ctx.
loc2pos(yystack_[0].location));
1255 #line 1256 "dhcp4_parser.cc"
1259 #line 645 "dhcp4_parser.yy"
1262 ctx.
stack_.back()->set(
"server-tag", stag);
1265 #line 1266 "dhcp4_parser.cc"
1269 #line 651 "dhcp4_parser.yy"
1271 ctx.
unique(
"parked-packet-limit", ctx.
loc2pos(yystack_[2].location));
1273 ctx.
stack_.back()->set(
"parked-packet-limit", ppl);
1275 #line 1276 "dhcp4_parser.cc"
1279 #line 657 "dhcp4_parser.yy"
1284 #line 1285 "dhcp4_parser.cc"
1288 #line 660 "dhcp4_parser.yy"
1291 ctx.
stack_.back()->set(
"allocator", al);
1294 #line 1295 "dhcp4_parser.cc"
1298 #line 666 "dhcp4_parser.yy"
1300 ctx.
unique(
"echo-client-id", ctx.
loc2pos(yystack_[2].location));
1302 ctx.
stack_.back()->set(
"echo-client-id", echo);
1304 #line 1305 "dhcp4_parser.cc"
1308 #line 672 "dhcp4_parser.yy"
1310 ctx.
unique(
"match-client-id", ctx.
loc2pos(yystack_[2].location));
1312 ctx.
stack_.back()->set(
"match-client-id", match);
1314 #line 1315 "dhcp4_parser.cc"
1318 #line 678 "dhcp4_parser.yy"
1320 ctx.
unique(
"authoritative", ctx.
loc2pos(yystack_[2].location));
1322 ctx.
stack_.back()->set(
"authoritative", prf);
1324 #line 1325 "dhcp4_parser.cc"
1328 #line 684 "dhcp4_parser.yy"
1330 ctx.
unique(
"ddns-send-updates", ctx.
loc2pos(yystack_[2].location));
1332 ctx.
stack_.back()->set(
"ddns-send-updates", b);
1334 #line 1335 "dhcp4_parser.cc"
1338 #line 690 "dhcp4_parser.yy"
1340 ctx.
unique(
"ddns-override-no-update", ctx.
loc2pos(yystack_[2].location));
1342 ctx.
stack_.back()->set(
"ddns-override-no-update", b);
1344 #line 1345 "dhcp4_parser.cc"
1348 #line 696 "dhcp4_parser.yy"
1350 ctx.
unique(
"ddns-override-client-update", ctx.
loc2pos(yystack_[2].location));
1352 ctx.
stack_.back()->set(
"ddns-override-client-update", b);
1354 #line 1355 "dhcp4_parser.cc"
1358 #line 702 "dhcp4_parser.yy"
1361 ctx.
unique(
"ddns-replace-client-name", ctx.
loc2pos(yystack_[0].location));
1363 #line 1364 "dhcp4_parser.cc"
1367 #line 705 "dhcp4_parser.yy"
1369 ctx.
stack_.back()->set(
"ddns-replace-client-name", yystack_[0].value.as <
ElementPtr > ());
1372 #line 1373 "dhcp4_parser.cc"
1376 #line 711 "dhcp4_parser.yy"
1380 #line 1381 "dhcp4_parser.cc"
1384 #line 714 "dhcp4_parser.yy"
1388 #line 1389 "dhcp4_parser.cc"
1392 #line 717 "dhcp4_parser.yy"
1396 #line 1397 "dhcp4_parser.cc"
1400 #line 720 "dhcp4_parser.yy"
1404 #line 1405 "dhcp4_parser.cc"
1408 #line 723 "dhcp4_parser.yy"
1410 error(yystack_[0].location,
"boolean values for the replace-client-name are "
1411 "no longer supported");
1413 #line 1414 "dhcp4_parser.cc"
1417 #line 729 "dhcp4_parser.yy"
1419 ctx.
unique(
"ddns-generated-prefix", ctx.
loc2pos(yystack_[0].location));
1422 #line 1423 "dhcp4_parser.cc"
1426 #line 732 "dhcp4_parser.yy"
1429 ctx.
stack_.back()->set(
"ddns-generated-prefix", s);
1432 #line 1433 "dhcp4_parser.cc"
1436 #line 738 "dhcp4_parser.yy"
1438 ctx.
unique(
"ddns-qualifying-suffix", ctx.
loc2pos(yystack_[0].location));
1441 #line 1442 "dhcp4_parser.cc"
1445 #line 741 "dhcp4_parser.yy"
1448 ctx.
stack_.back()->set(
"ddns-qualifying-suffix", s);
1451 #line 1452 "dhcp4_parser.cc"
1455 #line 747 "dhcp4_parser.yy"
1457 ctx.
unique(
"ddns-update-on-renew", ctx.
loc2pos(yystack_[2].location));
1459 ctx.
stack_.back()->set(
"ddns-update-on-renew", b);
1461 #line 1462 "dhcp4_parser.cc"
1465 #line 756 "dhcp4_parser.yy"
1467 ctx.
unique(
"ddns-use-conflict-resolution", ctx.
loc2pos(yystack_[2].location));
1469 ctx.
warning(yystack_[1].location,
"ddns-use-conflict-resolution is deprecated. "
1470 "Substituting ddns-conflict-resolution-mode");
1472 :
"no-check-with-dhcid"));
1473 ctx.
stack_.back()->set(
"ddns-conflict-resolution-mode", mode);
1475 #line 1476 "dhcp4_parser.cc"
1479 #line 766 "dhcp4_parser.yy"
1481 ctx.
unique(
"ddns-conflict-resolution-mode", ctx.
loc2pos(yystack_[0].location));
1484 #line 1485 "dhcp4_parser.cc"
1488 #line 769 "dhcp4_parser.yy"
1490 ctx.
stack_.back()->set(
"ddns-conflict-resolution-mode", yystack_[0].value.as <
ElementPtr > ());
1493 #line 1494 "dhcp4_parser.cc"
1497 #line 775 "dhcp4_parser.yy"
1501 #line 1502 "dhcp4_parser.cc"
1505 #line 778 "dhcp4_parser.yy"
1509 #line 1510 "dhcp4_parser.cc"
1513 #line 781 "dhcp4_parser.yy"
1517 #line 1518 "dhcp4_parser.cc"
1521 #line 784 "dhcp4_parser.yy"
1525 #line 1526 "dhcp4_parser.cc"
1529 #line 789 "dhcp4_parser.yy"
1531 ctx.
unique(
"ddns-ttl-percent", ctx.
loc2pos(yystack_[2].location));
1533 ctx.
stack_.back()->set(
"ddns-ttl-percent", ttl);
1535 #line 1536 "dhcp4_parser.cc"
1539 #line 795 "dhcp4_parser.yy"
1541 ctx.
unique(
"hostname-char-set", ctx.
loc2pos(yystack_[0].location));
1544 #line 1545 "dhcp4_parser.cc"
1548 #line 798 "dhcp4_parser.yy"
1551 ctx.
stack_.back()->set(
"hostname-char-set", s);
1554 #line 1555 "dhcp4_parser.cc"
1558 #line 804 "dhcp4_parser.yy"
1560 ctx.
unique(
"hostname-char-replacement", ctx.
loc2pos(yystack_[0].location));
1563 #line 1564 "dhcp4_parser.cc"
1567 #line 807 "dhcp4_parser.yy"
1570 ctx.
stack_.back()->set(
"hostname-char-replacement", s);
1573 #line 1574 "dhcp4_parser.cc"
1577 #line 813 "dhcp4_parser.yy"
1579 ctx.
unique(
"store-extended-info", ctx.
loc2pos(yystack_[2].location));
1581 ctx.
stack_.back()->set(
"store-extended-info", b);
1583 #line 1584 "dhcp4_parser.cc"
1587 #line 819 "dhcp4_parser.yy"
1589 ctx.
unique(
"statistic-default-sample-count", ctx.
loc2pos(yystack_[2].location));
1591 ctx.
stack_.back()->set(
"statistic-default-sample-count", count);
1593 #line 1594 "dhcp4_parser.cc"
1597 #line 825 "dhcp4_parser.yy"
1599 ctx.
unique(
"statistic-default-sample-age", ctx.
loc2pos(yystack_[2].location));
1601 ctx.
stack_.back()->set(
"statistic-default-sample-age", age);
1603 #line 1604 "dhcp4_parser.cc"
1607 #line 831 "dhcp4_parser.yy"
1609 ctx.
unique(
"early-global-reservations-lookup", ctx.
loc2pos(yystack_[2].location));
1611 ctx.
stack_.back()->set(
"early-global-reservations-lookup", early);
1613 #line 1614 "dhcp4_parser.cc"
1617 #line 837 "dhcp4_parser.yy"
1619 ctx.
unique(
"ip-reservations-unique", ctx.
loc2pos(yystack_[2].location));
1621 ctx.
stack_.back()->set(
"ip-reservations-unique", unique);
1623 #line 1624 "dhcp4_parser.cc"
1627 #line 843 "dhcp4_parser.yy"
1629 ctx.
unique(
"reservations-lookup-first", ctx.
loc2pos(yystack_[2].location));
1631 ctx.
stack_.back()->set(
"reservations-lookup-first", first);
1633 #line 1634 "dhcp4_parser.cc"
1637 #line 849 "dhcp4_parser.yy"
1639 ctx.
unique(
"offer-lifetime", ctx.
loc2pos(yystack_[2].location));
1641 ctx.
stack_.back()->set(
"offer-lifetime", offer_lifetime);
1643 #line 1644 "dhcp4_parser.cc"
1647 #line 855 "dhcp4_parser.yy"
1649 ctx.
unique(
"interfaces-config", ctx.
loc2pos(yystack_[0].location));
1651 ctx.
stack_.back()->set(
"interfaces-config", i);
1655 #line 1656 "dhcp4_parser.cc"
1659 #line 861 "dhcp4_parser.yy"
1665 #line 1666 "dhcp4_parser.cc"
1669 #line 869 "dhcp4_parser.yy"
1673 #line 1674 "dhcp4_parser.cc"
1677 #line 886 "dhcp4_parser.yy"
1683 #line 1684 "dhcp4_parser.cc"
1687 #line 890 "dhcp4_parser.yy"
1692 #line 1693 "dhcp4_parser.cc"
1696 #line 895 "dhcp4_parser.yy"
1698 ctx.
unique(
"interfaces", ctx.
loc2pos(yystack_[0].location));
1700 ctx.
stack_.back()->set(
"interfaces", l);
1704 #line 1705 "dhcp4_parser.cc"
1708 #line 901 "dhcp4_parser.yy"
1713 #line 1714 "dhcp4_parser.cc"
1717 #line 906 "dhcp4_parser.yy"
1719 ctx.
unique(
"dhcp-socket-type", ctx.
loc2pos(yystack_[0].location));
1722 #line 1723 "dhcp4_parser.cc"
1726 #line 909 "dhcp4_parser.yy"
1728 ctx.
stack_.back()->set(
"dhcp-socket-type", yystack_[0].value.as <
ElementPtr > ());
1731 #line 1732 "dhcp4_parser.cc"
1735 #line 914 "dhcp4_parser.yy"
1737 #line 1738 "dhcp4_parser.cc"
1741 #line 915 "dhcp4_parser.yy"
1743 #line 1744 "dhcp4_parser.cc"
1747 #line 918 "dhcp4_parser.yy"
1749 ctx.
unique(
"outbound-interface", ctx.
loc2pos(yystack_[0].location));
1752 #line 1753 "dhcp4_parser.cc"
1756 #line 921 "dhcp4_parser.yy"
1758 ctx.
stack_.back()->set(
"outbound-interface", yystack_[0].value.as <
ElementPtr > ());
1761 #line 1762 "dhcp4_parser.cc"
1765 #line 926 "dhcp4_parser.yy"
1769 #line 1770 "dhcp4_parser.cc"
1773 #line 928 "dhcp4_parser.yy"
1777 #line 1778 "dhcp4_parser.cc"
1781 #line 932 "dhcp4_parser.yy"
1785 ctx.
stack_.back()->set(
"re-detect", b);
1787 #line 1788 "dhcp4_parser.cc"
1791 #line 938 "dhcp4_parser.yy"
1793 ctx.
unique(
"service-sockets-require-all", ctx.
loc2pos(yystack_[2].location));
1795 ctx.
stack_.back()->set(
"service-sockets-require-all", b);
1797 #line 1798 "dhcp4_parser.cc"
1801 #line 944 "dhcp4_parser.yy"
1803 ctx.
unique(
"service-sockets-retry-wait-time", ctx.
loc2pos(yystack_[2].location));
1805 ctx.
stack_.back()->set(
"service-sockets-retry-wait-time", n);
1807 #line 1808 "dhcp4_parser.cc"
1811 #line 950 "dhcp4_parser.yy"
1813 ctx.
unique(
"service-sockets-max-retries", ctx.
loc2pos(yystack_[2].location));
1815 ctx.
stack_.back()->set(
"service-sockets-max-retries", n);
1817 #line 1818 "dhcp4_parser.cc"
1821 #line 956 "dhcp4_parser.yy"
1823 ctx.
unique(
"lease-database", ctx.
loc2pos(yystack_[0].location));
1825 ctx.
stack_.back()->set(
"lease-database", i);
1829 #line 1830 "dhcp4_parser.cc"
1833 #line 962 "dhcp4_parser.yy"
1840 #line 1841 "dhcp4_parser.cc"
1844 #line 969 "dhcp4_parser.yy"
1846 ctx.
unique(
"sanity-checks", ctx.
loc2pos(yystack_[0].location));
1848 ctx.
stack_.back()->set(
"sanity-checks", m);
1852 #line 1853 "dhcp4_parser.cc"
1856 #line 975 "dhcp4_parser.yy"
1861 #line 1862 "dhcp4_parser.cc"
1865 #line 982 "dhcp4_parser.yy"
1869 #line 1870 "dhcp4_parser.cc"
1873 #line 991 "dhcp4_parser.yy"
1875 ctx.
unique(
"lease-checks", ctx.
loc2pos(yystack_[0].location));
1878 #line 1879 "dhcp4_parser.cc"
1882 #line 994 "dhcp4_parser.yy"
1885 if ( (
string(yystack_[0].value.as < std::string > ()) ==
"none") ||
1886 (
string(yystack_[0].value.as < std::string > ()) ==
"warn") ||
1887 (
string(yystack_[0].value.as < std::string > ()) ==
"fix") ||
1888 (
string(yystack_[0].value.as < std::string > ()) ==
"fix-del") ||
1889 (
string(yystack_[0].value.as < std::string > ()) ==
"del")) {
1891 ctx.
stack_.back()->set(
"lease-checks", user);
1894 error(yystack_[0].location,
"Unsupported 'lease-checks value: " +
string(yystack_[0].value.as < std::string > ()) +
1895 ", supported values are: none, warn, fix, fix-del, del");
1898 #line 1899 "dhcp4_parser.cc"
1902 #line 1010 "dhcp4_parser.yy"
1904 ctx.
unique(
"extended-info-checks", ctx.
loc2pos(yystack_[0].location));
1907 #line 1908 "dhcp4_parser.cc"
1911 #line 1013 "dhcp4_parser.yy"
1914 if ( (
string(yystack_[0].value.as < std::string > ()) ==
"none") ||
1915 (
string(yystack_[0].value.as < std::string > ()) ==
"fix") ||
1916 (
string(yystack_[0].value.as < std::string > ()) ==
"strict") ||
1917 (
string(yystack_[0].value.as < std::string > ()) ==
"pedantic")) {
1919 ctx.
stack_.back()->set(
"extended-info-checks", user);
1922 error(yystack_[0].location,
"Unsupported 'extended-info-checks value: " +
string(yystack_[0].value.as < std::string > ()) +
1923 ", supported values are: none, fix, strict, pedantic");
1926 #line 1927 "dhcp4_parser.cc"
1930 #line 1028 "dhcp4_parser.yy"
1932 ctx.
unique(
"hosts-database", ctx.
loc2pos(yystack_[0].location));
1934 ctx.
stack_.back()->set(
"hosts-database", i);
1938 #line 1939 "dhcp4_parser.cc"
1942 #line 1034 "dhcp4_parser.yy"
1949 #line 1950 "dhcp4_parser.cc"
1953 #line 1041 "dhcp4_parser.yy"
1955 ctx.
unique(
"hosts-databases", ctx.
loc2pos(yystack_[0].location));
1957 ctx.
stack_.back()->set(
"hosts-databases", l);
1961 #line 1962 "dhcp4_parser.cc"
1965 #line 1047 "dhcp4_parser.yy"
1970 #line 1971 "dhcp4_parser.cc"
1974 #line 1058 "dhcp4_parser.yy"
1978 #line 1979 "dhcp4_parser.cc"
1982 #line 1063 "dhcp4_parser.yy"
1985 ctx.
stack_.back()->add(m);
1988 #line 1989 "dhcp4_parser.cc"
1992 #line 1067 "dhcp4_parser.yy"
1998 #line 1999 "dhcp4_parser.cc"
2002 #line 1075 "dhcp4_parser.yy"
2006 #line 2007 "dhcp4_parser.cc"
2010 #line 1104 "dhcp4_parser.yy"
2015 #line 2016 "dhcp4_parser.cc"
2019 #line 1107 "dhcp4_parser.yy"
2024 #line 2025 "dhcp4_parser.cc"
2028 #line 1112 "dhcp4_parser.yy"
2030 #line 2031 "dhcp4_parser.cc"
2034 #line 1113 "dhcp4_parser.yy"
2036 #line 2037 "dhcp4_parser.cc"
2040 #line 1114 "dhcp4_parser.yy"
2042 #line 2043 "dhcp4_parser.cc"
2046 #line 1117 "dhcp4_parser.yy"
2051 #line 2052 "dhcp4_parser.cc"
2055 #line 1120 "dhcp4_parser.yy"
2058 ctx.
stack_.back()->set(
"user", user);
2061 #line 2062 "dhcp4_parser.cc"
2065 #line 1126 "dhcp4_parser.yy"
2070 #line 2071 "dhcp4_parser.cc"
2074 #line 1129 "dhcp4_parser.yy"
2077 ctx.
stack_.back()->set(
"password", pwd);
2080 #line 2081 "dhcp4_parser.cc"
2084 #line 1135 "dhcp4_parser.yy"
2089 #line 2090 "dhcp4_parser.cc"
2093 #line 1138 "dhcp4_parser.yy"
2096 ctx.
stack_.back()->set(
"host", h);
2099 #line 2100 "dhcp4_parser.cc"
2103 #line 1144 "dhcp4_parser.yy"
2107 ctx.
stack_.back()->set(
"port", p);
2109 #line 2110 "dhcp4_parser.cc"
2113 #line 1150 "dhcp4_parser.yy"
2118 #line 2119 "dhcp4_parser.cc"
2122 #line 1153 "dhcp4_parser.yy"
2125 ctx.
stack_.back()->set(
"name", name);
2128 #line 2129 "dhcp4_parser.cc"
2132 #line 1159 "dhcp4_parser.yy"
2136 ctx.
stack_.back()->set(
"persist", n);
2138 #line 2139 "dhcp4_parser.cc"
2142 #line 1165 "dhcp4_parser.yy"
2144 ctx.
unique(
"lfc-interval", ctx.
loc2pos(yystack_[2].location));
2146 ctx.
stack_.back()->set(
"lfc-interval", n);
2148 #line 2149 "dhcp4_parser.cc"
2152 #line 1171 "dhcp4_parser.yy"
2156 ctx.
stack_.back()->set(
"readonly", n);
2158 #line 2159 "dhcp4_parser.cc"
2162 #line 1177 "dhcp4_parser.yy"
2164 ctx.
unique(
"connect-timeout", ctx.
loc2pos(yystack_[2].location));
2166 ctx.
stack_.back()->set(
"connect-timeout", n);
2168 #line 2169 "dhcp4_parser.cc"
2172 #line 1183 "dhcp4_parser.yy"
2174 ctx.
unique(
"read-timeout", ctx.
loc2pos(yystack_[2].location));
2176 ctx.
stack_.back()->set(
"read-timeout", n);
2178 #line 2179 "dhcp4_parser.cc"
2182 #line 1189 "dhcp4_parser.yy"
2184 ctx.
unique(
"write-timeout", ctx.
loc2pos(yystack_[2].location));
2186 ctx.
stack_.back()->set(
"write-timeout", n);
2188 #line 2189 "dhcp4_parser.cc"
2192 #line 1195 "dhcp4_parser.yy"
2194 ctx.
unique(
"tcp-user-timeout", ctx.
loc2pos(yystack_[2].location));
2196 ctx.
stack_.back()->set(
"tcp-user-timeout", n);
2198 #line 2199 "dhcp4_parser.cc"
2202 #line 1201 "dhcp4_parser.yy"
2204 ctx.
unique(
"max-reconnect-tries", ctx.
loc2pos(yystack_[2].location));
2206 ctx.
stack_.back()->set(
"max-reconnect-tries", n);
2208 #line 2209 "dhcp4_parser.cc"
2212 #line 1207 "dhcp4_parser.yy"
2214 ctx.
unique(
"reconnect-wait-time", ctx.
loc2pos(yystack_[2].location));
2216 ctx.
stack_.back()->set(
"reconnect-wait-time", n);
2218 #line 2219 "dhcp4_parser.cc"
2222 #line 1213 "dhcp4_parser.yy"
2227 #line 2228 "dhcp4_parser.cc"
2231 #line 1216 "dhcp4_parser.yy"
2236 #line 2237 "dhcp4_parser.cc"
2240 #line 1221 "dhcp4_parser.yy"
2242 #line 2243 "dhcp4_parser.cc"
2246 #line 1222 "dhcp4_parser.yy"
2248 #line 2249 "dhcp4_parser.cc"
2252 #line 1223 "dhcp4_parser.yy"
2254 #line 2255 "dhcp4_parser.cc"
2258 #line 1226 "dhcp4_parser.yy"
2260 ctx.
unique(
"max-row-errors", ctx.
loc2pos(yystack_[2].location));
2262 ctx.
stack_.back()->set(
"max-row-errors", n);
2264 #line 2265 "dhcp4_parser.cc"
2268 #line 1232 "dhcp4_parser.yy"
2270 ctx.
unique(
"trust-anchor", ctx.
loc2pos(yystack_[0].location));
2273 #line 2274 "dhcp4_parser.cc"
2277 #line 1235 "dhcp4_parser.yy"
2280 ctx.
stack_.back()->set(
"trust-anchor", ca);
2283 #line 2284 "dhcp4_parser.cc"
2287 #line 1241 "dhcp4_parser.yy"
2292 #line 2293 "dhcp4_parser.cc"
2296 #line 1244 "dhcp4_parser.yy"
2299 ctx.
stack_.back()->set(
"cert-file", cert);
2302 #line 2303 "dhcp4_parser.cc"
2306 #line 1250 "dhcp4_parser.yy"
2311 #line 2312 "dhcp4_parser.cc"
2315 #line 1253 "dhcp4_parser.yy"
2318 ctx.
stack_.back()->set(
"key-file", key);
2321 #line 2322 "dhcp4_parser.cc"
2325 #line 1259 "dhcp4_parser.yy"
2327 ctx.
unique(
"cipher-list", ctx.
loc2pos(yystack_[0].location));
2330 #line 2331 "dhcp4_parser.cc"
2334 #line 1262 "dhcp4_parser.yy"
2337 ctx.
stack_.back()->set(
"cipher-list", cl);
2340 #line 2341 "dhcp4_parser.cc"
2344 #line 1268 "dhcp4_parser.yy"
2346 ctx.
unique(
"host-reservation-identifiers", ctx.
loc2pos(yystack_[0].location));
2348 ctx.
stack_.back()->set(
"host-reservation-identifiers", l);
2352 #line 2353 "dhcp4_parser.cc"
2356 #line 1274 "dhcp4_parser.yy"
2361 #line 2362 "dhcp4_parser.cc"
2365 #line 1281 "dhcp4_parser.yy"
2369 #line 2370 "dhcp4_parser.cc"
2373 #line 1293 "dhcp4_parser.yy"
2376 ctx.
stack_.back()->add(duid);
2378 #line 2379 "dhcp4_parser.cc"
2382 #line 1298 "dhcp4_parser.yy"
2385 ctx.
stack_.back()->add(hwaddr);
2387 #line 2388 "dhcp4_parser.cc"
2391 #line 1303 "dhcp4_parser.yy"
2394 ctx.
stack_.back()->add(circuit);
2396 #line 2397 "dhcp4_parser.cc"
2400 #line 1308 "dhcp4_parser.yy"
2403 ctx.
stack_.back()->add(client);
2405 #line 2406 "dhcp4_parser.cc"
2409 #line 1313 "dhcp4_parser.yy"
2412 ctx.
stack_.back()->add(flex_id);
2414 #line 2415 "dhcp4_parser.cc"
2418 #line 1320 "dhcp4_parser.yy"
2420 ctx.
unique(
"multi-threading", ctx.
loc2pos(yystack_[0].location));
2422 ctx.
stack_.back()->set(
"multi-threading", mt);
2423 ctx.
stack_.push_back(mt);
2426 #line 2427 "dhcp4_parser.cc"
2430 #line 1326 "dhcp4_parser.yy"
2433 ctx.
require(
"enable-multi-threading", ctx.
loc2pos(yystack_[2].location), ctx.
loc2pos(yystack_[0].location));
2437 #line 2438 "dhcp4_parser.cc"
2441 #line 1335 "dhcp4_parser.yy"
2445 #line 2446 "dhcp4_parser.cc"
2449 #line 1348 "dhcp4_parser.yy"
2451 ctx.
unique(
"enable-multi-threading", ctx.
loc2pos(yystack_[2].location));
2453 ctx.
stack_.back()->set(
"enable-multi-threading", b);
2455 #line 2456 "dhcp4_parser.cc"
2459 #line 1354 "dhcp4_parser.yy"
2461 ctx.
unique(
"thread-pool-size", ctx.
loc2pos(yystack_[2].location));
2463 ctx.
stack_.back()->set(
"thread-pool-size", prf);
2465 #line 2466 "dhcp4_parser.cc"
2469 #line 1360 "dhcp4_parser.yy"
2471 ctx.
unique(
"packet-queue-size", ctx.
loc2pos(yystack_[2].location));
2473 ctx.
stack_.back()->set(
"packet-queue-size", prf);
2475 #line 2476 "dhcp4_parser.cc"
2479 #line 1366 "dhcp4_parser.yy"
2481 ctx.
unique(
"hooks-libraries", ctx.
loc2pos(yystack_[0].location));
2483 ctx.
stack_.back()->set(
"hooks-libraries", l);
2487 #line 2488 "dhcp4_parser.cc"
2491 #line 1372 "dhcp4_parser.yy"
2496 #line 2497 "dhcp4_parser.cc"
2500 #line 1383 "dhcp4_parser.yy"
2504 #line 2505 "dhcp4_parser.cc"
2508 #line 1388 "dhcp4_parser.yy"
2511 ctx.
stack_.back()->add(m);
2514 #line 2515 "dhcp4_parser.cc"
2518 #line 1392 "dhcp4_parser.yy"
2524 #line 2525 "dhcp4_parser.cc"
2528 #line 1398 "dhcp4_parser.yy"
2534 #line 2535 "dhcp4_parser.cc"
2538 #line 1402 "dhcp4_parser.yy"
2544 #line 2545 "dhcp4_parser.cc"
2548 #line 1410 "dhcp4_parser.yy"
2552 #line 2553 "dhcp4_parser.cc"
2556 #line 1420 "dhcp4_parser.yy"
2561 #line 2562 "dhcp4_parser.cc"
2565 #line 1423 "dhcp4_parser.yy"
2568 ctx.
stack_.back()->set(
"library", lib);
2571 #line 2572 "dhcp4_parser.cc"
2575 #line 1429 "dhcp4_parser.yy"
2577 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
2580 #line 2581 "dhcp4_parser.cc"
2584 #line 1432 "dhcp4_parser.yy"
2586 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
2589 #line 2590 "dhcp4_parser.cc"
2593 #line 1438 "dhcp4_parser.yy"
2595 ctx.
unique(
"expired-leases-processing", ctx.
loc2pos(yystack_[0].location));
2597 ctx.
stack_.back()->set(
"expired-leases-processing", m);
2601 #line 2602 "dhcp4_parser.cc"
2605 #line 1444 "dhcp4_parser.yy"
2611 #line 2612 "dhcp4_parser.cc"
2615 #line 1452 "dhcp4_parser.yy"
2619 #line 2620 "dhcp4_parser.cc"
2623 #line 1465 "dhcp4_parser.yy"
2625 ctx.
unique(
"reclaim-timer-wait-time", ctx.
loc2pos(yystack_[2].location));
2627 ctx.
stack_.back()->set(
"reclaim-timer-wait-time", value);
2629 #line 2630 "dhcp4_parser.cc"
2633 #line 1471 "dhcp4_parser.yy"
2635 ctx.
unique(
"flush-reclaimed-timer-wait-time", ctx.
loc2pos(yystack_[2].location));
2637 ctx.
stack_.back()->set(
"flush-reclaimed-timer-wait-time", value);
2639 #line 2640 "dhcp4_parser.cc"
2643 #line 1477 "dhcp4_parser.yy"
2645 ctx.
unique(
"hold-reclaimed-time", ctx.
loc2pos(yystack_[2].location));
2647 ctx.
stack_.back()->set(
"hold-reclaimed-time", value);
2649 #line 2650 "dhcp4_parser.cc"
2653 #line 1483 "dhcp4_parser.yy"
2655 ctx.
unique(
"max-reclaim-leases", ctx.
loc2pos(yystack_[2].location));
2657 ctx.
stack_.back()->set(
"max-reclaim-leases", value);
2659 #line 2660 "dhcp4_parser.cc"
2663 #line 1489 "dhcp4_parser.yy"
2665 ctx.
unique(
"max-reclaim-time", ctx.
loc2pos(yystack_[2].location));
2667 ctx.
stack_.back()->set(
"max-reclaim-time", value);
2669 #line 2670 "dhcp4_parser.cc"
2673 #line 1495 "dhcp4_parser.yy"
2675 ctx.
unique(
"unwarned-reclaim-cycles", ctx.
loc2pos(yystack_[2].location));
2677 ctx.
stack_.back()->set(
"unwarned-reclaim-cycles", value);
2679 #line 2680 "dhcp4_parser.cc"
2683 #line 1504 "dhcp4_parser.yy"
2687 ctx.
stack_.back()->set(
"subnet4", l);
2691 #line 2692 "dhcp4_parser.cc"
2695 #line 1510 "dhcp4_parser.yy"
2700 #line 2701 "dhcp4_parser.cc"
2704 #line 1524 "dhcp4_parser.yy"
2708 #line 2709 "dhcp4_parser.cc"
2712 #line 1533 "dhcp4_parser.yy"
2715 ctx.
stack_.back()->add(m);
2718 #line 2719 "dhcp4_parser.cc"
2722 #line 1537 "dhcp4_parser.yy"
2744 #line 2745 "dhcp4_parser.cc"
2748 #line 1559 "dhcp4_parser.yy"
2754 #line 2755 "dhcp4_parser.cc"
2758 #line 1563 "dhcp4_parser.yy"
2764 #line 2765 "dhcp4_parser.cc"
2768 #line 1572 "dhcp4_parser.yy"
2772 #line 2773 "dhcp4_parser.cc"
2776 #line 1629 "dhcp4_parser.yy"
2781 #line 2782 "dhcp4_parser.cc"
2785 #line 1632 "dhcp4_parser.yy"
2788 ctx.
stack_.back()->set(
"subnet", subnet);
2791 #line 2792 "dhcp4_parser.cc"
2795 #line 1638 "dhcp4_parser.yy"
2797 ctx.
unique(
"4o6-interface", ctx.
loc2pos(yystack_[0].location));
2800 #line 2801 "dhcp4_parser.cc"
2804 #line 1641 "dhcp4_parser.yy"
2807 ctx.
stack_.back()->set(
"4o6-interface", iface);
2810 #line 2811 "dhcp4_parser.cc"
2814 #line 1647 "dhcp4_parser.yy"
2816 ctx.
unique(
"4o6-interface-id", ctx.
loc2pos(yystack_[0].location));
2819 #line 2820 "dhcp4_parser.cc"
2823 #line 1650 "dhcp4_parser.yy"
2826 ctx.
stack_.back()->set(
"4o6-interface-id", iface);
2829 #line 2830 "dhcp4_parser.cc"
2833 #line 1656 "dhcp4_parser.yy"
2835 ctx.
unique(
"4o6-subnet", ctx.
loc2pos(yystack_[0].location));
2838 #line 2839 "dhcp4_parser.cc"
2842 #line 1659 "dhcp4_parser.yy"
2845 ctx.
stack_.back()->set(
"4o6-subnet", iface);
2848 #line 2849 "dhcp4_parser.cc"
2852 #line 1665 "dhcp4_parser.yy"
2857 #line 2858 "dhcp4_parser.cc"
2861 #line 1668 "dhcp4_parser.yy"
2864 ctx.
stack_.back()->set(
"interface", iface);
2867 #line 2868 "dhcp4_parser.cc"
2871 #line 1674 "dhcp4_parser.yy"
2873 ctx.
unique(
"client-class", ctx.
loc2pos(yystack_[0].location));
2876 #line 2877 "dhcp4_parser.cc"
2880 #line 1677 "dhcp4_parser.yy"
2883 ctx.
stack_.back()->set(
"client-class", cls);
2886 #line 2887 "dhcp4_parser.cc"
2890 #line 1683 "dhcp4_parser.yy"
2892 ctx.
unique(
"require-client-classes", ctx.
loc2pos(yystack_[0].location));
2894 ctx.
stack_.back()->set(
"require-client-classes", c);
2898 #line 2899 "dhcp4_parser.cc"
2902 #line 1689 "dhcp4_parser.yy"
2907 #line 2908 "dhcp4_parser.cc"
2911 #line 1694 "dhcp4_parser.yy"
2913 ctx.
unique(
"reservations-global", ctx.
loc2pos(yystack_[2].location));
2915 ctx.
stack_.back()->set(
"reservations-global", b);
2917 #line 2918 "dhcp4_parser.cc"
2921 #line 1700 "dhcp4_parser.yy"
2923 ctx.
unique(
"reservations-in-subnet", ctx.
loc2pos(yystack_[2].location));
2925 ctx.
stack_.back()->set(
"reservations-in-subnet", b);
2927 #line 2928 "dhcp4_parser.cc"
2931 #line 1706 "dhcp4_parser.yy"
2933 ctx.
unique(
"reservations-out-of-pool", ctx.
loc2pos(yystack_[2].location));
2935 ctx.
stack_.back()->set(
"reservations-out-of-pool", b);
2937 #line 2938 "dhcp4_parser.cc"
2941 #line 1712 "dhcp4_parser.yy"
2943 ctx.
unique(
"reservation-mode", ctx.
loc2pos(yystack_[0].location));
2946 #line 2947 "dhcp4_parser.cc"
2950 #line 1715 "dhcp4_parser.yy"
2952 ctx.
stack_.back()->set(
"reservation-mode", yystack_[0].value.as <
ElementPtr > ());
2955 #line 2956 "dhcp4_parser.cc"
2959 #line 1720 "dhcp4_parser.yy"
2961 #line 2962 "dhcp4_parser.cc"
2965 #line 1721 "dhcp4_parser.yy"
2967 #line 2968 "dhcp4_parser.cc"
2971 #line 1722 "dhcp4_parser.yy"
2973 #line 2974 "dhcp4_parser.cc"
2977 #line 1723 "dhcp4_parser.yy"
2979 #line 2980 "dhcp4_parser.cc"
2983 #line 1726 "dhcp4_parser.yy"
2987 ctx.
stack_.back()->set(
"id",
id);
2989 #line 2990 "dhcp4_parser.cc"
2993 #line 1734 "dhcp4_parser.yy"
2995 ctx.
unique(
"shared-networks", ctx.
loc2pos(yystack_[0].location));
2997 ctx.
stack_.back()->set(
"shared-networks", l);
3001 #line 3002 "dhcp4_parser.cc"
3005 #line 1740 "dhcp4_parser.yy"
3010 #line 3011 "dhcp4_parser.cc"
3014 #line 1753 "dhcp4_parser.yy"
3018 #line 3019 "dhcp4_parser.cc"
3022 #line 1758 "dhcp4_parser.yy"
3025 ctx.
stack_.back()->add(m);
3028 #line 3029 "dhcp4_parser.cc"
3032 #line 1762 "dhcp4_parser.yy"
3036 #line 3037 "dhcp4_parser.cc"
3040 #line 1768 "dhcp4_parser.yy"
3044 #line 3045 "dhcp4_parser.cc"
3048 #line 1823 "dhcp4_parser.yy"
3050 ctx.
unique(
"option-def", ctx.
loc2pos(yystack_[0].location));
3052 ctx.
stack_.back()->set(
"option-def", l);
3056 #line 3057 "dhcp4_parser.cc"
3060 #line 1829 "dhcp4_parser.yy"
3065 #line 3066 "dhcp4_parser.cc"
3069 #line 1837 "dhcp4_parser.yy"
3074 #line 3075 "dhcp4_parser.cc"
3078 #line 1840 "dhcp4_parser.yy"
3082 #line 3083 "dhcp4_parser.cc"
3086 #line 1852 "dhcp4_parser.yy"
3090 #line 3091 "dhcp4_parser.cc"
3094 #line 1859 "dhcp4_parser.yy"
3097 ctx.
stack_.back()->add(m);
3100 #line 3101 "dhcp4_parser.cc"
3104 #line 1863 "dhcp4_parser.yy"
3112 #line 3113 "dhcp4_parser.cc"
3116 #line 1874 "dhcp4_parser.yy"
3122 #line 3123 "dhcp4_parser.cc"
3126 #line 1878 "dhcp4_parser.yy"
3134 #line 3135 "dhcp4_parser.cc"
3138 #line 1894 "dhcp4_parser.yy"
3142 #line 3143 "dhcp4_parser.cc"
3146 #line 1913 "dhcp4_parser.yy"
3150 ctx.
stack_.back()->set(
"code", code);
3152 #line 3153 "dhcp4_parser.cc"
3156 #line 1921 "dhcp4_parser.yy"
3161 #line 3162 "dhcp4_parser.cc"
3165 #line 1924 "dhcp4_parser.yy"
3168 ctx.
stack_.back()->set(
"type", prf);
3171 #line 3172 "dhcp4_parser.cc"
3175 #line 1930 "dhcp4_parser.yy"
3177 ctx.
unique(
"record-types", ctx.
loc2pos(yystack_[0].location));
3180 #line 3181 "dhcp4_parser.cc"
3184 #line 1933 "dhcp4_parser.yy"
3187 ctx.
stack_.back()->set(
"record-types", rtypes);
3190 #line 3191 "dhcp4_parser.cc"
3194 #line 1939 "dhcp4_parser.yy"
3199 #line 3200 "dhcp4_parser.cc"
3203 #line 1942 "dhcp4_parser.yy"
3206 ctx.
stack_.back()->set(
"space", space);
3209 #line 3210 "dhcp4_parser.cc"
3213 #line 1950 "dhcp4_parser.yy"
3215 ctx.
unique(
"encapsulate", ctx.
loc2pos(yystack_[0].location));
3218 #line 3219 "dhcp4_parser.cc"
3222 #line 1953 "dhcp4_parser.yy"
3225 ctx.
stack_.back()->set(
"encapsulate", encap);
3228 #line 3229 "dhcp4_parser.cc"
3232 #line 1959 "dhcp4_parser.yy"
3236 ctx.
stack_.back()->set(
"array", array);
3238 #line 3239 "dhcp4_parser.cc"
3242 #line 1969 "dhcp4_parser.yy"
3244 ctx.
unique(
"option-data", ctx.
loc2pos(yystack_[0].location));
3246 ctx.
stack_.back()->set(
"option-data", l);
3250 #line 3251 "dhcp4_parser.cc"
3254 #line 1975 "dhcp4_parser.yy"
3259 #line 3260 "dhcp4_parser.cc"
3263 #line 1990 "dhcp4_parser.yy"
3267 #line 3268 "dhcp4_parser.cc"
3271 #line 1997 "dhcp4_parser.yy"
3274 ctx.
stack_.back()->add(m);
3277 #line 3278 "dhcp4_parser.cc"
3281 #line 2001 "dhcp4_parser.yy"
3286 #line 3287 "dhcp4_parser.cc"
3290 #line 2009 "dhcp4_parser.yy"
3296 #line 3297 "dhcp4_parser.cc"
3300 #line 2013 "dhcp4_parser.yy"
3305 #line 3306 "dhcp4_parser.cc"
3309 #line 2029 "dhcp4_parser.yy"
3313 #line 3314 "dhcp4_parser.cc"
3317 #line 2050 "dhcp4_parser.yy"
3322 #line 3323 "dhcp4_parser.cc"
3326 #line 2053 "dhcp4_parser.yy"
3329 ctx.
stack_.back()->set(
"data", data);
3332 #line 3333 "dhcp4_parser.cc"
3336 #line 2063 "dhcp4_parser.yy"
3338 ctx.
unique(
"csv-format", ctx.
loc2pos(yystack_[2].location));
3340 ctx.
stack_.back()->set(
"csv-format", csv);
3342 #line 3343 "dhcp4_parser.cc"
3346 #line 2069 "dhcp4_parser.yy"
3348 ctx.
unique(
"always-send", ctx.
loc2pos(yystack_[2].location));
3350 ctx.
stack_.back()->set(
"always-send", persist);
3352 #line 3353 "dhcp4_parser.cc"
3356 #line 2075 "dhcp4_parser.yy"
3358 ctx.
unique(
"never-send", ctx.
loc2pos(yystack_[2].location));
3360 ctx.
stack_.back()->set(
"never-send", cancel);
3362 #line 3363 "dhcp4_parser.cc"
3366 #line 2084 "dhcp4_parser.yy"
3370 ctx.
stack_.back()->set(
"pools", l);
3374 #line 3375 "dhcp4_parser.cc"
3378 #line 2090 "dhcp4_parser.yy"
3383 #line 3384 "dhcp4_parser.cc"
3387 #line 2103 "dhcp4_parser.yy"
3391 #line 3392 "dhcp4_parser.cc"
3395 #line 2108 "dhcp4_parser.yy"
3398 ctx.
stack_.back()->add(m);
3401 #line 3402 "dhcp4_parser.cc"
3405 #line 2112 "dhcp4_parser.yy"
3411 #line 3412 "dhcp4_parser.cc"
3415 #line 2118 "dhcp4_parser.yy"
3421 #line 3422 "dhcp4_parser.cc"
3425 #line 2122 "dhcp4_parser.yy"
3431 #line 3432 "dhcp4_parser.cc"
3435 #line 2130 "dhcp4_parser.yy"
3439 #line 3440 "dhcp4_parser.cc"
3443 #line 2145 "dhcp4_parser.yy"
3448 #line 3449 "dhcp4_parser.cc"
3452 #line 2148 "dhcp4_parser.yy"
3455 ctx.
stack_.back()->set(
"pool", pool);
3458 #line 3459 "dhcp4_parser.cc"
3462 #line 2154 "dhcp4_parser.yy"
3466 ctx.
stack_.back()->set(
"pool-id",
id);
3468 #line 3469 "dhcp4_parser.cc"
3472 #line 2160 "dhcp4_parser.yy"
3476 #line 3477 "dhcp4_parser.cc"
3480 #line 2162 "dhcp4_parser.yy"
3489 if ((old->size() != 1) || !old->contains(
"comment")) {
3490 std::stringstream msg;
3491 msg <<
"duplicate user-context entries (previous at "
3492 << old->getPosition().str() <<
")";
3493 error(yystack_[3].location, msg.str());
3496 user_context->set(
"comment", old->get(
"comment"));
3500 parent->set(
"user-context", user_context);
3503 #line 3504 "dhcp4_parser.cc"
3507 #line 2185 "dhcp4_parser.yy"
3511 #line 3512 "dhcp4_parser.cc"
3515 #line 2187 "dhcp4_parser.yy"
3520 user_context->set(
"comment", comment);
3526 if (old->contains(
"comment")) {
3527 std::stringstream msg;
3528 msg <<
"duplicate user-context/comment entries (previous at "
3529 << old->getPosition().str() <<
")";
3530 error(yystack_[3].location, msg.str());
3533 merge(user_context, old);
3537 parent->set(
"user-context", user_context);
3540 #line 3541 "dhcp4_parser.cc"
3544 #line 2215 "dhcp4_parser.yy"
3546 ctx.
unique(
"reservations", ctx.
loc2pos(yystack_[0].location));
3548 ctx.
stack_.back()->set(
"reservations", l);
3552 #line 3553 "dhcp4_parser.cc"
3556 #line 2221 "dhcp4_parser.yy"
3561 #line 3562 "dhcp4_parser.cc"
3565 #line 2232 "dhcp4_parser.yy"
3569 #line 3570 "dhcp4_parser.cc"
3573 #line 2237 "dhcp4_parser.yy"
3576 ctx.
stack_.back()->add(m);
3579 #line 3580 "dhcp4_parser.cc"
3583 #line 2241 "dhcp4_parser.yy"
3588 #line 3589 "dhcp4_parser.cc"
3592 #line 2246 "dhcp4_parser.yy"
3598 #line 3599 "dhcp4_parser.cc"
3602 #line 2250 "dhcp4_parser.yy"
3607 #line 3608 "dhcp4_parser.cc"
3611 #line 2261 "dhcp4_parser.yy"
3615 #line 3616 "dhcp4_parser.cc"
3619 #line 2284 "dhcp4_parser.yy"
3621 ctx.
unique(
"next-server", ctx.
loc2pos(yystack_[0].location));
3624 #line 3625 "dhcp4_parser.cc"
3628 #line 2287 "dhcp4_parser.yy"
3631 ctx.
stack_.back()->set(
"next-server", next_server);
3634 #line 3635 "dhcp4_parser.cc"
3638 #line 2293 "dhcp4_parser.yy"
3640 ctx.
unique(
"server-hostname", ctx.
loc2pos(yystack_[0].location));
3643 #line 3644 "dhcp4_parser.cc"
3647 #line 2296 "dhcp4_parser.yy"
3650 ctx.
stack_.back()->set(
"server-hostname", srv);
3653 #line 3654 "dhcp4_parser.cc"
3657 #line 2302 "dhcp4_parser.yy"
3659 ctx.
unique(
"boot-file-name", ctx.
loc2pos(yystack_[0].location));
3662 #line 3663 "dhcp4_parser.cc"
3666 #line 2305 "dhcp4_parser.yy"
3669 ctx.
stack_.back()->set(
"boot-file-name", bootfile);
3672 #line 3673 "dhcp4_parser.cc"
3676 #line 2311 "dhcp4_parser.yy"
3678 ctx.
unique(
"ip-address", ctx.
loc2pos(yystack_[0].location));
3681 #line 3682 "dhcp4_parser.cc"
3685 #line 2314 "dhcp4_parser.yy"
3688 ctx.
stack_.back()->set(
"ip-address", addr);
3691 #line 3692 "dhcp4_parser.cc"
3695 #line 2320 "dhcp4_parser.yy"
3697 ctx.
unique(
"ip-addresses", ctx.
loc2pos(yystack_[0].location));
3699 ctx.
stack_.back()->set(
"ip-addresses", l);
3703 #line 3704 "dhcp4_parser.cc"
3707 #line 2326 "dhcp4_parser.yy"
3712 #line 3713 "dhcp4_parser.cc"
3716 #line 2331 "dhcp4_parser.yy"
3721 #line 3722 "dhcp4_parser.cc"
3725 #line 2334 "dhcp4_parser.yy"
3728 ctx.
stack_.back()->set(
"duid", d);
3731 #line 3732 "dhcp4_parser.cc"
3735 #line 2340 "dhcp4_parser.yy"
3737 ctx.
unique(
"hw-address", ctx.
loc2pos(yystack_[0].location));
3740 #line 3741 "dhcp4_parser.cc"
3744 #line 2343 "dhcp4_parser.yy"
3747 ctx.
stack_.back()->set(
"hw-address", hw);
3750 #line 3751 "dhcp4_parser.cc"
3754 #line 2349 "dhcp4_parser.yy"
3759 #line 3760 "dhcp4_parser.cc"
3763 #line 2352 "dhcp4_parser.yy"
3766 ctx.
stack_.back()->set(
"client-id", hw);
3769 #line 3770 "dhcp4_parser.cc"
3773 #line 2358 "dhcp4_parser.yy"
3775 ctx.
unique(
"circuit-id", ctx.
loc2pos(yystack_[0].location));
3778 #line 3779 "dhcp4_parser.cc"
3782 #line 2361 "dhcp4_parser.yy"
3785 ctx.
stack_.back()->set(
"circuit-id", hw);
3788 #line 3789 "dhcp4_parser.cc"
3792 #line 2367 "dhcp4_parser.yy"
3797 #line 3798 "dhcp4_parser.cc"
3801 #line 2370 "dhcp4_parser.yy"
3804 ctx.
stack_.back()->set(
"flex-id", hw);
3807 #line 3808 "dhcp4_parser.cc"
3811 #line 2376 "dhcp4_parser.yy"
3816 #line 3817 "dhcp4_parser.cc"
3820 #line 2379 "dhcp4_parser.yy"
3823 ctx.
stack_.back()->set(
"hostname", host);
3826 #line 3827 "dhcp4_parser.cc"
3830 #line 2385 "dhcp4_parser.yy"
3832 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
3834 ctx.
stack_.back()->set(
"client-classes", c);
3838 #line 3839 "dhcp4_parser.cc"
3842 #line 2391 "dhcp4_parser.yy"
3847 #line 3848 "dhcp4_parser.cc"
3851 #line 2399 "dhcp4_parser.yy"
3855 ctx.
stack_.back()->set(
"relay", m);
3859 #line 3860 "dhcp4_parser.cc"
3863 #line 2405 "dhcp4_parser.yy"
3868 #line 3869 "dhcp4_parser.cc"
3872 #line 2417 "dhcp4_parser.yy"
3874 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
3876 ctx.
stack_.back()->set(
"client-classes", l);
3880 #line 3881 "dhcp4_parser.cc"
3884 #line 2423 "dhcp4_parser.yy"
3889 #line 3890 "dhcp4_parser.cc"
3893 #line 2430 "dhcp4_parser.yy"
3897 #line 3898 "dhcp4_parser.cc"
3901 #line 2435 "dhcp4_parser.yy"
3904 ctx.
stack_.back()->add(m);
3907 #line 3908 "dhcp4_parser.cc"
3911 #line 2439 "dhcp4_parser.yy"
3917 #line 3918 "dhcp4_parser.cc"
3921 #line 2451 "dhcp4_parser.yy"
3925 #line 3926 "dhcp4_parser.cc"
3929 #line 2476 "dhcp4_parser.yy"
3934 #line 3935 "dhcp4_parser.cc"
3938 #line 2479 "dhcp4_parser.yy"
3941 ctx.
stack_.back()->set(
"test", test);
3944 #line 3945 "dhcp4_parser.cc"
3948 #line 2485 "dhcp4_parser.yy"
3950 ctx.
unique(
"template-test", ctx.
loc2pos(yystack_[0].location));
3953 #line 3954 "dhcp4_parser.cc"
3957 #line 2488 "dhcp4_parser.yy"
3960 ctx.
stack_.back()->set(
"template-test", template_test);
3963 #line 3964 "dhcp4_parser.cc"
3967 #line 2494 "dhcp4_parser.yy"
3969 ctx.
unique(
"only-if-required", ctx.
loc2pos(yystack_[2].location));
3971 ctx.
stack_.back()->set(
"only-if-required", b);
3973 #line 3974 "dhcp4_parser.cc"
3977 #line 2502 "dhcp4_parser.yy"
3979 ctx.
unique(
"dhcp4o6-port", ctx.
loc2pos(yystack_[2].location));
3981 ctx.
stack_.back()->set(
"dhcp4o6-port", time);
3983 #line 3984 "dhcp4_parser.cc"
3987 #line 2510 "dhcp4_parser.yy"
3989 ctx.
unique(
"control-socket", ctx.
loc2pos(yystack_[0].location));
3991 ctx.
stack_.back()->set(
"control-socket", m);
3995 #line 3996 "dhcp4_parser.cc"
3999 #line 2516 "dhcp4_parser.yy"
4004 #line 4005 "dhcp4_parser.cc"
4008 #line 2523 "dhcp4_parser.yy"
4012 #line 4013 "dhcp4_parser.cc"
4016 #line 2535 "dhcp4_parser.yy"
4018 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
4021 #line 4022 "dhcp4_parser.cc"
4025 #line 2538 "dhcp4_parser.yy"
4028 ctx.
stack_.back()->set(
"socket-type", stype);
4031 #line 4032 "dhcp4_parser.cc"
4035 #line 2544 "dhcp4_parser.yy"
4037 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
4040 #line 4041 "dhcp4_parser.cc"
4044 #line 2547 "dhcp4_parser.yy"
4047 ctx.
stack_.back()->set(
"socket-name", name);
4050 #line 4051 "dhcp4_parser.cc"
4054 #line 2556 "dhcp4_parser.yy"
4056 ctx.
unique(
"dhcp-queue-control", ctx.
loc2pos(yystack_[0].location));
4058 ctx.
stack_.back()->set(
"dhcp-queue-control", qc);
4059 ctx.
stack_.push_back(qc);
4062 #line 4063 "dhcp4_parser.cc"
4066 #line 2562 "dhcp4_parser.yy"
4073 #line 4074 "dhcp4_parser.cc"
4077 #line 2571 "dhcp4_parser.yy"
4081 #line 4082 "dhcp4_parser.cc"
4085 #line 2584 "dhcp4_parser.yy"
4087 ctx.
unique(
"enable-queue", ctx.
loc2pos(yystack_[2].location));
4089 ctx.
stack_.back()->set(
"enable-queue", b);
4091 #line 4092 "dhcp4_parser.cc"
4095 #line 2590 "dhcp4_parser.yy"
4097 ctx.
unique(
"queue-type", ctx.
loc2pos(yystack_[0].location));
4100 #line 4101 "dhcp4_parser.cc"
4104 #line 2593 "dhcp4_parser.yy"
4107 ctx.
stack_.back()->set(
"queue-type", qt);
4110 #line 4111 "dhcp4_parser.cc"
4114 #line 2599 "dhcp4_parser.yy"
4118 ctx.
stack_.back()->set(
"capacity", c);
4120 #line 4121 "dhcp4_parser.cc"
4124 #line 2605 "dhcp4_parser.yy"
4126 ctx.
unique(yystack_[0].value.as < std::string > (), ctx.
loc2pos(yystack_[0].location));
4129 #line 4130 "dhcp4_parser.cc"
4133 #line 2608 "dhcp4_parser.yy"
4135 ctx.
stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
4138 #line 4139 "dhcp4_parser.cc"
4142 #line 2615 "dhcp4_parser.yy"
4146 ctx.
stack_.back()->set(
"dhcp-ddns", m);
4150 #line 4151 "dhcp4_parser.cc"
4154 #line 2621 "dhcp4_parser.yy"
4157 ctx.
require(
"enable-updates", ctx.
loc2pos(yystack_[2].location), ctx.
loc2pos(yystack_[0].location));
4161 #line 4162 "dhcp4_parser.cc"
4165 #line 2628 "dhcp4_parser.yy"
4171 #line 4172 "dhcp4_parser.cc"
4175 #line 2632 "dhcp4_parser.yy"
4178 ctx.
require(
"enable-updates", ctx.
loc2pos(yystack_[3].location), ctx.
loc2pos(yystack_[0].location));
4181 #line 4182 "dhcp4_parser.cc"
4185 #line 2640 "dhcp4_parser.yy"
4189 #line 4190 "dhcp4_parser.cc"
4193 #line 2665 "dhcp4_parser.yy"
4195 ctx.
unique(
"enable-updates", ctx.
loc2pos(yystack_[2].location));
4197 ctx.
stack_.back()->set(
"enable-updates", b);
4199 #line 4200 "dhcp4_parser.cc"
4203 #line 2671 "dhcp4_parser.yy"
4208 #line 4209 "dhcp4_parser.cc"
4212 #line 2674 "dhcp4_parser.yy"
4215 ctx.
stack_.back()->set(
"server-ip", s);
4218 #line 4219 "dhcp4_parser.cc"
4222 #line 2680 "dhcp4_parser.yy"
4224 ctx.
unique(
"server-port", ctx.
loc2pos(yystack_[2].location));
4226 ctx.
stack_.back()->set(
"server-port", i);
4228 #line 4229 "dhcp4_parser.cc"
4232 #line 2686 "dhcp4_parser.yy"
4237 #line 4238 "dhcp4_parser.cc"
4241 #line 2689 "dhcp4_parser.yy"
4244 ctx.
stack_.back()->set(
"sender-ip", s);
4247 #line 4248 "dhcp4_parser.cc"
4251 #line 2695 "dhcp4_parser.yy"
4253 ctx.
unique(
"sender-port", ctx.
loc2pos(yystack_[2].location));
4255 ctx.
stack_.back()->set(
"sender-port", i);
4257 #line 4258 "dhcp4_parser.cc"
4261 #line 2701 "dhcp4_parser.yy"
4263 ctx.
unique(
"max-queue-size", ctx.
loc2pos(yystack_[2].location));
4265 ctx.
stack_.back()->set(
"max-queue-size", i);
4267 #line 4268 "dhcp4_parser.cc"
4271 #line 2707 "dhcp4_parser.yy"
4273 ctx.
unique(
"ncr-protocol", ctx.
loc2pos(yystack_[0].location));
4276 #line 4277 "dhcp4_parser.cc"
4280 #line 2710 "dhcp4_parser.yy"
4282 ctx.
stack_.back()->set(
"ncr-protocol", yystack_[0].value.as <
ElementPtr > ());
4285 #line 4286 "dhcp4_parser.cc"
4289 #line 2716 "dhcp4_parser.yy"
4291 #line 4292 "dhcp4_parser.cc"
4295 #line 2717 "dhcp4_parser.yy"
4297 #line 4298 "dhcp4_parser.cc"
4301 #line 2720 "dhcp4_parser.yy"
4303 ctx.
unique(
"ncr-format", ctx.
loc2pos(yystack_[0].location));
4306 #line 4307 "dhcp4_parser.cc"
4310 #line 2723 "dhcp4_parser.yy"
4313 ctx.
stack_.back()->set(
"ncr-format", json);
4316 #line 4317 "dhcp4_parser.cc"
4320 #line 2730 "dhcp4_parser.yy"
4322 ctx.
unique(
"qualifying-suffix", ctx.
loc2pos(yystack_[0].location));
4325 #line 4326 "dhcp4_parser.cc"
4329 #line 2733 "dhcp4_parser.yy"
4332 ctx.
stack_.back()->set(
"qualifying-suffix", s);
4335 #line 4336 "dhcp4_parser.cc"
4339 #line 2740 "dhcp4_parser.yy"
4341 ctx.
unique(
"override-no-update", ctx.
loc2pos(yystack_[2].location));
4343 ctx.
stack_.back()->set(
"override-no-update", b);
4345 #line 4346 "dhcp4_parser.cc"
4349 #line 2747 "dhcp4_parser.yy"
4351 ctx.
unique(
"override-client-update", ctx.
loc2pos(yystack_[2].location));
4353 ctx.
stack_.back()->set(
"override-client-update", b);
4355 #line 4356 "dhcp4_parser.cc"
4359 #line 2754 "dhcp4_parser.yy"
4361 ctx.
unique(
"replace-client-name", ctx.
loc2pos(yystack_[0].location));
4364 #line 4365 "dhcp4_parser.cc"
4368 #line 2757 "dhcp4_parser.yy"
4370 ctx.
stack_.back()->set(
"replace-client-name", yystack_[0].value.as <
ElementPtr > ());
4373 #line 4374 "dhcp4_parser.cc"
4377 #line 2763 "dhcp4_parser.yy"
4379 ctx.
unique(
"generated-prefix", ctx.
loc2pos(yystack_[0].location));
4382 #line 4383 "dhcp4_parser.cc"
4386 #line 2766 "dhcp4_parser.yy"
4389 ctx.
stack_.back()->set(
"generated-prefix", s);
4392 #line 4393 "dhcp4_parser.cc"
4396 #line 2773 "dhcp4_parser.yy"
4398 ctx.
unique(
"hostname-char-set", ctx.
loc2pos(yystack_[0].location));
4401 #line 4402 "dhcp4_parser.cc"
4405 #line 2776 "dhcp4_parser.yy"
4408 ctx.
stack_.back()->set(
"hostname-char-set", s);
4411 #line 4412 "dhcp4_parser.cc"
4415 #line 2783 "dhcp4_parser.yy"
4417 ctx.
unique(
"hostname-char-replacement", ctx.
loc2pos(yystack_[0].location));
4420 #line 4421 "dhcp4_parser.cc"
4424 #line 2786 "dhcp4_parser.yy"
4427 ctx.
stack_.back()->set(
"hostname-char-replacement", s);
4430 #line 4431 "dhcp4_parser.cc"
4434 #line 2795 "dhcp4_parser.yy"
4436 ctx.
unique(
"config-control", ctx.
loc2pos(yystack_[0].location));
4438 ctx.
stack_.back()->set(
"config-control", i);
4442 #line 4443 "dhcp4_parser.cc"
4446 #line 2801 "dhcp4_parser.yy"
4452 #line 4453 "dhcp4_parser.cc"
4456 #line 2807 "dhcp4_parser.yy"
4462 #line 4463 "dhcp4_parser.cc"
4466 #line 2811 "dhcp4_parser.yy"
4471 #line 4472 "dhcp4_parser.cc"
4475 #line 2819 "dhcp4_parser.yy"
4479 #line 4480 "dhcp4_parser.cc"
4483 #line 2829 "dhcp4_parser.yy"
4485 ctx.
unique(
"config-databases", ctx.
loc2pos(yystack_[0].location));
4487 ctx.
stack_.back()->set(
"config-databases", l);
4491 #line 4492 "dhcp4_parser.cc"
4495 #line 2835 "dhcp4_parser.yy"
4500 #line 4501 "dhcp4_parser.cc"
4504 #line 2840 "dhcp4_parser.yy"
4506 ctx.
unique(
"config-fetch-wait-time", ctx.
loc2pos(yystack_[2].location));
4508 ctx.
stack_.back()->set(
"config-fetch-wait-time", value);
4510 #line 4511 "dhcp4_parser.cc"
4514 #line 2848 "dhcp4_parser.yy"
4518 ctx.
stack_.back()->set(
"loggers", l);
4522 #line 4523 "dhcp4_parser.cc"
4526 #line 2854 "dhcp4_parser.yy"
4531 #line 4532 "dhcp4_parser.cc"
4535 #line 2863 "dhcp4_parser.yy"
4539 #line 4540 "dhcp4_parser.cc"
4543 #line 2869 "dhcp4_parser.yy"
4546 ctx.
stack_.back()->add(l);
4549 #line 4550 "dhcp4_parser.cc"
4553 #line 2873 "dhcp4_parser.yy"
4557 #line 4558 "dhcp4_parser.cc"
4561 #line 2879 "dhcp4_parser.yy"
4565 #line 4566 "dhcp4_parser.cc"
4569 #line 2893 "dhcp4_parser.yy"
4571 ctx.
unique(
"debuglevel", ctx.
loc2pos(yystack_[2].location));
4573 ctx.
stack_.back()->set(
"debuglevel", dl);
4575 #line 4576 "dhcp4_parser.cc"
4579 #line 2899 "dhcp4_parser.yy"
4584 #line 4585 "dhcp4_parser.cc"
4588 #line 2902 "dhcp4_parser.yy"
4591 ctx.
stack_.back()->set(
"severity", sev);
4594 #line 4595 "dhcp4_parser.cc"
4598 #line 2908 "dhcp4_parser.yy"
4600 ctx.
unique(
"output-options", ctx.
loc2pos(yystack_[0].location));
4602 ctx.
stack_.back()->set(
"output-options", l);
4606 #line 4607 "dhcp4_parser.cc"
4610 #line 2914 "dhcp4_parser.yy"
4615 #line 4616 "dhcp4_parser.cc"
4619 #line 2921 "dhcp4_parser.yy"
4623 #line 4624 "dhcp4_parser.cc"
4627 #line 2926 "dhcp4_parser.yy"
4630 ctx.
stack_.back()->add(m);
4633 #line 4634 "dhcp4_parser.cc"
4637 #line 2930 "dhcp4_parser.yy"
4641 #line 4642 "dhcp4_parser.cc"
4645 #line 2936 "dhcp4_parser.yy"
4649 #line 4650 "dhcp4_parser.cc"
4653 #line 2948 "dhcp4_parser.yy"
4658 #line 4659 "dhcp4_parser.cc"
4662 #line 2951 "dhcp4_parser.yy"
4665 ctx.
stack_.back()->set(
"output", sev);
4668 #line 4669 "dhcp4_parser.cc"
4672 #line 2957 "dhcp4_parser.yy"
4676 ctx.
stack_.back()->set(
"flush", flush);
4678 #line 4679 "dhcp4_parser.cc"
4682 #line 2963 "dhcp4_parser.yy"
4686 ctx.
stack_.back()->set(
"maxsize", maxsize);
4688 #line 4689 "dhcp4_parser.cc"
4692 #line 2969 "dhcp4_parser.yy"
4696 ctx.
stack_.back()->set(
"maxver", maxver);
4698 #line 4699 "dhcp4_parser.cc"
4702 #line 2975 "dhcp4_parser.yy"
4707 #line 4708 "dhcp4_parser.cc"
4711 #line 2978 "dhcp4_parser.yy"
4714 ctx.
stack_.back()->set(
"pattern", sev);
4717 #line 4718 "dhcp4_parser.cc"
4721 #line 2984 "dhcp4_parser.yy"
4723 ctx.
unique(
"compatibility", ctx.
loc2pos(yystack_[0].location));
4725 ctx.
stack_.back()->set(
"compatibility", i);
4729 #line 4730 "dhcp4_parser.cc"
4733 #line 2990 "dhcp4_parser.yy"
4738 #line 4739 "dhcp4_parser.cc"
4742 #line 2997 "dhcp4_parser.yy"
4746 #line 4747 "dhcp4_parser.cc"
4750 #line 3009 "dhcp4_parser.yy"
4752 ctx.
unique(
"lenient-option-parsing", ctx.
loc2pos(yystack_[2].location));
4754 ctx.
stack_.back()->set(
"lenient-option-parsing", b);
4756 #line 4757 "dhcp4_parser.cc"
4760 #line 3015 "dhcp4_parser.yy"
4762 ctx.
unique(
"ignore-dhcp-server-identifier", ctx.
loc2pos(yystack_[2].location));
4764 ctx.
stack_.back()->set(
"ignore-dhcp-server-identifier", b);
4766 #line 4767 "dhcp4_parser.cc"
4770 #line 3021 "dhcp4_parser.yy"
4772 ctx.
unique(
"ignore-rai-link-selection", ctx.
loc2pos(yystack_[2].location));
4774 ctx.
stack_.back()->set(
"ignore-rai-link-selection", b);
4776 #line 4777 "dhcp4_parser.cc"
4780 #line 3027 "dhcp4_parser.yy"
4782 ctx.
unique(
"exclude-first-last-24", ctx.
loc2pos(yystack_[2].location));
4784 ctx.
stack_.back()->set(
"exclude-first-last-24", b);
4786 #line 4787 "dhcp4_parser.cc"
4790 #line 4791 "dhcp4_parser.cc"
4799 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
4809 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
4823 std::string msg = yysyntax_error_ (yyctx);
4828 yyerror_range[1].location = yyla.
location;
4829 if (yyerrstatus_ == 3)
4837 else if (!yyla.
empty ())
4839 yy_destroy_ (
"Error: discarding", yyla);
4873 yyn = yypact_[+yystack_[0].state];
4874 if (!yy_pact_value_is_default_ (yyn))
4877 if (0 <= yyn && yyn <= yylast_
4880 yyn = yytable_[yyn];
4887 if (yystack_.size () == 1)
4890 yyerror_range[1].location = yystack_[0].location;
4891 yy_destroy_ (
"Error: popping", yystack_[0]);
4896 stack_symbol_type error_token;
4898 yyerror_range[2].location = yyla.
location;
4902 error_token.state = state_type (yyn);
4903 yypush_ (
"Shifting",
YY_MOVE (error_token));
4929 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
4935 while (1 < yystack_.size ())
4937 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
4946 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
4950 yy_destroy_ (YY_NULLPTR, yyla);
4952 while (1 < yystack_.size ())
4954 yy_destroy_ (YY_NULLPTR, yystack_[0]);
4974 Dhcp4Parser::yytnamerr_ (
const char *yystr)
4979 char const *yyp = yystr;
4986 goto do_not_strip_quotes;
4990 goto do_not_strip_quotes;
5002 do_not_strip_quotes: ;
5011 return yytnamerr_ (yytname_[yysymbol]);
5018 : yyparser_ (yyparser)
5028 const int yyn = yypact_[+yyparser_.yystack_[0].state];
5029 if (!yy_pact_value_is_default_ (yyn))
5034 const int yyxbegin = yyn < 0 ? -yyn : 0;
5036 const int yychecklim = yylast_ - yyn + 1;
5038 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
5040 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
5044 else if (yycount == yyargn)
5051 if (yyarg && yycount == 0 && 0 < yyargn)
5062 Dhcp4Parser::yy_syntax_error_arguments_ (
const context& yyctx,
5093 yyarg[0] = yyctx.
token ();
5094 int yyn = yyctx.
expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
5102 Dhcp4Parser::yysyntax_error_ (
const context& yyctx)
const
5105 enum { YYARGS_MAX = 5 };
5108 int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX);
5110 char const* yyformat = YY_NULLPTR;
5113 #define YYCASE_(N, S) \
5119 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
5120 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
5121 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
5122 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
5123 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
5129 std::ptrdiff_t yyi = 0;
5130 for (
char const* yyp = yyformat; *yyp; ++yyp)
5131 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
5142 const short Dhcp4Parser::yypact_ninf_ = -1022;
5144 const signed char Dhcp4Parser::yytable_ninf_ = -1;
5147 Dhcp4Parser::yypact_[] =
5149 597, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5150 -1022, -1022, -1022, -1022, 18, 44, 47, 64, 82, 90,
5151 98, 129, 145, 153, 172, 179, 190, 295, -1022, -1022,
5152 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5153 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5154 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5155 -1022, -1022, -1022, -1022, 44, -164, 106, 133, 159, 332,
5156 -24, 201, -28, 257, 212, -113, 476, 176, -1022, 230,
5157 251, 252, 262, 326, -1022, 23, -1022, -1022, -1022, -1022,
5158 333, 340, 345, -1022, -1022, -1022, 346, -1022, -1022, -1022,
5159 347, 352, 353, 354, 366, 367, 370, 371, 372, 376,
5160 384, -1022, 385, 390, 391, 392, 404, -1022, -1022, -1022,
5161 405, 406, 421, 423, -1022, -1022, -1022, 430, -1022, -1022,
5162 -1022, -1022, -1022, -1022, 431, 433, 442, -1022, -1022, -1022,
5163 -1022, -1022, 450, -1022, -1022, -1022, -1022, -1022, -1022, 451,
5164 452, 456, -1022, -1022, 457, -1022, 42, -1022, -1022, -1022,
5165 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5166 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5167 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5168 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5169 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5170 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5171 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 459, 460,
5172 463, 466, -1022, 49, -1022, -1022, -1022, -1022, -1022, -1022,
5173 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5174 468, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5175 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5176 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5177 -1022, -1022, 59, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5178 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5179 -1022, -1022, -1022, -1022, -1022, -1022, 470, -1022, -1022, -1022,
5180 -1022, 65, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5181 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 290,
5182 478, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5183 -1022, -1022, -1022, 328, -1022, -1022, 475, -1022, -1022, -1022,
5184 480, -1022, -1022, 379, 479, -1022, -1022, -1022, -1022, -1022,
5185 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 481, 482,
5186 484, -1022, -1022, -1022, -1022, 489, 486, -1022, -1022, -1022,
5187 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5188 85, -1022, -1022, -1022, 495, -1022, -1022, 497, -1022, 499,
5189 500, -1022, -1022, 503, 507, -1022, -1022, -1022, -1022, -1022,
5190 -1022, -1022, 91, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5191 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5192 511, 93, -1022, -1022, -1022, -1022, 44, 44, -1022, 297,
5193 519, -1022, -1022, 521, 523, 524, 306, 307, 308, 529,
5194 532, 540, 330, 545, 550, 551, 335, 336, 338, 341,
5195 342, 343, 348, 349, 350, 357, 358, 560, 360, 365,
5196 344, 351, 373, 564, 565, 571, 381, 386, 377, 387,
5197 585, 589, 590, 398, 603, 607, 608, 616, 631, 632,
5198 414, 420, 435, 640, 655, 656, 658, 662, 446, 665,
5199 666, 667, 668, 670, 671, 453, 454, 455, 675, 676,
5200 -1022, 133, -1022, 678, 679, 680, 462, 464, 465, 467,
5201 159, -1022, 685, 693, 694, 695, 696, 697, 487, 698,
5202 701, 703, 332, -1022, 705, 490, -24, -1022, 708, 709,
5203 710, 711, 712, 713, 714, 715, -1022, 201, -1022, 731,
5204 732, 516, 734, 746, 747, 530, -1022, 257, 748, 533,
5205 534, 535, -1022, 212, 755, 760, -70, -1022, 542, 764,
5206 765, 549, 767, 552, 553, 768, 773, 556, 558, 778,
5207 779, 780, 784, 476, -1022, 785, 570, 176, -1022, -1022,
5208 -1022, 788, 786, 789, 790, 792, -1022, -1022, -1022, 575,
5209 580, 581, -1022, 795, 810, 813, -1022, -1022, -1022, -1022,
5210 -1022, -1022, -1022, -1022, -1022, -1022, -1022, 599, -1022, -1022,
5211 -1022, -1022, -1022, 8, 600, 601, -1022, -1022, -1022, -1022,
5212 817, 818, 819, -1022, 605, 383, 821, 820, 609, 319,
5213 -1022, -1022, -1022, 823, 825, 826, 827, 828, -1022, 829,
5214 830, 831, 832, 613, 614, -1022, -1022, -1022, 835, 834,
5215 -1022, 837, 263, 294, -1022, -1022, -1022, -1022, -1022, 623,
5216 624, 625, 841, 627, 630, -1022, 837, 633, 844, -1022,
5217 634, -1022, -1022, 837, 635, 636, 637, 638, 639, 641,
5218 642, -1022, 643, 644, -1022, 645, 646, 647, -1022, -1022,
5219 648, -1022, -1022, -1022, -1022, 649, 820, -1022, -1022, 650,
5220 651, -1022, 652, -1022, -1022, 5, 669, -1022, -1022, 8,
5221 653, 654, 657, -1022, 855, -1022, -1022, 44, 133, 176,
5222 159, 256, -1022, -1022, -1022, 578, 578, 868, -1022, -1022,
5223 -1022, -1022, -1022, -1022, -1022, -1022, -1022, 869, 871, 872,
5224 -1022, -1022, -1022, -1022, -1022, -1022, 874, -1022, -1022, -1022,
5225 -1022, -1022, -1022, -1022, -1022, 291, 875, 876, 877, 388,
5226 -79, -29, 216, 476, -1022, -1022, 878, 187, -1022, -1022,
5227 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 879,
5228 -1022, -1022, -1022, -1022, 189, -1022, -1022, -1022, -1022, -1022,
5229 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5230 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5231 -1022, -1022, -1022, 868, -1022, 100, 101, 115, -1022, -1022,
5232 123, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 883, 884,
5233 885, 886, 887, 888, 889, 890, 891, 892, -1022, 893,
5234 -1022, -1022, -1022, -1022, -1022, 143, -1022, -1022, -1022, -1022,
5235 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5236 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 169, -1022,
5237 894, 895, -1022, -1022, 896, 898, -1022, -1022, 897, 901,
5238 -1022, -1022, 899, 903, -1022, -1022, 902, 904, -1022, -1022,
5239 -1022, -1022, -1022, -1022, 35, -1022, -1022, -1022, -1022, -1022,
5240 -1022, -1022, 109, -1022, -1022, 905, 906, -1022, -1022, 907,
5241 909, -1022, 910, 911, 912, 913, 914, 915, 182, -1022,
5242 -1022, -1022, -1022, -1022, -1022, -1022, 916, 917, 918, -1022,
5243 220, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5244 -1022, -1022, 221, -1022, -1022, -1022, 919, -1022, 920, -1022,
5245 -1022, -1022, 222, -1022, -1022, -1022, -1022, -1022, 229, -1022,
5246 155, -1022, 921, 922, 923, 924, -1022, 239, -1022, -1022,
5247 -1022, -1022, -1022, 690, -1022, 925, 926, -1022, -1022, -1022,
5248 -1022, 927, 928, -1022, -1022, -1022, 929, 932, 256, -1022,
5249 933, 934, 935, 936, 720, 707, 721, 722, 723, 725,
5250 726, 727, 728, 729, 939, 730, 948, 949, 950, 951,
5251 578, -1022, -1022, 578, -1022, 868, 332, -1022, 869, 257,
5252 -1022, 871, 212, -1022, 872, 660, -1022, 874, 291, -1022,
5253 253, 875, -1022, 201, -1022, 876, -113, -1022, 877, 735,
5254 736, 737, 739, 740, 742, 388, -1022, 741, 745, 750,
5255 -79, -1022, 963, 970, -29, -1022, 752, 978, 771, 981,
5256 216, -1022, -1022, -40, 878, -1022, 781, 800, 804, 808,
5257 187, -1022, -1022, 995, 999, -24, -1022, 879, 1003, -1022,
5258 -1022, 812, 814, -1022, 88, 824, 838, 845, -1022, -1022,
5259 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 234, -1022,
5260 847, 850, 900, 908, -1022, 243, -1022, 247, -1022, 1029,
5261 -1022, 1033, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5262 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5263 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5264 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5265 249, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5266 -1022, -1022, -1022, 1041, -1022, -1022, -1022, -1022, -1022, -1022,
5267 -1022, -1022, -1022, -1022, -1022, -1022, -1022, 1039, 1054, -1022,
5268 -1022, -1022, -1022, -1022, -1022, 1107, -1022, 260, -1022, -1022,
5269 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5270 930, 931, -1022, -1022, 938, -1022, 44, -1022, -1022, 1113,
5271 -1022, -1022, -1022, -1022, -1022, 268, -1022, -1022, -1022, -1022,
5272 -1022, -1022, -1022, -1022, -1022, -1022, -1022, 940, 269, -1022,
5273 837, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5274 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5275 -1022, -1022, 660, -1022, 1114, 1118, 942, -1022, 253, -1022,
5276 -1022, -1022, -1022, -1022, -1022, 1119, 941, 1120, -40, -1022,
5277 -1022, -1022, -1022, -1022, 946, 947, -1022, -1022, 1121, -1022,
5278 952, -1022, -1022, -1022, 1122, -1022, -1022, 170, -1022, 105,
5279 1122, -1022, -1022, 1123, 1126, 1127, -1022, 270, -1022, -1022,
5280 -1022, -1022, -1022, -1022, -1022, 1128, 945, 953, 954, 1129,
5281 105, -1022, 956, -1022, -1022, -1022, 957, -1022, -1022, -1022
5285 Dhcp4Parser::yydefact_[] =
5287 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
5288 20, 22, 24, 26, 0, 0, 0, 0, 0, 0,
5289 0, 0, 0, 0, 0, 0, 0, 0, 1, 44,
5290 36, 32, 31, 28, 29, 30, 35, 3, 33, 34,
5291 59, 5, 65, 7, 206, 9, 384, 11, 602, 13,
5292 631, 15, 520, 17, 529, 19, 568, 21, 346, 23,
5293 749, 25, 800, 27, 46, 39, 0, 0, 0, 0,
5294 0, 633, 0, 531, 570, 0, 0, 0, 48, 0,
5295 47, 0, 0, 40, 61, 0, 63, 798, 191, 224,
5296 0, 0, 0, 653, 655, 657, 0, 222, 235, 237,
5297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5298 0, 149, 0, 0, 0, 0, 0, 160, 167, 169,
5299 0, 0, 0, 0, 375, 518, 559, 0, 152, 173,
5300 462, 618, 620, 455, 0, 0, 0, 308, 681, 622,
5301 337, 358, 0, 323, 716, 730, 747, 180, 182, 0,
5302 0, 0, 810, 852, 0, 137, 0, 67, 70, 71,
5303 72, 73, 74, 108, 109, 110, 111, 112, 75, 103,
5304 134, 135, 92, 93, 94, 116, 117, 118, 119, 120,
5305 121, 122, 123, 124, 125, 114, 115, 126, 127, 128,
5306 130, 131, 132, 136, 78, 79, 100, 80, 81, 82,
5307 129, 86, 87, 76, 105, 106, 107, 104, 77, 84,
5308 85, 98, 99, 101, 95, 96, 97, 83, 88, 89,
5309 90, 91, 102, 113, 133, 208, 210, 214, 0, 0,
5310 0, 0, 205, 0, 193, 196, 197, 198, 199, 200,
5311 201, 202, 203, 204, 440, 442, 444, 593, 438, 446,
5312 0, 450, 448, 677, 437, 389, 390, 391, 392, 393,
5313 417, 418, 419, 420, 421, 435, 407, 408, 422, 423,
5314 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
5315 434, 436, 0, 386, 396, 412, 413, 414, 397, 399,
5316 400, 403, 404, 405, 402, 398, 394, 395, 415, 416,
5317 401, 409, 410, 411, 406, 615, 0, 614, 610, 611,
5318 609, 0, 604, 607, 608, 612, 613, 675, 663, 665,
5319 669, 667, 673, 671, 659, 652, 646, 650, 651, 0,
5320 634, 635, 647, 648, 649, 643, 638, 644, 640, 641,
5321 642, 645, 639, 0, 549, 283, 0, 553, 551, 556,
5322 0, 545, 546, 0, 532, 533, 536, 548, 537, 538,
5323 539, 555, 540, 541, 542, 543, 544, 586, 0, 0,
5324 0, 584, 585, 588, 589, 0, 571, 572, 575, 576,
5325 577, 578, 579, 580, 581, 582, 583, 354, 356, 351,
5326 0, 348, 352, 353, 0, 786, 773, 0, 776, 0,
5327 0, 780, 784, 0, 0, 790, 792, 794, 796, 771,
5328 769, 770, 0, 751, 754, 755, 756, 757, 758, 759,
5329 760, 761, 766, 762, 763, 764, 765, 767, 768, 807,
5330 0, 0, 802, 805, 806, 45, 50, 0, 37, 43,
5331 0, 64, 60, 0, 0, 0, 0, 0, 0, 0,
5332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5338 58, 69, 66, 0, 0, 0, 0, 0, 0, 0,
5339 195, 207, 0, 0, 0, 0, 0, 0, 0, 0,
5340 0, 0, 388, 385, 0, 0, 606, 603, 0, 0,
5341 0, 0, 0, 0, 0, 0, 632, 637, 521, 0,
5342 0, 0, 0, 0, 0, 0, 530, 535, 0, 0,
5343 0, 0, 569, 574, 0, 0, 350, 347, 0, 0,
5344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5345 0, 0, 0, 753, 750, 0, 0, 804, 801, 49,
5346 41, 0, 0, 0, 0, 0, 154, 155, 156, 0,
5347 0, 0, 190, 0, 0, 0, 138, 139, 140, 141,
5348 142, 143, 144, 145, 146, 147, 148, 0, 185, 186,
5349 157, 158, 159, 0, 0, 0, 171, 172, 179, 184,
5350 0, 0, 0, 151, 0, 0, 0, 0, 0, 0,
5351 452, 453, 454, 0, 0, 0, 0, 0, 715, 0,
5352 0, 0, 0, 0, 0, 187, 188, 189, 0, 0,
5353 68, 0, 0, 0, 218, 219, 220, 221, 194, 0,
5354 0, 0, 0, 0, 0, 461, 0, 0, 0, 387,
5355 0, 617, 605, 0, 0, 0, 0, 0, 0, 0,
5356 0, 636, 0, 0, 547, 0, 0, 0, 558, 534,
5357 0, 590, 591, 592, 573, 0, 0, 349, 772, 0,
5358 0, 775, 0, 778, 779, 0, 0, 788, 789, 0,
5359 0, 0, 0, 752, 0, 809, 803, 0, 0, 0,
5360 0, 0, 654, 656, 658, 0, 0, 239, 150, 162,
5361 163, 164, 165, 166, 161, 168, 170, 377, 522, 561,
5362 153, 175, 176, 177, 178, 174, 464, 38, 619, 621,
5363 457, 458, 459, 460, 456, 0, 0, 624, 339, 0,
5364 0, 0, 0, 0, 181, 183, 0, 0, 51, 209,
5365 212, 213, 211, 216, 217, 215, 441, 443, 445, 595,
5366 439, 447, 451, 449, 0, 616, 676, 664, 666, 670,
5367 668, 674, 672, 660, 550, 284, 554, 552, 557, 587,
5368 355, 357, 787, 774, 777, 782, 783, 781, 785, 791,
5369 793, 795, 797, 239, 42, 0, 0, 0, 231, 233,
5370 0, 226, 229, 230, 271, 276, 278, 280, 0, 0,
5371 0, 0, 0, 0, 0, 0, 0, 0, 294, 0,
5372 300, 302, 304, 306, 270, 0, 246, 249, 250, 251,
5373 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
5374 262, 263, 264, 265, 266, 267, 268, 269, 0, 244,
5375 0, 240, 241, 382, 0, 378, 379, 527, 0, 523,
5376 524, 566, 0, 562, 563, 469, 0, 465, 466, 318,
5377 319, 320, 321, 322, 0, 310, 313, 314, 315, 316,
5378 317, 686, 0, 683, 629, 0, 625, 626, 344, 0,
5379 340, 341, 0, 0, 0, 0, 0, 0, 0, 360,
5380 363, 364, 365, 366, 367, 368, 0, 0, 0, 333,
5381 0, 325, 328, 329, 330, 331, 332, 726, 728, 725,
5382 723, 724, 0, 718, 721, 722, 0, 742, 0, 745,
5383 738, 739, 0, 732, 735, 736, 737, 740, 0, 815,
5384 0, 812, 0, 0, 0, 0, 861, 0, 854, 857,
5385 858, 859, 860, 53, 600, 0, 596, 597, 661, 679,
5386 680, 0, 0, 62, 799, 192, 0, 0, 228, 225,
5387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5389 248, 223, 236, 0, 238, 243, 0, 376, 381, 531,
5390 519, 526, 570, 560, 565, 0, 463, 468, 312, 309,
5391 688, 685, 682, 633, 623, 628, 0, 338, 343, 0,
5392 0, 0, 0, 0, 0, 362, 359, 0, 0, 0,
5393 327, 324, 0, 0, 720, 717, 0, 0, 0, 0,
5394 734, 731, 748, 0, 814, 811, 0, 0, 0, 0,
5395 856, 853, 55, 0, 54, 0, 594, 599, 0, 678,
5396 808, 0, 0, 227, 0, 0, 0, 0, 282, 285,
5397 286, 287, 288, 289, 290, 291, 292, 293, 0, 299,
5398 0, 0, 0, 0, 247, 0, 242, 0, 380, 0,
5399 525, 0, 564, 517, 492, 493, 494, 477, 478, 497,
5400 498, 499, 500, 501, 515, 480, 481, 502, 503, 504,
5401 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
5402 516, 474, 475, 476, 490, 491, 487, 488, 489, 486,
5403 0, 471, 479, 495, 496, 482, 483, 484, 485, 467,
5404 311, 710, 712, 0, 704, 705, 706, 707, 708, 709,
5405 697, 698, 702, 703, 699, 700, 701, 0, 689, 690,
5406 693, 694, 695, 696, 684, 0, 627, 0, 342, 369,
5407 370, 371, 372, 373, 374, 361, 334, 335, 336, 326,
5408 0, 0, 719, 741, 0, 744, 0, 733, 830, 0,
5409 828, 826, 820, 824, 825, 0, 817, 822, 823, 821,
5410 813, 862, 863, 864, 865, 855, 52, 57, 0, 598,
5411 0, 232, 234, 273, 274, 275, 272, 277, 279, 281,
5412 296, 297, 298, 295, 301, 303, 305, 307, 245, 383,
5413 528, 567, 473, 470, 0, 0, 0, 687, 692, 630,
5414 345, 727, 729, 743, 746, 0, 0, 0, 819, 816,
5415 56, 601, 662, 472, 0, 0, 714, 691, 0, 827,
5416 0, 818, 711, 713, 0, 829, 835, 0, 832, 0,
5417 834, 831, 845, 0, 0, 0, 850, 0, 837, 840,
5418 841, 842, 843, 844, 833, 0, 0, 0, 0, 0,
5419 839, 836, 0, 847, 848, 849, 0, 838, 846, 851
5423 Dhcp4Parser::yypgoto_[] =
5425 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5426 -1022, -1022, -1022, -1022, -1022, -59, -1022, -593, -1022, 193,
5427 -1022, -1022, -1022, -1022, -1022, -1022, -643, -1022, -1022, -1022,
5428 -67, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 204, 626,
5429 -30, -26, 26, -54, -37, -27, 0, 14, 16, 45,
5430 -1022, -1022, -1022, -1022, 48, -1022, -1022, 50, 51, 52,
5431 53, 55, 56, -1022, 415, 58, -1022, 63, -1022, 66,
5432 68, 69, -1022, -1022, 70, 71, -1022, 73, -1022, 74,
5433 -1022, -1022, -1022, -1022, -1022, 33, -1022, -1022, 395, 615,
5434 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5435 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 138,
5436 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 315, -1022,
5437 114, -1022, -724, 120, -1022, -1022, -1022, -1022, -1022, -1022,
5438 -1022, -1022, -1022, -1022, -45, -1022, -1022, -1022, -1022, -1022,
5439 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5440 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5441 103, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, 83,
5442 -1022, -1022, -1022, -1022, -1022, -1022, -1022, 94, -1022, -1022,
5443 -1022, 99, 582, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5444 89, -1022, -1022, -1022, -1022, -1022, -1022, -1021, -1022, -1022,
5445 -1022, 118, -1022, -1022, -1022, 121, 617, -1022, -1022, -1022,
5446 -1022, -1022, -1022, -1022, -1022, -1019, -1022, 78, -1022, 79,
5447 -1022, 76, 81, 84, 86, -1022, -1022, -1022, -1022, -1022,
5448 -1022, -1022, 116, -1022, -1022, -110, -62, -1022, -1022, -1022,
5449 -1022, -1022, 124, -1022, -1022, -1022, 125, -1022, 602, -1022,
5450 -63, -1022, -1022, -1022, -1022, -1022, -44, -1022, -1022, -1022,
5451 -1022, -1022, -23, -1022, -1022, -1022, 122, -1022, -1022, -1022,
5452 137, -1022, 598, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5453 -1022, -1022, -1022, -1022, -1022, 92, -1022, -1022, -1022, 95,
5454 661, -1022, -1022, -1022, -49, -1022, -10, -1022, -56, -1022,
5455 -1022, -1022, 126, -1022, -1022, -1022, 127, -1022, 663, 3,
5456 -1022, 13, -1022, 29, -1022, 389, -1022, -1022, -1022, -1022,
5457 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5458 -1022, -1022, -1022, -1018, -1022, -1022, -1022, -1022, -1022, 132,
5459 -1022, -1022, -1022, -90, -1022, -1022, -1022, -1022, -1022, -1022,
5460 -1022, -1022, -1022, -1022, 117, -1022, -1022, -1022, -1022, -1022,
5461 -1022, -1022, 112, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5462 -1022, -1022, -1022, 411, 604, -1022, -1022, -1022, -1022, -1022,
5463 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5464 -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022, -1022,
5465 -1022, -1022, -1022, -1022, 461, 606, -1022, -1022, -1022, -1022,
5466 -1022, -1022, 111, -1022, -1022, -92, -1022, -1022, -1022, -1022,
5467 -1022, -1022, -112, -1022, -1022, -131, -1022, -1022, -1022, -1022,
5468 -1022, -1022, -1022, -1022, -1022, -1022, 119, -1022, -1022, -1022,
5473 Dhcp4Parser::yydefgoto_[] =
5475 0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
5476 23, 24, 25, 26, 27, 36, 37, 38, 65, 758,
5477 82, 83, 39, 64, 79, 80, 779, 983, 1083, 1084,
5478 854, 41, 66, 85, 440, 86, 43, 67, 156, 157,
5479 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
5480 168, 169, 467, 170, 171, 484, 172, 173, 174, 175,
5481 176, 177, 178, 473, 744, 179, 474, 180, 475, 181,
5482 182, 183, 485, 755, 184, 185, 503, 186, 504, 187,
5483 188, 189, 190, 191, 192, 193, 194, 444, 233, 234,
5484 45, 68, 235, 513, 236, 514, 782, 237, 515, 785,
5485 238, 239, 240, 241, 195, 453, 196, 445, 830, 831,
5486 832, 996, 833, 997, 197, 454, 198, 455, 880, 881,
5487 882, 1023, 855, 856, 857, 1000, 1246, 858, 1001, 859,
5488 1002, 860, 1003, 861, 862, 550, 863, 864, 865, 866,
5489 867, 868, 869, 870, 871, 872, 1014, 1253, 873, 874,
5490 1016, 875, 1017, 876, 1018, 877, 1019, 199, 493, 904,
5491 905, 906, 907, 908, 909, 910, 200, 499, 940, 941,
5492 942, 943, 944, 201, 496, 919, 920, 921, 1046, 59,
5493 75, 390, 391, 392, 564, 393, 565, 202, 497, 928,
5494 929, 930, 931, 932, 933, 934, 935, 203, 480, 884,
5495 885, 886, 1026, 47, 69, 282, 283, 284, 526, 285,
5496 522, 286, 523, 287, 524, 288, 527, 289, 530, 290,
5497 529, 204, 205, 206, 207, 489, 764, 295, 208, 486,
5498 896, 897, 898, 1035, 1160, 1161, 209, 481, 53, 72,
5499 888, 889, 890, 1029, 55, 73, 353, 354, 355, 356,
5500 357, 358, 359, 549, 360, 553, 361, 552, 362, 363,
5501 554, 364, 210, 482, 892, 893, 894, 1032, 57, 74,
5502 375, 376, 377, 378, 379, 558, 380, 381, 382, 383,
5503 384, 297, 525, 985, 986, 987, 1085, 49, 70, 311,
5504 312, 313, 534, 314, 211, 487, 212, 488, 213, 495,
5505 915, 916, 917, 1043, 51, 71, 329, 330, 331, 214,
5506 449, 215, 450, 216, 451, 335, 545, 990, 1088, 336,
5507 539, 337, 540, 338, 542, 339, 541, 340, 544, 341,
5508 543, 342, 538, 304, 531, 991, 217, 494, 912, 913,
5509 1040, 1187, 1188, 1189, 1190, 1191, 1264, 1192, 1265, 1193,
5510 218, 219, 500, 952, 953, 954, 1062, 955, 1063, 220,
5511 501, 962, 963, 964, 965, 1067, 966, 967, 1069, 221,
5512 502, 61, 76, 412, 413, 414, 415, 570, 416, 417,
5513 572, 418, 419, 420, 575, 817, 421, 576, 422, 569,
5514 423, 424, 425, 579, 426, 580, 427, 581, 428, 582,
5515 222, 443, 63, 77, 431, 432, 433, 585, 434, 223,
5516 508, 970, 971, 1073, 1225, 1226, 1227, 1228, 1277, 1229,
5517 1275, 1297, 1298, 1299, 1307, 1308, 1309, 1315, 1310, 1311,
5518 1312, 1313, 1319, 224, 509, 977, 978, 979, 980, 981,
5523 Dhcp4Parser::yytable_[] =
5525 155, 232, 254, 307, 325, 78, 351, 371, 389, 409,
5526 343, 373, 878, 300, 1152, 258, 1153, 1168, 28, 242,
5527 298, 315, 327, 815, 365, 385, 441, 410, 352, 372,
5528 374, 442, 259, 792, 387, 388, 131, 132, 1038, 255,
5529 796, 1039, 260, 256, 757, 511, 296, 310, 326, 29,
5530 512, 30, 520, 31, 40, 345, 81, 521, 243, 299,
5531 316, 328, 532, 366, 386, 125, 411, 533, 536, 261,
5532 126, 42, 301, 537, 332, 131, 132, 387, 388, 936,
5533 937, 938, 302, 262, 333, 263, 131, 132, 566, 44,
5534 305, 131, 132, 567, 583, 257, 587, 46, 303, 584,
5535 334, 588, 281, 511, 587, 48, 251, 154, 993, 994,
5536 252, 306, 1041, 757, 264, 1042, 84, 265, 520, 266,
5537 267, 268, 269, 995, 270, 271, 998, 272, 1243, 1244,
5538 1245, 999, 273, 947, 948, 274, 50, 275, 276, 277,
5539 278, 154, 279, 280, 87, 291, 1020, 88, 308, 309,
5540 292, 1021, 52, 293, 1218, 294, 1219, 1220, 1074, 89,
5541 54, 1075, 90, 91, 92, 93, 94, 95, 96, 97,
5542 98, 99, 1020, 1300, 225, 226, 1301, 1022, 227, 56,
5543 154, 228, 229, 230, 231, 1055, 58, 816, 429, 430,
5544 1056, 154, 739, 740, 741, 742, 154, 60, 100, 101,
5545 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
5546 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
5547 122, 123, 124, 1060, 1064, 1070, 125, 126, 1061, 1065,
5548 1071, 743, 583, 93, 94, 95, 435, 1072, 127, 128,
5549 129, 1152, 1080, 1153, 1168, 130, 1020, 1081, 131, 132,
5550 532, 1258, 1262, 133, 436, 1259, 437, 1263, 134, 135,
5551 136, 137, 138, 566, 32, 33, 34, 35, 1270, 139,
5552 438, 1278, 536, 1320, 131, 132, 1279, 1281, 1321, 140,
5553 780, 781, 141, 828, 829, 93, 94, 95, 96, 142,
5554 143, 1250, 1251, 1252, 144, 126, 344, 145, 546, 1115,
5555 1302, 146, 62, 1303, 1304, 1305, 1306, 345, 367, 346,
5556 347, 368, 369, 370, 783, 784, 131, 132, 100, 101,
5557 102, 147, 148, 149, 150, 151, 152, 131, 132, 439,
5558 317, 131, 132, 324, 988, 153, 548, 446, 318, 319,
5559 320, 321, 322, 323, 447, 324, 125, 126, 345, 448,
5560 452, 456, 345, 154, 346, 347, 457, 458, 459, 348,
5561 349, 350, 91, 92, 93, 94, 95, 96, 131, 132,
5562 460, 461, 131, 132, 462, 463, 464, 589, 590, 154,
5563 465, 956, 957, 958, 1171, 1172, 1173, 556, 466, 468,
5564 972, 973, 974, 975, 469, 470, 471, 100, 101, 102,
5565 103, 104, 105, 106, 107, 108, 109, 154, 472, 476,
5566 477, 114, 115, 116, 117, 118, 119, 120, 121, 122,
5567 123, 154, 244, 245, 246, 478, 126, 479, 899, 900,
5568 901, 902, 154, 903, 483, 490, 959, 491, 128, 129,
5569 760, 761, 762, 763, 155, 247, 492, 131, 132, 248,
5570 249, 250, 133, 232, 498, 505, 506, 134, 135, 136,
5571 507, 510, 251, 516, 517, 254, 252, 518, 139, 307,
5572 519, 242, 528, 154, 535, 253, 300, 154, 258, 551,
5573 325, 547, 557, 298, 555, 559, 560, 315, 561, 563,
5574 351, 751, 752, 753, 754, 259, 371, 562, 327, 568,
5575 373, 571, 255, 573, 574, 260, 256, 577, 365, 296,
5576 243, 578, 352, 310, 385, 586, 409, 591, 372, 374,
5577 147, 148, 299, 592, 326, 593, 316, 594, 595, 596,
5578 597, 598, 261, 599, 410, 301, 600, 328, 922, 923,
5579 924, 925, 926, 927, 601, 302, 262, 366, 263, 603,
5580 332, 602, 154, 386, 604, 605, 606, 607, 257, 608,
5581 333, 303, 609, 610, 617, 281, 611, 620, 623, 624,
5582 612, 613, 614, 411, 621, 625, 334, 264, 615, 616,
5583 265, 618, 266, 267, 268, 269, 619, 270, 271, 630,
5584 272, 131, 132, 631, 632, 273, 622, 1282, 274, 628,
5585 275, 276, 277, 278, 626, 279, 280, 634, 291, 627,
5586 629, 635, 636, 292, 308, 309, 293, 834, 294, 633,
5587 637, 835, 836, 837, 838, 839, 840, 841, 842, 843,
5588 844, 845, 846, 847, 848, 638, 639, 640, 849, 850,
5589 851, 852, 853, 641, 643, 394, 395, 396, 397, 398,
5590 399, 400, 401, 402, 403, 404, 405, 406, 642, 644,
5591 645, 155, 646, 232, 407, 408, 647, 648, 824, 649,
5592 650, 651, 652, 345, 653, 654, 655, 656, 657, 658,
5593 659, 242, 661, 662, 663, 664, 666, 665, 667, 669,
5594 91, 92, 93, 94, 95, 96, 154, 670, 671, 672,
5595 673, 674, 676, 939, 949, 677, 409, 678, 675, 680,
5596 976, 681, 683, 684, 685, 686, 687, 688, 689, 690,
5597 243, 945, 950, 960, 410, 100, 101, 102, 103, 104,
5598 105, 106, 107, 108, 109, 692, 693, 694, 695, 114,
5599 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5600 696, 697, 700, 698, 126, 345, 701, 702, 703, 705,
5601 946, 951, 961, 411, 706, 708, 128, 129, 709, 710,
5602 711, 712, 715, 713, 714, 131, 132, 716, 249, 717,
5603 133, 718, 719, 720, 721, 134, 135, 136, 722, 724,
5604 251, 725, 727, 728, 252, 732, 729, 730, 154, 731,