From: Francis Dupont Date: Thu, 27 Dec 2018 23:25:14 +0000 (+0000) Subject: [#30,!183] Regen flex/bison X-Git-Tag: 208-move-logging-from-global-objects-to-global-params_base~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55cf0972d35fe136edc26c3d3d5625a22bc87a32;p=thirdparty%2Fkea.git [#30,!183] Regen flex/bison --- diff --git a/src/bin/d2/d2_lexer.cc b/src/bin/d2/d2_lexer.cc index 915f94cab7..823f62b4b6 100644 --- a/src/bin/d2/d2_lexer.cc +++ b/src/bin/d2/d2_lexer.cc @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 64 -#define YY_END_OF_BUFFER 65 +#define YY_NUM_RULES 67 +#define YY_END_OF_BUFFER 68 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,50 +700,54 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[388] = +static const flex_int16_t yy_accept[417] = { 0, - 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 63, 10, 11, 63, 1, 57, 54, 57, 57, - 63, 56, 55, 63, 63, 63, 63, 63, 50, 51, - 63, 63, 63, 52, 53, 5, 5, 5, 63, 63, - 63, 10, 11, 0, 0, 46, 0, 0, 0, 0, + 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 66, 10, 11, 66, 1, 60, 57, 60, 60, + 66, 59, 58, 66, 66, 66, 66, 66, 53, 54, + 66, 66, 66, 55, 56, 5, 5, 5, 66, 66, + 66, 10, 11, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 57, 57, 0, 56, 57, 3, 2, 6, 0, 57, + 60, 60, 0, 59, 60, 3, 2, 6, 0, 60, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 60, 0, 59, 58, - 0, 0, 0, 0, 0, 0, 19, 18, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 63, + 0, 62, 61, 0, 0, 0, 0, 0, 0, 19, + 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 58, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, - 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 61, 0, + 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 43, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 36, 0, 0, 32, 0, - 0, 0, 0, 0, 33, 0, 22, 0, 0, 0, - - 0, 0, 0, 0, 0, 34, 38, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, - 0, 0, 28, 0, 26, 0, 0, 0, 0, 42, - 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 0, 0, 0, 41, 0, - 0, 0, 0, 13, 17, 0, 0, 0, 0, 0, - 0, 31, 0, 27, 0, 0, 0, 0, 0, 0, - 25, 0, 23, 16, 0, 24, 21, 45, 0, 0, - 0, 35, 0, 0, 0, 15, 0 + 0, 0, 42, 0, 0, 39, 0, 0, 32, 0, + + 0, 0, 0, 0, 0, 36, 0, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 41, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 0, 0, 0, 0, 0, 0, 0, 28, 0, 26, + 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 0, 0, 0, 0, 44, + 0, 0, 0, 0, 13, 17, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 31, 0, 27, 0, 0, + 0, 0, 35, 34, 0, 0, 0, 25, 0, 23, + + 16, 0, 24, 21, 48, 0, 0, 0, 33, 0, + 38, 0, 0, 0, 15, 0 } ; static const YY_CHAR yy_ec[256] = @@ -789,103 +793,109 @@ static const YY_CHAR yy_meta[67] = 3, 3, 3, 3, 3, 3 } ; -static const flex_int16_t yy_base[399] = +static const flex_int16_t yy_base[428] = { 0, 0, 0, 65, 68, 71, 0, 69, 73, 54, 70, - 706, 707, 89, 702, 137, 0, 192, 707, 197, 200, - 86, 212, 707, 684, 97, 74, 63, 69, 707, 707, - 83, 68, 78, 707, 707, 707, 124, 690, 649, 0, - 682, 128, 697, 212, 234, 707, 645, 651, 172, 643, - 196, 196, 257, 645, 641, 187, 191, 640, 638, 648, - 637, 650, 91, 630, 634, 643, 642, 209, 210, 0, - 281, 289, 308, 314, 293, 707, 0, 707, 232, 257, - 182, 224, 219, 283, 284, 285, 707, 643, 678, 707, - 294, 707, 330, 630, 640, 291, 635, 296, 301, 674, - - 0, 376, 633, 626, 624, 635, 629, 617, 614, 616, - 614, 659, 606, 622, 605, 614, 609, 606, 607, 602, - 299, 613, 616, 0, 305, 312, 255, 309, 318, 324, - 608, 707, 0, 600, 602, 319, 610, 649, 648, 647, - 707, 408, 598, 599, 593, 590, 604, 636, 589, 584, - 586, 603, 631, 595, 290, 596, 628, 583, 579, 592, - 579, 590, 587, 576, 329, 707, 707, 330, 707, 707, - 572, 0, 574, 337, 623, 580, 707, 707, 440, 571, - 582, 614, 578, 566, 565, 574, 580, 566, 575, 564, - 572, 567, 570, 607, 205, 553, 605, 554, 565, 552, - - 596, 595, 707, 707, 562, 0, 550, 597, 596, 558, - 707, 547, 472, 551, 545, 554, 545, 537, 550, 587, - 536, 551, 547, 549, 532, 523, 530, 707, 531, 528, - 525, 707, 525, 523, 532, 529, 536, 533, 0, 525, - 707, 707, 522, 528, 515, 514, 517, 526, 558, 512, - 707, 524, 514, 509, 512, 506, 518, 555, 504, 505, - 354, 514, 551, 498, 511, 500, 707, 542, 495, 545, - 497, 525, 477, 464, 470, 450, 498, 464, 463, 462, - 499, 498, 707, 451, 444, 707, 447, 489, 707, 436, - 429, 438, 450, 483, 707, 427, 707, 438, 433, 428, - - 431, 431, 467, 415, 465, 707, 707, 430, 415, 413, - 424, 454, 402, 400, 411, 707, 441, 398, 394, 386, - 387, 399, 707, 384, 707, 382, 397, 380, 394, 707, - 430, 391, 384, 707, 374, 420, 368, 346, 362, 408, - 407, 358, 363, 357, 707, 347, 355, 350, 707, 400, - 347, 398, 339, 707, 707, 344, 340, 330, 327, 326, - 376, 707, 333, 707, 374, 373, 325, 371, 370, 364, - 707, 313, 707, 707, 307, 707, 707, 707, 221, 258, - 205, 707, 196, 185, 217, 707, 707, 517, 522, 527, - 532, 537, 542, 545, 216, 130, 115, 87 - + 735, 736, 89, 731, 137, 0, 192, 736, 197, 200, + 86, 212, 736, 713, 97, 74, 63, 69, 736, 736, + 83, 68, 78, 736, 736, 736, 124, 719, 678, 0, + 711, 128, 726, 212, 234, 736, 674, 680, 172, 672, + 196, 196, 257, 674, 670, 187, 191, 669, 667, 677, + 666, 679, 91, 659, 663, 672, 179, 209, 210, 0, + 281, 289, 308, 314, 293, 736, 0, 736, 232, 257, + 224, 227, 276, 292, 293, 277, 736, 673, 708, 736, + 294, 736, 328, 660, 670, 297, 665, 301, 307, 704, + + 0, 374, 663, 207, 655, 666, 660, 648, 645, 647, + 645, 690, 637, 653, 636, 645, 640, 637, 638, 633, + 300, 650, 643, 646, 0, 307, 317, 255, 313, 320, + 322, 638, 736, 0, 630, 632, 321, 640, 679, 678, + 677, 736, 406, 628, 629, 622, 622, 619, 633, 665, + 618, 613, 615, 632, 660, 624, 292, 625, 657, 612, + 608, 621, 608, 619, 612, 615, 604, 328, 736, 736, + 332, 736, 736, 600, 0, 602, 339, 651, 608, 736, + 736, 438, 599, 610, 597, 641, 605, 593, 592, 601, + 607, 593, 602, 591, 599, 594, 597, 634, 209, 580, + + 632, 581, 592, 579, 590, 622, 621, 736, 736, 588, + 0, 576, 623, 622, 584, 736, 573, 470, 577, 571, + 569, 579, 570, 562, 575, 612, 561, 576, 572, 574, + 557, 548, 555, 736, 556, 553, 550, 736, 550, 548, + 557, 546, 553, 560, 557, 0, 549, 736, 736, 546, + 552, 539, 538, 544, 540, 549, 581, 535, 736, 547, + 537, 532, 535, 529, 541, 578, 527, 528, 204, 537, + 574, 521, 567, 533, 522, 736, 564, 517, 567, 525, + 565, 559, 517, 508, 526, 506, 554, 520, 519, 518, + 555, 554, 736, 507, 500, 736, 503, 545, 736, 492, + + 322, 491, 500, 512, 545, 736, 498, 736, 492, 502, + 485, 479, 478, 466, 502, 450, 500, 736, 736, 465, + 450, 448, 459, 495, 460, 436, 441, 439, 444, 736, + 483, 434, 439, 426, 418, 419, 431, 736, 416, 736, + 414, 429, 412, 426, 736, 416, 412, 460, 421, 414, + 736, 415, 403, 449, 388, 348, 391, 437, 436, 387, + 392, 386, 394, 393, 736, 374, 382, 384, 376, 736, + 420, 367, 418, 366, 736, 736, 362, 358, 354, 404, + 403, 350, 349, 362, 398, 736, 355, 736, 396, 395, + 341, 387, 736, 736, 386, 385, 327, 736, 331, 736, + + 736, 325, 736, 736, 736, 373, 334, 371, 736, 313, + 736, 302, 207, 244, 736, 736, 515, 520, 525, 530, + 535, 540, 543, 216, 130, 115, 87 } ; -static const flex_int16_t yy_def[399] = +static const flex_int16_t yy_def[428] = { 0, - 387, 1, 388, 388, 1, 5, 5, 5, 5, 5, - 387, 387, 387, 387, 387, 389, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 390, - 387, 387, 387, 391, 15, 387, 45, 45, 45, 45, - 45, 45, 392, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 389, - 387, 387, 387, 387, 387, 387, 393, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 390, 387, - 391, 387, 387, 45, 45, 45, 45, 45, 45, 394, - - 45, 392, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 393, 387, 387, 387, 387, 387, 387, - 387, 387, 395, 45, 45, 45, 45, 45, 45, 394, - 387, 392, 45, 45, 45, 45, 45, 45, 45, 45, + 416, 1, 417, 417, 1, 5, 5, 5, 5, 5, + 416, 416, 416, 416, 416, 418, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 419, + 416, 416, 416, 420, 15, 416, 45, 45, 45, 45, + 45, 45, 421, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 418, + 416, 416, 416, 416, 416, 416, 422, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 419, 416, + 420, 416, 416, 45, 45, 45, 45, 45, 45, 423, + + 45, 421, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 387, 387, 387, 387, 387, 387, - 387, 396, 45, 45, 45, 45, 387, 387, 392, 45, + 45, 45, 45, 45, 422, 416, 416, 416, 416, 416, + 416, 416, 416, 424, 45, 45, 45, 45, 45, 45, + 423, 416, 421, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 416, 416, 416, + 416, 416, 416, 416, 425, 45, 45, 45, 45, 416, + 416, 421, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 387, 387, 387, 397, 45, 45, 45, 45, - 387, 45, 392, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 387, 45, 45, - 45, 387, 45, 45, 45, 45, 45, 387, 398, 45, - 387, 387, 45, 45, 45, 45, 45, 45, 45, 45, - 387, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 387, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 416, 416, 416, + 426, 45, 45, 45, 45, 416, 45, 421, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 387, 45, 45, 387, 45, 45, 387, 45, - 45, 45, 45, 45, 387, 45, 387, 45, 45, 45, - - 45, 45, 45, 45, 45, 387, 387, 45, 45, 45, - 45, 45, 45, 45, 45, 387, 45, 45, 45, 45, - 45, 45, 387, 45, 387, 45, 45, 45, 45, 387, - 45, 45, 45, 387, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 387, 45, 45, 45, 387, 45, - 45, 45, 45, 387, 387, 45, 45, 45, 45, 45, - 45, 387, 45, 387, 45, 45, 45, 45, 45, 45, - 387, 45, 387, 387, 45, 387, 387, 387, 45, 45, - 45, 387, 45, 45, 45, 387, 0, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387 - + 45, 45, 45, 416, 45, 45, 45, 416, 45, 45, + 45, 45, 45, 45, 416, 427, 45, 416, 416, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 416, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 416, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 416, 45, 45, 416, 45, 45, 416, 45, + + 45, 45, 45, 45, 45, 416, 45, 416, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 416, 416, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 416, + 45, 45, 45, 45, 45, 45, 45, 416, 45, 416, + 45, 45, 45, 45, 416, 45, 45, 45, 45, 45, + 416, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 416, 45, 45, 45, 45, 416, + 45, 45, 45, 45, 416, 416, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 416, 45, 416, 45, 45, + 45, 45, 416, 416, 45, 45, 45, 416, 45, 416, + + 416, 45, 416, 416, 416, 45, 45, 45, 416, 45, + 416, 45, 45, 45, 416, 0, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416 } ; -static const flex_int16_t yy_nxt[774] = +static const flex_int16_t yy_nxt[803] = { 0, 12, 13, 14, 13, 12, 15, 16, 12, 17, 18, 19, 20, 21, 22, 22, 22, 23, 24, 12, 12, @@ -899,9 +909,9 @@ static const flex_int16_t yy_nxt[774] = 42, 91, 42, 76, 81, 12, 12, 82, 77, 12, 83, 12, 82, 81, 12, 79, 12, 79, 12, 83, - 80, 80, 80, 81, 12, 12, 12, 12, 39, 239, + 80, 80, 80, 81, 12, 12, 12, 12, 39, 246, 12, 82, 84, 12, 83, 42, 85, 42, 12, 42, - 116, 42, 117, 86, 206, 12, 12, 44, 44, 44, + 116, 42, 117, 86, 211, 12, 12, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 48, 45, 45, 49, 50, 45, 45, 45, 45, 45, @@ -909,72 +919,76 @@ static const flex_int16_t yy_nxt[774] = 45, 57, 45, 58, 59, 49, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 45, 45, 45, 45, - 45, 45, 45, 71, 96, 72, 72, 72, 71, 125, + 45, 45, 45, 71, 96, 72, 72, 72, 71, 296, 74, 74, 74, 75, 75, 75, 73, 92, 98, 99, - 172, 73, 386, 71, 73, 74, 74, 74, 96, 105, - 106, 98, 125, 99, 107, 73, 73, 98, 99, 108, - 73, 109, 385, 73, 110, 80, 80, 80, 93, 229, - 98, 126, 99, 127, 384, 73, 45, 45, 383, 230, - 45, 45, 101, 382, 381, 122, 123, 45, 45, 45, - 80, 80, 80, 45, 126, 45, 45, 127, 45, 167, + 175, 73, 121, 71, 73, 74, 74, 74, 96, 105, + 106, 98, 122, 99, 107, 73, 73, 98, 99, 108, + 73, 109, 297, 73, 110, 80, 80, 80, 93, 415, + 98, 126, 99, 235, 127, 73, 45, 45, 145, 146, + 45, 45, 101, 236, 414, 123, 124, 45, 45, 45, + 80, 80, 80, 45, 126, 45, 45, 127, 45, 170, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 75, 75, 75, 45, 167, 92, + 45, 45, 45, 45, 75, 75, 75, 45, 170, 92, 71, 45, 72, 72, 72, 73, 75, 75, 75, 45, - 125, 126, 45, 73, 45, 102, 79, 73, 79, 127, - 136, 80, 80, 80, 73, 71, 138, 74, 74, 74, - 93, 139, 73, 128, 129, 91, 73, 165, 73, 166, - 161, 165, 91, 130, 136, 166, 192, 175, 167, 193, - 138, 208, 209, 203, 203, 139, 351, 73, 162, 286, - 210, 165, 166, 380, 379, 168, 91, 170, 169, 378, - 91, 175, 203, 204, 91, 377, 376, 375, 374, 373, - 372, 371, 91, 370, 369, 91, 368, 91, 133, 142, - 142, 142, 287, 367, 366, 365, 142, 142, 142, 142, - - 142, 142, 352, 364, 363, 362, 361, 360, 359, 358, - 357, 356, 355, 354, 353, 142, 142, 142, 142, 142, - 142, 179, 179, 179, 350, 349, 348, 347, 179, 179, - 179, 179, 179, 179, 346, 345, 344, 343, 342, 341, - 340, 339, 338, 337, 336, 335, 334, 179, 179, 179, - 179, 179, 179, 213, 213, 213, 333, 332, 331, 330, - 213, 213, 213, 213, 213, 213, 329, 328, 327, 326, - 325, 324, 323, 322, 321, 320, 319, 318, 317, 213, - 213, 213, 213, 213, 213, 45, 45, 45, 316, 315, - 314, 313, 45, 45, 45, 45, 45, 45, 312, 311, - - 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, - 300, 45, 45, 45, 45, 45, 45, 36, 36, 36, - 36, 36, 70, 299, 70, 70, 70, 89, 298, 89, - 297, 89, 91, 91, 91, 91, 91, 100, 100, 100, - 100, 100, 124, 296, 124, 124, 124, 140, 140, 140, - 295, 294, 293, 292, 291, 290, 289, 288, 285, 284, - 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, - 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, - 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, - 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, - - 243, 242, 241, 240, 238, 237, 236, 235, 234, 233, - 232, 231, 228, 227, 226, 225, 224, 223, 222, 221, - 220, 219, 218, 217, 216, 215, 214, 212, 211, 207, - 205, 202, 201, 200, 199, 198, 197, 196, 195, 194, - 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, - 181, 180, 141, 178, 177, 176, 174, 173, 171, 164, - 163, 160, 159, 158, 157, 156, 155, 154, 153, 152, - 151, 150, 149, 148, 147, 146, 145, 144, 143, 141, - 137, 135, 134, 132, 131, 121, 120, 119, 118, 115, - 114, 113, 112, 111, 104, 103, 97, 95, 94, 43, - - 90, 88, 87, 78, 43, 387, 11, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387 + 128, 128, 45, 73, 45, 102, 79, 73, 79, 126, + 127, 80, 80, 80, 73, 71, 137, 74, 74, 74, + 93, 139, 73, 91, 128, 131, 73, 140, 73, 168, + 91, 163, 129, 130, 169, 168, 170, 169, 196, 178, + 137, 197, 208, 213, 214, 139, 208, 73, 372, 164, + 413, 140, 215, 168, 91, 173, 412, 169, 91, 171, + 172, 208, 91, 178, 325, 209, 411, 410, 409, 326, + 91, 408, 407, 91, 406, 91, 134, 143, 143, 143, + 405, 404, 403, 402, 143, 143, 143, 143, 143, 143, + + 401, 400, 399, 398, 373, 397, 396, 395, 394, 393, + 392, 391, 390, 143, 143, 143, 143, 143, 143, 182, + 182, 182, 389, 388, 387, 386, 182, 182, 182, 182, + 182, 182, 385, 384, 383, 382, 381, 380, 379, 378, + 377, 376, 375, 374, 371, 182, 182, 182, 182, 182, + 182, 218, 218, 218, 370, 369, 368, 367, 218, 218, + 218, 218, 218, 218, 366, 365, 364, 363, 362, 361, + 360, 359, 358, 357, 356, 355, 354, 218, 218, 218, + 218, 218, 218, 45, 45, 45, 353, 352, 351, 350, + 45, 45, 45, 45, 45, 45, 349, 348, 347, 346, + + 345, 344, 343, 342, 341, 340, 339, 338, 337, 45, + 45, 45, 45, 45, 45, 36, 36, 36, 36, 36, + 70, 336, 70, 70, 70, 89, 335, 89, 334, 89, + 91, 91, 91, 91, 91, 100, 100, 100, 100, 100, + 125, 333, 125, 125, 125, 141, 141, 141, 332, 331, + 330, 329, 328, 327, 324, 323, 322, 321, 320, 319, + 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, + 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, + 298, 295, 294, 293, 292, 291, 290, 289, 288, 287, + 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, + + 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, + 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, + 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, + 245, 244, 243, 242, 241, 240, 239, 238, 237, 234, + 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, + 223, 222, 221, 220, 219, 217, 216, 212, 210, 207, + 206, 205, 204, 203, 202, 201, 200, 199, 198, 195, + 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, + 184, 183, 142, 181, 180, 179, 177, 176, 174, 167, + 166, 165, 162, 161, 160, 159, 158, 157, 156, 155, + + 154, 153, 152, 151, 150, 149, 148, 147, 144, 142, + 138, 136, 135, 133, 132, 120, 119, 118, 115, 114, + 113, 112, 111, 104, 103, 97, 95, 94, 43, 90, + 88, 87, 78, 43, 416, 11, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + + 416, 416 } ; -static const flex_int16_t yy_chk[774] = +static const flex_int16_t yy_chk[803] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -985,12 +999,12 @@ static const flex_int16_t yy_chk[774] = 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 3, 9, 7, 4, 5, 5, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, - 13, 398, 13, 21, 26, 5, 5, 27, 21, 5, + 13, 427, 13, 21, 26, 5, 5, 27, 21, 5, 28, 9, 32, 31, 5, 25, 5, 25, 5, 33, - 25, 25, 25, 26, 5, 5, 7, 10, 5, 397, + 25, 25, 25, 26, 5, 5, 7, 10, 5, 426, 8, 27, 31, 5, 28, 37, 32, 37, 5, 42, - 63, 42, 63, 33, 396, 5, 5, 15, 15, 15, + 63, 42, 63, 33, 425, 5, 5, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -998,69 +1012,73 @@ static const flex_int16_t yy_chk[774] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 17, 49, 17, 17, 17, 19, 81, + 15, 15, 15, 17, 49, 17, 17, 17, 19, 269, 19, 19, 19, 20, 20, 20, 17, 44, 51, 52, - 395, 19, 385, 22, 20, 22, 22, 22, 49, 56, - 56, 68, 81, 69, 56, 17, 22, 51, 52, 56, - 19, 57, 384, 20, 57, 79, 79, 79, 44, 195, - 68, 82, 69, 83, 383, 22, 45, 45, 381, 195, - 45, 45, 53, 380, 379, 68, 69, 45, 45, 53, - 80, 80, 80, 45, 82, 45, 45, 83, 45, 127, + 424, 19, 67, 22, 20, 22, 22, 22, 49, 56, + 56, 68, 67, 69, 56, 17, 22, 51, 52, 56, + 19, 57, 269, 20, 57, 79, 79, 79, 44, 414, + 68, 81, 69, 199, 82, 22, 45, 45, 104, 104, + 45, 45, 53, 199, 413, 68, 69, 45, 45, 53, + 80, 80, 80, 45, 81, 45, 45, 82, 45, 128, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 53, 71, 71, 71, 53, 127, 91, + 45, 45, 45, 53, 71, 71, 71, 53, 128, 91, 72, 53, 72, 72, 72, 71, 75, 75, 75, 53, - 84, 85, 53, 72, 53, 53, 73, 75, 73, 86, - 96, 73, 73, 73, 71, 74, 98, 74, 74, 74, - 91, 99, 72, 84, 85, 93, 75, 125, 74, 126, - 121, 128, 93, 86, 96, 129, 155, 136, 130, 155, - 98, 174, 174, 165, 168, 99, 338, 74, 121, 261, - 174, 125, 126, 375, 372, 128, 93, 130, 129, 370, - 93, 136, 165, 168, 93, 369, 368, 367, 366, 365, - 363, 361, 93, 360, 359, 93, 358, 93, 93, 102, - 102, 102, 261, 357, 356, 353, 102, 102, 102, 102, - - 102, 102, 338, 352, 351, 350, 348, 347, 346, 344, - 343, 342, 341, 340, 339, 102, 102, 102, 102, 102, - 102, 142, 142, 142, 337, 336, 335, 333, 142, 142, - 142, 142, 142, 142, 332, 331, 329, 328, 327, 326, - 324, 322, 321, 320, 319, 318, 317, 142, 142, 142, - 142, 142, 142, 179, 179, 179, 315, 314, 313, 312, - 179, 179, 179, 179, 179, 179, 311, 310, 309, 308, - 305, 304, 303, 302, 301, 300, 299, 298, 296, 179, - 179, 179, 179, 179, 179, 213, 213, 213, 294, 293, - 292, 291, 213, 213, 213, 213, 213, 213, 290, 288, - - 287, 285, 284, 282, 281, 280, 279, 278, 277, 276, - 275, 213, 213, 213, 213, 213, 213, 388, 388, 388, - 388, 388, 389, 274, 389, 389, 389, 390, 273, 390, - 272, 390, 391, 391, 391, 391, 391, 392, 392, 392, - 392, 392, 393, 271, 393, 393, 393, 394, 394, 394, - 270, 269, 268, 266, 265, 264, 263, 262, 260, 259, - 258, 257, 256, 255, 254, 253, 252, 250, 249, 248, - 247, 246, 245, 244, 243, 240, 238, 237, 236, 235, - 234, 233, 231, 230, 229, 227, 226, 225, 224, 223, - 222, 221, 220, 219, 218, 217, 216, 215, 214, 212, - - 210, 209, 208, 207, 205, 202, 201, 200, 199, 198, - 197, 196, 194, 193, 192, 191, 190, 189, 188, 187, - 186, 185, 184, 183, 182, 181, 180, 176, 175, 173, - 171, 164, 163, 162, 161, 160, 159, 158, 157, 156, - 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, - 144, 143, 140, 139, 138, 137, 135, 134, 131, 123, - 122, 120, 119, 118, 117, 116, 115, 114, 113, 112, - 111, 110, 109, 108, 107, 106, 105, 104, 103, 100, - 97, 95, 94, 89, 88, 67, 66, 65, 64, 62, - 61, 60, 59, 58, 55, 54, 50, 48, 47, 43, - - 41, 39, 38, 24, 14, 11, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387 + 83, 86, 53, 72, 53, 53, 73, 75, 73, 84, + 85, 73, 73, 73, 71, 74, 96, 74, 74, 74, + 91, 98, 72, 93, 83, 86, 75, 99, 74, 126, + 93, 121, 84, 85, 127, 129, 131, 130, 157, 137, + 96, 157, 168, 177, 177, 98, 171, 74, 356, 121, + 412, 99, 177, 126, 93, 131, 410, 127, 93, 129, + 130, 168, 93, 137, 301, 171, 408, 407, 406, 301, + 93, 402, 399, 93, 397, 93, 93, 102, 102, 102, + 396, 395, 392, 391, 102, 102, 102, 102, 102, 102, + + 390, 389, 387, 385, 356, 384, 383, 382, 381, 380, + 379, 378, 377, 102, 102, 102, 102, 102, 102, 143, + 143, 143, 374, 373, 372, 371, 143, 143, 143, 143, + 143, 143, 369, 368, 367, 366, 364, 363, 362, 361, + 360, 359, 358, 357, 355, 143, 143, 143, 143, 143, + 143, 182, 182, 182, 354, 353, 352, 350, 182, 182, + 182, 182, 182, 182, 349, 348, 347, 346, 344, 343, + 342, 341, 339, 337, 336, 335, 334, 182, 182, 182, + 182, 182, 182, 218, 218, 218, 333, 332, 331, 329, + 218, 218, 218, 218, 218, 218, 328, 327, 326, 325, + + 324, 323, 322, 321, 320, 317, 316, 315, 314, 218, + 218, 218, 218, 218, 218, 417, 417, 417, 417, 417, + 418, 313, 418, 418, 418, 419, 312, 419, 311, 419, + 420, 420, 420, 420, 420, 421, 421, 421, 421, 421, + 422, 310, 422, 422, 422, 423, 423, 423, 309, 307, + 305, 304, 303, 302, 300, 298, 297, 295, 294, 292, + 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, + 281, 280, 279, 278, 277, 275, 274, 273, 272, 271, + 270, 268, 267, 266, 265, 264, 263, 262, 261, 260, + 258, 257, 256, 255, 254, 253, 252, 251, 250, 247, + + 245, 244, 243, 242, 241, 240, 239, 237, 236, 235, + 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, + 223, 222, 221, 220, 219, 217, 215, 214, 213, 212, + 210, 207, 206, 205, 204, 203, 202, 201, 200, 198, + 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, + 187, 186, 185, 184, 183, 179, 178, 176, 174, 167, + 166, 165, 164, 163, 162, 161, 160, 159, 158, 156, + 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, + 145, 144, 141, 140, 139, 138, 136, 135, 132, 124, + 123, 122, 120, 119, 118, 117, 116, 115, 114, 113, + + 112, 111, 110, 109, 108, 107, 106, 105, 103, 100, + 97, 95, 94, 89, 88, 66, 65, 64, 62, 61, + 60, 59, 58, 55, 54, 50, 48, 47, 43, 41, + 39, 38, 24, 14, 11, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, + + 416, 416 } ; static yy_state_type yy_last_accepting_state; @@ -1069,15 +1087,15 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[64] = +static const flex_int16_t yy_rule_linenum[67] = { 0, 133, 135, 137, 142, 143, 148, 149, 150, 162, 165, 170, 176, 185, 196, 207, 216, 225, 234, 244, 254, - 264, 280, 296, 305, 314, 324, 334, 344, 355, 364, - 374, 384, 395, 404, 413, 422, 431, 440, 449, 458, - 471, 480, 489, 498, 507, 517, 616, 621, 626, 631, - 632, 633, 634, 635, 636, 638, 656, 669, 674, 678, - 680, 682, 684 + 264, 281, 298, 307, 316, 326, 336, 346, 357, 366, + 376, 386, 396, 405, 414, 424, 433, 442, 451, 460, + 469, 478, 487, 500, 509, 518, 527, 536, 546, 645, + 650, 655, 660, 661, 662, 663, 664, 665, 667, 685, + 698, 703, 707, 709, 711, 713 } ; /* The intent behind this definition is that it'll catch @@ -1128,7 +1146,7 @@ unsigned int comment_start_line = 0; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::d2::D2ParserContext::fatal(msg) -#line 1131 "d2_lexer.cc" +#line 1149 "d2_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -1154,8 +1172,8 @@ unsigned int comment_start_line = 0; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); -#line 1157 "d2_lexer.cc" -#line 1158 "d2_lexer.cc" +#line 1175 "d2_lexer.cc" +#line 1176 "d2_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1473,7 +1491,7 @@ YY_DECL } -#line 1476 "d2_lexer.cc" +#line 1494 "d2_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1502,13 +1520,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 388 ) + if ( yy_current_state >= 417 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 387 ); + while ( yy_current_state != 416 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1527,13 +1545,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 64 ) + else if ( yy_act < 67 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 64 ) + else if ( yy_act == 67 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 65 ) + else if ( yy_act == 68 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -1764,6 +1782,7 @@ YY_RULE_SETUP case isc::d2::D2ParserContext::DNS_SERVERS: case isc::d2::D2ParserContext::TSIG_KEY: case isc::d2::D2ParserContext::TSIG_KEYS: + case isc::d2::D2ParserContext::CONTROL_SOCKET: case isc::d2::D2ParserContext::LOGGERS: return isc::d2::D2Parser::make_USER_CONTEXT(driver.loc_); default: @@ -1773,7 +1792,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 280 "d2_lexer.ll" +#line 281 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1783,6 +1802,7 @@ YY_RULE_SETUP case isc::d2::D2ParserContext::DNS_SERVERS: case isc::d2::D2ParserContext::TSIG_KEY: case isc::d2::D2ParserContext::TSIG_KEYS: + case isc::d2::D2ParserContext::CONTROL_SOCKET: case isc::d2::D2ParserContext::LOGGERS: return isc::d2::D2Parser::make_COMMENT(driver.loc_); default: @@ -1792,7 +1812,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 296 "d2_lexer.ll" +#line 298 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1804,7 +1824,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 305 "d2_lexer.ll" +#line 307 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1816,7 +1836,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 314 "d2_lexer.ll" +#line 316 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::FORWARD_DDNS: @@ -1829,7 +1849,7 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 324 "d2_lexer.ll" +#line 326 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DDNS_DOMAIN: @@ -1842,7 +1862,7 @@ YY_RULE_SETUP YY_BREAK case 27: YY_RULE_SETUP -#line 334 "d2_lexer.ll" +#line 336 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DDNS_DOMAIN: @@ -1855,7 +1875,7 @@ YY_RULE_SETUP YY_BREAK case 28: YY_RULE_SETUP -#line 344 "d2_lexer.ll" +#line 346 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DNS_SERVER: @@ -1868,7 +1888,7 @@ YY_RULE_SETUP YY_BREAK case 29: YY_RULE_SETUP -#line 355 "d2_lexer.ll" +#line 357 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1880,7 +1900,7 @@ YY_RULE_SETUP YY_BREAK case 30: YY_RULE_SETUP -#line 364 "d2_lexer.ll" +#line 366 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::TSIG_KEY: @@ -1893,7 +1913,7 @@ YY_RULE_SETUP YY_BREAK case 31: YY_RULE_SETUP -#line 374 "d2_lexer.ll" +#line 376 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::TSIG_KEY: @@ -1906,7 +1926,7 @@ YY_RULE_SETUP YY_BREAK case 32: YY_RULE_SETUP -#line 384 "d2_lexer.ll" +#line 386 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::TSIG_KEY: @@ -1919,7 +1939,43 @@ YY_RULE_SETUP YY_BREAK case 33: YY_RULE_SETUP -#line 395 "d2_lexer.ll" +#line 396 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::d2::D2ParserContext::DHCPDDNS: + return isc::d2::D2Parser::make_CONTROL_SOCKET(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("control-socket", driver.loc_); + } +} + YY_BREAK +case 34: +YY_RULE_SETUP +#line 405 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::d2::D2ParserContext::CONTROL_SOCKET: + return isc::d2::D2Parser::make_SOCKET_TYPE(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("socket-type", driver.loc_); + } +} + YY_BREAK +case 35: +YY_RULE_SETUP +#line 414 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::d2::D2ParserContext::CONTROL_SOCKET: + return isc::d2::D2Parser::make_SOCKET_NAME(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("socket-name", driver.loc_); + } +} + YY_BREAK +case 36: +YY_RULE_SETUP +#line 424 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::CONFIG: @@ -1929,9 +1985,9 @@ YY_RULE_SETUP } } YY_BREAK -case 34: +case 37: YY_RULE_SETUP -#line 404 "d2_lexer.ll" +#line 433 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGING: @@ -1941,9 +1997,9 @@ YY_RULE_SETUP } } YY_BREAK -case 35: +case 38: YY_RULE_SETUP -#line 413 "d2_lexer.ll" +#line 442 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGERS: @@ -1953,9 +2009,9 @@ YY_RULE_SETUP } } YY_BREAK -case 36: +case 39: YY_RULE_SETUP -#line 422 "d2_lexer.ll" +#line 451 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::OUTPUT_OPTIONS: @@ -1965,9 +2021,9 @@ YY_RULE_SETUP } } YY_BREAK -case 37: +case 40: YY_RULE_SETUP -#line 431 "d2_lexer.ll" +#line 460 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::OUTPUT_OPTIONS: @@ -1977,9 +2033,9 @@ YY_RULE_SETUP } } YY_BREAK -case 38: +case 41: YY_RULE_SETUP -#line 440 "d2_lexer.ll" +#line 469 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::OUTPUT_OPTIONS: @@ -1989,9 +2045,9 @@ YY_RULE_SETUP } } YY_BREAK -case 39: +case 42: YY_RULE_SETUP -#line 449 "d2_lexer.ll" +#line 478 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::OUTPUT_OPTIONS: @@ -2001,9 +2057,9 @@ YY_RULE_SETUP } } YY_BREAK -case 40: +case 43: YY_RULE_SETUP -#line 458 "d2_lexer.ll" +#line 487 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGERS: @@ -2017,9 +2073,9 @@ YY_RULE_SETUP } } YY_BREAK -case 41: +case 44: YY_RULE_SETUP -#line 471 "d2_lexer.ll" +#line 500 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGERS: @@ -2029,9 +2085,9 @@ YY_RULE_SETUP } } YY_BREAK -case 42: +case 45: YY_RULE_SETUP -#line 480 "d2_lexer.ll" +#line 509 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGERS: @@ -2041,9 +2097,9 @@ YY_RULE_SETUP } } YY_BREAK -case 43: +case 46: YY_RULE_SETUP -#line 489 "d2_lexer.ll" +#line 518 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::CONFIG: @@ -2053,9 +2109,9 @@ YY_RULE_SETUP } } YY_BREAK -case 44: +case 47: YY_RULE_SETUP -#line 498 "d2_lexer.ll" +#line 527 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::CONFIG: @@ -2065,9 +2121,9 @@ YY_RULE_SETUP } } YY_BREAK -case 45: +case 48: YY_RULE_SETUP -#line 507 "d2_lexer.ll" +#line 536 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::CONFIG: @@ -2077,9 +2133,9 @@ YY_RULE_SETUP } } YY_BREAK -case 46: +case 49: YY_RULE_SETUP -#line 517 "d2_lexer.ll" +#line 546 "d2_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -2179,65 +2235,65 @@ YY_RULE_SETUP return isc::d2::D2Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 47: -/* rule 47 can match eol */ +case 50: +/* rule 50 can match eol */ YY_RULE_SETUP -#line 616 "d2_lexer.ll" +#line 645 "d2_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 48: -/* rule 48 can match eol */ +case 51: +/* rule 51 can match eol */ YY_RULE_SETUP -#line 621 "d2_lexer.ll" +#line 650 "d2_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 49: +case 52: YY_RULE_SETUP -#line 626 "d2_lexer.ll" +#line 655 "d2_lexer.ll" { /* Bad string with an open escape at the end */ driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK -case 50: +case 53: YY_RULE_SETUP -#line 631 "d2_lexer.ll" +#line 660 "d2_lexer.ll" { return isc::d2::D2Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 51: +case 54: YY_RULE_SETUP -#line 632 "d2_lexer.ll" +#line 661 "d2_lexer.ll" { return isc::d2::D2Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 52: +case 55: YY_RULE_SETUP -#line 633 "d2_lexer.ll" +#line 662 "d2_lexer.ll" { return isc::d2::D2Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 53: +case 56: YY_RULE_SETUP -#line 634 "d2_lexer.ll" +#line 663 "d2_lexer.ll" { return isc::d2::D2Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 54: +case 57: YY_RULE_SETUP -#line 635 "d2_lexer.ll" +#line 664 "d2_lexer.ll" { return isc::d2::D2Parser::make_COMMA(driver.loc_); } YY_BREAK -case 55: +case 58: YY_RULE_SETUP -#line 636 "d2_lexer.ll" +#line 665 "d2_lexer.ll" { return isc::d2::D2Parser::make_COLON(driver.loc_); } YY_BREAK -case 56: +case 59: YY_RULE_SETUP -#line 638 "d2_lexer.ll" +#line 667 "d2_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -2256,9 +2312,9 @@ YY_RULE_SETUP return isc::d2::D2Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 57: +case 60: YY_RULE_SETUP -#line 656 "d2_lexer.ll" +#line 685 "d2_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -2272,43 +2328,43 @@ YY_RULE_SETUP return isc::d2::D2Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 58: +case 61: YY_RULE_SETUP -#line 669 "d2_lexer.ll" +#line 698 "d2_lexer.ll" { string tmp(yytext); return isc::d2::D2Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 59: +case 62: YY_RULE_SETUP -#line 674 "d2_lexer.ll" +#line 703 "d2_lexer.ll" { return isc::d2::D2Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 60: +case 63: YY_RULE_SETUP -#line 678 "d2_lexer.ll" +#line 707 "d2_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 61: +case 64: YY_RULE_SETUP -#line 680 "d2_lexer.ll" +#line 709 "d2_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 62: +case 65: YY_RULE_SETUP -#line 682 "d2_lexer.ll" +#line 711 "d2_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 63: +case 66: YY_RULE_SETUP -#line 684 "d2_lexer.ll" +#line 713 "d2_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 686 "d2_lexer.ll" +#line 715 "d2_lexer.ll" { if (driver.states_.empty()) { return isc::d2::D2Parser::make_END(driver.loc_); @@ -2332,12 +2388,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 64: +case 67: YY_RULE_SETUP -#line 709 "d2_lexer.ll" +#line 738 "d2_lexer.ll" ECHO; YY_BREAK -#line 2340 "d2_lexer.cc" +#line 2396 "d2_lexer.cc" case YY_END_OF_BUFFER: { @@ -2656,7 +2712,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 388 ) + if ( yy_current_state >= 417 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -2689,11 +2745,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 388 ) + if ( yy_current_state >= 417 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 387); + yy_is_jam = (yy_current_state == 416); return yy_is_jam ? 0 : yy_current_state; } @@ -3442,7 +3498,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 709 "d2_lexer.ll" +#line 738 "d2_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/d2/d2_parser.cc b/src/bin/d2/d2_parser.cc index 72d47f37b2..7633b75e36 100644 --- a/src/bin/d2/d2_parser.cc +++ b/src/bin/d2/d2_parser.cc @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.2.1. +// A Bison parser, made by GNU Bison 3.2.4. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -245,25 +245,25 @@ namespace isc { namespace d2 { { switch (that.type_get ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 56: // "boolean" + case 59: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 55: // "floating point" + case 58: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 54: // "integer" + case 57: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 53: // "constant string" + case 56: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -282,25 +282,25 @@ namespace isc { namespace d2 { { switch (that.type_get ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 56: // "boolean" + case 59: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 55: // "floating point" + case 58: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 54: // "integer" + case 57: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 53: // "constant string" + case 56: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -319,25 +319,25 @@ namespace isc { namespace d2 { state = that.state; switch (that.type_get ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value value.move< ElementPtr > (that.value); break; - case 56: // "boolean" + case 59: // "boolean" value.move< bool > (that.value); break; - case 55: // "floating point" + case 58: // "floating point" value.move< double > (that.value); break; - case 54: // "integer" + case 57: // "integer" value.move< int64_t > (that.value); break; - case 53: // "constant string" + case 56: // "constant string" value.move< std::string > (that.value); break; @@ -378,51 +378,51 @@ namespace isc { namespace d2 { << yysym.location << ": "; switch (yytype) { - case 53: // "constant string" + case 56: // "constant string" -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< std::string > (); } #line 386 "d2_parser.cc" // lalr1.cc:672 break; - case 54: // "integer" + case 57: // "integer" -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< int64_t > (); } #line 393 "d2_parser.cc" // lalr1.cc:672 break; - case 55: // "floating point" + case 58: // "floating point" -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< double > (); } #line 400 "d2_parser.cc" // lalr1.cc:672 break; - case 56: // "boolean" + case 59: // "boolean" -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< bool > (); } #line 407 "d2_parser.cc" // lalr1.cc:672 break; - case 68: // value + case 71: // value -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 414 "d2_parser.cc" // lalr1.cc:672 break; - case 72: // map_value + case 75: // map_value -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 421 "d2_parser.cc" // lalr1.cc:672 break; - case 96: // ncr_protocol_value + case 99: // ncr_protocol_value -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 428 "d2_parser.cc" // lalr1.cc:672 break; @@ -634,25 +634,25 @@ namespace isc { namespace d2 { when using variants. */ switch (yyr1_[yyn]) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value yylhs.value.emplace< ElementPtr > (); break; - case 56: // "boolean" + case 59: // "boolean" yylhs.value.emplace< bool > (); break; - case 55: // "floating point" + case 58: // "floating point" yylhs.value.emplace< double > (); break; - case 54: // "integer" + case 57: // "integer" yylhs.value.emplace< int64_t > (); break; - case 53: // "constant string" + case 56: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -677,103 +677,103 @@ namespace isc { namespace d2 { switch (yyn) { case 2: -#line 120 "d2_parser.yy" // lalr1.cc:907 +#line 124 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.NO_KEYWORD; } #line 683 "d2_parser.cc" // lalr1.cc:907 break; case 4: -#line 121 "d2_parser.yy" // lalr1.cc:907 +#line 125 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.CONFIG; } #line 689 "d2_parser.cc" // lalr1.cc:907 break; case 6: -#line 122 "d2_parser.yy" // lalr1.cc:907 +#line 126 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DHCPDDNS; } #line 695 "d2_parser.cc" // lalr1.cc:907 break; case 8: -#line 123 "d2_parser.yy" // lalr1.cc:907 +#line 127 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.TSIG_KEY; } #line 701 "d2_parser.cc" // lalr1.cc:907 break; case 10: -#line 124 "d2_parser.yy" // lalr1.cc:907 +#line 128 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.TSIG_KEYS; } #line 707 "d2_parser.cc" // lalr1.cc:907 break; case 12: -#line 125 "d2_parser.yy" // lalr1.cc:907 +#line 129 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DDNS_DOMAIN; } #line 713 "d2_parser.cc" // lalr1.cc:907 break; case 14: -#line 126 "d2_parser.yy" // lalr1.cc:907 +#line 130 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DDNS_DOMAINS; } #line 719 "d2_parser.cc" // lalr1.cc:907 break; case 16: -#line 127 "d2_parser.yy" // lalr1.cc:907 +#line 131 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DNS_SERVERS; } #line 725 "d2_parser.cc" // lalr1.cc:907 break; case 18: -#line 128 "d2_parser.yy" // lalr1.cc:907 +#line 132 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DNS_SERVERS; } #line 731 "d2_parser.cc" // lalr1.cc:907 break; case 20: -#line 136 "d2_parser.yy" // lalr1.cc:907 +#line 140 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 737 "d2_parser.cc" // lalr1.cc:907 break; case 21: -#line 137 "d2_parser.yy" // lalr1.cc:907 +#line 141 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } #line 743 "d2_parser.cc" // lalr1.cc:907 break; case 22: -#line 138 "d2_parser.yy" // lalr1.cc:907 +#line 142 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } #line 749 "d2_parser.cc" // lalr1.cc:907 break; case 23: -#line 139 "d2_parser.yy" // lalr1.cc:907 +#line 143 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 755 "d2_parser.cc" // lalr1.cc:907 break; case 24: -#line 140 "d2_parser.yy" // lalr1.cc:907 +#line 144 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 761 "d2_parser.cc" // lalr1.cc:907 break; case 25: -#line 141 "d2_parser.yy" // lalr1.cc:907 +#line 145 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 767 "d2_parser.cc" // lalr1.cc:907 break; case 26: -#line 142 "d2_parser.yy" // lalr1.cc:907 +#line 146 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 773 "d2_parser.cc" // lalr1.cc:907 break; case 27: -#line 145 "d2_parser.yy" // lalr1.cc:907 +#line 149 "d2_parser.yy" // lalr1.cc:907 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); @@ -782,7 +782,7 @@ namespace isc { namespace d2 { break; case 28: -#line 150 "d2_parser.yy" // lalr1.cc:907 +#line 154 "d2_parser.yy" // lalr1.cc:907 { // This code is executed when we're about to start parsing // the content of the map @@ -793,7 +793,7 @@ namespace isc { namespace d2 { break; case 29: -#line 155 "d2_parser.yy" // lalr1.cc:907 +#line 159 "d2_parser.yy" // lalr1.cc:907 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -803,13 +803,13 @@ namespace isc { namespace d2 { break; case 30: -#line 161 "d2_parser.yy" // lalr1.cc:907 +#line 165 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 809 "d2_parser.cc" // lalr1.cc:907 break; case 33: -#line 168 "d2_parser.yy" // lalr1.cc:907 +#line 172 "d2_parser.yy" // lalr1.cc:907 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); @@ -818,7 +818,7 @@ namespace isc { namespace d2 { break; case 34: -#line 172 "d2_parser.yy" // lalr1.cc:907 +#line 176 "d2_parser.yy" // lalr1.cc:907 { // map consisting of a shorter map followed by // comma and string:value @@ -828,7 +828,7 @@ namespace isc { namespace d2 { break; case 35: -#line 179 "d2_parser.yy" // lalr1.cc:907 +#line 183 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -837,7 +837,7 @@ namespace isc { namespace d2 { break; case 36: -#line 182 "d2_parser.yy" // lalr1.cc:907 +#line 186 "d2_parser.yy" // lalr1.cc:907 { // list parsing complete. Put any sanity checking here } @@ -845,7 +845,7 @@ namespace isc { namespace d2 { break; case 39: -#line 190 "d2_parser.yy" // lalr1.cc:907 +#line 194 "d2_parser.yy" // lalr1.cc:907 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -854,7 +854,7 @@ namespace isc { namespace d2 { break; case 40: -#line 194 "d2_parser.yy" // lalr1.cc:907 +#line 198 "d2_parser.yy" // lalr1.cc:907 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -863,7 +863,7 @@ namespace isc { namespace d2 { break; case 41: -#line 205 "d2_parser.yy" // lalr1.cc:907 +#line 209 "d2_parser.yy" // lalr1.cc:907 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); @@ -874,7 +874,7 @@ namespace isc { namespace d2 { break; case 42: -#line 215 "d2_parser.yy" // lalr1.cc:907 +#line 219 "d2_parser.yy" // lalr1.cc:907 { // This code is executed when we're about to start parsing // the content of the map @@ -885,7 +885,7 @@ namespace isc { namespace d2 { break; case 43: -#line 220 "d2_parser.yy" // lalr1.cc:907 +#line 224 "d2_parser.yy" // lalr1.cc:907 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -895,7 +895,7 @@ namespace isc { namespace d2 { break; case 52: -#line 242 "d2_parser.yy" // lalr1.cc:907 +#line 246 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("DhcpDdns", m); @@ -906,7 +906,7 @@ namespace isc { namespace d2 { break; case 53: -#line 247 "d2_parser.yy" // lalr1.cc:907 +#line 251 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -915,7 +915,7 @@ namespace isc { namespace d2 { break; case 54: -#line 252 "d2_parser.yy" // lalr1.cc:907 +#line 256 "d2_parser.yy" // lalr1.cc:907 { // Parse the dhcpddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -925,23 +925,23 @@ namespace isc { namespace d2 { break; case 55: -#line 256 "d2_parser.yy" // lalr1.cc:907 +#line 260 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 933 "d2_parser.cc" // lalr1.cc:907 break; - case 69: -#line 278 "d2_parser.yy" // lalr1.cc:907 + case 70: +#line 283 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 941 "d2_parser.cc" // lalr1.cc:907 break; - case 70: -#line 280 "d2_parser.yy" // lalr1.cc:907 + case 71: +#line 285 "d2_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", s); @@ -950,8 +950,8 @@ namespace isc { namespace d2 { #line 951 "d2_parser.cc" // lalr1.cc:907 break; - case 71: -#line 286 "d2_parser.yy" // lalr1.cc:907 + case 72: +#line 291 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< int64_t > () <= 0 || yystack_[0].value.as< int64_t > () >= 65536 ) { error(yystack_[0].location, "port must be greater than zero but less than 65536"); @@ -962,8 +962,8 @@ namespace isc { namespace d2 { #line 963 "d2_parser.cc" // lalr1.cc:907 break; - case 72: -#line 294 "d2_parser.yy" // lalr1.cc:907 + case 73: +#line 299 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< int64_t > () <= 0) { error(yystack_[0].location, "dns-server-timeout must be greater than zero"); @@ -975,16 +975,16 @@ namespace isc { namespace d2 { #line 976 "d2_parser.cc" // lalr1.cc:907 break; - case 73: -#line 303 "d2_parser.yy" // lalr1.cc:907 + case 74: +#line 308 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NCR_PROTOCOL); } #line 984 "d2_parser.cc" // lalr1.cc:907 break; - case 74: -#line 305 "d2_parser.yy" // lalr1.cc:907 + case 75: +#line 310 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); @@ -992,28 +992,28 @@ namespace isc { namespace d2 { #line 993 "d2_parser.cc" // lalr1.cc:907 break; - case 75: -#line 311 "d2_parser.yy" // lalr1.cc:907 + case 76: +#line 316 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } #line 999 "d2_parser.cc" // lalr1.cc:907 break; - case 76: -#line 312 "d2_parser.yy" // lalr1.cc:907 + case 77: +#line 317 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } #line 1005 "d2_parser.cc" // lalr1.cc:907 break; - case 77: -#line 315 "d2_parser.yy" // lalr1.cc:907 + case 78: +#line 320 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NCR_FORMAT); } #line 1013 "d2_parser.cc" // lalr1.cc:907 break; - case 78: -#line 317 "d2_parser.yy" // lalr1.cc:907 + case 79: +#line 322 "d2_parser.yy" // lalr1.cc:907 { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); @@ -1022,16 +1022,16 @@ namespace isc { namespace d2 { #line 1023 "d2_parser.cc" // lalr1.cc:907 break; - case 79: -#line 323 "d2_parser.yy" // lalr1.cc:907 + case 80: +#line 328 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1031 "d2_parser.cc" // lalr1.cc:907 break; - case 80: -#line 325 "d2_parser.yy" // lalr1.cc:907 + case 81: +#line 330 "d2_parser.yy" // lalr1.cc:907 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); @@ -1057,16 +1057,16 @@ namespace isc { namespace d2 { #line 1058 "d2_parser.cc" // lalr1.cc:907 break; - case 81: -#line 348 "d2_parser.yy" // lalr1.cc:907 + case 82: +#line 353 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1066 "d2_parser.cc" // lalr1.cc:907 break; - case 82: -#line 350 "d2_parser.yy" // lalr1.cc:907 + case 83: +#line 355 "d2_parser.yy" // lalr1.cc:907 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -1094,8 +1094,8 @@ namespace isc { namespace d2 { #line 1095 "d2_parser.cc" // lalr1.cc:907 break; - case 83: -#line 375 "d2_parser.yy" // lalr1.cc:907 + case 84: +#line 380 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("forward-ddns", m); @@ -1105,8 +1105,8 @@ namespace isc { namespace d2 { #line 1106 "d2_parser.cc" // lalr1.cc:907 break; - case 84: -#line 380 "d2_parser.yy" // lalr1.cc:907 + case 85: +#line 385 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1114,8 +1114,8 @@ namespace isc { namespace d2 { #line 1115 "d2_parser.cc" // lalr1.cc:907 break; - case 85: -#line 385 "d2_parser.yy" // lalr1.cc:907 + case 86: +#line 390 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reverse-ddns", m); @@ -1125,8 +1125,8 @@ namespace isc { namespace d2 { #line 1126 "d2_parser.cc" // lalr1.cc:907 break; - case 86: -#line 390 "d2_parser.yy" // lalr1.cc:907 + case 87: +#line 395 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1134,8 +1134,8 @@ namespace isc { namespace d2 { #line 1135 "d2_parser.cc" // lalr1.cc:907 break; - case 93: -#line 409 "d2_parser.yy" // lalr1.cc:907 + case 94: +#line 414 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-domains", l); @@ -1145,8 +1145,8 @@ namespace isc { namespace d2 { #line 1146 "d2_parser.cc" // lalr1.cc:907 break; - case 94: -#line 414 "d2_parser.yy" // lalr1.cc:907 + case 95: +#line 419 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1154,8 +1154,8 @@ namespace isc { namespace d2 { #line 1155 "d2_parser.cc" // lalr1.cc:907 break; - case 95: -#line 419 "d2_parser.yy" // lalr1.cc:907 + case 96: +#line 424 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -1163,16 +1163,16 @@ namespace isc { namespace d2 { #line 1164 "d2_parser.cc" // lalr1.cc:907 break; - case 96: -#line 422 "d2_parser.yy" // lalr1.cc:907 + case 97: +#line 427 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1172 "d2_parser.cc" // lalr1.cc:907 break; - case 101: -#line 434 "d2_parser.yy" // lalr1.cc:907 + case 102: +#line 439 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1181,16 +1181,16 @@ namespace isc { namespace d2 { #line 1182 "d2_parser.cc" // lalr1.cc:907 break; - case 102: -#line 438 "d2_parser.yy" // lalr1.cc:907 + case 103: +#line 443 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } #line 1190 "d2_parser.cc" // lalr1.cc:907 break; - case 103: -#line 442 "d2_parser.yy" // lalr1.cc:907 + case 104: +#line 447 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); @@ -1198,24 +1198,24 @@ namespace isc { namespace d2 { #line 1199 "d2_parser.cc" // lalr1.cc:907 break; - case 104: -#line 445 "d2_parser.yy" // lalr1.cc:907 + case 105: +#line 450 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1207 "d2_parser.cc" // lalr1.cc:907 break; - case 113: -#line 462 "d2_parser.yy" // lalr1.cc:907 + case 114: +#line 467 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1215 "d2_parser.cc" // lalr1.cc:907 break; - case 114: -#line 464 "d2_parser.yy" // lalr1.cc:907 + case 115: +#line 469 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () == "") { error(yystack_[1].location, "Ddns domain name cannot be blank"); @@ -1228,16 +1228,16 @@ namespace isc { namespace d2 { #line 1229 "d2_parser.cc" // lalr1.cc:907 break; - case 115: -#line 474 "d2_parser.yy" // lalr1.cc:907 + case 116: +#line 479 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1237 "d2_parser.cc" // lalr1.cc:907 break; - case 116: -#line 476 "d2_parser.yy" // lalr1.cc:907 + case 117: +#line 481 "d2_parser.yy" // lalr1.cc:907 { ElementPtr elem(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1247,8 +1247,8 @@ namespace isc { namespace d2 { #line 1248 "d2_parser.cc" // lalr1.cc:907 break; - case 117: -#line 486 "d2_parser.yy" // lalr1.cc:907 + case 118: +#line 491 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dns-servers", l); @@ -1258,8 +1258,8 @@ namespace isc { namespace d2 { #line 1259 "d2_parser.cc" // lalr1.cc:907 break; - case 118: -#line 491 "d2_parser.yy" // lalr1.cc:907 + case 119: +#line 496 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1267,8 +1267,8 @@ namespace isc { namespace d2 { #line 1268 "d2_parser.cc" // lalr1.cc:907 break; - case 119: -#line 496 "d2_parser.yy" // lalr1.cc:907 + case 120: +#line 501 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -1276,16 +1276,16 @@ namespace isc { namespace d2 { #line 1277 "d2_parser.cc" // lalr1.cc:907 break; - case 120: -#line 499 "d2_parser.yy" // lalr1.cc:907 + case 121: +#line 504 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1285 "d2_parser.cc" // lalr1.cc:907 break; - case 123: -#line 507 "d2_parser.yy" // lalr1.cc:907 + case 124: +#line 512 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1294,16 +1294,16 @@ namespace isc { namespace d2 { #line 1295 "d2_parser.cc" // lalr1.cc:907 break; - case 124: -#line 511 "d2_parser.yy" // lalr1.cc:907 + case 125: +#line 516 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } #line 1303 "d2_parser.cc" // lalr1.cc:907 break; - case 125: -#line 515 "d2_parser.yy" // lalr1.cc:907 + case 126: +#line 520 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); @@ -1311,24 +1311,24 @@ namespace isc { namespace d2 { #line 1312 "d2_parser.cc" // lalr1.cc:907 break; - case 126: -#line 518 "d2_parser.yy" // lalr1.cc:907 + case 127: +#line 523 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1320 "d2_parser.cc" // lalr1.cc:907 break; - case 135: -#line 534 "d2_parser.yy" // lalr1.cc:907 + case 136: +#line 539 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1328 "d2_parser.cc" // lalr1.cc:907 break; - case 136: -#line 536 "d2_parser.yy" // lalr1.cc:907 + case 137: +#line 541 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () != "") { error(yystack_[1].location, "hostname is not yet supported"); @@ -1341,16 +1341,16 @@ namespace isc { namespace d2 { #line 1342 "d2_parser.cc" // lalr1.cc:907 break; - case 137: -#line 546 "d2_parser.yy" // lalr1.cc:907 + case 138: +#line 551 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1350 "d2_parser.cc" // lalr1.cc:907 break; - case 138: -#line 548 "d2_parser.yy" // lalr1.cc:907 + case 139: +#line 553 "d2_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", s); @@ -1359,8 +1359,8 @@ namespace isc { namespace d2 { #line 1360 "d2_parser.cc" // lalr1.cc:907 break; - case 139: -#line 554 "d2_parser.yy" // lalr1.cc:907 + case 140: +#line 559 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< int64_t > () <= 0 || yystack_[0].value.as< int64_t > () >= 65536 ) { error(yystack_[0].location, "port must be greater than zero but less than 65536"); @@ -1371,8 +1371,8 @@ namespace isc { namespace d2 { #line 1372 "d2_parser.cc" // lalr1.cc:907 break; - case 140: -#line 568 "d2_parser.yy" // lalr1.cc:907 + case 141: +#line 573 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tsig-keys", l); @@ -1382,8 +1382,8 @@ namespace isc { namespace d2 { #line 1383 "d2_parser.cc" // lalr1.cc:907 break; - case 141: -#line 573 "d2_parser.yy" // lalr1.cc:907 + case 142: +#line 578 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1391,8 +1391,8 @@ namespace isc { namespace d2 { #line 1392 "d2_parser.cc" // lalr1.cc:907 break; - case 142: -#line 578 "d2_parser.yy" // lalr1.cc:907 + case 143: +#line 583 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -1400,16 +1400,16 @@ namespace isc { namespace d2 { #line 1401 "d2_parser.cc" // lalr1.cc:907 break; - case 143: -#line 581 "d2_parser.yy" // lalr1.cc:907 + case 144: +#line 586 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1409 "d2_parser.cc" // lalr1.cc:907 break; - case 148: -#line 593 "d2_parser.yy" // lalr1.cc:907 + case 149: +#line 598 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1418,16 +1418,16 @@ namespace isc { namespace d2 { #line 1419 "d2_parser.cc" // lalr1.cc:907 break; - case 149: -#line 597 "d2_parser.yy" // lalr1.cc:907 + case 150: +#line 602 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } #line 1427 "d2_parser.cc" // lalr1.cc:907 break; - case 150: -#line 601 "d2_parser.yy" // lalr1.cc:907 + case 151: +#line 606 "d2_parser.yy" // lalr1.cc:907 { // Parse tsig key list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1436,24 +1436,24 @@ namespace isc { namespace d2 { #line 1437 "d2_parser.cc" // lalr1.cc:907 break; - case 151: -#line 605 "d2_parser.yy" // lalr1.cc:907 + case 152: +#line 610 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1445 "d2_parser.cc" // lalr1.cc:907 break; - case 161: -#line 623 "d2_parser.yy" // lalr1.cc:907 + case 162: +#line 628 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1453 "d2_parser.cc" // lalr1.cc:907 break; - case 162: -#line 625 "d2_parser.yy" // lalr1.cc:907 + case 163: +#line 630 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () == "") { error(yystack_[1].location, "TSIG key name cannot be blank"); @@ -1466,16 +1466,16 @@ namespace isc { namespace d2 { #line 1467 "d2_parser.cc" // lalr1.cc:907 break; - case 163: -#line 635 "d2_parser.yy" // lalr1.cc:907 + case 164: +#line 640 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1475 "d2_parser.cc" // lalr1.cc:907 break; - case 164: -#line 637 "d2_parser.yy" // lalr1.cc:907 + case 165: +#line 642 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () == "") { error(yystack_[1].location, "TSIG key algorithm cannot be blank"); @@ -1487,8 +1487,8 @@ namespace isc { namespace d2 { #line 1488 "d2_parser.cc" // lalr1.cc:907 break; - case 165: -#line 646 "d2_parser.yy" // lalr1.cc:907 + case 166: +#line 651 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< int64_t > () < 0 || (yystack_[0].value.as< int64_t > () > 0 && (yystack_[0].value.as< int64_t > () % 8 != 0))) { error(yystack_[0].location, "TSIG key digest-bits must either be zero or a positive, multiple of eight"); @@ -1499,16 +1499,16 @@ namespace isc { namespace d2 { #line 1500 "d2_parser.cc" // lalr1.cc:907 break; - case 166: -#line 654 "d2_parser.yy" // lalr1.cc:907 + case 167: +#line 659 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1508 "d2_parser.cc" // lalr1.cc:907 break; - case 167: -#line 656 "d2_parser.yy" // lalr1.cc:907 + case 168: +#line 661 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () == "") { error(yystack_[1].location, "TSIG key secret cannot be blank"); @@ -1520,245 +1520,301 @@ namespace isc { namespace d2 { #line 1521 "d2_parser.cc" // lalr1.cc:907 break; - case 168: -#line 669 "d2_parser.yy" // lalr1.cc:907 + case 169: +#line 675 "d2_parser.yy" // lalr1.cc:907 + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("control-socket", m); + ctx.stack_.push_back(m); + ctx.enter(ctx.CONTROL_SOCKET); +} +#line 1532 "d2_parser.cc" // lalr1.cc:907 + break; + + case 170: +#line 680 "d2_parser.yy" // lalr1.cc:907 + { + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 1541 "d2_parser.cc" // lalr1.cc:907 + break; + + case 178: +#line 696 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1529 "d2_parser.cc" // lalr1.cc:907 +#line 1549 "d2_parser.cc" // lalr1.cc:907 break; - case 169: -#line 671 "d2_parser.yy" // lalr1.cc:907 + case 179: +#line 698 "d2_parser.yy" // lalr1.cc:907 + { + ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("socket-type", stype); + ctx.leave(); +} +#line 1559 "d2_parser.cc" // lalr1.cc:907 + break; + + case 180: +#line 704 "d2_parser.yy" // lalr1.cc:907 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1567 "d2_parser.cc" // lalr1.cc:907 + break; + + case 181: +#line 706 "d2_parser.yy" // lalr1.cc:907 + { + ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("socket-name", name); + ctx.leave(); +} +#line 1577 "d2_parser.cc" // lalr1.cc:907 + break; + + case 182: +#line 714 "d2_parser.yy" // lalr1.cc:907 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1585 "d2_parser.cc" // lalr1.cc:907 + break; + + case 183: +#line 716 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1538 "d2_parser.cc" // lalr1.cc:907 +#line 1594 "d2_parser.cc" // lalr1.cc:907 break; - case 170: -#line 676 "d2_parser.yy" // lalr1.cc:907 + case 184: +#line 721 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1546 "d2_parser.cc" // lalr1.cc:907 +#line 1602 "d2_parser.cc" // lalr1.cc:907 break; - case 171: -#line 678 "d2_parser.yy" // lalr1.cc:907 + case 185: +#line 723 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1555 "d2_parser.cc" // lalr1.cc:907 +#line 1611 "d2_parser.cc" // lalr1.cc:907 break; - case 172: -#line 683 "d2_parser.yy" // lalr1.cc:907 + case 186: +#line 728 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1563 "d2_parser.cc" // lalr1.cc:907 +#line 1619 "d2_parser.cc" // lalr1.cc:907 break; - case 173: -#line 685 "d2_parser.yy" // lalr1.cc:907 + case 187: +#line 730 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1572 "d2_parser.cc" // lalr1.cc:907 +#line 1628 "d2_parser.cc" // lalr1.cc:907 break; - case 174: -#line 695 "d2_parser.yy" // lalr1.cc:907 + case 188: +#line 740 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 1583 "d2_parser.cc" // lalr1.cc:907 +#line 1639 "d2_parser.cc" // lalr1.cc:907 break; - case 175: -#line 700 "d2_parser.yy" // lalr1.cc:907 + case 189: +#line 745 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1592 "d2_parser.cc" // lalr1.cc:907 +#line 1648 "d2_parser.cc" // lalr1.cc:907 break; - case 179: -#line 717 "d2_parser.yy" // lalr1.cc:907 + case 193: +#line 762 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 1603 "d2_parser.cc" // lalr1.cc:907 +#line 1659 "d2_parser.cc" // lalr1.cc:907 break; - case 180: -#line 722 "d2_parser.yy" // lalr1.cc:907 + case 194: +#line 767 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1612 "d2_parser.cc" // lalr1.cc:907 +#line 1668 "d2_parser.cc" // lalr1.cc:907 break; - case 183: -#line 734 "d2_parser.yy" // lalr1.cc:907 + case 197: +#line 779 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 1622 "d2_parser.cc" // lalr1.cc:907 +#line 1678 "d2_parser.cc" // lalr1.cc:907 break; - case 184: -#line 738 "d2_parser.yy" // lalr1.cc:907 + case 198: +#line 783 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 1630 "d2_parser.cc" // lalr1.cc:907 +#line 1686 "d2_parser.cc" // lalr1.cc:907 break; - case 194: -#line 755 "d2_parser.yy" // lalr1.cc:907 + case 208: +#line 800 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1638 "d2_parser.cc" // lalr1.cc:907 +#line 1694 "d2_parser.cc" // lalr1.cc:907 break; - case 195: -#line 757 "d2_parser.yy" // lalr1.cc:907 + case 209: +#line 802 "d2_parser.yy" // lalr1.cc:907 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1648 "d2_parser.cc" // lalr1.cc:907 +#line 1704 "d2_parser.cc" // lalr1.cc:907 break; - case 196: -#line 763 "d2_parser.yy" // lalr1.cc:907 + case 210: +#line 808 "d2_parser.yy" // lalr1.cc:907 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 1657 "d2_parser.cc" // lalr1.cc:907 +#line 1713 "d2_parser.cc" // lalr1.cc:907 break; - case 197: -#line 767 "d2_parser.yy" // lalr1.cc:907 + case 211: +#line 812 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1665 "d2_parser.cc" // lalr1.cc:907 +#line 1721 "d2_parser.cc" // lalr1.cc:907 break; - case 198: -#line 769 "d2_parser.yy" // lalr1.cc:907 + case 212: +#line 814 "d2_parser.yy" // lalr1.cc:907 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 1675 "d2_parser.cc" // lalr1.cc:907 +#line 1731 "d2_parser.cc" // lalr1.cc:907 break; - case 199: -#line 775 "d2_parser.yy" // lalr1.cc:907 + case 213: +#line 820 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 1686 "d2_parser.cc" // lalr1.cc:907 +#line 1742 "d2_parser.cc" // lalr1.cc:907 break; - case 200: -#line 780 "d2_parser.yy" // lalr1.cc:907 + case 214: +#line 825 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1695 "d2_parser.cc" // lalr1.cc:907 +#line 1751 "d2_parser.cc" // lalr1.cc:907 break; - case 203: -#line 789 "d2_parser.yy" // lalr1.cc:907 + case 217: +#line 834 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1705 "d2_parser.cc" // lalr1.cc:907 +#line 1761 "d2_parser.cc" // lalr1.cc:907 break; - case 204: -#line 793 "d2_parser.yy" // lalr1.cc:907 + case 218: +#line 838 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 1713 "d2_parser.cc" // lalr1.cc:907 +#line 1769 "d2_parser.cc" // lalr1.cc:907 break; - case 211: -#line 807 "d2_parser.yy" // lalr1.cc:907 + case 225: +#line 852 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1721 "d2_parser.cc" // lalr1.cc:907 +#line 1777 "d2_parser.cc" // lalr1.cc:907 break; - case 212: -#line 809 "d2_parser.yy" // lalr1.cc:907 + case 226: +#line 854 "d2_parser.yy" // lalr1.cc:907 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 1731 "d2_parser.cc" // lalr1.cc:907 +#line 1787 "d2_parser.cc" // lalr1.cc:907 break; - case 213: -#line 815 "d2_parser.yy" // lalr1.cc:907 + case 227: +#line 860 "d2_parser.yy" // lalr1.cc:907 { ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 1740 "d2_parser.cc" // lalr1.cc:907 +#line 1796 "d2_parser.cc" // lalr1.cc:907 break; - case 214: -#line 820 "d2_parser.yy" // lalr1.cc:907 + case 228: +#line 865 "d2_parser.yy" // lalr1.cc:907 { ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 1749 "d2_parser.cc" // lalr1.cc:907 +#line 1805 "d2_parser.cc" // lalr1.cc:907 break; - case 215: -#line 825 "d2_parser.yy" // lalr1.cc:907 + case 229: +#line 870 "d2_parser.yy" // lalr1.cc:907 { ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 1758 "d2_parser.cc" // lalr1.cc:907 +#line 1814 "d2_parser.cc" // lalr1.cc:907 break; -#line 1762 "d2_parser.cc" // lalr1.cc:907 +#line 1818 "d2_parser.cc" // lalr1.cc:907 default: break; } @@ -2016,49 +2072,52 @@ namespace isc { namespace d2 { } - const signed char D2Parser::yypact_ninf_ = -90; + const signed char D2Parser::yypact_ninf_ = -92; const signed char D2Parser::yytable_ninf_ = -1; const short D2Parser::yypact_[] = { - 47, -90, -90, -90, -90, -90, -90, -90, -90, -90, - 12, 2, 1, 23, 33, 11, 38, 58, 64, 73, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -90, -90, -90, -90, -90, -90, -90, 2, -25, - 8, 9, 15, 96, 37, 115, 21, 116, -90, 124, - 113, 127, 130, 137, -90, -90, -90, -90, -90, 146, - -90, 19, -90, -90, -90, -90, -90, -90, -90, 148, - 150, -90, -90, -90, -90, -90, -90, -90, -90, 46, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -90, 152, -90, -90, -90, -90, -90, 76, -90, - -90, -90, -90, -90, -90, 151, 155, -90, -90, -90, - -90, -90, -90, -90, 77, -90, -90, -90, -90, -90, - 153, 157, -90, -90, 161, -90, -90, -90, -90, 78, - -90, -90, -90, -90, -90, 118, -90, -90, 2, 2, - -90, 108, 162, 163, 164, 165, 166, -90, 8, -90, - 167, 119, 120, 168, 171, 172, 173, 174, 175, 176, - 9, -90, 177, 128, 179, 180, 15, -90, 15, -90, - 96, 181, 182, 183, 37, -90, 37, -90, 115, 184, - 135, 186, 21, -90, 21, 116, -90, -90, -90, 187, - 2, 2, 2, 185, 188, -90, 140, -90, -90, 70, - 178, 189, 141, 190, 195, 198, -90, 154, -90, 156, - 158, -90, 79, -90, 159, 199, 160, -90, 97, -90, - 169, -90, 170, -90, 98, -90, 2, -90, -90, -90, - 9, 191, -90, -90, -90, -90, -90, -90, -90, -90, - -12, -12, 96, -90, -90, -90, -90, -90, 116, -90, - -90, -90, -90, -90, -90, 99, -90, 101, -90, -90, - -90, -90, 109, -90, -90, -90, 110, 200, 126, -90, - 201, 191, -90, 204, -12, -90, -90, -90, -90, 205, - -90, 209, -90, 208, 115, -90, 143, -90, 210, 30, - 208, -90, -90, -90, -90, 213, -90, -90, -90, -90, - 111, -90, -90, -90, -90, -90, -90, 214, 215, 192, - 216, 30, -90, 194, 219, -90, 197, -90, -90, 218, - -90, -90, 145, -90, 34, 218, -90, -90, 217, 223, - 224, 112, -90, -90, -90, -90, -90, -90, 225, 196, - 202, 203, 34, -90, 206, -90, -90, -90, -90, -90 + 50, -92, -92, -92, -92, -92, -92, -92, -92, -92, + 12, 2, 1, 23, 42, 11, 44, 17, 59, 65, + -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -92, 2, 18, + 8, 9, 15, 87, 40, 99, 13, 100, -92, 102, + 122, 129, 118, 131, -92, -92, -92, -92, -92, 137, + -92, 49, -92, -92, -92, -92, -92, -92, -92, 139, + 147, -92, -92, -92, -92, -92, -92, -92, -92, -92, + 78, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -92, -92, -92, 157, -92, -92, -92, -92, -92, + 79, -92, -92, -92, -92, -92, -92, 164, 132, -92, + -92, -92, -92, -92, -92, -92, 85, -92, -92, -92, + -92, -92, 167, 150, -92, -92, 158, -92, -92, -92, + -92, 106, -92, -92, -92, -92, -92, 47, -92, -92, + 2, 2, -92, 107, 170, 171, 172, 173, 174, -92, + 8, -92, 175, 123, 125, 177, 179, 180, 181, 182, + 183, 184, 185, 9, -92, 186, 134, 188, 189, 15, + -92, 15, -92, 87, 190, 191, 192, 40, -92, 40, + -92, 99, 193, 141, 195, 13, -92, 13, 100, -92, + -92, -92, 196, 2, 2, 2, 194, 201, -92, 153, + -92, -92, 22, 198, 203, 155, 205, 206, 209, 208, + -92, 160, -92, 161, 168, -92, 112, -92, 169, 215, + 176, -92, 113, -92, 178, -92, 187, -92, 114, -92, + 2, -92, -92, -92, 9, 197, -92, -92, -92, -92, + -92, -92, -92, -92, -12, -12, 87, 55, -92, -92, + -92, -92, -92, 100, -92, -92, -92, -92, -92, -92, + 115, -92, 116, -92, -92, -92, -92, 124, -92, -92, + -92, 146, 216, -92, -92, -92, -92, -92, 149, -92, + -92, -92, 89, -92, 199, 197, -92, 217, -12, -92, + -92, -92, 219, 222, 55, -92, -92, 223, -92, 224, + -92, 200, 202, -92, 220, 99, -92, -92, -92, 165, + -92, 225, 33, 220, -92, -92, -92, -92, 226, -92, + -92, -92, -92, 152, -92, -92, -92, -92, -92, -92, + 229, 232, 204, 233, 33, -92, 207, 234, -92, 210, + -92, -92, 231, -92, -92, 166, -92, 39, 231, -92, + -92, 236, 237, 238, 156, -92, -92, -92, -92, -92, + -92, 240, 211, 212, 218, 39, -92, 221, -92, -92, + -92, -92, -92 }; const unsigned char @@ -2067,111 +2126,118 @@ namespace isc { namespace d2 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 35, 28, 24, 23, 20, 21, 22, 27, 3, - 25, 26, 42, 5, 54, 7, 150, 9, 142, 11, - 103, 13, 95, 15, 125, 17, 119, 19, 37, 31, - 0, 0, 0, 144, 0, 97, 0, 0, 39, 0, - 38, 0, 0, 32, 168, 170, 172, 52, 174, 0, - 51, 0, 44, 49, 46, 48, 50, 47, 69, 0, - 0, 73, 77, 79, 81, 83, 85, 140, 68, 0, - 56, 58, 59, 60, 61, 62, 66, 67, 63, 64, - 65, 163, 0, 166, 161, 160, 158, 159, 0, 152, - 154, 155, 156, 157, 148, 0, 145, 146, 115, 117, - 113, 112, 110, 111, 0, 105, 107, 108, 109, 101, - 0, 98, 99, 137, 0, 135, 134, 132, 133, 0, - 127, 129, 130, 131, 123, 0, 121, 36, 0, 0, - 29, 0, 0, 0, 0, 0, 0, 41, 0, 43, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 151, 0, 143, - 0, 0, 0, 0, 0, 104, 0, 96, 0, 0, - 0, 0, 0, 126, 0, 0, 120, 40, 33, 0, - 0, 0, 0, 0, 0, 45, 0, 71, 72, 0, - 0, 0, 0, 0, 0, 0, 57, 0, 165, 0, - 0, 153, 0, 147, 0, 0, 0, 106, 0, 100, - 0, 139, 0, 128, 0, 122, 0, 169, 171, 173, - 0, 0, 70, 75, 76, 74, 78, 30, 80, 82, - 87, 87, 144, 164, 167, 162, 149, 116, 0, 114, - 102, 138, 136, 124, 34, 0, 179, 0, 176, 178, - 93, 92, 0, 88, 89, 91, 0, 0, 0, 53, - 0, 0, 175, 0, 0, 84, 86, 141, 118, 0, - 177, 0, 90, 0, 97, 183, 0, 181, 0, 0, - 0, 180, 94, 194, 199, 0, 197, 193, 191, 192, - 0, 185, 187, 189, 190, 188, 182, 0, 0, 0, - 0, 0, 184, 0, 0, 196, 0, 186, 195, 0, - 198, 203, 0, 201, 0, 0, 200, 211, 0, 0, - 0, 0, 205, 207, 208, 209, 210, 202, 0, 0, - 0, 0, 0, 204, 0, 213, 214, 215, 206, 212 + 25, 26, 42, 5, 54, 7, 151, 9, 143, 11, + 104, 13, 96, 15, 126, 17, 120, 19, 37, 31, + 0, 0, 0, 145, 0, 98, 0, 0, 39, 0, + 38, 0, 0, 32, 182, 184, 186, 52, 188, 0, + 51, 0, 44, 49, 46, 48, 50, 47, 70, 0, + 0, 74, 78, 80, 82, 84, 86, 141, 169, 69, + 0, 56, 58, 59, 60, 61, 62, 67, 68, 63, + 64, 65, 66, 164, 0, 167, 162, 161, 159, 160, + 0, 153, 155, 156, 157, 158, 149, 0, 146, 147, + 116, 118, 114, 113, 111, 112, 0, 106, 108, 109, + 110, 102, 0, 99, 100, 138, 0, 136, 135, 133, + 134, 0, 128, 130, 131, 132, 124, 0, 122, 36, + 0, 0, 29, 0, 0, 0, 0, 0, 0, 41, + 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 152, 0, 144, 0, 0, 0, 0, 0, 105, 0, + 97, 0, 0, 0, 0, 0, 127, 0, 0, 121, + 40, 33, 0, 0, 0, 0, 0, 0, 45, 0, + 72, 73, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 0, 166, 0, 0, 154, 0, 148, 0, 0, + 0, 107, 0, 101, 0, 140, 0, 129, 0, 123, + 0, 183, 185, 187, 0, 0, 71, 76, 77, 75, + 79, 30, 81, 83, 88, 88, 145, 0, 165, 168, + 163, 150, 117, 0, 115, 103, 139, 137, 125, 34, + 0, 193, 0, 190, 192, 94, 93, 0, 89, 90, + 92, 0, 0, 178, 180, 177, 175, 176, 0, 171, + 173, 174, 0, 53, 0, 0, 189, 0, 0, 85, + 87, 142, 0, 0, 0, 170, 119, 0, 191, 0, + 91, 0, 0, 172, 0, 98, 179, 181, 197, 0, + 195, 0, 0, 0, 194, 95, 208, 213, 0, 211, + 207, 205, 206, 0, 199, 201, 203, 204, 202, 196, + 0, 0, 0, 0, 0, 198, 0, 0, 210, 0, + 200, 209, 0, 212, 217, 0, 215, 0, 0, 214, + 225, 0, 0, 0, 0, 219, 221, 222, 223, 224, + 216, 0, 0, 0, 0, 0, 218, 0, 227, 228, + 229, 220, 226 }; const signed char D2Parser::yypgoto_[] = { - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -38, -90, 20, -90, -90, -90, -90, -90, -90, - -90, -90, -50, -90, -90, -90, 72, -90, -90, -90, - -90, -8, 63, -90, -90, -90, -90, -90, -90, -90, - -90, -90, -51, -90, -39, -90, -90, -90, -90, -90, - -16, -90, -48, -90, -90, -90, -90, -57, -90, 50, - -90, -90, -90, 53, 56, -90, -90, -90, -90, -90, - -90, -90, -90, -17, 48, -90, -90, -90, 51, 52, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -10, - -90, 71, -90, -90, -90, 75, 82, -90, -90, -90, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -90, -90, -27, -90, -90, -90, -45, -90, -90, - -60, -90, -90, -90, -90, -90, -90, -90, -90, -73, - -90, -90, -89, -90, -90, -90, -90, -90 + -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -38, -92, 31, -92, -92, -92, -92, -92, -92, + -92, -92, -50, -92, -92, -92, 86, -92, -92, -92, + -92, 3, 76, -92, -92, -92, -92, -92, -92, -92, + -92, -92, -51, -92, -39, -92, -92, -92, -92, -92, + -5, -92, -47, -92, -92, -92, -92, -63, -92, 64, + -92, -92, -92, 68, 72, -92, -92, -92, -92, -92, + -92, -92, -92, -3, 66, -92, -92, -92, 70, 67, + -92, -92, -92, -92, -92, -92, -92, -92, -92, 20, + -92, 90, -92, -92, -92, 93, 101, -92, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -36, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -17, -92, -92, -92, -44, -92, -92, -62, -92, + -92, -92, -92, -92, -92, -92, -92, -77, -92, -92, + -91, -92, -92, -92, -92, -92 }; const short D2Parser::yydefgoto_[] = { -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 28, 29, 30, 49, 248, 62, 63, 31, 48, - 59, 60, 88, 33, 50, 71, 72, 73, 155, 35, - 51, 89, 90, 91, 160, 92, 93, 94, 163, 245, - 95, 164, 96, 165, 97, 166, 98, 167, 99, 168, - 272, 273, 274, 275, 283, 43, 55, 130, 131, 132, - 186, 41, 54, 124, 125, 126, 183, 127, 181, 128, - 182, 47, 57, 145, 146, 194, 45, 56, 139, 140, - 141, 191, 142, 189, 143, 100, 169, 39, 53, 115, - 116, 117, 178, 37, 52, 108, 109, 110, 175, 111, - 172, 112, 113, 174, 74, 152, 75, 153, 76, 154, - 77, 156, 267, 268, 269, 280, 296, 297, 299, 310, - 311, 312, 317, 313, 314, 320, 315, 318, 332, 333, - 334, 341, 342, 343, 348, 344, 345, 346 + 19, 28, 29, 30, 49, 252, 62, 63, 31, 48, + 59, 60, 89, 33, 50, 71, 72, 73, 157, 35, + 51, 90, 91, 92, 162, 93, 94, 95, 165, 249, + 96, 166, 97, 167, 98, 168, 99, 169, 100, 170, + 277, 278, 279, 280, 297, 43, 55, 132, 133, 134, + 189, 41, 54, 126, 127, 128, 186, 129, 184, 130, + 185, 47, 57, 147, 148, 197, 45, 56, 141, 142, + 143, 194, 144, 192, 145, 101, 171, 39, 53, 117, + 118, 119, 181, 37, 52, 110, 111, 112, 178, 113, + 175, 114, 115, 177, 102, 172, 288, 289, 290, 302, + 291, 303, 74, 154, 75, 155, 76, 156, 77, 158, + 272, 273, 274, 294, 319, 320, 322, 333, 334, 335, + 340, 336, 337, 343, 338, 341, 355, 356, 357, 364, + 365, 366, 371, 367, 368, 369 }; const unsigned short D2Parser::yytable_[] = { - 70, 106, 105, 122, 121, 137, 136, 21, 32, 22, - 58, 23, 20, 107, 270, 123, 38, 138, 64, 65, - 66, 67, 158, 78, 79, 80, 81, 159, 61, 82, - 34, 83, 84, 85, 86, 133, 134, 83, 84, 87, - 36, 69, 68, 83, 84, 40, 101, 102, 103, 170, - 135, 104, 83, 84, 171, 24, 25, 26, 27, 83, - 84, 69, 69, 42, 118, 119, 303, 304, 69, 305, - 306, 44, 337, 120, 69, 338, 339, 340, 46, 176, - 184, 192, 176, 69, 177, 185, 193, 256, 243, 244, - 69, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 184, 192, 170, 114, 281, 260, 263, 279, 70, 282, - 197, 198, 284, 284, 321, 352, 148, 285, 286, 322, - 353, 195, 129, 144, 196, 106, 105, 106, 105, 195, - 147, 149, 288, 122, 121, 122, 121, 107, 150, 107, - 151, 137, 136, 137, 136, 123, 300, 123, 335, 301, - 157, 336, 161, 138, 162, 138, 173, 179, 180, 187, - 188, 199, 237, 238, 239, 190, 200, 201, 202, 203, - 204, 206, 209, 207, 208, 210, 211, 212, 213, 214, - 215, 217, 218, 219, 220, 224, 225, 226, 230, 231, - 232, 236, 240, 242, 249, 241, 22, 250, 264, 246, - 271, 271, 251, 252, 258, 289, 287, 253, 291, 254, - 293, 255, 257, 259, 294, 295, 302, 319, 323, 324, - 326, 349, 261, 262, 329, 331, 266, 350, 351, 354, - 205, 247, 265, 216, 271, 276, 292, 298, 229, 228, - 227, 278, 277, 235, 233, 234, 325, 328, 308, 307, - 330, 223, 355, 222, 290, 316, 356, 357, 221, 359, - 309, 327, 347, 358, 0, 0, 0, 0, 0, 0, - 308, 307, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 309 + 70, 108, 107, 124, 123, 139, 138, 21, 32, 22, + 58, 23, 20, 109, 275, 125, 38, 140, 64, 65, + 66, 67, 42, 78, 79, 80, 81, 135, 136, 82, + 34, 83, 84, 85, 86, 83, 84, 83, 84, 87, + 247, 248, 137, 88, 69, 68, 103, 104, 105, 36, + 198, 40, 160, 199, 106, 83, 84, 161, 24, 25, + 26, 27, 83, 84, 69, 69, 44, 120, 121, 69, + 46, 69, 326, 327, 61, 328, 329, 83, 84, 122, + 360, 173, 179, 361, 362, 363, 174, 180, 187, 69, + 283, 284, 198, 188, 116, 306, 69, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 131, 146, 149, 195, + 70, 69, 200, 201, 196, 179, 187, 195, 173, 295, + 261, 265, 268, 293, 296, 150, 152, 298, 108, 107, + 108, 107, 299, 151, 153, 183, 124, 123, 124, 123, + 109, 159, 109, 163, 139, 138, 139, 138, 125, 298, + 125, 164, 304, 191, 300, 344, 140, 305, 140, 375, + 345, 176, 193, 202, 376, 241, 242, 243, 323, 358, + 182, 324, 359, 190, 203, 204, 205, 206, 207, 209, + 210, 212, 211, 213, 214, 215, 216, 217, 218, 219, + 221, 222, 223, 224, 228, 229, 230, 234, 235, 236, + 240, 244, 269, 307, 276, 276, 286, 285, 245, 246, + 22, 253, 254, 255, 256, 257, 258, 259, 287, 250, + 263, 309, 301, 311, 260, 262, 312, 318, 314, 315, + 342, 325, 264, 346, 266, 271, 347, 349, 354, 352, + 372, 373, 374, 267, 377, 251, 208, 270, 276, 220, + 281, 310, 321, 286, 285, 233, 316, 232, 317, 231, + 292, 348, 237, 351, 239, 287, 353, 238, 313, 379, + 378, 331, 330, 227, 226, 380, 282, 382, 308, 339, + 225, 370, 350, 332, 381, 0, 0, 0, 0, 0, + 0, 0, 0, 331, 330, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 332 }; const short @@ -2179,101 +2245,107 @@ namespace isc { namespace d2 { { 50, 52, 52, 54, 54, 56, 56, 5, 7, 7, 48, 9, 0, 52, 26, 54, 5, 56, 10, 11, - 12, 13, 3, 14, 15, 16, 17, 8, 53, 20, - 7, 22, 23, 24, 25, 14, 15, 22, 23, 30, - 7, 53, 34, 22, 23, 7, 31, 32, 33, 3, - 29, 36, 22, 23, 8, 53, 54, 55, 56, 22, - 23, 53, 53, 5, 27, 28, 36, 37, 53, 39, - 40, 7, 38, 36, 53, 41, 42, 43, 5, 3, - 3, 3, 3, 53, 8, 8, 8, 8, 18, 19, - 53, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 3, 3, 3, 7, 3, 8, 8, 8, 158, 8, - 148, 149, 3, 3, 3, 3, 3, 8, 8, 8, - 8, 3, 7, 7, 6, 176, 176, 178, 178, 3, - 6, 4, 6, 184, 184, 186, 186, 176, 8, 178, - 3, 192, 192, 194, 194, 184, 3, 186, 3, 6, - 4, 6, 4, 192, 4, 194, 4, 6, 3, 6, - 3, 53, 200, 201, 202, 4, 4, 4, 4, 4, - 4, 4, 4, 54, 54, 4, 4, 4, 4, 4, - 4, 4, 54, 4, 4, 4, 4, 4, 4, 54, - 4, 4, 7, 53, 53, 7, 7, 7, 236, 21, - 250, 251, 7, 5, 5, 4, 6, 53, 4, 53, - 5, 53, 53, 53, 5, 7, 6, 4, 4, 4, - 4, 4, 53, 53, 5, 7, 35, 4, 4, 4, - 158, 211, 240, 170, 284, 251, 284, 294, 188, 186, - 184, 258, 252, 195, 192, 194, 54, 53, 299, 299, - 53, 180, 56, 178, 281, 300, 54, 54, 176, 53, - 299, 321, 335, 352, -1, -1, -1, -1, -1, -1, - 321, 321, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 321 + 12, 13, 5, 14, 15, 16, 17, 14, 15, 20, + 7, 22, 23, 24, 25, 22, 23, 22, 23, 30, + 18, 19, 29, 34, 56, 37, 31, 32, 33, 7, + 3, 7, 3, 6, 39, 22, 23, 8, 56, 57, + 58, 59, 22, 23, 56, 56, 7, 27, 28, 56, + 5, 56, 39, 40, 56, 42, 43, 22, 23, 39, + 41, 3, 3, 44, 45, 46, 8, 8, 3, 56, + 35, 36, 3, 8, 7, 6, 56, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 7, 7, 6, 3, + 160, 56, 150, 151, 8, 3, 3, 3, 3, 3, + 8, 8, 8, 8, 8, 3, 8, 3, 179, 179, + 181, 181, 8, 4, 3, 3, 187, 187, 189, 189, + 179, 4, 181, 4, 195, 195, 197, 197, 187, 3, + 189, 4, 3, 3, 8, 3, 195, 8, 197, 3, + 8, 4, 4, 56, 8, 203, 204, 205, 3, 3, + 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, + 57, 4, 57, 4, 4, 4, 4, 4, 4, 4, + 4, 57, 4, 4, 4, 4, 4, 4, 57, 4, + 4, 7, 240, 4, 254, 255, 257, 257, 7, 56, + 7, 56, 7, 7, 5, 7, 56, 56, 257, 21, + 5, 4, 6, 4, 56, 56, 4, 7, 5, 5, + 4, 6, 56, 4, 56, 38, 4, 4, 7, 5, + 4, 4, 4, 56, 4, 214, 160, 244, 298, 173, + 255, 298, 315, 304, 304, 191, 56, 189, 56, 187, + 263, 57, 195, 56, 198, 304, 56, 197, 304, 57, + 59, 322, 322, 183, 181, 57, 256, 56, 295, 323, + 179, 358, 344, 322, 375, -1, -1, -1, -1, -1, + -1, -1, -1, 344, 344, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 344 }; const unsigned char D2Parser::yystos_[] = { - 0, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 0, 5, 7, 9, 53, 54, 55, 56, 68, 69, - 70, 75, 7, 80, 7, 86, 7, 150, 5, 144, - 7, 118, 5, 112, 7, 133, 5, 128, 76, 71, - 81, 87, 151, 145, 119, 113, 134, 129, 68, 77, - 78, 53, 73, 74, 10, 11, 12, 13, 34, 53, - 79, 82, 83, 84, 161, 163, 165, 167, 14, 15, - 16, 17, 20, 22, 23, 24, 25, 30, 79, 88, - 89, 90, 92, 93, 94, 97, 99, 101, 103, 105, - 142, 31, 32, 33, 36, 79, 99, 101, 152, 153, - 154, 156, 158, 159, 7, 146, 147, 148, 27, 28, - 36, 79, 99, 101, 120, 121, 122, 124, 126, 7, - 114, 115, 116, 14, 15, 29, 79, 99, 101, 135, - 136, 137, 139, 141, 7, 130, 131, 6, 3, 4, - 8, 3, 162, 164, 166, 85, 168, 4, 3, 8, - 91, 4, 4, 95, 98, 100, 102, 104, 106, 143, - 3, 8, 157, 4, 160, 155, 3, 8, 149, 6, - 3, 125, 127, 123, 3, 8, 117, 6, 3, 140, - 4, 138, 3, 8, 132, 3, 6, 68, 68, 53, - 4, 4, 4, 4, 4, 83, 4, 54, 54, 4, - 4, 4, 4, 4, 4, 4, 89, 4, 54, 4, - 4, 153, 152, 148, 4, 4, 4, 121, 120, 116, - 4, 54, 4, 136, 135, 131, 4, 68, 68, 68, - 7, 7, 53, 18, 19, 96, 21, 70, 72, 53, - 7, 7, 5, 53, 53, 53, 8, 53, 5, 53, - 8, 53, 53, 8, 68, 88, 35, 169, 170, 171, - 26, 79, 107, 108, 109, 110, 107, 146, 130, 8, - 172, 3, 8, 111, 3, 8, 8, 6, 6, 4, - 170, 4, 109, 5, 5, 7, 173, 174, 114, 175, - 3, 6, 6, 36, 37, 39, 40, 79, 99, 101, - 176, 177, 178, 180, 181, 183, 174, 179, 184, 4, - 182, 3, 8, 4, 4, 54, 4, 177, 53, 5, - 53, 7, 185, 186, 187, 3, 6, 38, 41, 42, - 43, 188, 189, 190, 192, 193, 194, 186, 191, 4, - 4, 4, 3, 8, 4, 56, 54, 54, 189, 53 + 0, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 0, 5, 7, 9, 56, 57, 58, 59, 71, 72, + 73, 78, 7, 83, 7, 89, 7, 153, 5, 147, + 7, 121, 5, 115, 7, 136, 5, 131, 79, 74, + 84, 90, 154, 148, 122, 116, 137, 132, 71, 80, + 81, 56, 76, 77, 10, 11, 12, 13, 37, 56, + 82, 85, 86, 87, 172, 174, 176, 178, 14, 15, + 16, 17, 20, 22, 23, 24, 25, 30, 34, 82, + 91, 92, 93, 95, 96, 97, 100, 102, 104, 106, + 108, 145, 164, 31, 32, 33, 39, 82, 102, 104, + 155, 156, 157, 159, 161, 162, 7, 149, 150, 151, + 27, 28, 39, 82, 102, 104, 123, 124, 125, 127, + 129, 7, 117, 118, 119, 14, 15, 29, 82, 102, + 104, 138, 139, 140, 142, 144, 7, 133, 134, 6, + 3, 4, 8, 3, 173, 175, 177, 88, 179, 4, + 3, 8, 94, 4, 4, 98, 101, 103, 105, 107, + 109, 146, 165, 3, 8, 160, 4, 163, 158, 3, + 8, 152, 6, 3, 128, 130, 126, 3, 8, 120, + 6, 3, 143, 4, 141, 3, 8, 135, 3, 6, + 71, 71, 56, 4, 4, 4, 4, 4, 86, 4, + 57, 57, 4, 4, 4, 4, 4, 4, 4, 4, + 92, 4, 57, 4, 4, 156, 155, 151, 4, 4, + 4, 124, 123, 119, 4, 57, 4, 139, 138, 134, + 4, 71, 71, 71, 7, 7, 56, 18, 19, 99, + 21, 73, 75, 56, 7, 7, 5, 7, 56, 56, + 56, 8, 56, 5, 56, 8, 56, 56, 8, 71, + 91, 38, 180, 181, 182, 26, 82, 110, 111, 112, + 113, 110, 149, 35, 36, 82, 102, 104, 166, 167, + 168, 170, 133, 8, 183, 3, 8, 114, 3, 8, + 8, 6, 169, 171, 3, 8, 6, 4, 181, 4, + 112, 4, 4, 167, 5, 5, 56, 56, 7, 184, + 185, 117, 186, 3, 6, 6, 39, 40, 42, 43, + 82, 102, 104, 187, 188, 189, 191, 192, 194, 185, + 190, 195, 4, 193, 3, 8, 4, 4, 57, 4, + 188, 56, 5, 56, 7, 196, 197, 198, 3, 6, + 41, 44, 45, 46, 199, 200, 201, 203, 204, 205, + 197, 202, 4, 4, 4, 3, 8, 4, 59, 57, + 57, 200, 56 }; const unsigned char D2Parser::yyr1_[] = { - 0, 57, 59, 58, 60, 58, 61, 58, 62, 58, - 63, 58, 64, 58, 65, 58, 66, 58, 67, 58, - 68, 68, 68, 68, 68, 68, 68, 69, 71, 70, - 72, 73, 73, 74, 74, 76, 75, 77, 77, 78, - 78, 79, 81, 80, 82, 82, 83, 83, 83, 83, - 83, 83, 85, 84, 87, 86, 88, 88, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 91, - 90, 92, 93, 95, 94, 96, 96, 98, 97, 100, - 99, 102, 101, 104, 103, 106, 105, 107, 107, 108, - 108, 109, 109, 111, 110, 113, 112, 114, 114, 115, - 115, 117, 116, 119, 118, 120, 120, 121, 121, 121, - 121, 121, 121, 123, 122, 125, 124, 127, 126, 129, - 128, 130, 130, 132, 131, 134, 133, 135, 135, 136, - 136, 136, 136, 136, 136, 138, 137, 140, 139, 141, - 143, 142, 145, 144, 146, 146, 147, 147, 149, 148, - 151, 150, 152, 152, 153, 153, 153, 153, 153, 153, - 153, 155, 154, 157, 156, 158, 160, 159, 162, 161, - 164, 163, 166, 165, 168, 167, 169, 169, 170, 172, - 171, 173, 173, 175, 174, 176, 176, 177, 177, 177, - 177, 177, 177, 177, 179, 178, 180, 182, 181, 184, - 183, 185, 185, 187, 186, 188, 188, 189, 189, 189, - 189, 191, 190, 192, 193, 194 + 0, 60, 62, 61, 63, 61, 64, 61, 65, 61, + 66, 61, 67, 61, 68, 61, 69, 61, 70, 61, + 71, 71, 71, 71, 71, 71, 71, 72, 74, 73, + 75, 76, 76, 77, 77, 79, 78, 80, 80, 81, + 81, 82, 84, 83, 85, 85, 86, 86, 86, 86, + 86, 86, 88, 87, 90, 89, 91, 91, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 94, 93, 95, 96, 98, 97, 99, 99, 101, 100, + 103, 102, 105, 104, 107, 106, 109, 108, 110, 110, + 111, 111, 112, 112, 114, 113, 116, 115, 117, 117, + 118, 118, 120, 119, 122, 121, 123, 123, 124, 124, + 124, 124, 124, 124, 126, 125, 128, 127, 130, 129, + 132, 131, 133, 133, 135, 134, 137, 136, 138, 138, + 139, 139, 139, 139, 139, 139, 141, 140, 143, 142, + 144, 146, 145, 148, 147, 149, 149, 150, 150, 152, + 151, 154, 153, 155, 155, 156, 156, 156, 156, 156, + 156, 156, 158, 157, 160, 159, 161, 163, 162, 165, + 164, 166, 166, 167, 167, 167, 167, 167, 169, 168, + 171, 170, 173, 172, 175, 174, 177, 176, 179, 178, + 180, 180, 181, 183, 182, 184, 184, 186, 185, 187, + 187, 188, 188, 188, 188, 188, 188, 188, 190, 189, + 191, 193, 192, 195, 194, 196, 196, 198, 197, 199, + 199, 200, 200, 200, 200, 202, 201, 203, 204, 205 }; const unsigned char @@ -2285,22 +2357,23 @@ namespace isc { namespace d2 { 1, 0, 1, 3, 5, 0, 4, 0, 1, 1, 3, 2, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 0, 6, 0, 4, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 3, 3, 0, 4, 1, 1, 0, 4, 0, - 4, 0, 4, 0, 6, 0, 6, 0, 1, 1, - 3, 1, 1, 0, 6, 0, 4, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 4, 0, 6, 0, - 4, 1, 3, 0, 4, 0, 4, 1, 3, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 3, - 0, 6, 0, 4, 0, 1, 1, 3, 0, 4, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 3, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 6, 1, 3, 1, 0, - 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 3, 0, 4, 0, - 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, - 1, 0, 4, 3, 3, 3 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 3, 3, 0, 4, 1, 1, 0, 4, + 0, 4, 0, 4, 0, 6, 0, 6, 0, 1, + 1, 3, 1, 1, 0, 6, 0, 4, 0, 1, + 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 0, 4, 1, 3, 0, 4, 0, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 3, 0, 6, 0, 4, 0, 1, 1, 3, 0, + 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 3, 0, 4, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, + 1, 3, 1, 0, 6, 1, 3, 0, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 3, 0, 4, 0, 6, 1, 3, 0, 4, 1, + 3, 1, 1, 1, 1, 0, 4, 3, 3, 3 }; @@ -2317,15 +2390,16 @@ namespace isc { namespace d2 { "\"ncr-format\"", "\"JSON\"", "\"user-context\"", "\"comment\"", "\"forward-ddns\"", "\"reverse-ddns\"", "\"ddns-domains\"", "\"key-name\"", "\"dns-servers\"", "\"hostname\"", "\"tsig-keys\"", - "\"algorithm\"", "\"digest-bits\"", "\"secret\"", "\"Logging\"", - "\"loggers\"", "\"name\"", "\"output_options\"", "\"output\"", - "\"debuglevel\"", "\"severity\"", "\"flush\"", "\"maxsize\"", - "\"maxver\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCPDDNS", "SUB_DHCPDDNS", - "SUB_TSIG_KEY", "SUB_TSIG_KEYS", "SUB_DDNS_DOMAIN", "SUB_DDNS_DOMAINS", - "SUB_DNS_SERVER", "SUB_DNS_SERVERS", "\"constant string\"", - "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start", - "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "value", - "sub_json", "map2", "$@10", "map_value", "map_content", "not_empty_map", + "\"algorithm\"", "\"digest-bits\"", "\"secret\"", "\"control-socket\"", + "\"socket-type\"", "\"socket-name\"", "\"Logging\"", "\"loggers\"", + "\"name\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", + "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", + "TOPLEVEL_JSON", "TOPLEVEL_DHCPDDNS", "SUB_DHCPDDNS", "SUB_TSIG_KEY", + "SUB_TSIG_KEYS", "SUB_DDNS_DOMAIN", "SUB_DDNS_DOMAINS", "SUB_DNS_SERVER", + "SUB_DNS_SERVERS", "\"constant string\"", "\"integer\"", + "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", + "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "value", "sub_json", + "map2", "$@10", "map_value", "map_content", "not_empty_map", "list_generic", "$@11", "list_content", "not_empty_list", "unknown_map_entry", "syntax_map", "$@12", "global_objects", "global_object", "dhcpddns_object", "$@13", "sub_dhcpddns", "$@14", @@ -2345,42 +2419,46 @@ namespace isc { namespace d2 { "tsig_keys_list", "not_empty_tsig_keys_list", "tsig_key", "$@36", "sub_tsig_key", "$@37", "tsig_key_params", "tsig_key_param", "tsig_key_name", "$@38", "tsig_key_algorithm", "$@39", - "tsig_key_digest_bits", "tsig_key_secret", "$@40", "dhcp6_json_object", - "$@41", "dhcp4_json_object", "$@42", "control_agent_json_object", "$@43", - "logging_object", "$@44", "logging_params", "logging_param", "loggers", - "$@45", "loggers_entries", "logger_entry", "$@46", "logger_params", - "logger_param", "name", "$@47", "debuglevel", "severity", "$@48", - "output_options_list", "$@49", "output_options_list_content", - "output_entry", "$@50", "output_params_list", "output_params", "output", - "$@51", "flush", "maxsize", "maxver", YY_NULLPTR + "tsig_key_digest_bits", "tsig_key_secret", "$@40", "control_socket", + "$@41", "control_socket_params", "control_socket_param", + "control_socket_type", "$@42", "control_socket_name", "$@43", + "dhcp6_json_object", "$@44", "dhcp4_json_object", "$@45", + "control_agent_json_object", "$@46", "logging_object", "$@47", + "logging_params", "logging_param", "loggers", "$@48", "loggers_entries", + "logger_entry", "$@49", "logger_params", "logger_param", "name", "$@50", + "debuglevel", "severity", "$@51", "output_options_list", "$@52", + "output_options_list_content", "output_entry", "$@53", + "output_params_list", "output_params", "output", "$@54", "flush", + "maxsize", "maxver", YY_NULLPTR }; #if D2_PARSER_DEBUG const unsigned short D2Parser::yyrline_[] = { - 0, 120, 120, 120, 121, 121, 122, 122, 123, 123, - 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, - 136, 137, 138, 139, 140, 141, 142, 145, 150, 150, - 161, 164, 165, 168, 172, 179, 179, 186, 187, 190, - 194, 205, 215, 215, 227, 228, 232, 233, 234, 235, - 236, 237, 242, 242, 252, 252, 260, 261, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 278, - 278, 286, 294, 303, 303, 311, 312, 315, 315, 323, - 323, 348, 348, 375, 375, 385, 385, 395, 396, 399, - 400, 403, 404, 409, 409, 419, 419, 426, 427, 430, - 431, 434, 434, 442, 442, 449, 450, 453, 454, 455, - 456, 457, 458, 462, 462, 474, 474, 486, 486, 496, - 496, 503, 504, 507, 507, 515, 515, 522, 523, 526, - 527, 528, 529, 530, 531, 534, 534, 546, 546, 554, - 568, 568, 578, 578, 585, 586, 589, 590, 593, 593, - 601, 601, 610, 611, 614, 615, 616, 617, 618, 619, - 620, 623, 623, 635, 635, 646, 654, 654, 669, 669, - 676, 676, 683, 683, 695, 695, 708, 709, 713, 717, - 717, 729, 730, 734, 734, 742, 743, 746, 747, 748, - 749, 750, 751, 752, 755, 755, 763, 767, 767, 775, - 775, 785, 786, 789, 789, 797, 798, 801, 802, 803, - 804, 807, 807, 815, 820, 825 + 0, 124, 124, 124, 125, 125, 126, 126, 127, 127, + 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, + 140, 141, 142, 143, 144, 145, 146, 149, 154, 154, + 165, 168, 169, 172, 176, 183, 183, 190, 191, 194, + 198, 209, 219, 219, 231, 232, 236, 237, 238, 239, + 240, 241, 246, 246, 256, 256, 264, 265, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 283, 283, 291, 299, 308, 308, 316, 317, 320, 320, + 328, 328, 353, 353, 380, 380, 390, 390, 400, 401, + 404, 405, 408, 409, 414, 414, 424, 424, 431, 432, + 435, 436, 439, 439, 447, 447, 454, 455, 458, 459, + 460, 461, 462, 463, 467, 467, 479, 479, 491, 491, + 501, 501, 508, 509, 512, 512, 520, 520, 527, 528, + 531, 532, 533, 534, 535, 536, 539, 539, 551, 551, + 559, 573, 573, 583, 583, 590, 591, 594, 595, 598, + 598, 606, 606, 615, 616, 619, 620, 621, 622, 623, + 624, 625, 628, 628, 640, 640, 651, 659, 659, 675, + 675, 685, 686, 689, 690, 691, 692, 693, 696, 696, + 704, 704, 714, 714, 721, 721, 728, 728, 740, 740, + 753, 754, 758, 762, 762, 774, 775, 779, 779, 787, + 788, 791, 792, 793, 794, 795, 796, 797, 800, 800, + 808, 812, 812, 820, 820, 830, 831, 834, 834, 842, + 843, 846, 847, 848, 849, 852, 852, 860, 865, 870 }; // Print the state stack on the debug stream. @@ -2415,8 +2493,8 @@ namespace isc { namespace d2 { #line 14 "d2_parser.yy" // lalr1.cc:1218 } } // isc::d2 -#line 2419 "d2_parser.cc" // lalr1.cc:1218 -#line 830 "d2_parser.yy" // lalr1.cc:1219 +#line 2497 "d2_parser.cc" // lalr1.cc:1218 +#line 875 "d2_parser.yy" // lalr1.cc:1219 void diff --git a/src/bin/d2/d2_parser.h b/src/bin/d2/d2_parser.h index c32be0d7c0..4ebefde709 100644 --- a/src/bin/d2/d2_parser.h +++ b/src/bin/d2/d2_parser.h @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.2.1. +// A Bison parser, made by GNU Bison 3.2.4. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -569,29 +569,32 @@ namespace isc { namespace d2 { TOKEN_ALGORITHM = 286, TOKEN_DIGEST_BITS = 287, TOKEN_SECRET = 288, - TOKEN_LOGGING = 289, - TOKEN_LOGGERS = 290, - TOKEN_NAME = 291, - TOKEN_OUTPUT_OPTIONS = 292, - TOKEN_OUTPUT = 293, - TOKEN_DEBUGLEVEL = 294, - TOKEN_SEVERITY = 295, - TOKEN_FLUSH = 296, - TOKEN_MAXSIZE = 297, - TOKEN_MAXVER = 298, - TOKEN_TOPLEVEL_JSON = 299, - TOKEN_TOPLEVEL_DHCPDDNS = 300, - TOKEN_SUB_DHCPDDNS = 301, - TOKEN_SUB_TSIG_KEY = 302, - TOKEN_SUB_TSIG_KEYS = 303, - TOKEN_SUB_DDNS_DOMAIN = 304, - TOKEN_SUB_DDNS_DOMAINS = 305, - TOKEN_SUB_DNS_SERVER = 306, - TOKEN_SUB_DNS_SERVERS = 307, - TOKEN_STRING = 308, - TOKEN_INTEGER = 309, - TOKEN_FLOAT = 310, - TOKEN_BOOLEAN = 311 + TOKEN_CONTROL_SOCKET = 289, + TOKEN_SOCKET_TYPE = 290, + TOKEN_SOCKET_NAME = 291, + TOKEN_LOGGING = 292, + TOKEN_LOGGERS = 293, + TOKEN_NAME = 294, + TOKEN_OUTPUT_OPTIONS = 295, + TOKEN_OUTPUT = 296, + TOKEN_DEBUGLEVEL = 297, + TOKEN_SEVERITY = 298, + TOKEN_FLUSH = 299, + TOKEN_MAXSIZE = 300, + TOKEN_MAXVER = 301, + TOKEN_TOPLEVEL_JSON = 302, + TOKEN_TOPLEVEL_DHCPDDNS = 303, + TOKEN_SUB_DHCPDDNS = 304, + TOKEN_SUB_TSIG_KEY = 305, + TOKEN_SUB_TSIG_KEYS = 306, + TOKEN_SUB_DDNS_DOMAIN = 307, + TOKEN_SUB_DDNS_DOMAINS = 308, + TOKEN_SUB_DNS_SERVER = 309, + TOKEN_SUB_DNS_SERVERS = 310, + TOKEN_STRING = 311, + TOKEN_INTEGER = 312, + TOKEN_FLOAT = 313, + TOKEN_BOOLEAN = 314 }; }; @@ -622,8 +625,13 @@ namespace isc { namespace d2 { /// Default constructor. basic_symbol (); - /// Move or copy constructor. - basic_symbol (YY_RVREF (basic_symbol) other); +#if 201103L <= YY_CPLUSPLUS + /// Move constructor. + basic_symbol (basic_symbol&& that); +#endif + + /// Copy constructor. + basic_symbol (const basic_symbol& that); /// Constructor for valueless symbols, and symbols from each type. @@ -680,7 +688,7 @@ namespace isc { namespace d2 { private: #if YY_CPLUSPLUS < 201103L /// Assignment operator. - basic_symbol& operator= (const basic_symbol& other); + basic_symbol& operator= (const basic_symbol& that); #endif }; @@ -690,8 +698,13 @@ namespace isc { namespace d2 { /// Default constructor. by_type (); +#if 201103L <= YY_CPLUSPLUS + /// Move constructor. + by_type (by_type&& that); +#endif + /// Copy constructor. - by_type (const by_type& other); + by_type (const by_type& that); /// The symbol type as needed by the constructor. typedef token_type kind_type; @@ -756,1158 +769,1992 @@ namespace isc { namespace d2 { void error (const syntax_error& err); // Symbol constructors declarations. +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_END (YY_COPY (location_type) l); - + make_END (location_type l); +#else static symbol_type - make_COMMA (YY_COPY (location_type) l); - + make_END (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_COLON (YY_COPY (location_type) l); - + make_COMMA (location_type l); +#else static symbol_type - make_LSQUARE_BRACKET (YY_COPY (location_type) l); - + make_COMMA (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_RSQUARE_BRACKET (YY_COPY (location_type) l); - + make_COLON (location_type l); +#else static symbol_type - make_LCURLY_BRACKET (YY_COPY (location_type) l); - + make_COLON (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_RCURLY_BRACKET (YY_COPY (location_type) l); - + make_LSQUARE_BRACKET (location_type l); +#else static symbol_type - make_NULL_TYPE (YY_COPY (location_type) l); - + make_LSQUARE_BRACKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DHCP6 (YY_COPY (location_type) l); - + make_RSQUARE_BRACKET (location_type l); +#else static symbol_type - make_DHCP4 (YY_COPY (location_type) l); - + make_RSQUARE_BRACKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_CONTROL_AGENT (YY_COPY (location_type) l); - + make_LCURLY_BRACKET (location_type l); +#else static symbol_type - make_DHCPDDNS (YY_COPY (location_type) l); - + make_LCURLY_BRACKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_IP_ADDRESS (YY_COPY (location_type) l); - + make_RCURLY_BRACKET (location_type l); +#else static symbol_type - make_PORT (YY_COPY (location_type) l); - + make_RCURLY_BRACKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DNS_SERVER_TIMEOUT (YY_COPY (location_type) l); - + make_NULL_TYPE (location_type l); +#else static symbol_type - make_NCR_PROTOCOL (YY_COPY (location_type) l); - + make_NULL_TYPE (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_UDP (YY_COPY (location_type) l); - + make_DHCP6 (location_type l); +#else static symbol_type - make_TCP (YY_COPY (location_type) l); - + make_DHCP6 (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_NCR_FORMAT (YY_COPY (location_type) l); - + make_DHCP4 (location_type l); +#else static symbol_type - make_JSON (YY_COPY (location_type) l); - + make_DHCP4 (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_USER_CONTEXT (YY_COPY (location_type) l); - + make_CONTROL_AGENT (location_type l); +#else static symbol_type - make_COMMENT (YY_COPY (location_type) l); - + make_CONTROL_AGENT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_FORWARD_DDNS (YY_COPY (location_type) l); - + make_DHCPDDNS (location_type l); +#else static symbol_type - make_REVERSE_DDNS (YY_COPY (location_type) l); - + make_DHCPDDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DDNS_DOMAINS (YY_COPY (location_type) l); - + make_IP_ADDRESS (location_type l); +#else static symbol_type - make_KEY_NAME (YY_COPY (location_type) l); - + make_IP_ADDRESS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DNS_SERVERS (YY_COPY (location_type) l); - + make_PORT (location_type l); +#else static symbol_type - make_HOSTNAME (YY_COPY (location_type) l); - + make_PORT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_TSIG_KEYS (YY_COPY (location_type) l); - + make_DNS_SERVER_TIMEOUT (location_type l); +#else static symbol_type - make_ALGORITHM (YY_COPY (location_type) l); - + make_DNS_SERVER_TIMEOUT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DIGEST_BITS (YY_COPY (location_type) l); - + make_NCR_PROTOCOL (location_type l); +#else static symbol_type - make_SECRET (YY_COPY (location_type) l); - + make_NCR_PROTOCOL (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_LOGGING (YY_COPY (location_type) l); - + make_UDP (location_type l); +#else static symbol_type - make_LOGGERS (YY_COPY (location_type) l); - + make_UDP (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_NAME (YY_COPY (location_type) l); - + make_TCP (location_type l); +#else static symbol_type - make_OUTPUT_OPTIONS (YY_COPY (location_type) l); - + make_TCP (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_OUTPUT (YY_COPY (location_type) l); - + make_NCR_FORMAT (location_type l); +#else static symbol_type - make_DEBUGLEVEL (YY_COPY (location_type) l); - + make_NCR_FORMAT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SEVERITY (YY_COPY (location_type) l); - + make_JSON (location_type l); +#else static symbol_type - make_FLUSH (YY_COPY (location_type) l); - + make_JSON (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_MAXSIZE (YY_COPY (location_type) l); - + make_USER_CONTEXT (location_type l); +#else static symbol_type - make_MAXVER (YY_COPY (location_type) l); - + make_USER_CONTEXT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_TOPLEVEL_JSON (YY_COPY (location_type) l); - + make_COMMENT (location_type l); +#else static symbol_type - make_TOPLEVEL_DHCPDDNS (YY_COPY (location_type) l); - + make_COMMENT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SUB_DHCPDDNS (YY_COPY (location_type) l); - + make_FORWARD_DDNS (location_type l); +#else static symbol_type - make_SUB_TSIG_KEY (YY_COPY (location_type) l); - + make_FORWARD_DDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SUB_TSIG_KEYS (YY_COPY (location_type) l); - + make_REVERSE_DDNS (location_type l); +#else static symbol_type - make_SUB_DDNS_DOMAIN (YY_COPY (location_type) l); - + make_REVERSE_DDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SUB_DDNS_DOMAINS (YY_COPY (location_type) l); - + make_DDNS_DOMAINS (location_type l); +#else static symbol_type - make_SUB_DNS_SERVER (YY_COPY (location_type) l); - + make_DDNS_DOMAINS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SUB_DNS_SERVERS (YY_COPY (location_type) l); - + make_KEY_NAME (location_type l); +#else static symbol_type - make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l); - + make_KEY_NAME (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l); - + make_DNS_SERVERS (location_type l); +#else static symbol_type - make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l); - + make_DNS_SERVERS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l); - - - - private: - /// This class is not copyable. - D2Parser (const D2Parser&); - D2Parser& operator= (const D2Parser&); - - /// State numbers. - typedef int state_type; - - /// Generate an error message. - /// \param yystate the state where the error occurred. - /// \param yyla the lookahead token. - virtual std::string yysyntax_error_ (state_type yystate, - const symbol_type& yyla) const; - - /// Compute post-reduction state. - /// \param yystate the current state - /// \param yysym the nonterminal to push on the stack - state_type yy_lr_goto_state_ (state_type yystate, int yysym); - - /// Whether the given \c yypact_ value indicates a defaulted state. - /// \param yyvalue the value to check - static bool yy_pact_value_is_default_ (int yyvalue); - - /// Whether the given \c yytable_ value indicates a syntax error. - /// \param yyvalue the value to check - static bool yy_table_value_is_error_ (int yyvalue); - - static const signed char yypact_ninf_; - static const signed char yytable_ninf_; - - /// Convert a scanner token number \a t to a symbol number. - static token_number_type yytranslate_ (token_type t); - - // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; - - // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - // Performed when YYTABLE does not specify something else to do. Zero - // means the default is an error. - static const unsigned char yydefact_[]; - - // YYPGOTO[NTERM-NUM]. - static const signed char yypgoto_[]; - - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; - - // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - // positive, shift that token. If negative, reduce the rule whose - // number is the opposite. If YYTABLE_NINF, syntax error. - static const unsigned short yytable_[]; - - static const short yycheck_[]; - - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const unsigned char yystos_[]; - - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const unsigned char yyr1_[]; - - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const unsigned char yyr2_[]; - - - /// Convert the symbol name \a n to a form suitable for a diagnostic. - static std::string yytnamerr_ (const char *n); - - - /// For a symbol, its name in clear. - static const char* const yytname_[]; -#if D2_PARSER_DEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const unsigned short yyrline_[]; - /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r); - /// Print the state stack on the debug stream. - virtual void yystack_print_ (); - - /// Debugging level. - int yydebug_; - /// Debug stream. - std::ostream* yycdebug_; - - /// \brief Display a symbol type, value and location. - /// \param yyo The output stream. - /// \param yysym The symbol. - template - void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; + make_HOSTNAME (location_type l); +#else + static + symbol_type + make_HOSTNAME (const location_type& l); #endif - - /// \brief Reclaim the memory associated to a symbol. - /// \param yymsg Why this token is reclaimed. - /// If null, print nothing. - /// \param yysym The symbol. - template - void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; - - private: - /// Type access provider for state based symbols. - struct by_state - { - /// Default constructor. - by_state (); - - /// The symbol type as needed by the constructor. +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TSIG_KEYS (location_type l); +#else + static + symbol_type + make_TSIG_KEYS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_ALGORITHM (location_type l); +#else + static + symbol_type + make_ALGORITHM (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DIGEST_BITS (location_type l); +#else + static + symbol_type + make_DIGEST_BITS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SECRET (location_type l); +#else + static + symbol_type + make_SECRET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CONTROL_SOCKET (location_type l); +#else + static + symbol_type + make_CONTROL_SOCKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SOCKET_TYPE (location_type l); +#else + static + symbol_type + make_SOCKET_TYPE (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SOCKET_NAME (location_type l); +#else + static + symbol_type + make_SOCKET_NAME (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_LOGGING (location_type l); +#else + static + symbol_type + make_LOGGING (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_LOGGERS (location_type l); +#else + static + symbol_type + make_LOGGERS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_NAME (location_type l); +#else + static + symbol_type + make_NAME (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_OUTPUT_OPTIONS (location_type l); +#else + static + symbol_type + make_OUTPUT_OPTIONS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_OUTPUT (location_type l); +#else + static + symbol_type + make_OUTPUT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DEBUGLEVEL (location_type l); +#else + static + symbol_type + make_DEBUGLEVEL (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SEVERITY (location_type l); +#else + static + symbol_type + make_SEVERITY (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_FLUSH (location_type l); +#else + static + symbol_type + make_FLUSH (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MAXSIZE (location_type l); +#else + static + symbol_type + make_MAXSIZE (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MAXVER (location_type l); +#else + static + symbol_type + make_MAXVER (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TOPLEVEL_JSON (location_type l); +#else + static + symbol_type + make_TOPLEVEL_JSON (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TOPLEVEL_DHCPDDNS (location_type l); +#else + static + symbol_type + make_TOPLEVEL_DHCPDDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DHCPDDNS (location_type l); +#else + static + symbol_type + make_SUB_DHCPDDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_TSIG_KEY (location_type l); +#else + static + symbol_type + make_SUB_TSIG_KEY (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_TSIG_KEYS (location_type l); +#else + static + symbol_type + make_SUB_TSIG_KEYS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DDNS_DOMAIN (location_type l); +#else + static + symbol_type + make_SUB_DDNS_DOMAIN (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DDNS_DOMAINS (location_type l); +#else + static + symbol_type + make_SUB_DDNS_DOMAINS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DNS_SERVER (location_type l); +#else + static + symbol_type + make_SUB_DNS_SERVER (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DNS_SERVERS (location_type l); +#else + static + symbol_type + make_SUB_DNS_SERVERS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_STRING (std::string v, location_type l); +#else + static + symbol_type + make_STRING (const std::string& v, const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_INTEGER (int64_t v, location_type l); +#else + static + symbol_type + make_INTEGER (const int64_t& v, const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_FLOAT (double v, location_type l); +#else + static + symbol_type + make_FLOAT (const double& v, const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_BOOLEAN (bool v, location_type l); +#else + static + symbol_type + make_BOOLEAN (const bool& v, const location_type& l); +#endif + + + private: + /// This class is not copyable. + D2Parser (const D2Parser&); + D2Parser& operator= (const D2Parser&); + + /// State numbers. + typedef int state_type; + + /// Generate an error message. + /// \param yystate the state where the error occurred. + /// \param yyla the lookahead token. + virtual std::string yysyntax_error_ (state_type yystate, + const symbol_type& yyla) const; + + /// Compute post-reduction state. + /// \param yystate the current state + /// \param yysym the nonterminal to push on the stack + state_type yy_lr_goto_state_ (state_type yystate, int yysym); + + /// Whether the given \c yypact_ value indicates a defaulted state. + /// \param yyvalue the value to check + static bool yy_pact_value_is_default_ (int yyvalue); + + /// Whether the given \c yytable_ value indicates a syntax error. + /// \param yyvalue the value to check + static bool yy_table_value_is_error_ (int yyvalue); + + static const signed char yypact_ninf_; + static const signed char yytable_ninf_; + + /// Convert a scanner token number \a t to a symbol number. + static token_number_type yytranslate_ (token_type t); + + // Tables. + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short yypact_[]; + + // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + // Performed when YYTABLE does not specify something else to do. Zero + // means the default is an error. + static const unsigned char yydefact_[]; + + // YYPGOTO[NTERM-NUM]. + static const signed char yypgoto_[]; + + // YYDEFGOTO[NTERM-NUM]. + static const short yydefgoto_[]; + + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const unsigned short yytable_[]; + + static const short yycheck_[]; + + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const unsigned char yystos_[]; + + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const unsigned char yyr1_[]; + + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const unsigned char yyr2_[]; + + + /// Convert the symbol name \a n to a form suitable for a diagnostic. + static std::string yytnamerr_ (const char *n); + + + /// For a symbol, its name in clear. + static const char* const yytname_[]; +#if D2_PARSER_DEBUG + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const unsigned short yyrline_[]; + /// Report on the debug stream that the rule \a r is going to be reduced. + virtual void yy_reduce_print_ (int r); + /// Print the state stack on the debug stream. + virtual void yystack_print_ (); + + /// Debugging level. + int yydebug_; + /// Debug stream. + std::ostream* yycdebug_; + + /// \brief Display a symbol type, value and location. + /// \param yyo The output stream. + /// \param yysym The symbol. + template + void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; +#endif + + /// \brief Reclaim the memory associated to a symbol. + /// \param yymsg Why this token is reclaimed. + /// If null, print nothing. + /// \param yysym The symbol. + template + void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; + + private: + /// Type access provider for state based symbols. + struct by_state + { + /// Default constructor. + by_state (); + + /// The symbol type as needed by the constructor. typedef state_type kind_type; - /// Constructor. - by_state (kind_type s); + /// Constructor. + by_state (kind_type s); + + /// Copy constructor. + by_state (const by_state& other); + + /// Record that this symbol is empty. + void clear (); + + /// Steal the symbol type from \a that. + void move (by_state& that); + + /// The (internal) type number (corresponding to \a state). + /// \a empty_symbol when empty. + symbol_number_type type_get () const; + + /// The state number used to denote an empty symbol. + enum { empty_state = -1 }; + + /// The state. + /// \a empty when empty. + state_type state; + }; + + /// "Internal" symbol: element of the stack. + struct stack_symbol_type : basic_symbol + { + /// Superclass. + typedef basic_symbol super_type; + /// Construct an empty symbol. + stack_symbol_type (); + /// Move or copy construction. + stack_symbol_type (YY_RVREF (stack_symbol_type) that); + /// Steal the contents from \a sym to build this. + stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); +#if YY_CPLUSPLUS < 201103L + /// Assignment, needed by push_back by some old implementations. + /// Moves the contents of that. + stack_symbol_type& operator= (stack_symbol_type& that); +#endif + }; + + /// Stack type. + typedef stack stack_type; + + /// The stack. + stack_type yystack_; + + /// Push a new state on the stack. + /// \param m a debug message to display + /// if null, no trace is output. + /// \param sym the symbol + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + + /// Push a new look ahead token on the state on the stack. + /// \param m a debug message to display + /// if null, no trace is output. + /// \param s the state + /// \param sym the symbol (for its value and location). + /// \warning the contents of \a sym.value is stolen. + void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + + /// Pop \a n symbols from the stack. + void yypop_ (int n = 1); + + /// Constants. + enum + { + yyeof_ = 0, + yylast_ = 305, ///< Last index in yytable_. + yynnts_ = 146, ///< Number of nonterminal symbols. + yyfinal_ = 20, ///< Termination state number. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = 60 ///< Number of tokens. + }; + + + // User arguments. + isc::d2::D2ParserContext& ctx; + }; + + // Symbol number corresponding to token number t. + inline + D2Parser::token_number_type + D2Parser::yytranslate_ (token_type t) + { + static + const token_number_type + translate_table[] = + { + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59 + }; + const unsigned user_token_number_max_ = 314; + const token_number_type undef_token_ = 2; + + if (static_cast (t) <= yyeof_) + return yyeof_; + else if (static_cast (t) <= user_token_number_max_) + return translate_table[t]; + else + return undef_token_; + } + + inline + D2Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) + : std::runtime_error (m) + , location (l) + {} + + // basic_symbol. + template + D2Parser::basic_symbol::basic_symbol () + : value () + , location () + {} - /// Copy constructor. - by_state (const by_state& other); +#if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (basic_symbol&& that) + : Base (std::move (that)) + , value () + , location (std::move (that.location)) + { + switch (this->type_get ()) + { + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value + value.move< ElementPtr > (std::move (that.value)); + break; - /// Record that this symbol is empty. - void clear (); + case 59: // "boolean" + value.move< bool > (std::move (that.value)); + break; - /// Steal the symbol type from \a that. - void move (by_state& that); + case 58: // "floating point" + value.move< double > (std::move (that.value)); + break; - /// The (internal) type number (corresponding to \a state). - /// \a empty_symbol when empty. - symbol_number_type type_get () const; + case 57: // "integer" + value.move< int64_t > (std::move (that.value)); + break; - /// The state number used to denote an empty symbol. - enum { empty_state = -1 }; + case 56: // "constant string" + value.move< std::string > (std::move (that.value)); + break; - /// The state. - /// \a empty when empty. - state_type state; - }; + default: + break; + } - /// "Internal" symbol: element of the stack. - struct stack_symbol_type : basic_symbol + } +#endif + + template + D2Parser::basic_symbol::basic_symbol (const basic_symbol& that) + : Base (that) + , value () + , location (that.location) + { + switch (this->type_get ()) { - /// Superclass. - typedef basic_symbol super_type; - /// Construct an empty symbol. - stack_symbol_type (); - /// Move or copy construction. - stack_symbol_type (YY_RVREF (stack_symbol_type) that); - /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); -#if YY_CPLUSPLUS < 201103L - /// Assignment, needed by push_back by some old implementations. - /// Moves the contents of that. - stack_symbol_type& operator= (stack_symbol_type& that); + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value + value.copy< ElementPtr > (that.value); + break; + + case 59: // "boolean" + value.copy< bool > (that.value); + break; + + case 58: // "floating point" + value.copy< double > (that.value); + break; + + case 57: // "integer" + value.copy< int64_t > (that.value); + break; + + case 56: // "constant string" + value.copy< std::string > (that.value); + break; + + default: + break; + } + + } + + + // Implementation of basic_symbol constructor for each type. +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, location_type&& l) + : Base (t) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const location_type& l) + : Base (t) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + + + template + D2Parser::basic_symbol::~basic_symbol () + { + clear (); + } + + template + void + D2Parser::basic_symbol::clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. + switch (yytype) + { + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value + value.template destroy< ElementPtr > (); + break; + + case 59: // "boolean" + value.template destroy< bool > (); + break; + + case 58: // "floating point" + value.template destroy< double > (); + break; + + case 57: // "integer" + value.template destroy< int64_t > (); + break; + + case 56: // "constant string" + value.template destroy< std::string > (); + break; + + default: + break; + } + + Base::clear (); + } + + template + bool + D2Parser::basic_symbol::empty () const + { + return Base::type_get () == empty_symbol; + } + + template + void + D2Parser::basic_symbol::move (basic_symbol& s) + { + super_type::move (s); + switch (this->type_get ()) + { + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value + value.move< ElementPtr > (YY_MOVE (s.value)); + break; + + case 59: // "boolean" + value.move< bool > (YY_MOVE (s.value)); + break; + + case 58: // "floating point" + value.move< double > (YY_MOVE (s.value)); + break; + + case 57: // "integer" + value.move< int64_t > (YY_MOVE (s.value)); + break; + + case 56: // "constant string" + value.move< std::string > (YY_MOVE (s.value)); + break; + + default: + break; + } + + location = YY_MOVE (s.location); + } + + // by_type. + inline + D2Parser::by_type::by_type () + : type (empty_symbol) + {} + +#if 201103L <= YY_CPLUSPLUS + inline + D2Parser::by_type::by_type (by_type&& that) + : type (that.type) + { + that.clear (); + } #endif - }; - /// Stack type. - typedef stack stack_type; + inline + D2Parser::by_type::by_type (const by_type& that) + : type (that.type) + {} - /// The stack. - stack_type yystack_; + inline + D2Parser::by_type::by_type (token_type t) + : type (yytranslate_ (t)) + {} - /// Push a new state on the stack. - /// \param m a debug message to display - /// if null, no trace is output. - /// \param sym the symbol - /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + inline + void + D2Parser::by_type::clear () + { + type = empty_symbol; + } - /// Push a new look ahead token on the state on the stack. - /// \param m a debug message to display - /// if null, no trace is output. - /// \param s the state - /// \param sym the symbol (for its value and location). - /// \warning the contents of \a sym.value is stolen. - void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + inline + void + D2Parser::by_type::move (by_type& that) + { + type = that.type; + that.clear (); + } - /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); + inline + int + D2Parser::by_type::type_get () const + { + return type; + } - /// Constants. - enum + inline + D2Parser::token_type + D2Parser::by_type::token () const + { + // YYTOKNUM[NUM] -- (External) token number corresponding to the + // (internal) symbol number NUM (which must be that of a token). */ + static + const unsigned short + yytoken_number_[] = { - yyeof_ = 0, - yylast_ = 282, ///< Last index in yytable_. - yynnts_ = 138, ///< Number of nonterminal symbols. - yyfinal_ = 20, ///< Termination state number. - yyterror_ = 1, - yyerrcode_ = 256, - yyntokens_ = 57 ///< Number of tokens. + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314 }; + return static_cast (yytoken_number_[type]); + } - - // User arguments. - isc::d2::D2ParserContext& ctx; - }; - - // Symbol number corresponding to token number t. + // Implementation of make_symbol for each symbol type. +# if 201103L <= YY_CPLUSPLUS inline - D2Parser::token_number_type - D2Parser::yytranslate_ (token_type t) + D2Parser::symbol_type + D2Parser::make_END (location_type l) + { + return symbol_type (token::TOKEN_END, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_END (const location_type& l) + { + return symbol_type (token::TOKEN_END, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_COMMA (location_type l) + { + return symbol_type (token::TOKEN_COMMA, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_COMMA (const location_type& l) + { + return symbol_type (token::TOKEN_COMMA, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_COLON (location_type l) + { + return symbol_type (token::TOKEN_COLON, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_COLON (const location_type& l) + { + return symbol_type (token::TOKEN_COLON, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_LSQUARE_BRACKET (location_type l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_LSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_RSQUARE_BRACKET (location_type l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_RSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_LCURLY_BRACKET (location_type l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_LCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_RCURLY_BRACKET (location_type l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_RCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_NULL_TYPE (location_type l) + { + return symbol_type (token::TOKEN_NULL_TYPE, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_NULL_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_NULL_TYPE, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DHCP6 (location_type l) + { + return symbol_type (token::TOKEN_DHCP6, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP6, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DHCP4 (location_type l) + { + return symbol_type (token::TOKEN_DHCP4, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_CONTROL_AGENT (location_type l) + { + return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_CONTROL_AGENT (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_AGENT, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DHCPDDNS (location_type l) + { + return symbol_type (token::TOKEN_DHCPDDNS, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DHCPDDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCPDDNS, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_IP_ADDRESS (location_type l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_IP_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_PORT (location_type l) + { + return symbol_type (token::TOKEN_PORT, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_PORT, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DNS_SERVER_TIMEOUT (location_type l) + { + return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DNS_SERVER_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_NCR_PROTOCOL (location_type l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_NCR_PROTOCOL (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_UDP (location_type l) { - static - const token_number_type - translate_table[] = - { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56 - }; - const unsigned user_token_number_max_ = 311; - const token_number_type undef_token_ = 2; - - if (static_cast (t) <= yyeof_) - return yyeof_; - else if (static_cast (t) <= user_token_number_max_) - return translate_table[t]; - else - return undef_token_; + return symbol_type (token::TOKEN_UDP, std::move (l)); } - +#else inline - D2Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - - // basic_symbol. - template - D2Parser::basic_symbol::basic_symbol () - : value () - , location () - {} - - template - D2Parser::basic_symbol::basic_symbol (YY_RVREF (basic_symbol) other) - : Base (YY_MOVE (other)) - , value () - , location (YY_MOVE (other.location)) + D2Parser::symbol_type + D2Parser::make_UDP (const location_type& l) { - switch (other.type_get ()) - { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value - value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (other.value)); - break; - - case 56: // "boolean" - value.YY_MOVE_OR_COPY< bool > (YY_MOVE (other.value)); - break; - - case 55: // "floating point" - value.YY_MOVE_OR_COPY< double > (YY_MOVE (other.value)); - break; - - case 54: // "integer" - value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (other.value)); - break; - - case 53: // "constant string" - value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (other.value)); - break; - - default: - break; - } - + return symbol_type (token::TOKEN_UDP, l); } - - - // Implementation of basic_symbol constructor for each type. +#endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, location_type&& l) - : Base (t) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_TCP (location_type l) + { + return symbol_type (token::TOKEN_TCP, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_TCP (const location_type& l) + { + return symbol_type (token::TOKEN_TCP, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_NCR_FORMAT (location_type l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_NCR_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_JSON (location_type l) + { + return symbol_type (token::TOKEN_JSON, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_JSON, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_USER_CONTEXT (location_type l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_USER_CONTEXT (const location_type& l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_COMMENT (location_type l) + { + return symbol_type (token::TOKEN_COMMENT, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_COMMENT (const location_type& l) + { + return symbol_type (token::TOKEN_COMMENT, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_FORWARD_DDNS (location_type l) + { + return symbol_type (token::TOKEN_FORWARD_DDNS, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_FORWARD_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_FORWARD_DDNS, l); + } #endif - - - template - D2Parser::basic_symbol::~basic_symbol () +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_REVERSE_DDNS (location_type l) { - clear (); + return symbol_type (token::TOKEN_REVERSE_DDNS, std::move (l)); } - - template - void - D2Parser::basic_symbol::clear () +#else + inline + D2Parser::symbol_type + D2Parser::make_REVERSE_DDNS (const location_type& l) { - // User destructor. - symbol_number_type yytype = this->type_get (); - basic_symbol& yysym = *this; - (void) yysym; - switch (yytype) - { - default: - break; - } - - // Type destructor. - switch (yytype) - { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value - value.template destroy< ElementPtr > (); - break; - - case 56: // "boolean" - value.template destroy< bool > (); - break; - - case 55: // "floating point" - value.template destroy< double > (); - break; - - case 54: // "integer" - value.template destroy< int64_t > (); - break; - - case 53: // "constant string" - value.template destroy< std::string > (); - break; - - default: - break; - } - - Base::clear (); + return symbol_type (token::TOKEN_REVERSE_DDNS, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DDNS_DOMAINS (location_type l) + { + return symbol_type (token::TOKEN_DDNS_DOMAINS, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DDNS_DOMAINS (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_DOMAINS, l); } - - template - bool - D2Parser::basic_symbol::empty () const +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_KEY_NAME (location_type l) { - return Base::type_get () == empty_symbol; + return symbol_type (token::TOKEN_KEY_NAME, std::move (l)); } - - template - void - D2Parser::basic_symbol::move (basic_symbol& s) +#else + inline + D2Parser::symbol_type + D2Parser::make_KEY_NAME (const location_type& l) { - super_type::move (s); - switch (this->type_get ()) - { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (s.value)); - break; - - case 56: // "boolean" - value.move< bool > (YY_MOVE (s.value)); - break; - - case 55: // "floating point" - value.move< double > (YY_MOVE (s.value)); - break; - - case 54: // "integer" - value.move< int64_t > (YY_MOVE (s.value)); - break; - - case 53: // "constant string" - value.move< std::string > (YY_MOVE (s.value)); - break; - - default: - break; - } - - location = YY_MOVE (s.location); + return symbol_type (token::TOKEN_KEY_NAME, l); } - - // by_type. +#endif +# if 201103L <= YY_CPLUSPLUS inline - D2Parser::by_type::by_type () - : type (empty_symbol) - {} - + D2Parser::symbol_type + D2Parser::make_DNS_SERVERS (location_type l) + { + return symbol_type (token::TOKEN_DNS_SERVERS, std::move (l)); + } +#else inline - D2Parser::by_type::by_type (const by_type& other) - : type (other.type) - {} - + D2Parser::symbol_type + D2Parser::make_DNS_SERVERS (const location_type& l) + { + return symbol_type (token::TOKEN_DNS_SERVERS, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS inline - D2Parser::by_type::by_type (token_type t) - : type (yytranslate_ (t)) - {} - + D2Parser::symbol_type + D2Parser::make_HOSTNAME (location_type l) + { + return symbol_type (token::TOKEN_HOSTNAME, std::move (l)); + } +#else inline - void - D2Parser::by_type::clear () + D2Parser::symbol_type + D2Parser::make_HOSTNAME (const location_type& l) { - type = empty_symbol; + return symbol_type (token::TOKEN_HOSTNAME, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline - void - D2Parser::by_type::move (by_type& that) + D2Parser::symbol_type + D2Parser::make_TSIG_KEYS (location_type l) { - type = that.type; - that.clear (); + return symbol_type (token::TOKEN_TSIG_KEYS, std::move (l)); } - +#else inline - int - D2Parser::by_type::type_get () const + D2Parser::symbol_type + D2Parser::make_TSIG_KEYS (const location_type& l) { - return type; + return symbol_type (token::TOKEN_TSIG_KEYS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline - D2Parser::token_type - D2Parser::by_type::token () const + D2Parser::symbol_type + D2Parser::make_ALGORITHM (location_type l) { - // YYTOKNUM[NUM] -- (External) token number corresponding to the - // (internal) symbol number NUM (which must be that of a token). */ - static - const unsigned short - yytoken_number_[] = - { - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311 - }; - return static_cast (yytoken_number_[type]); + return symbol_type (token::TOKEN_ALGORITHM, std::move (l)); } - - // Implementation of make_symbol for each symbol type. +#else inline D2Parser::symbol_type - D2Parser::make_END (YY_COPY (location_type) l) + D2Parser::make_ALGORITHM (const location_type& l) { - return symbol_type (token::TOKEN_END, YY_MOVE (l)); + return symbol_type (token::TOKEN_ALGORITHM, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_COMMA (YY_COPY (location_type) l) + D2Parser::make_DIGEST_BITS (location_type l) { - return symbol_type (token::TOKEN_COMMA, YY_MOVE (l)); + return symbol_type (token::TOKEN_DIGEST_BITS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_COLON (YY_COPY (location_type) l) + D2Parser::make_DIGEST_BITS (const location_type& l) { - return symbol_type (token::TOKEN_COLON, YY_MOVE (l)); + return symbol_type (token::TOKEN_DIGEST_BITS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_LSQUARE_BRACKET (YY_COPY (location_type) l) + D2Parser::make_SECRET (location_type l) { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, YY_MOVE (l)); + return symbol_type (token::TOKEN_SECRET, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_RSQUARE_BRACKET (YY_COPY (location_type) l) + D2Parser::make_SECRET (const location_type& l) { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, YY_MOVE (l)); + return symbol_type (token::TOKEN_SECRET, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_LCURLY_BRACKET (YY_COPY (location_type) l) + D2Parser::make_CONTROL_SOCKET (location_type l) { - return symbol_type (token::TOKEN_LCURLY_BRACKET, YY_MOVE (l)); + return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_RCURLY_BRACKET (YY_COPY (location_type) l) + D2Parser::make_CONTROL_SOCKET (const location_type& l) { - return symbol_type (token::TOKEN_RCURLY_BRACKET, YY_MOVE (l)); + return symbol_type (token::TOKEN_CONTROL_SOCKET, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_NULL_TYPE (YY_COPY (location_type) l) + D2Parser::make_SOCKET_TYPE (location_type l) { - return symbol_type (token::TOKEN_NULL_TYPE, YY_MOVE (l)); + return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DHCP6 (YY_COPY (location_type) l) + D2Parser::make_SOCKET_TYPE (const location_type& l) { - return symbol_type (token::TOKEN_DHCP6, YY_MOVE (l)); + return symbol_type (token::TOKEN_SOCKET_TYPE, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_DHCP4 (YY_COPY (location_type) l) + D2Parser::make_SOCKET_NAME (location_type l) { - return symbol_type (token::TOKEN_DHCP4, YY_MOVE (l)); + return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_CONTROL_AGENT (YY_COPY (location_type) l) + D2Parser::make_SOCKET_NAME (const location_type& l) { - return symbol_type (token::TOKEN_CONTROL_AGENT, YY_MOVE (l)); + return symbol_type (token::TOKEN_SOCKET_NAME, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_DHCPDDNS (YY_COPY (location_type) l) + D2Parser::make_LOGGING (location_type l) { - return symbol_type (token::TOKEN_DHCPDDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_LOGGING, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_IP_ADDRESS (YY_COPY (location_type) l) + D2Parser::make_LOGGING (const location_type& l) { - return symbol_type (token::TOKEN_IP_ADDRESS, YY_MOVE (l)); + return symbol_type (token::TOKEN_LOGGING, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_PORT (YY_COPY (location_type) l) + D2Parser::make_LOGGERS (location_type l) { - return symbol_type (token::TOKEN_PORT, YY_MOVE (l)); + return symbol_type (token::TOKEN_LOGGERS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DNS_SERVER_TIMEOUT (YY_COPY (location_type) l) + D2Parser::make_LOGGERS (const location_type& l) { - return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, YY_MOVE (l)); + return symbol_type (token::TOKEN_LOGGERS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_NCR_PROTOCOL (YY_COPY (location_type) l) + D2Parser::make_NAME (location_type l) { - return symbol_type (token::TOKEN_NCR_PROTOCOL, YY_MOVE (l)); + return symbol_type (token::TOKEN_NAME, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_UDP (YY_COPY (location_type) l) + D2Parser::make_NAME (const location_type& l) { - return symbol_type (token::TOKEN_UDP, YY_MOVE (l)); + return symbol_type (token::TOKEN_NAME, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_TCP (YY_COPY (location_type) l) + D2Parser::make_OUTPUT_OPTIONS (location_type l) { - return symbol_type (token::TOKEN_TCP, YY_MOVE (l)); + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_NCR_FORMAT (YY_COPY (location_type) l) + D2Parser::make_OUTPUT_OPTIONS (const location_type& l) { - return symbol_type (token::TOKEN_NCR_FORMAT, YY_MOVE (l)); + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_JSON (YY_COPY (location_type) l) + D2Parser::make_OUTPUT (location_type l) { - return symbol_type (token::TOKEN_JSON, YY_MOVE (l)); + return symbol_type (token::TOKEN_OUTPUT, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_USER_CONTEXT (YY_COPY (location_type) l) + D2Parser::make_OUTPUT (const location_type& l) { - return symbol_type (token::TOKEN_USER_CONTEXT, YY_MOVE (l)); + return symbol_type (token::TOKEN_OUTPUT, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_COMMENT (YY_COPY (location_type) l) + D2Parser::make_DEBUGLEVEL (location_type l) { - return symbol_type (token::TOKEN_COMMENT, YY_MOVE (l)); + return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_FORWARD_DDNS (YY_COPY (location_type) l) + D2Parser::make_DEBUGLEVEL (const location_type& l) { - return symbol_type (token::TOKEN_FORWARD_DDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_DEBUGLEVEL, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_REVERSE_DDNS (YY_COPY (location_type) l) + D2Parser::make_SEVERITY (location_type l) { - return symbol_type (token::TOKEN_REVERSE_DDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SEVERITY, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DDNS_DOMAINS (YY_COPY (location_type) l) + D2Parser::make_SEVERITY (const location_type& l) { - return symbol_type (token::TOKEN_DDNS_DOMAINS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SEVERITY, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_KEY_NAME (YY_COPY (location_type) l) + D2Parser::make_FLUSH (location_type l) { - return symbol_type (token::TOKEN_KEY_NAME, YY_MOVE (l)); + return symbol_type (token::TOKEN_FLUSH, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DNS_SERVERS (YY_COPY (location_type) l) + D2Parser::make_FLUSH (const location_type& l) { - return symbol_type (token::TOKEN_DNS_SERVERS, YY_MOVE (l)); + return symbol_type (token::TOKEN_FLUSH, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_HOSTNAME (YY_COPY (location_type) l) + D2Parser::make_MAXSIZE (location_type l) { - return symbol_type (token::TOKEN_HOSTNAME, YY_MOVE (l)); + return symbol_type (token::TOKEN_MAXSIZE, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_TSIG_KEYS (YY_COPY (location_type) l) + D2Parser::make_MAXSIZE (const location_type& l) { - return symbol_type (token::TOKEN_TSIG_KEYS, YY_MOVE (l)); + return symbol_type (token::TOKEN_MAXSIZE, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_ALGORITHM (YY_COPY (location_type) l) + D2Parser::make_MAXVER (location_type l) { - return symbol_type (token::TOKEN_ALGORITHM, YY_MOVE (l)); + return symbol_type (token::TOKEN_MAXVER, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DIGEST_BITS (YY_COPY (location_type) l) + D2Parser::make_MAXVER (const location_type& l) { - return symbol_type (token::TOKEN_DIGEST_BITS, YY_MOVE (l)); + return symbol_type (token::TOKEN_MAXVER, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_SECRET (YY_COPY (location_type) l) + D2Parser::make_TOPLEVEL_JSON (location_type l) { - return symbol_type (token::TOKEN_SECRET, YY_MOVE (l)); + return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_LOGGING (YY_COPY (location_type) l) + D2Parser::make_TOPLEVEL_JSON (const location_type& l) { - return symbol_type (token::TOKEN_LOGGING, YY_MOVE (l)); + return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_LOGGERS (YY_COPY (location_type) l) + D2Parser::make_TOPLEVEL_DHCPDDNS (location_type l) { - return symbol_type (token::TOKEN_LOGGERS, YY_MOVE (l)); + return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_NAME (YY_COPY (location_type) l) + D2Parser::make_TOPLEVEL_DHCPDDNS (const location_type& l) { - return symbol_type (token::TOKEN_NAME, YY_MOVE (l)); + return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_OUTPUT_OPTIONS (YY_COPY (location_type) l) + D2Parser::make_SUB_DHCPDDNS (location_type l) { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DHCPDDNS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_OUTPUT (YY_COPY (location_type) l) + D2Parser::make_SUB_DHCPDDNS (const location_type& l) { - return symbol_type (token::TOKEN_OUTPUT, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DHCPDDNS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_DEBUGLEVEL (YY_COPY (location_type) l) + D2Parser::make_SUB_TSIG_KEY (location_type l) { - return symbol_type (token::TOKEN_DEBUGLEVEL, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_TSIG_KEY, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SEVERITY (YY_COPY (location_type) l) + D2Parser::make_SUB_TSIG_KEY (const location_type& l) { - return symbol_type (token::TOKEN_SEVERITY, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_TSIG_KEY, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_FLUSH (YY_COPY (location_type) l) + D2Parser::make_SUB_TSIG_KEYS (location_type l) { - return symbol_type (token::TOKEN_FLUSH, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_TSIG_KEYS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_MAXSIZE (YY_COPY (location_type) l) + D2Parser::make_SUB_TSIG_KEYS (const location_type& l) { - return symbol_type (token::TOKEN_MAXSIZE, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_TSIG_KEYS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_MAXVER (YY_COPY (location_type) l) + D2Parser::make_SUB_DDNS_DOMAIN (location_type l) { - return symbol_type (token::TOKEN_MAXVER, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_TOPLEVEL_JSON (YY_COPY (location_type) l) + D2Parser::make_SUB_DDNS_DOMAIN (const location_type& l) { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_TOPLEVEL_DHCPDDNS (YY_COPY (location_type) l) + D2Parser::make_SUB_DDNS_DOMAINS (location_type l) { - return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SUB_DHCPDDNS (YY_COPY (location_type) l) + D2Parser::make_SUB_DDNS_DOMAINS (const location_type& l) { - return symbol_type (token::TOKEN_SUB_DHCPDDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_SUB_TSIG_KEY (YY_COPY (location_type) l) + D2Parser::make_SUB_DNS_SERVER (location_type l) { - return symbol_type (token::TOKEN_SUB_TSIG_KEY, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DNS_SERVER, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SUB_TSIG_KEYS (YY_COPY (location_type) l) + D2Parser::make_SUB_DNS_SERVER (const location_type& l) { - return symbol_type (token::TOKEN_SUB_TSIG_KEYS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DNS_SERVER, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_SUB_DDNS_DOMAIN (YY_COPY (location_type) l) + D2Parser::make_SUB_DNS_SERVERS (location_type l) { - return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DNS_SERVERS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SUB_DDNS_DOMAINS (YY_COPY (location_type) l) + D2Parser::make_SUB_DNS_SERVERS (const location_type& l) { - return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DNS_SERVERS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_SUB_DNS_SERVER (YY_COPY (location_type) l) + D2Parser::make_STRING (std::string v, location_type l) { - return symbol_type (token::TOKEN_SUB_DNS_SERVER, YY_MOVE (l)); + return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SUB_DNS_SERVERS (YY_COPY (location_type) l) + D2Parser::make_STRING (const std::string& v, const location_type& l) { - return symbol_type (token::TOKEN_SUB_DNS_SERVERS, YY_MOVE (l)); + return symbol_type (token::TOKEN_STRING, v, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l) + D2Parser::make_INTEGER (int64_t v, location_type l) { - return symbol_type (token::TOKEN_STRING, YY_MOVE (v), YY_MOVE (l)); + return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l) + D2Parser::make_INTEGER (const int64_t& v, const location_type& l) { - return symbol_type (token::TOKEN_INTEGER, YY_MOVE (v), YY_MOVE (l)); + return symbol_type (token::TOKEN_INTEGER, v, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l) + D2Parser::make_FLOAT (double v, location_type l) { - return symbol_type (token::TOKEN_FLOAT, YY_MOVE (v), YY_MOVE (l)); + return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l) + D2Parser::make_FLOAT (const double& v, const location_type& l) { - return symbol_type (token::TOKEN_BOOLEAN, YY_MOVE (v), YY_MOVE (l)); + return symbol_type (token::TOKEN_FLOAT, v, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_BOOLEAN (bool v, location_type l) + { + return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_BOOLEAN (const bool& v, const location_type& l) + { + return symbol_type (token::TOKEN_BOOLEAN, v, l); + } +#endif #line 14 "d2_parser.yy" // lalr1.cc:404 } } // isc::d2 -#line 1911 "d2_parser.h" // lalr1.cc:404 +#line 2758 "d2_parser.h" // lalr1.cc:404 diff --git a/src/bin/d2/location.hh b/src/bin/d2/location.hh index 0b7e416642..5af9a7b514 100644 --- a/src/bin/d2/location.hh +++ b/src/bin/d2/location.hh @@ -1,5 +1,5 @@ -// Generated 201811271344 -// A Bison parser, made by GNU Bison 3.2.1. +// Generated 201812272324 +// A Bison parser, made by GNU Bison 3.2.4. // Locations for Bison parsers in C++ diff --git a/src/bin/d2/position.hh b/src/bin/d2/position.hh index 5a854e9334..c3bce9a594 100644 --- a/src/bin/d2/position.hh +++ b/src/bin/d2/position.hh @@ -1,5 +1,5 @@ -// Generated 201811271344 -// A Bison parser, made by GNU Bison 3.2.1. +// Generated 201812272324 +// A Bison parser, made by GNU Bison 3.2.4. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined in "location.hh". diff --git a/src/bin/d2/stack.hh b/src/bin/d2/stack.hh index 4fcda222f5..e72ee252f3 100644 --- a/src/bin/d2/stack.hh +++ b/src/bin/d2/stack.hh @@ -1,5 +1,5 @@ -// Generated 201811271344 -// A Bison parser, made by GNU Bison 3.2.1. +// Generated 201812272324 +// A Bison parser, made by GNU Bison 3.2.4. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself.