38 #define yylex d2_parser_lex
46 #line 34 "d2_parser.yy" // lalr1.cc:438
50 #line 51 "d2_parser.cc" // lalr1.cc:438
54 # if defined YYENABLE_NLS && YYENABLE_NLS
57 # define YY_(msgid) dgettext ("bison-runtime", msgid)
61 # define YY_(msgid) msgid
67 # if defined __GNUC__ && !defined __EXCEPTIONS
68 # define YY_EXCEPTIONS 0
70 # define YY_EXCEPTIONS 1
74 #define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
79 # ifndef YYLLOC_DEFAULT
80 # define YYLLOC_DEFAULT(Current, Rhs, N) \
84 (Current).begin = YYRHSLOC (Rhs, 1).begin; \
85 (Current).end = YYRHSLOC (Rhs, N).end; \
89 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
96 #define YYUSE(E) ((void) (E))
102 # define YYCDEBUG if (yydebug_) (*yycdebug_)
104 # define YY_SYMBOL_PRINT(Title, Symbol) \
108 *yycdebug_ << Title << ' '; \
109 yy_print_ (*yycdebug_, Symbol); \
110 *yycdebug_ << '\n'; \
114 # define YY_REDUCE_PRINT(Rule) \
117 yy_reduce_print_ (Rule); \
120 # define YY_STACK_PRINT() \
126 #else // !D2_PARSER_DEBUG
128 # define YYCDEBUG if (false) std::cerr
129 # define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol)
130 # define YY_REDUCE_PRINT(Rule) static_cast<void> (0)
131 # define YY_STACK_PRINT() static_cast<void> (0)
133 #endif // !D2_PARSER_DEBUG
135 #define yyerrok (yyerrstatus_ = 0)
136 #define yyclearin (yyla.clear ())
138 #define YYACCEPT goto yyacceptlab
139 #define YYABORT goto yyabortlab
140 #define YYERROR goto yyerrorlab
141 #define YYRECOVERING() (!!yyerrstatus_)
143 #line 14 "d2_parser.yy" // lalr1.cc:513
144 namespace isc {
namespace d2 {
145 #line 146 "d2_parser.cc" // lalr1.cc:513
153 D2Parser::yytnamerr_ (
const char *yystr)
157 std::string yyr =
"";
158 char const *yyp = yystr;
165 goto do_not_strip_quotes;
169 goto do_not_strip_quotes;
178 do_not_strip_quotes: ;
190 yycdebug_ (&std::cerr),
206 D2Parser::by_state::by_state ()
207 : state (empty_state)
210 D2Parser::by_state::by_state (
const by_state& other)
211 : state (other.state)
215 D2Parser::by_state::clear ()
221 D2Parser::by_state::move (by_state& that)
227 D2Parser::by_state::by_state (state_type s)
232 D2Parser::by_state::type_get ()
const
234 if (state == empty_state)
237 return yystos_[state];
240 D2Parser::stack_symbol_type::stack_symbol_type ()
243 D2Parser::stack_symbol_type::stack_symbol_type (
YY_RVREF (stack_symbol_type) that)
246 switch (that.type_get ())
255 value.YY_MOVE_OR_COPY<
bool > (
YY_MOVE (that.value));
259 value.YY_MOVE_OR_COPY<
double > (
YY_MOVE (that.value));
263 value.YY_MOVE_OR_COPY< int64_t > (
YY_MOVE (that.value));
267 value.YY_MOVE_OR_COPY< std::string > (
YY_MOVE (that.value));
274 #if 201103L <= YY_CPLUSPLUS
276 that.state = empty_state;
280 D2Parser::stack_symbol_type::stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) that)
281 : super_type (s,
YY_MOVE (that.location))
283 switch (that.type_get ())
292 value.move<
bool > (
YY_MOVE (that.value));
296 value.move<
double > (
YY_MOVE (that.value));
300 value.move< int64_t > (
YY_MOVE (that.value));
304 value.move< std::string > (
YY_MOVE (that.value));
315 #if YY_CPLUSPLUS < 201103L
316 D2Parser::stack_symbol_type&
317 D2Parser::stack_symbol_type::operator= (stack_symbol_type& that)
320 switch (that.type_get ())
329 value.move<
bool > (that.value);
333 value.move<
double > (that.value);
337 value.move< int64_t > (that.value);
341 value.move< std::string > (that.value);
348 location = that.location;
350 that.state = empty_state;
355 template <
typename Base>
357 D2Parser::yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const
364 template <
typename Base>
366 D2Parser::yy_print_ (std::ostream& yyo,
367 const basic_symbol<Base>& yysym)
const
369 std::ostream& yyoutput = yyo;
376 yyo << (yytype < yyntokens_ ?
"token" :
"nterm")
377 <<
' ' << yytname_[yytype] <<
" ("
378 << yysym.location <<
": ";
383 #line 111 "d2_parser.yy" // lalr1.cc:672
384 { yyoutput << yysym.value.template as< std::string > (); }
385 #line 386 "d2_parser.cc" // lalr1.cc:672
390 #line 111 "d2_parser.yy" // lalr1.cc:672
391 { yyoutput << yysym.value.template as< int64_t > (); }
392 #line 393 "d2_parser.cc" // lalr1.cc:672
397 #line 111 "d2_parser.yy" // lalr1.cc:672
398 { yyoutput << yysym.value.template as< double > (); }
399 #line 400 "d2_parser.cc" // lalr1.cc:672
404 #line 111 "d2_parser.yy" // lalr1.cc:672
405 { yyoutput << yysym.value.template as< bool > (); }
406 #line 407 "d2_parser.cc" // lalr1.cc:672
411 #line 111 "d2_parser.yy" // lalr1.cc:672
412 { yyoutput << yysym.value.template as< ElementPtr > (); }
413 #line 414 "d2_parser.cc" // lalr1.cc:672
418 #line 111 "d2_parser.yy" // lalr1.cc:672
419 { yyoutput << yysym.value.template as< ElementPtr > (); }
420 #line 421 "d2_parser.cc" // lalr1.cc:672
425 #line 111 "d2_parser.yy" // lalr1.cc:672
426 { yyoutput << yysym.value.template as< ElementPtr > (); }
427 #line 428 "d2_parser.cc" // lalr1.cc:672
439 D2Parser::yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym)
447 D2Parser::yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym)
449 #if 201103L <= YY_CPLUSPLUS
450 yypush_ (m, stack_symbol_type (s, std::move (sym)));
452 stack_symbol_type ss (s, sym);
458 D2Parser::yypop_ (
int n)
488 #endif // D2_PARSER_DEBUG
491 D2Parser::yy_lr_goto_state_ (state_type yystate,
int yysym)
493 int yyr = yypgoto_[yysym - yyntokens_] + yystate;
494 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
495 return yytable_[yyr];
497 return yydefgoto_[yysym - yyntokens_];
501 D2Parser::yy_pact_value_is_default_ (
int yyvalue)
503 return yyvalue == yypact_ninf_;
507 D2Parser::yy_table_value_is_error_ (
int yyvalue)
509 return yyvalue == yytable_ninf_;
528 int yyerrstatus_ = 0;
534 stack_symbol_type yyerror_range[3];
541 #endif // YY_EXCEPTIONS
551 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
555 YYCDEBUG <<
"Entering state " << yystack_[0].state <<
'\n';
558 if (yystack_[0].state == yyfinal_)
566 yyn = yypact_[yystack_[0].state];
567 if (yy_pact_value_is_default_ (yyn))
576 #endif // YY_EXCEPTIONS
579 yyla.
move (yylookahead);
587 #endif // YY_EXCEPTIONS
593 yyn += yyla.type_get ();
594 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ())
601 if (yy_table_value_is_error_ (yyn))
612 yypush_ (
"Shifting", yyn,
YY_MOVE (yyla));
619 yyn = yydefact_[yystack_[0].state];
630 stack_symbol_type yylhs;
631 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
644 yylhs.value.emplace<
bool > ();
648 yylhs.value.emplace<
double > ();
652 yylhs.value.emplace< int64_t > ();
656 yylhs.value.emplace< std::string > ();
668 yyerror_range[1].location = yylhs.location;
675 #endif // YY_EXCEPTIONS
680 #line 120 "d2_parser.yy" // lalr1.cc:907
682 #line 683 "d2_parser.cc" // lalr1.cc:907
686 #line 121 "d2_parser.yy" // lalr1.cc:907
688 #line 689 "d2_parser.cc" // lalr1.cc:907
692 #line 122 "d2_parser.yy" // lalr1.cc:907
694 #line 695 "d2_parser.cc" // lalr1.cc:907
698 #line 123 "d2_parser.yy" // lalr1.cc:907
700 #line 701 "d2_parser.cc" // lalr1.cc:907
704 #line 124 "d2_parser.yy" // lalr1.cc:907
706 #line 707 "d2_parser.cc" // lalr1.cc:907
710 #line 125 "d2_parser.yy" // lalr1.cc:907
712 #line 713 "d2_parser.cc" // lalr1.cc:907
716 #line 126 "d2_parser.yy" // lalr1.cc:907
718 #line 719 "d2_parser.cc" // lalr1.cc:907
722 #line 127 "d2_parser.yy" // lalr1.cc:907
724 #line 725 "d2_parser.cc" // lalr1.cc:907
728 #line 128 "d2_parser.yy" // lalr1.cc:907
730 #line 731 "d2_parser.cc" // lalr1.cc:907
734 #line 136 "d2_parser.yy" // lalr1.cc:907
736 #line 737 "d2_parser.cc" // lalr1.cc:907
740 #line 137 "d2_parser.yy" // lalr1.cc:907
742 #line 743 "d2_parser.cc" // lalr1.cc:907
746 #line 138 "d2_parser.yy" // lalr1.cc:907
748 #line 749 "d2_parser.cc" // lalr1.cc:907
752 #line 139 "d2_parser.yy" // lalr1.cc:907
754 #line 755 "d2_parser.cc" // lalr1.cc:907
758 #line 140 "d2_parser.yy" // lalr1.cc:907
760 #line 761 "d2_parser.cc" // lalr1.cc:907
764 #line 141 "d2_parser.yy" // lalr1.cc:907
766 #line 767 "d2_parser.cc" // lalr1.cc:907
770 #line 142 "d2_parser.yy" // lalr1.cc:907
772 #line 773 "d2_parser.cc" // lalr1.cc:907
776 #line 145 "d2_parser.yy" // lalr1.cc:907
781 #line 782 "d2_parser.cc" // lalr1.cc:907
785 #line 150 "d2_parser.yy" // lalr1.cc:907
792 #line 793 "d2_parser.cc" // lalr1.cc:907
796 #line 155 "d2_parser.yy" // lalr1.cc:907
802 #line 803 "d2_parser.cc" // lalr1.cc:907
806 #line 161 "d2_parser.yy" // lalr1.cc:907
808 #line 809 "d2_parser.cc" // lalr1.cc:907
812 #line 168 "d2_parser.yy" // lalr1.cc:907
815 ctx.
stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as<
ElementPtr > ());
817 #line 818 "d2_parser.cc" // lalr1.cc:907
821 #line 172 "d2_parser.yy" // lalr1.cc:907
825 ctx.
stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as<
ElementPtr > ());
827 #line 828 "d2_parser.cc" // lalr1.cc:907
831 #line 179 "d2_parser.yy" // lalr1.cc:907
836 #line 837 "d2_parser.cc" // lalr1.cc:907
840 #line 182 "d2_parser.yy" // lalr1.cc:907
844 #line 845 "d2_parser.cc" // lalr1.cc:907
848 #line 190 "d2_parser.yy" // lalr1.cc:907
853 #line 854 "d2_parser.cc" // lalr1.cc:907
857 #line 194 "d2_parser.yy" // lalr1.cc:907
862 #line 863 "d2_parser.cc" // lalr1.cc:907
866 #line 205 "d2_parser.yy" // lalr1.cc:907
869 const std::string& keyword = yystack_[1].value.as< std::string > ();
870 error(yystack_[1].location,
871 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
873 #line 874 "d2_parser.cc" // lalr1.cc:907
877 #line 215 "d2_parser.yy" // lalr1.cc:907
884 #line 885 "d2_parser.cc" // lalr1.cc:907
888 #line 220 "d2_parser.yy" // lalr1.cc:907
894 #line 895 "d2_parser.cc" // lalr1.cc:907
898 #line 242 "d2_parser.yy" // lalr1.cc:907
901 ctx.
stack_.back()->set(
"DhcpDdns", m);
905 #line 906 "d2_parser.cc" // lalr1.cc:907
909 #line 247 "d2_parser.yy" // lalr1.cc:907
914 #line 915 "d2_parser.cc" // lalr1.cc:907
918 #line 252 "d2_parser.yy" // lalr1.cc:907
924 #line 925 "d2_parser.cc" // lalr1.cc:907
928 #line 256 "d2_parser.yy" // lalr1.cc:907
932 #line 933 "d2_parser.cc" // lalr1.cc:907
936 #line 278 "d2_parser.yy" // lalr1.cc:907
940 #line 941 "d2_parser.cc" // lalr1.cc:907
944 #line 280 "d2_parser.yy" // lalr1.cc:907
947 ctx.
stack_.back()->set(
"ip-address", s);
950 #line 951 "d2_parser.cc" // lalr1.cc:907
954 #line 286 "d2_parser.yy" // lalr1.cc:907
956 if (yystack_[0].value.as< int64_t > () <= 0 || yystack_[0].value.as< int64_t > () >= 65536 ) {
957 error(yystack_[0].location,
"port must be greater than zero but less than 65536");
960 ctx.
stack_.back()->set(
"port", i);
962 #line 963 "d2_parser.cc" // lalr1.cc:907
966 #line 294 "d2_parser.yy" // lalr1.cc:907
968 if (yystack_[0].value.as< int64_t > () <= 0) {
969 error(yystack_[0].location,
"dns-server-timeout must be greater than zero");
972 ctx.
stack_.back()->set(
"dns-server-timeout", i);
975 #line 976 "d2_parser.cc" // lalr1.cc:907
979 #line 303 "d2_parser.yy" // lalr1.cc:907
983 #line 984 "d2_parser.cc" // lalr1.cc:907
987 #line 305 "d2_parser.yy" // lalr1.cc:907
989 ctx.
stack_.back()->set(
"ncr-protocol", yystack_[0].value.as<
ElementPtr > ());
992 #line 993 "d2_parser.cc" // lalr1.cc:907
996 #line 311 "d2_parser.yy" // lalr1.cc:907
998 #line 999 "d2_parser.cc" // lalr1.cc:907
1002 #line 312 "d2_parser.yy" // lalr1.cc:907
1004 #line 1005 "d2_parser.cc" // lalr1.cc:907
1008 #line 315 "d2_parser.yy" // lalr1.cc:907
1012 #line 1013 "d2_parser.cc" // lalr1.cc:907
1016 #line 317 "d2_parser.yy" // lalr1.cc:907
1019 ctx.
stack_.back()->set(
"ncr-format", json);
1022 #line 1023 "d2_parser.cc" // lalr1.cc:907
1026 #line 323 "d2_parser.yy" // lalr1.cc:907
1030 #line 1031 "d2_parser.cc" // lalr1.cc:907
1034 #line 325 "d2_parser.yy" // lalr1.cc:907
1043 if ((old->size() != 1) || !old->contains(
"comment")) {
1044 std::stringstream msg;
1045 msg <<
"duplicate user-context entries (previous at "
1046 << old->getPosition().str() <<
")";
1047 error(yystack_[3].location, msg.str());
1050 user_context->set(
"comment", old->get(
"comment"));
1054 parent->set(
"user-context", user_context);
1057 #line 1058 "d2_parser.cc" // lalr1.cc:907
1061 #line 348 "d2_parser.yy" // lalr1.cc:907
1065 #line 1066 "d2_parser.cc" // lalr1.cc:907
1069 #line 350 "d2_parser.yy" // lalr1.cc:907
1074 user_context->set(
"comment", comment);
1080 if (old->contains(
"comment")) {
1081 std::stringstream msg;
1082 msg <<
"duplicate user-context/comment entries (previous at "
1083 << old->getPosition().str() <<
")";
1084 error(yystack_[3].location, msg.str());
1087 merge(user_context, old);
1091 parent->set(
"user-context", user_context);
1094 #line 1095 "d2_parser.cc" // lalr1.cc:907
1098 #line 375 "d2_parser.yy" // lalr1.cc:907
1101 ctx.
stack_.back()->set(
"forward-ddns", m);
1105 #line 1106 "d2_parser.cc" // lalr1.cc:907
1109 #line 380 "d2_parser.yy" // lalr1.cc:907
1114 #line 1115 "d2_parser.cc" // lalr1.cc:907
1118 #line 385 "d2_parser.yy" // lalr1.cc:907
1121 ctx.
stack_.back()->set(
"reverse-ddns", m);
1125 #line 1126 "d2_parser.cc" // lalr1.cc:907
1129 #line 390 "d2_parser.yy" // lalr1.cc:907
1134 #line 1135 "d2_parser.cc" // lalr1.cc:907
1138 #line 409 "d2_parser.yy" // lalr1.cc:907
1141 ctx.
stack_.back()->set(
"ddns-domains", l);
1145 #line 1146 "d2_parser.cc" // lalr1.cc:907
1149 #line 414 "d2_parser.yy" // lalr1.cc:907
1154 #line 1155 "d2_parser.cc" // lalr1.cc:907
1158 #line 419 "d2_parser.yy" // lalr1.cc:907
1163 #line 1164 "d2_parser.cc" // lalr1.cc:907
1167 #line 422 "d2_parser.yy" // lalr1.cc:907
1171 #line 1172 "d2_parser.cc" // lalr1.cc:907
1175 #line 434 "d2_parser.yy" // lalr1.cc:907
1178 ctx.
stack_.back()->add(m);
1181 #line 1182 "d2_parser.cc" // lalr1.cc:907
1185 #line 438 "d2_parser.yy" // lalr1.cc:907
1189 #line 1190 "d2_parser.cc" // lalr1.cc:907
1193 #line 442 "d2_parser.yy" // lalr1.cc:907
1198 #line 1199 "d2_parser.cc" // lalr1.cc:907
1202 #line 445 "d2_parser.yy" // lalr1.cc:907
1206 #line 1207 "d2_parser.cc" // lalr1.cc:907
1210 #line 462 "d2_parser.yy" // lalr1.cc:907
1214 #line 1215 "d2_parser.cc" // lalr1.cc:907
1218 #line 464 "d2_parser.yy" // lalr1.cc:907
1220 if (yystack_[0].value.as< std::string > () ==
"") {
1221 error(yystack_[1].location,
"Ddns domain name cannot be blank");
1225 ctx.
stack_.back()->set(
"name", name);
1228 #line 1229 "d2_parser.cc" // lalr1.cc:907
1232 #line 474 "d2_parser.yy" // lalr1.cc:907
1236 #line 1237 "d2_parser.cc" // lalr1.cc:907
1240 #line 476 "d2_parser.yy" // lalr1.cc:907
1244 ctx.
stack_.back()->set(
"key-name", name);
1247 #line 1248 "d2_parser.cc" // lalr1.cc:907
1251 #line 486 "d2_parser.yy" // lalr1.cc:907
1254 ctx.
stack_.back()->set(
"dns-servers", l);
1258 #line 1259 "d2_parser.cc" // lalr1.cc:907
1262 #line 491 "d2_parser.yy" // lalr1.cc:907
1267 #line 1268 "d2_parser.cc" // lalr1.cc:907
1271 #line 496 "d2_parser.yy" // lalr1.cc:907
1276 #line 1277 "d2_parser.cc" // lalr1.cc:907
1280 #line 499 "d2_parser.yy" // lalr1.cc:907
1284 #line 1285 "d2_parser.cc" // lalr1.cc:907
1288 #line 507 "d2_parser.yy" // lalr1.cc:907
1291 ctx.
stack_.back()->add(m);
1294 #line 1295 "d2_parser.cc" // lalr1.cc:907
1298 #line 511 "d2_parser.yy" // lalr1.cc:907
1302 #line 1303 "d2_parser.cc" // lalr1.cc:907
1306 #line 515 "d2_parser.yy" // lalr1.cc:907
1311 #line 1312 "d2_parser.cc" // lalr1.cc:907
1315 #line 518 "d2_parser.yy" // lalr1.cc:907
1319 #line 1320 "d2_parser.cc" // lalr1.cc:907
1323 #line 534 "d2_parser.yy" // lalr1.cc:907
1327 #line 1328 "d2_parser.cc" // lalr1.cc:907
1331 #line 536 "d2_parser.yy" // lalr1.cc:907
1333 if (yystack_[0].value.as< std::string > () !=
"") {
1334 error(yystack_[1].location,
"hostname is not yet supported");
1338 ctx.
stack_.back()->set(
"hostname", name);
1341 #line 1342 "d2_parser.cc" // lalr1.cc:907
1345 #line 546 "d2_parser.yy" // lalr1.cc:907
1349 #line 1350 "d2_parser.cc" // lalr1.cc:907
1353 #line 548 "d2_parser.yy" // lalr1.cc:907
1356 ctx.
stack_.back()->set(
"ip-address", s);
1359 #line 1360 "d2_parser.cc" // lalr1.cc:907
1363 #line 554 "d2_parser.yy" // lalr1.cc:907
1365 if (yystack_[0].value.as< int64_t > () <= 0 || yystack_[0].value.as< int64_t > () >= 65536 ) {
1366 error(yystack_[0].location,
"port must be greater than zero but less than 65536");
1369 ctx.
stack_.back()->set(
"port", i);
1371 #line 1372 "d2_parser.cc" // lalr1.cc:907
1375 #line 568 "d2_parser.yy" // lalr1.cc:907
1378 ctx.
stack_.back()->set(
"tsig-keys", l);
1382 #line 1383 "d2_parser.cc" // lalr1.cc:907
1386 #line 573 "d2_parser.yy" // lalr1.cc:907
1391 #line 1392 "d2_parser.cc" // lalr1.cc:907
1395 #line 578 "d2_parser.yy" // lalr1.cc:907
1400 #line 1401 "d2_parser.cc" // lalr1.cc:907
1404 #line 581 "d2_parser.yy" // lalr1.cc:907
1408 #line 1409 "d2_parser.cc" // lalr1.cc:907
1412 #line 593 "d2_parser.yy" // lalr1.cc:907
1415 ctx.
stack_.back()->add(m);
1418 #line 1419 "d2_parser.cc" // lalr1.cc:907
1422 #line 597 "d2_parser.yy" // lalr1.cc:907
1426 #line 1427 "d2_parser.cc" // lalr1.cc:907
1430 #line 601 "d2_parser.yy" // lalr1.cc:907
1436 #line 1437 "d2_parser.cc" // lalr1.cc:907
1440 #line 605 "d2_parser.yy" // lalr1.cc:907
1444 #line 1445 "d2_parser.cc" // lalr1.cc:907
1448 #line 623 "d2_parser.yy" // lalr1.cc:907
1452 #line 1453 "d2_parser.cc" // lalr1.cc:907
1456 #line 625 "d2_parser.yy" // lalr1.cc:907
1458 if (yystack_[0].value.as< std::string > () ==
"") {
1459 error(yystack_[1].location,
"TSIG key name cannot be blank");
1463 ctx.
stack_.back()->set(
"name", name);
1466 #line 1467 "d2_parser.cc" // lalr1.cc:907
1470 #line 635 "d2_parser.yy" // lalr1.cc:907
1474 #line 1475 "d2_parser.cc" // lalr1.cc:907
1478 #line 637 "d2_parser.yy" // lalr1.cc:907
1480 if (yystack_[0].value.as< std::string > () ==
"") {
1481 error(yystack_[1].location,
"TSIG key algorithm cannot be blank");
1484 ctx.
stack_.back()->set(
"algorithm", elem);
1487 #line 1488 "d2_parser.cc" // lalr1.cc:907
1491 #line 646 "d2_parser.yy" // lalr1.cc:907
1493 if (yystack_[0].value.as< int64_t > () < 0 || (yystack_[0].value.as< int64_t > () > 0 && (yystack_[0].value.as< int64_t > () % 8 != 0))) {
1494 error(yystack_[0].location,
"TSIG key digest-bits must either be zero or a positive, multiple of eight");
1497 ctx.
stack_.back()->set(
"digest-bits", elem);
1499 #line 1500 "d2_parser.cc" // lalr1.cc:907
1503 #line 654 "d2_parser.yy" // lalr1.cc:907
1507 #line 1508 "d2_parser.cc" // lalr1.cc:907
1511 #line 656 "d2_parser.yy" // lalr1.cc:907
1513 if (yystack_[0].value.as< std::string > () ==
"") {
1514 error(yystack_[1].location,
"TSIG key secret cannot be blank");
1517 ctx.
stack_.back()->set(
"secret", elem);
1520 #line 1521 "d2_parser.cc" // lalr1.cc:907
1524 #line 669 "d2_parser.yy" // lalr1.cc:907
1528 #line 1529 "d2_parser.cc" // lalr1.cc:907
1532 #line 671 "d2_parser.yy" // lalr1.cc:907
1537 #line 1538 "d2_parser.cc" // lalr1.cc:907
1541 #line 676 "d2_parser.yy" // lalr1.cc:907
1545 #line 1546 "d2_parser.cc" // lalr1.cc:907
1549 #line 678 "d2_parser.yy" // lalr1.cc:907
1554 #line 1555 "d2_parser.cc" // lalr1.cc:907
1558 #line 683 "d2_parser.yy" // lalr1.cc:907
1562 #line 1563 "d2_parser.cc" // lalr1.cc:907
1566 #line 685 "d2_parser.yy" // lalr1.cc:907
1568 ctx.
stack_.back()->set(
"Control-agent", yystack_[0].value.as<
ElementPtr > ());
1571 #line 1572 "d2_parser.cc" // lalr1.cc:907
1575 #line 695 "d2_parser.yy" // lalr1.cc:907
1578 ctx.
stack_.back()->set(
"Logging", m);
1582 #line 1583 "d2_parser.cc" // lalr1.cc:907
1586 #line 700 "d2_parser.yy" // lalr1.cc:907
1591 #line 1592 "d2_parser.cc" // lalr1.cc:907
1595 #line 717 "d2_parser.yy" // lalr1.cc:907
1598 ctx.
stack_.back()->set(
"loggers", l);
1602 #line 1603 "d2_parser.cc" // lalr1.cc:907
1606 #line 722 "d2_parser.yy" // lalr1.cc:907
1611 #line 1612 "d2_parser.cc" // lalr1.cc:907
1615 #line 734 "d2_parser.yy" // lalr1.cc:907
1618 ctx.
stack_.back()->add(l);
1621 #line 1622 "d2_parser.cc" // lalr1.cc:907
1625 #line 738 "d2_parser.yy" // lalr1.cc:907
1629 #line 1630 "d2_parser.cc" // lalr1.cc:907
1633 #line 755 "d2_parser.yy" // lalr1.cc:907
1637 #line 1638 "d2_parser.cc" // lalr1.cc:907
1641 #line 757 "d2_parser.yy" // lalr1.cc:907
1644 ctx.
stack_.back()->set(
"name", name);
1647 #line 1648 "d2_parser.cc" // lalr1.cc:907
1651 #line 763 "d2_parser.yy" // lalr1.cc:907
1654 ctx.
stack_.back()->set(
"debuglevel", dl);
1656 #line 1657 "d2_parser.cc" // lalr1.cc:907
1660 #line 767 "d2_parser.yy" // lalr1.cc:907
1664 #line 1665 "d2_parser.cc" // lalr1.cc:907
1668 #line 769 "d2_parser.yy" // lalr1.cc:907
1671 ctx.
stack_.back()->set(
"severity", sev);
1674 #line 1675 "d2_parser.cc" // lalr1.cc:907
1678 #line 775 "d2_parser.yy" // lalr1.cc:907
1681 ctx.
stack_.back()->set(
"output_options", l);
1685 #line 1686 "d2_parser.cc" // lalr1.cc:907
1689 #line 780 "d2_parser.yy" // lalr1.cc:907
1694 #line 1695 "d2_parser.cc" // lalr1.cc:907
1698 #line 789 "d2_parser.yy" // lalr1.cc:907
1701 ctx.
stack_.back()->add(m);
1704 #line 1705 "d2_parser.cc" // lalr1.cc:907
1708 #line 793 "d2_parser.yy" // lalr1.cc:907
1712 #line 1713 "d2_parser.cc" // lalr1.cc:907
1716 #line 807 "d2_parser.yy" // lalr1.cc:907
1720 #line 1721 "d2_parser.cc" // lalr1.cc:907
1724 #line 809 "d2_parser.yy" // lalr1.cc:907
1727 ctx.
stack_.back()->set(
"output", sev);
1730 #line 1731 "d2_parser.cc" // lalr1.cc:907
1734 #line 815 "d2_parser.yy" // lalr1.cc:907
1737 ctx.
stack_.back()->set(
"flush", flush);
1739 #line 1740 "d2_parser.cc" // lalr1.cc:907
1743 #line 820 "d2_parser.yy" // lalr1.cc:907
1746 ctx.
stack_.back()->set(
"maxsize", maxsize);
1748 #line 1749 "d2_parser.cc" // lalr1.cc:907
1752 #line 825 "d2_parser.yy" // lalr1.cc:907
1755 ctx.
stack_.back()->set(
"maxver", maxver);
1757 #line 1758 "d2_parser.cc" // lalr1.cc:907
1761 #line 1762 "d2_parser.cc" // lalr1.cc:907
1772 #endif // YY_EXCEPTIONS
1779 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
1791 error (yyla.
location, yysyntax_error_ (yystack_[0].state, yyla));
1795 yyerror_range[1].location = yyla.
location;
1796 if (yyerrstatus_ == 3)
1802 if (yyla.type_get () == yyeof_)
1804 else if (!yyla.
empty ())
1806 yy_destroy_ (
"Error: discarding", yyla);
1837 stack_symbol_type error_token;
1840 yyn = yypact_[yystack_[0].state];
1841 if (!yy_pact_value_is_default_ (yyn))
1844 if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
1846 yyn = yytable_[yyn];
1853 if (yystack_.size () == 1)
1856 yyerror_range[1].location = yystack_[0].location;
1857 yy_destroy_ (
"Error: popping", yystack_[0]);
1862 yyerror_range[2].location = yyla.
location;
1866 error_token.state = yyn;
1867 yypush_ (
"Shifting",
YY_MOVE (error_token));
1883 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
1888 while (1 < yystack_.size ())
1890 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
1899 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
1903 yy_destroy_ (YY_NULLPTR, yyla);
1905 while (1 < yystack_.
size ())
1907 yy_destroy_ (YY_NULLPTR, yystack_[0]);
1912 #endif // YY_EXCEPTIONS
1923 D2Parser::yysyntax_error_ (state_type yystate,
const symbol_type& yyla)
const
1929 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1931 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1960 int yytoken = yyla.type_get ();
1961 yyarg[yycount++] = yytname_[yytoken];
1962 int yyn = yypact_[yystate];
1963 if (!yy_pact_value_is_default_ (yyn))
1968 int yyxbegin = yyn < 0 ? -yyn : 0;
1970 int yychecklim = yylast_ - yyn + 1;
1971 int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
1972 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
1973 if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_
1974 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
1976 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1982 yyarg[yycount++] = yytname_[yyx];
1987 char const* yyformat = YY_NULLPTR;
1990 #define YYCASE_(N, S) \
1996 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
1997 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1998 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1999 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
2000 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2007 for (
char const* yyp = yyformat; *yyp; ++yyp)
2008 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
2010 yyres += yytnamerr_ (yyarg[yyi++]);
2019 const signed char D2Parser::yypact_ninf_ = -90;
2021 const signed char D2Parser::yytable_ninf_ = -1;
2024 D2Parser::yypact_[] =
2026 47, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2027 12, 2, 1, 23, 33, 11, 38, 58, 64, 73,
2028 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2029 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2030 -90, -90, -90, -90, -90, -90, -90, -90, 2, -25,
2031 8, 9, 15, 96, 37, 115, 21, 116, -90, 124,
2032 113, 127, 130, 137, -90, -90, -90, -90, -90, 146,
2033 -90, 19, -90, -90, -90, -90, -90, -90, -90, 148,
2034 150, -90, -90, -90, -90, -90, -90, -90, -90, 46,
2035 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2036 -90, -90, 152, -90, -90, -90, -90, -90, 76, -90,
2037 -90, -90, -90, -90, -90, 151, 155, -90, -90, -90,
2038 -90, -90, -90, -90, 77, -90, -90, -90, -90, -90,
2039 153, 157, -90, -90, 161, -90, -90, -90, -90, 78,
2040 -90, -90, -90, -90, -90, 118, -90, -90, 2, 2,
2041 -90, 108, 162, 163, 164, 165, 166, -90, 8, -90,
2042 167, 119, 120, 168, 171, 172, 173, 174, 175, 176,
2043 9, -90, 177, 128, 179, 180, 15, -90, 15, -90,
2044 96, 181, 182, 183, 37, -90, 37, -90, 115, 184,
2045 135, 186, 21, -90, 21, 116, -90, -90, -90, 187,
2046 2, 2, 2, 185, 188, -90, 140, -90, -90, 70,
2047 178, 189, 141, 190, 195, 198, -90, 154, -90, 156,
2048 158, -90, 79, -90, 159, 199, 160, -90, 97, -90,
2049 169, -90, 170, -90, 98, -90, 2, -90, -90, -90,
2050 9, 191, -90, -90, -90, -90, -90, -90, -90, -90,
2051 -12, -12, 96, -90, -90, -90, -90, -90, 116, -90,
2052 -90, -90, -90, -90, -90, 99, -90, 101, -90, -90,
2053 -90, -90, 109, -90, -90, -90, 110, 200, 126, -90,
2054 201, 191, -90, 204, -12, -90, -90, -90, -90, 205,
2055 -90, 209, -90, 208, 115, -90, 143, -90, 210, 30,
2056 208, -90, -90, -90, -90, 213, -90, -90, -90, -90,
2057 111, -90, -90, -90, -90, -90, -90, 214, 215, 192,
2058 216, 30, -90, 194, 219, -90, 197, -90, -90, 218,
2059 -90, -90, 145, -90, 34, 218, -90, -90, 217, 223,
2060 224, 112, -90, -90, -90, -90, -90, -90, 225, 196,
2061 202, 203, 34, -90, 206, -90, -90, -90, -90, -90
2065 D2Parser::yydefact_[] =
2067 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
2068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069 1, 35, 28, 24, 23, 20, 21, 22, 27, 3,
2070 25, 26, 42, 5, 54, 7, 150, 9, 142, 11,
2071 103, 13, 95, 15, 125, 17, 119, 19, 37, 31,
2072 0, 0, 0, 144, 0, 97, 0, 0, 39, 0,
2073 38, 0, 0, 32, 168, 170, 172, 52, 174, 0,
2074 51, 0, 44, 49, 46, 48, 50, 47, 69, 0,
2075 0, 73, 77, 79, 81, 83, 85, 140, 68, 0,
2076 56, 58, 59, 60, 61, 62, 66, 67, 63, 64,
2077 65, 163, 0, 166, 161, 160, 158, 159, 0, 152,
2078 154, 155, 156, 157, 148, 0, 145, 146, 115, 117,
2079 113, 112, 110, 111, 0, 105, 107, 108, 109, 101,
2080 0, 98, 99, 137, 0, 135, 134, 132, 133, 0,
2081 127, 129, 130, 131, 123, 0, 121, 36, 0, 0,
2082 29, 0, 0, 0, 0, 0, 0, 41, 0, 43,
2083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2084 0, 55, 0, 0, 0, 0, 0, 151, 0, 143,
2085 0, 0, 0, 0, 0, 104, 0, 96, 0, 0,
2086 0, 0, 0, 126, 0, 0, 120, 40, 33, 0,
2087 0, 0, 0, 0, 0, 45, 0, 71, 72, 0,
2088 0, 0, 0, 0, 0, 0, 57, 0, 165, 0,
2089 0, 153, 0, 147, 0, 0, 0, 106, 0, 100,
2090 0, 139, 0, 128, 0, 122, 0, 169, 171, 173,
2091 0, 0, 70, 75, 76, 74, 78, 30, 80, 82,
2092 87, 87, 144, 164, 167, 162, 149, 116, 0, 114,
2093 102, 138, 136, 124, 34, 0, 179, 0, 176, 178,
2094 93, 92, 0, 88, 89, 91, 0, 0, 0, 53,
2095 0, 0, 175, 0, 0, 84, 86, 141, 118, 0,
2096 177, 0, 90, 0, 97, 183, 0, 181, 0, 0,
2097 0, 180, 94, 194, 199, 0, 197, 193, 191, 192,
2098 0, 185, 187, 189, 190, 188, 182, 0, 0, 0,
2099 0, 0, 184, 0, 0, 196, 0, 186, 195, 0,
2100 198, 203, 0, 201, 0, 0, 200, 211, 0, 0,
2101 0, 0, 205, 207, 208, 209, 210, 202, 0, 0,
2102 0, 0, 0, 204, 0, 213, 214, 215, 206, 212
2106 D2Parser::yypgoto_[] =
2108 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2109 -90, -38, -90, 20, -90, -90, -90, -90, -90, -90,
2110 -90, -90, -50, -90, -90, -90, 72, -90, -90, -90,
2111 -90, -8, 63, -90, -90, -90, -90, -90, -90, -90,
2112 -90, -90, -51, -90, -39, -90, -90, -90, -90, -90,
2113 -16, -90, -48, -90, -90, -90, -90, -57, -90, 50,
2114 -90, -90, -90, 53, 56, -90, -90, -90, -90, -90,
2115 -90, -90, -90, -17, 48, -90, -90, -90, 51, 52,
2116 -90, -90, -90, -90, -90, -90, -90, -90, -90, -10,
2117 -90, 71, -90, -90, -90, 75, 82, -90, -90, -90,
2118 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2119 -90, -90, -90, -27, -90, -90, -90, -45, -90, -90,
2120 -60, -90, -90, -90, -90, -90, -90, -90, -90, -73,
2121 -90, -90, -89, -90, -90, -90, -90, -90
2125 D2Parser::yydefgoto_[] =
2127 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2128 19, 28, 29, 30, 49, 248, 62, 63, 31, 48,
2129 59, 60, 88, 33, 50, 71, 72, 73, 155, 35,
2130 51, 89, 90, 91, 160, 92, 93, 94, 163, 245,
2131 95, 164, 96, 165, 97, 166, 98, 167, 99, 168,
2132 272, 273, 274, 275, 283, 43, 55, 130, 131, 132,
2133 186, 41, 54, 124, 125, 126, 183, 127, 181, 128,
2134 182, 47, 57, 145, 146, 194, 45, 56, 139, 140,
2135 141, 191, 142, 189, 143, 100, 169, 39, 53, 115,
2136 116, 117, 178, 37, 52, 108, 109, 110, 175, 111,
2137 172, 112, 113, 174, 74, 152, 75, 153, 76, 154,
2138 77, 156, 267, 268, 269, 280, 296, 297, 299, 310,
2139 311, 312, 317, 313, 314, 320, 315, 318, 332, 333,
2140 334, 341, 342, 343, 348, 344, 345, 346
2143 const unsigned short
2144 D2Parser::yytable_[] =
2146 70, 106, 105, 122, 121, 137, 136, 21, 32, 22,
2147 58, 23, 20, 107, 270, 123, 38, 138, 64, 65,
2148 66, 67, 158, 78, 79, 80, 81, 159, 61, 82,
2149 34, 83, 84, 85, 86, 133, 134, 83, 84, 87,
2150 36, 69, 68, 83, 84, 40, 101, 102, 103, 170,
2151 135, 104, 83, 84, 171, 24, 25, 26, 27, 83,
2152 84, 69, 69, 42, 118, 119, 303, 304, 69, 305,
2153 306, 44, 337, 120, 69, 338, 339, 340, 46, 176,
2154 184, 192, 176, 69, 177, 185, 193, 256, 243, 244,
2155 69, 1, 2, 3, 4, 5, 6, 7, 8, 9,
2156 184, 192, 170, 114, 281, 260, 263, 279, 70, 282,
2157 197, 198, 284, 284, 321, 352, 148, 285, 286, 322,
2158 353, 195, 129, 144, 196, 106, 105, 106, 105, 195,
2159 147, 149, 288, 122, 121, 122, 121, 107, 150, 107,
2160 151, 137, 136, 137, 136, 123, 300, 123, 335, 301,
2161 157, 336, 161, 138, 162, 138, 173, 179, 180, 187,
2162 188, 199, 237, 238, 239, 190, 200, 201, 202, 203,
2163 204, 206, 209, 207, 208, 210, 211, 212, 213, 214,
2164 215, 217, 218, 219, 220, 224, 225, 226, 230, 231,
2165 232, 236, 240, 242, 249, 241, 22, 250, 264, 246,
2166 271, 271, 251, 252, 258, 289, 287, 253, 291, 254,
2167 293, 255, 257, 259, 294, 295, 302, 319, 323, 324,
2168 326, 349, 261, 262, 329, 331, 266, 350, 351, 354,
2169 205, 247, 265, 216, 271, 276, 292, 298, 229, 228,
2170 227, 278, 277, 235, 233, 234, 325, 328, 308, 307,
2171 330, 223, 355, 222, 290, 316, 356, 357, 221, 359,
2172 309, 327, 347, 358, 0, 0, 0, 0, 0, 0,
2173 308, 307, 0, 0, 0, 0, 0, 0, 0, 0,
2178 D2Parser::yycheck_[] =
2180 50, 52, 52, 54, 54, 56, 56, 5, 7, 7,
2181 48, 9, 0, 52, 26, 54, 5, 56, 10, 11,
2182 12, 13, 3, 14, 15, 16, 17, 8, 53, 20,
2183 7, 22, 23, 24, 25, 14, 15, 22, 23, 30,
2184 7, 53, 34, 22, 23, 7, 31, 32, 33, 3,
2185 29, 36, 22, 23, 8, 53, 54, 55, 56, 22,
2186 23, 53, 53, 5, 27, 28, 36, 37, 53, 39,
2187 40, 7, 38, 36, 53, 41, 42, 43, 5, 3,
2188 3, 3, 3, 53, 8, 8, 8, 8, 18, 19,
2189 53, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2190 3, 3, 3, 7, 3, 8, 8, 8, 158, 8,
2191 148, 149, 3, 3, 3, 3, 3, 8, 8, 8,
2192 8, 3, 7, 7, 6, 176, 176, 178, 178, 3,
2193 6, 4, 6, 184, 184, 186, 186, 176, 8, 178,
2194 3, 192, 192, 194, 194, 184, 3, 186, 3, 6,
2195 4, 6, 4, 192, 4, 194, 4, 6, 3, 6,
2196 3, 53, 200, 201, 202, 4, 4, 4, 4, 4,
2197 4, 4, 4, 54, 54, 4, 4, 4, 4, 4,
2198 4, 4, 54, 4, 4, 4, 4, 4, 4, 54,
2199 4, 4, 7, 53, 53, 7, 7, 7, 236, 21,
2200 250, 251, 7, 5, 5, 4, 6, 53, 4, 53,
2201 5, 53, 53, 53, 5, 7, 6, 4, 4, 4,
2202 4, 4, 53, 53, 5, 7, 35, 4, 4, 4,
2203 158, 211, 240, 170, 284, 251, 284, 294, 188, 186,
2204 184, 258, 252, 195, 192, 194, 54, 53, 299, 299,
2205 53, 180, 56, 178, 281, 300, 54, 54, 176, 53,
2206 299, 321, 335, 352, -1, -1, -1, -1, -1, -1,
2207 321, 321, -1, -1, -1, -1, -1, -1, -1, -1,
2212 D2Parser::yystos_[] =
2214 0, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2215 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2216 0, 5, 7, 9, 53, 54, 55, 56, 68, 69,
2217 70, 75, 7, 80, 7, 86, 7, 150, 5, 144,
2218 7, 118, 5, 112, 7, 133, 5, 128, 76, 71,
2219 81, 87, 151, 145, 119, 113, 134, 129, 68, 77,
2220 78, 53, 73, 74, 10, 11, 12, 13, 34, 53,
2221 79, 82, 83, 84, 161, 163, 165, 167, 14, 15,
2222 16, 17, 20, 22, 23, 24, 25, 30, 79, 88,
2223 89, 90, 92, 93, 94, 97, 99, 101, 103, 105,
2224 142, 31, 32, 33, 36, 79, 99, 101, 152, 153,
2225 154, 156, 158, 159, 7, 146, 147, 148, 27, 28,
2226 36, 79, 99, 101, 120, 121, 122, 124, 126, 7,
2227 114, 115, 116, 14, 15, 29, 79, 99, 101, 135,
2228 136, 137, 139, 141, 7, 130, 131, 6, 3, 4,
2229 8, 3, 162, 164, 166, 85, 168, 4, 3, 8,
2230 91, 4, 4, 95, 98, 100, 102, 104, 106, 143,
2231 3, 8, 157, 4, 160, 155, 3, 8, 149, 6,
2232 3, 125, 127, 123, 3, 8, 117, 6, 3, 140,
2233 4, 138, 3, 8, 132, 3, 6, 68, 68, 53,
2234 4, 4, 4, 4, 4, 83, 4, 54, 54, 4,
2235 4, 4, 4, 4, 4, 4, 89, 4, 54, 4,
2236 4, 153, 152, 148, 4, 4, 4, 121, 120, 116,
2237 4, 54, 4, 136, 135, 131, 4, 68, 68, 68,
2238 7, 7, 53, 18, 19, 96, 21, 70, 72, 53,
2239 7, 7, 5, 53, 53, 53, 8, 53, 5, 53,
2240 8, 53, 53, 8, 68, 88, 35, 169, 170, 171,
2241 26, 79, 107, 108, 109, 110, 107, 146, 130, 8,
2242 172, 3, 8, 111, 3, 8, 8, 6, 6, 4,
2243 170, 4, 109, 5, 5, 7, 173, 174, 114, 175,
2244 3, 6, 6, 36, 37, 39, 40, 79, 99, 101,
2245 176, 177, 178, 180, 181, 183, 174, 179, 184, 4,
2246 182, 3, 8, 4, 4, 54, 4, 177, 53, 5,
2247 53, 7, 185, 186, 187, 3, 6, 38, 41, 42,
2248 43, 188, 189, 190, 192, 193, 194, 186, 191, 4,
2249 4, 4, 3, 8, 4, 56, 54, 54, 189, 53
2255 0, 57, 59, 58, 60, 58, 61, 58, 62, 58,
2256 63, 58, 64, 58, 65, 58, 66, 58, 67, 58,
2257 68, 68, 68, 68, 68, 68, 68, 69, 71, 70,
2258 72, 73, 73, 74, 74, 76, 75, 77, 77, 78,
2259 78, 79, 81, 80, 82, 82, 83, 83, 83, 83,
2260 83, 83, 85, 84, 87, 86, 88, 88, 89, 89,
2261 89, 89, 89, 89, 89, 89, 89, 89, 89, 91,
2262 90, 92, 93, 95, 94, 96, 96, 98, 97, 100,
2263 99, 102, 101, 104, 103, 106, 105, 107, 107, 108,
2264 108, 109, 109, 111, 110, 113, 112, 114, 114, 115,
2265 115, 117, 116, 119, 118, 120, 120, 121, 121, 121,
2266 121, 121, 121, 123, 122, 125, 124, 127, 126, 129,
2267 128, 130, 130, 132, 131, 134, 133, 135, 135, 136,
2268 136, 136, 136, 136, 136, 138, 137, 140, 139, 141,
2269 143, 142, 145, 144, 146, 146, 147, 147, 149, 148,
2270 151, 150, 152, 152, 153, 153, 153, 153, 153, 153,
2271 153, 155, 154, 157, 156, 158, 160, 159, 162, 161,
2272 164, 163, 166, 165, 168, 167, 169, 169, 170, 172,
2273 171, 173, 173, 175, 174, 176, 176, 177, 177, 177,
2274 177, 177, 177, 177, 179, 178, 180, 182, 181, 184,
2275 183, 185, 185, 187, 186, 188, 188, 189, 189, 189,
2276 189, 191, 190, 192, 193, 194
2282 0, 2, 0, 3, 0, 3, 0, 3, 0, 3,
2283 0, 3, 0, 3, 0, 3, 0, 3, 0, 3,
2284 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
2285 1, 0, 1, 3, 5, 0, 4, 0, 1, 1,
2286 3, 2, 0, 4, 1, 3, 1, 1, 1, 1,
2287 1, 1, 0, 6, 0, 4, 1, 3, 1, 1,
2288 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2289 4, 3, 3, 0, 4, 1, 1, 0, 4, 0,
2290 4, 0, 4, 0, 6, 0, 6, 0, 1, 1,
2291 3, 1, 1, 0, 6, 0, 4, 0, 1, 1,
2292 3, 0, 4, 0, 4, 1, 3, 1, 1, 1,
2293 1, 1, 1, 0, 4, 0, 4, 0, 6, 0,
2294 4, 1, 3, 0, 4, 0, 4, 1, 3, 1,
2295 1, 1, 1, 1, 1, 0, 4, 0, 4, 3,
2296 0, 6, 0, 4, 0, 1, 1, 3, 0, 4,
2297 0, 4, 1, 3, 1, 1, 1, 1, 1, 1,
2298 1, 0, 4, 0, 4, 3, 0, 4, 0, 4,
2299 0, 4, 0, 4, 0, 6, 1, 3, 1, 0,
2300 6, 1, 3, 0, 4, 1, 3, 1, 1, 1,
2301 1, 1, 1, 1, 0, 4, 3, 0, 4, 0,
2302 6, 1, 3, 0, 4, 1, 3, 1, 1, 1,
2311 const D2Parser::yytname_[] =
2313 "\"end of file\"",
"error",
"$undefined",
"\",\"",
"\":\"",
"\"[\"",
2314 "\"]\"",
"\"{\"",
"\"}\"",
"\"null\"",
"\"Dhcp6\"",
"\"Dhcp4\"",
2315 "\"Control-agent\"",
"\"DhcpDdns\"",
"\"ip-address\"",
"\"port\"",
2316 "\"dns-server-timeout\"",
"\"ncr-protocol\"",
"\"UDP\"",
"\"TCP\"",
2317 "\"ncr-format\"",
"\"JSON\"",
"\"user-context\"",
"\"comment\"",
2318 "\"forward-ddns\"",
"\"reverse-ddns\"",
"\"ddns-domains\"",
2319 "\"key-name\"",
"\"dns-servers\"",
"\"hostname\"",
"\"tsig-keys\"",
2320 "\"algorithm\"",
"\"digest-bits\"",
"\"secret\"",
"\"Logging\"",
2321 "\"loggers\"",
"\"name\"",
"\"output_options\"",
"\"output\"",
2322 "\"debuglevel\"",
"\"severity\"",
"\"flush\"",
"\"maxsize\"",
2323 "\"maxver\"",
"TOPLEVEL_JSON",
"TOPLEVEL_DHCPDDNS",
"SUB_DHCPDDNS",
2324 "SUB_TSIG_KEY",
"SUB_TSIG_KEYS",
"SUB_DDNS_DOMAIN",
"SUB_DDNS_DOMAINS",
2325 "SUB_DNS_SERVER",
"SUB_DNS_SERVERS",
"\"constant string\"",
2326 "\"integer\"",
"\"floating point\"",
"\"boolean\"",
"$accept",
"start",
2327 "$@1",
"$@2",
"$@3",
"$@4",
"$@5",
"$@6",
"$@7",
"$@8",
"$@9",
"value",
2328 "sub_json",
"map2",
"$@10",
"map_value",
"map_content",
"not_empty_map",
2329 "list_generic",
"$@11",
"list_content",
"not_empty_list",
2330 "unknown_map_entry",
"syntax_map",
"$@12",
"global_objects",
2331 "global_object",
"dhcpddns_object",
"$@13",
"sub_dhcpddns",
"$@14",
2332 "dhcpddns_params",
"dhcpddns_param",
"ip_address",
"$@15",
"port",
2333 "dns_server_timeout",
"ncr_protocol",
"$@16",
"ncr_protocol_value",
2334 "ncr_format",
"$@17",
"user_context",
"$@18",
"comment",
"$@19",
2335 "forward_ddns",
"$@20",
"reverse_ddns",
"$@21",
"ddns_mgr_params",
2336 "not_empty_ddns_mgr_params",
"ddns_mgr_param",
"ddns_domains",
"$@22",
2337 "sub_ddns_domains",
"$@23",
"ddns_domain_list",
2338 "not_empty_ddns_domain_list",
"ddns_domain",
"$@24",
"sub_ddns_domain",
2339 "$@25",
"ddns_domain_params",
"ddns_domain_param",
"ddns_domain_name",
2340 "$@26",
"ddns_domain_key_name",
"$@27",
"dns_servers",
"$@28",
2341 "sub_dns_servers",
"$@29",
"dns_server_list",
"dns_server",
"$@30",
2342 "sub_dns_server",
"$@31",
"dns_server_params",
"dns_server_param",
2343 "dns_server_hostname",
"$@32",
"dns_server_ip_address",
"$@33",
2344 "dns_server_port",
"tsig_keys",
"$@34",
"sub_tsig_keys",
"$@35",
2345 "tsig_keys_list",
"not_empty_tsig_keys_list",
"tsig_key",
"$@36",
2346 "sub_tsig_key",
"$@37",
"tsig_key_params",
"tsig_key_param",
2347 "tsig_key_name",
"$@38",
"tsig_key_algorithm",
"$@39",
2348 "tsig_key_digest_bits",
"tsig_key_secret",
"$@40",
"dhcp6_json_object",
2349 "$@41",
"dhcp4_json_object",
"$@42",
"control_agent_json_object",
"$@43",
2350 "logging_object",
"$@44",
"logging_params",
"logging_param",
"loggers",
2351 "$@45",
"loggers_entries",
"logger_entry",
"$@46",
"logger_params",
2352 "logger_param",
"name",
"$@47",
"debuglevel",
"severity",
"$@48",
2353 "output_options_list",
"$@49",
"output_options_list_content",
2354 "output_entry",
"$@50",
"output_params_list",
"output_params",
"output",
2355 "$@51",
"flush",
"maxsize",
"maxver", YY_NULLPTR
2359 const unsigned short
2360 D2Parser::yyrline_[] =
2362 0, 120, 120, 120, 121, 121, 122, 122, 123, 123,
2363 124, 124, 125, 125, 126, 126, 127, 127, 128, 128,
2364 136, 137, 138, 139, 140, 141, 142, 145, 150, 150,
2365 161, 164, 165, 168, 172, 179, 179, 186, 187, 190,
2366 194, 205, 215, 215, 227, 228, 232, 233, 234, 235,
2367 236, 237, 242, 242, 252, 252, 260, 261, 265, 266,
2368 267, 268, 269, 270, 271, 272, 273, 274, 275, 278,
2369 278, 286, 294, 303, 303, 311, 312, 315, 315, 323,
2370 323, 348, 348, 375, 375, 385, 385, 395, 396, 399,
2371 400, 403, 404, 409, 409, 419, 419, 426, 427, 430,
2372 431, 434, 434, 442, 442, 449, 450, 453, 454, 455,
2373 456, 457, 458, 462, 462, 474, 474, 486, 486, 496,
2374 496, 503, 504, 507, 507, 515, 515, 522, 523, 526,
2375 527, 528, 529, 530, 531, 534, 534, 546, 546, 554,
2376 568, 568, 578, 578, 585, 586, 589, 590, 593, 593,
2377 601, 601, 610, 611, 614, 615, 616, 617, 618, 619,
2378 620, 623, 623, 635, 635, 646, 654, 654, 669, 669,
2379 676, 676, 683, 683, 695, 695, 708, 709, 713, 717,
2380 717, 729, 730, 734, 734, 742, 743, 746, 747, 748,
2381 749, 750, 751, 752, 755, 755, 763, 767, 767, 775,
2382 775, 785, 786, 789, 789, 797, 798, 801, 802, 803,
2383 804, 807, 807, 815, 820, 825
2388 D2Parser::yystack_print_ ()
2390 *yycdebug_ <<
"Stack now";
2392 i = yystack_.
begin (),
2393 i_end = yystack_.
end ();
2395 *yycdebug_ <<
' ' << i->state;
2401 D2Parser::yy_reduce_print_ (
int yyrule)
2403 unsigned yylno = yyrline_[yyrule];
2404 int yynrhs = yyr2_[yyrule];
2406 *yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
2407 <<
" (line " << yylno <<
"):\n";
2409 for (
int yyi = 0; yyi < yynrhs; yyi++)
2411 yystack_[(yynrhs) - (yyi + 1)]);
2413 #endif // D2_PARSER_DEBUG
2416 #line 14 "d2_parser.yy" // lalr1.cc:1218
2418 #line 2419 "d2_parser.cc" // lalr1.cc:1218
2419 #line 830 "d2_parser.yy" // lalr1.cc:1219
2424 const std::string& what)
2426 ctx.
error(loc, what);