From b172b252e790da71424fb4648b3fc5b51ddeaee7 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Thu, 4 Jul 2024 15:28:58 +0000 Subject: [PATCH] [#3477] Regen flex/bison --- src/bin/d2/d2_lexer.cc | 1064 +++++++++++++-------- src/bin/d2/d2_parser.cc | 1982 ++++++++++++++++++++++++--------------- src/bin/d2/d2_parser.h | 836 ++++++++++++----- src/bin/d2/location.hh | 1 + 4 files changed, 2556 insertions(+), 1327 deletions(-) diff --git a/src/bin/d2/d2_lexer.cc b/src/bin/d2/d2_lexer.cc index 08e3bfd7e7..f060818e6f 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 70 -#define YY_END_OF_BUFFER 71 +#define YY_NUM_RULES 90 +#define YY_END_OF_BUFFER 91 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,56 +700,70 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[440] = +static const flex_int16_t yy_accept[562] = { 0, - 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 69, 10, 11, 69, 1, 63, 60, 63, 63, - 69, 62, 61, 69, 69, 69, 69, 69, 56, 57, - 69, 69, 69, 58, 59, 5, 5, 5, 69, 69, - 69, 10, 11, 0, 0, 51, 0, 0, 0, 0, + 83, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 89, 10, 11, 89, 1, 83, 80, 83, 83, + 89, 82, 81, 89, 89, 89, 89, 89, 76, 77, + 89, 89, 89, 78, 79, 5, 5, 5, 89, 89, + 89, 10, 11, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 63, 63, - 0, 62, 63, 3, 2, 6, 0, 63, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 52, - 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 83, + 83, 0, 82, 83, 3, 2, 6, 0, 83, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, + 72, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 53, 55, 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, 73, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 66, - 0, 65, 64, 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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 86, + 0, 85, 84, 0, 0, 0, 19, 18, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 64, - 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 84, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 0, 0, 43, 0, 0, 0, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 44, 37, 49, 0, 0, + 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, - 32, 0, 0, 0, 0, 0, 0, 0, 22, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, - 40, 45, 0, 0, 0, 0, 0, 47, 0, 0, - 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, - 0, 0, 0, 0, 28, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 0, 0, 30, + 0, 0, 0, 0, 64, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, - 0, 49, 0, 0, 0, 0, 0, 13, 17, 0, - 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 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, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 60, 65, 0, 0, 0, 0, 0, 0, - 31, 0, 27, 0, 0, 0, 0, 0, 0, 33, - 36, 35, 0, 0, 25, 0, 23, 0, 16, 0, - 0, 24, 21, 0, 0, 0, 0, 0, 34, 0, - 0, 42, 41, 0, 37, 0, 0, 15, 0 + 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 28, 0, 55, 26, 0, + 0, 0, 0, 0, 51, 0, 0, 0, 70, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 0, 54, + 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 29, 0, 50, 0, 0, 0, 0, + 69, 0, 0, 0, 0, 0, 13, 17, 0, 0, + 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 31, 0, 27, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 40, 42, 36, + 0, 0, 0, 0, 0, 25, 0, 23, 0, 16, + 0, 0, 0, 24, 0, 53, 21, 0, 56, 0, + 0, 0, 0, 0, 52, 0, 43, 34, 0, 0, + 0, 62, 61, 41, 35, 0, 57, 0, 0, 15, + 0 } ; static const YY_CHAR yy_ec[256] = @@ -766,8 +780,8 @@ static const YY_CHAR yy_ec[256] = 34, 35, 36, 5, 37, 5, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 5, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 5, 64, 5, 5, 5, 5, 5, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 5, 65, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, @@ -784,7 +798,7 @@ static const YY_CHAR yy_ec[256] = 5, 5, 5, 5, 5 } ; -static const YY_CHAR yy_meta[65] = +static const YY_CHAR yy_meta[66] = { 0, 1, 1, 2, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -792,287 +806,341 @@ static const YY_CHAR yy_meta[65] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1 + 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[448] = +static const flex_int16_t yy_base[570] = { 0, - 0, 63, 17, 27, 35, 42, 46, 51, 80, 89, - 692, 693, 24, 688, 127, 0, 180, 693, 181, 66, - 9, 184, 693, 672, 101, 21, 14, 31, 693, 693, - 22, 61, 66, 693, 693, 693, 98, 676, 637, 0, - 670, 99, 683, 27, 205, 693, 640, 166, 83, 177, - 228, 635, 631, 159, 64, 630, 628, 638, 65, 641, - 84, 621, 164, 635, 16, 185, 187, 0, 194, 252, - 259, 260, 197, 693, 0, 693, 662, 661, 186, 198, - 232, 243, 250, 244, 693, 634, 667, 693, 209, 693, - 274, 632, 253, 257, 259, 665, 0, 326, 626, 163, + 0, 64, 17, 27, 35, 43, 46, 52, 81, 90, + 815, 816, 24, 811, 129, 0, 183, 816, 184, 30, + 9, 187, 816, 795, 100, 21, 28, 65, 816, 816, + 22, 64, 71, 816, 816, 816, 100, 799, 760, 0, + 793, 101, 806, 27, 208, 816, 763, 171, 42, 178, + 232, 61, 769, 75, 162, 64, 66, 753, 763, 159, + 766, 174, 745, 171, 760, 176, 222, 247, 0, 208, + 258, 206, 262, 259, 816, 0, 816, 787, 786, 190, + 195, 235, 253, 260, 247, 816, 759, 792, 816, 285, + 816, 286, 757, 266, 266, 277, 790, 0, 339, 751, - 618, 629, 623, 611, 608, 610, 177, 652, 601, 622, - 616, 599, 608, 603, 600, 177, 601, 596, 238, 613, - 606, 609, 0, 259, 267, 277, 260, 269, 280, 601, - 693, 596, 270, 642, 641, 640, 693, 693, 356, 593, - 594, 587, 587, 584, 598, 628, 583, 578, 588, 579, - 596, 622, 578, 587, 249, 588, 618, 575, 589, 570, - 569, 582, 569, 580, 573, 576, 565, 285, 693, 693, - 297, 693, 693, 561, 595, 610, 693, 693, 386, 561, - 572, 559, 601, 567, 555, 554, 563, 569, 551, 554, - 563, 552, 564, 559, 554, 557, 592, 280, 540, 546, + 737, 737, 737, 745, 184, 739, 750, 252, 732, 729, + 731, 180, 728, 773, 721, 743, 737, 719, 729, 723, + 720, 255, 721, 31, 257, 735, 716, 727, 719, 725, + 728, 0, 277, 287, 292, 283, 291, 300, 720, 816, + 715, 295, 761, 760, 759, 816, 816, 369, 712, 718, + 716, 704, 718, 709, 701, 701, 698, 713, 712, 742, + 696, 691, 702, 692, 695, 709, 735, 690, 700, 268, + 701, 731, 688, 702, 683, 681, 680, 687, 693, 679, + 691, 684, 675, 686, 687, 667, 672, 305, 816, 816, + 308, 816, 816, 668, 703, 718, 816, 816, 399, 668, - 553, 588, 539, 550, 537, 548, 578, 577, 693, 693, - 546, 545, 693, 416, 539, 533, 531, 541, 532, 524, - 537, 572, 523, 565, 537, 533, 535, 518, 517, 508, - 515, 693, 516, 513, 510, 523, 510, 693, 508, 506, - 515, 504, 511, 518, 515, 505, 499, 498, 504, 500, - 509, 539, 495, 693, 507, 498, 496, 491, 494, 482, - 487, 499, 534, 485, 486, 300, 481, 485, 493, 318, - 478, 522, 490, 479, 693, 475, 484, 522, 516, 476, - 467, 485, 465, 511, 475, 478, 477, 476, 511, 510, - 509, 693, 464, 457, 693, 460, 459, 468, 503, 497, + 680, 681, 709, 668, 676, 662, 705, 671, 658, 673, + 656, 666, 672, 653, 657, 320, 666, 305, 668, 663, + 658, 661, 696, 199, 643, 650, 639, 656, 691, 646, + 640, 652, 638, 650, 634, 679, 683, 682, 343, 816, + 816, 646, 645, 816, 429, 639, 633, 677, 309, 625, + 630, 628, 638, 629, 620, 619, 633, 668, 618, 661, + 633, 816, 664, 628, 622, 629, 611, 610, 601, 608, + 816, 610, 606, 603, 617, 606, 602, 816, 650, 599, + 597, 607, 595, 640, 602, 816, 816, 816, 292, 607, + 597, 590, 589, 816, 599, 602, 587, 585, 592, 588, - 693, 464, 445, 285, 444, 453, 497, 452, 693, 446, - 462, 457, 452, 455, 455, 456, 488, 438, 486, 693, - 693, 693, 453, 438, 436, 435, 433, 693, 445, 439, - 478, 445, 421, 426, 420, 693, 461, 401, 406, 402, - 394, 395, 407, 393, 693, 391, 693, 389, 404, 387, - 386, 386, 393, 384, 693, 382, 378, 417, 380, 693, - 381, 369, 413, 363, 287, 366, 378, 409, 408, 361, - 366, 365, 398, 352, 360, 359, 351, 693, 332, 343, - 335, 693, 383, 332, 381, 331, 331, 693, 693, 335, - 331, 330, 693, 326, 368, 367, 366, 315, 321, 356, + 597, 627, 585, 581, 816, 594, 585, 583, 816, 577, + 582, 580, 567, 572, 585, 620, 570, 572, 359, 566, + 567, 570, 816, 578, 360, 562, 607, 579, 574, 563, + 568, 816, 557, 567, 565, 561, 555, 602, 601, 595, + 555, 545, 564, 547, 542, 589, 553, 556, 555, 554, + 553, 588, 587, 586, 816, 541, 533, 816, 537, 536, + 545, 545, 579, 573, 816, 540, 520, 346, 530, 518, + 528, 529, 571, 526, 535, 532, 515, 816, 816, 516, + 533, 528, 523, 506, 525, 525, 526, 558, 507, 556, + 555, 816, 816, 816, 522, 507, 505, 504, 501, 361, - 693, 315, 693, 354, 313, 352, 306, 305, 349, 693, - 693, 693, 348, 297, 693, 302, 693, 309, 693, 289, - 288, 693, 693, 332, 293, 279, 320, 243, 693, 167, - 119, 693, 693, 64, 693, 53, 2, 693, 693, 459, - 462, 465, 0, 468, 471, 474, 477 + 816, 514, 508, 547, 511, 513, 498, 487, 508, 491, + 489, 503, 816, 538, 505, 536, 495, 488, 493, 489, + 480, 530, 480, 493, 478, 816, 476, 816, 816, 474, + 490, 472, 471, 471, 816, 483, 484, 475, 816, 482, + 472, 466, 467, 474, 512, 475, 510, 816, 458, 816, + 459, 473, 461, 505, 454, 816, 344, 458, 470, 501, + 500, 453, 458, 457, 496, 455, 449, 457, 443, 455, + 439, 453, 442, 816, 428, 816, 434, 424, 417, 408, + 816, 457, 405, 455, 404, 404, 816, 816, 409, 405, + 404, 816, 406, 398, 441, 404, 439, 438, 430, 380, + + 377, 381, 391, 389, 424, 816, 383, 816, 422, 381, + 420, 374, 373, 375, 410, 816, 359, 816, 816, 816, + 408, 400, 354, 398, 345, 816, 348, 816, 353, 816, + 338, 331, 380, 816, 329, 816, 816, 369, 816, 345, + 332, 317, 363, 362, 816, 351, 816, 816, 332, 185, + 218, 816, 816, 816, 816, 67, 816, 55, 2, 816, + 816, 472, 475, 478, 0, 481, 484, 487, 490 } ; -static const flex_int16_t yy_def[448] = +static const flex_int16_t yy_def[570] = { 0, - 440, 440, 441, 441, 440, 440, 440, 440, 440, 440, - 439, 439, 439, 439, 439, 442, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 443, - 439, 439, 439, 444, 15, 439, 45, 45, 45, 45, - 445, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 442, 439, 439, - 439, 439, 439, 439, 446, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 443, 439, 444, 439, - 439, 45, 45, 45, 45, 447, 45, 445, 45, 45, + 562, 562, 563, 563, 562, 562, 562, 562, 562, 562, + 561, 561, 561, 561, 561, 564, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 565, + 561, 561, 561, 566, 15, 561, 45, 45, 45, 45, + 567, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 564, 561, + 561, 561, 561, 561, 561, 568, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 565, 561, 566, + 561, 561, 45, 45, 45, 45, 569, 45, 567, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 446, 439, 439, 439, 439, 439, 439, 439, - 439, 45, 45, 45, 45, 447, 439, 439, 98, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 439, 439, 439, - 439, 439, 439, 439, 45, 45, 439, 439, 98, 45, + 45, 568, 561, 561, 561, 561, 561, 561, 561, 561, + 45, 45, 45, 45, 569, 561, 561, 99, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 561, 561, 561, + 561, 561, 561, 561, 45, 45, 561, 561, 99, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 439, 439, - 439, 45, 439, 98, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 439, 45, 45, 45, 45, 45, 439, 45, 45, - 45, 45, 45, 45, 439, 45, 45, 45, 45, 45, - 45, 45, 45, 439, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 439, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 439, 45, 45, 439, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 561, + 561, 561, 45, 561, 99, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 561, 45, 45, 45, 45, 45, 45, 45, 45, + 561, 45, 45, 45, 45, 45, 45, 561, 45, 45, + 45, 45, 45, 45, 45, 561, 561, 561, 45, 561, + 45, 45, 45, 561, 45, 45, 45, 45, 45, 45, - 439, 45, 45, 45, 45, 45, 45, 45, 439, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 439, - 439, 439, 45, 45, 45, 45, 45, 439, 45, 45, - 45, 45, 45, 45, 45, 439, 45, 45, 45, 45, - 45, 45, 45, 45, 439, 45, 439, 45, 45, 45, - 45, 45, 45, 45, 439, 45, 45, 45, 45, 439, + 45, 45, 45, 45, 561, 45, 45, 45, 561, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 439, 45, 45, - 45, 439, 45, 45, 45, 45, 45, 439, 439, 45, - 45, 45, 439, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 561, 45, 45, 45, 45, 45, 45, 45, + 45, 561, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 561, 45, 45, 561, 45, 45, + 45, 45, 45, 45, 561, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 561, 561, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 561, 561, 561, 45, 45, 45, 45, 45, 45, - 439, 45, 439, 45, 45, 45, 45, 45, 45, 439, - 439, 439, 45, 45, 439, 45, 439, 45, 439, 45, - 45, 439, 439, 45, 45, 45, 45, 45, 439, 45, - 45, 439, 439, 45, 439, 45, 45, 439, 0, 439, - 439, 439, 439, 439, 439, 439, 439 + 561, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 561, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 561, 45, 561, 561, 45, + 45, 45, 45, 45, 561, 45, 45, 45, 561, 45, + 45, 45, 45, 45, 45, 45, 45, 561, 45, 561, + 45, 45, 45, 45, 45, 561, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 561, 45, 561, 45, 45, 45, 45, + 561, 45, 45, 45, 45, 45, 561, 561, 45, 45, + 45, 561, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 561, 45, 561, 45, 45, + 45, 45, 45, 45, 45, 561, 45, 561, 561, 561, + 45, 45, 45, 45, 45, 561, 45, 561, 45, 561, + 45, 45, 45, 561, 45, 561, 561, 45, 561, 45, + 45, 45, 45, 45, 561, 45, 561, 561, 45, 45, + 45, 561, 561, 561, 561, 45, 561, 45, 45, 561, + 0, 561, 561, 561, 561, 561, 561, 561, 561 } ; -static const flex_int16_t yy_nxt[758] = +static const flex_int16_t yy_nxt[882] = { 0, - 87, 13, 14, 13, 439, 15, 16, 438, 17, 18, - 19, 20, 21, 22, 23, 24, 74, 439, 37, 14, - 37, 75, 25, 26, 38, 42, 27, 42, 37, 14, - 37, 28, 90, 29, 38, 30, 13, 14, 13, 79, - 79, 25, 31, 13, 14, 13, 80, 13, 14, 13, - 32, 40, 13, 14, 13, 33, 40, 119, 79, 82, - 81, 91, 34, 35, 13, 14, 13, 120, 15, 16, - 80, 17, 18, 19, 20, 21, 22, 23, 24, 73, - 39, 13, 14, 13, 81, 25, 26, 39, 71, 27, - 13, 14, 13, 80, 28, 81, 29, 41, 30, 42, + 88, 13, 14, 13, 561, 15, 16, 560, 17, 18, + 19, 20, 21, 22, 23, 24, 75, 561, 37, 14, + 37, 76, 25, 26, 38, 42, 27, 42, 37, 14, + 37, 28, 91, 29, 38, 30, 13, 14, 13, 80, + 80, 25, 31, 74, 13, 14, 13, 13, 14, 13, + 32, 40, 72, 13, 14, 13, 33, 40, 80, 83, + 81, 92, 95, 34, 35, 13, 14, 13, 178, 15, + 16, 72, 17, 18, 19, 20, 21, 22, 23, 24, + 39, 95, 13, 14, 13, 81, 25, 26, 39, 179, + 27, 13, 14, 13, 82, 28, 81, 29, 41, 30, - 42, 42, 42, 94, 25, 31, 41, 71, 437, 77, - 110, 77, 105, 32, 78, 106, 111, 83, 33, 84, - 436, 113, 94, 114, 435, 34, 35, 44, 44, 44, - 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, - 45, 48, 45, 45, 45, 45, 45, 45, 49, 50, - 45, 51, 45, 45, 52, 45, 53, 54, 45, 55, - 45, 56, 57, 48, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 45, 45, 45, 45, 45, 45, - 45, 69, 69, 70, 72, 69, 93, 72, 95, 101, - - 102, 116, 71, 71, 103, 94, 71, 73, 95, 104, - 73, 124, 141, 142, 90, 117, 71, 95, 434, 71, - 93, 71, 71, 125, 94, 71, 45, 95, 149, 45, - 159, 150, 160, 97, 124, 71, 45, 45, 71, 121, - 45, 122, 45, 91, 45, 45, 125, 45, 433, 45, + 82, 42, 42, 42, 42, 25, 31, 41, 78, 100, + 78, 559, 110, 79, 32, 111, 103, 112, 101, 82, + 33, 84, 113, 104, 558, 85, 105, 34, 35, 44, + 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 69, 126, 70, 45, 77, 124, 77, - 45, 69, 78, 72, 71, 125, 126, 163, 45, 89, - 133, 45, 71, 45, 98, 134, 89, 135, 126, 168, - 168, 127, 169, 71, 169, 164, 176, 384, 128, 170, + 47, 45, 45, 48, 45, 45, 45, 45, 45, 45, + 49, 50, 45, 51, 45, 45, 52, 53, 54, 55, + 45, 56, 45, 57, 58, 48, 59, 60, 61, 62, + 63, 64, 45, 65, 66, 67, 68, 45, 45, 45, + 45, 45, 45, 45, 70, 70, 71, 73, 70, 96, - 129, 71, 170, 195, 133, 295, 196, 209, 89, 134, - 296, 135, 89, 168, 171, 169, 89, 172, 170, 209, - 176, 173, 233, 301, 89, 432, 209, 89, 302, 89, - 89, 138, 234, 431, 430, 332, 297, 429, 210, 139, - 333, 385, 428, 427, 139, 139, 139, 139, 139, 139, - 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, - 416, 415, 414, 139, 139, 139, 139, 139, 139, 179, - 413, 412, 411, 410, 179, 179, 179, 179, 179, 179, - 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, - 399, 398, 397, 179, 179, 179, 179, 179, 179, 214, + 73, 94, 106, 107, 116, 72, 72, 108, 122, 72, + 117, 119, 109, 120, 78, 133, 78, 125, 96, 79, + 134, 74, 123, 557, 72, 72, 94, 126, 72, 45, + 72, 163, 45, 154, 155, 164, 556, 98, 133, 45, + 45, 272, 95, 134, 45, 45, 45, 45, 45, 72, + 45, 273, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 95, 45, 45, 45, 45, 45, 135, 96, 70, + 45, 71, 74, 70, 45, 73, 127, 128, 133, 135, + 72, 72, 45, 129, 72, 134, 45, 96, 45, 99, + 91, 90, 135, 142, 143, 158, 180, 130, 90, 72, - 396, 395, 394, 393, 214, 214, 214, 214, 214, 214, - 392, 391, 390, 389, 388, 387, 386, 383, 382, 381, - 380, 379, 378, 214, 214, 214, 214, 214, 214, 45, - 377, 376, 375, 374, 45, 45, 45, 45, 45, 45, - 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, - 363, 362, 361, 45, 45, 45, 45, 45, 45, 12, - 12, 12, 36, 36, 36, 68, 360, 68, 89, 89, - 89, 96, 96, 96, 123, 359, 123, 136, 136, 136, - 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, - 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, + 72, 136, 131, 72, 138, 144, 159, 188, 137, 174, + 175, 176, 189, 188, 190, 181, 189, 142, 143, 92, + 90, 196, 190, 221, 90, 262, 222, 240, 90, 144, + 240, 330, 188, 190, 331, 189, 90, 555, 191, 192, + 90, 193, 90, 90, 147, 196, 240, 265, 288, 241, + 548, 295, 148, 289, 483, 266, 554, 148, 148, 148, + 148, 148, 148, 296, 358, 365, 435, 553, 552, 359, + 366, 436, 551, 550, 547, 263, 148, 148, 148, 148, + 148, 148, 199, 405, 546, 545, 544, 199, 199, 199, + 199, 199, 199, 543, 542, 360, 406, 541, 407, 484, - 338, 337, 336, 335, 334, 331, 330, 329, 328, 327, - 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, - 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, - 306, 305, 304, 303, 300, 299, 298, 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, 246, 245, 244, 243, 242, - 241, 240, 239, 238, 237, 236, 235, 232, 231, 230, + 549, 540, 408, 539, 538, 537, 199, 199, 199, 199, + 199, 199, 245, 536, 535, 534, 533, 245, 245, 245, + 245, 245, 245, 532, 531, 530, 529, 528, 527, 526, + 525, 524, 523, 522, 521, 520, 245, 245, 245, 245, + 245, 245, 45, 519, 518, 517, 516, 45, 45, 45, + 45, 45, 45, 515, 514, 513, 512, 511, 510, 509, + 508, 507, 506, 505, 504, 503, 45, 45, 45, 45, + 45, 45, 12, 12, 12, 36, 36, 36, 69, 502, + 69, 90, 90, 90, 97, 97, 97, 132, 501, 132, + 145, 145, 145, 500, 499, 498, 497, 496, 495, 494, - 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, - 219, 218, 217, 216, 215, 213, 212, 211, 208, 207, - 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, - 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, - 184, 183, 182, 181, 180, 137, 178, 177, 175, 174, - 167, 166, 165, 162, 161, 158, 157, 156, 155, 154, - 153, 152, 151, 148, 147, 146, 145, 144, 143, 140, - 137, 132, 131, 130, 78, 78, 118, 115, 112, 109, - 108, 107, 100, 99, 92, 43, 88, 86, 85, 76, - 43, 439, 11, 439, 439, 439, 439, 439, 439, 439, + 493, 492, 491, 490, 489, 488, 487, 486, 485, 482, + 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, + 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, + 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, + 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, + 441, 440, 439, 438, 437, 434, 433, 432, 431, 430, + 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, + 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, + 409, 404, 403, 402, 401, 400, 399, 398, 397, 396, + 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439 + 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, + 375, 374, 373, 372, 371, 370, 369, 368, 367, 364, + 363, 362, 361, 357, 356, 355, 354, 353, 352, 351, + 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, + 340, 339, 338, 337, 336, 335, 334, 333, 332, 329, + 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, + 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, + 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, + 298, 297, 294, 293, 292, 291, 290, 287, 286, 285, + 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, + + 274, 271, 270, 269, 268, 267, 264, 261, 260, 259, + 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, + 248, 247, 246, 244, 243, 242, 239, 238, 237, 236, + 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, + 225, 224, 223, 220, 219, 218, 217, 216, 215, 214, + 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, + 203, 202, 201, 200, 146, 198, 197, 195, 194, 187, + 186, 185, 184, 183, 182, 177, 173, 172, 171, 170, + 169, 168, 167, 166, 165, 162, 161, 160, 157, 156, + 153, 152, 151, 150, 149, 146, 141, 140, 139, 79, + + 79, 124, 121, 118, 115, 114, 102, 93, 43, 89, + 87, 86, 77, 43, 561, 11, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561 } ; -static const flex_int16_t yy_chk[758] = +static const flex_int16_t yy_chk[882] = { 0, - 443, 1, 1, 1, 0, 1, 1, 437, 1, 1, + 565, 1, 1, 1, 0, 1, 1, 559, 1, 1, 1, 1, 1, 1, 1, 1, 21, 0, 3, 3, 3, 21, 1, 1, 3, 13, 1, 13, 4, 4, 4, 1, 44, 1, 4, 1, 5, 5, 5, 26, - 31, 1, 1, 6, 6, 6, 27, 7, 7, 7, - 1, 7, 8, 8, 8, 1, 8, 65, 26, 31, - 28, 44, 1, 1, 2, 2, 2, 65, 2, 2, - 27, 2, 2, 2, 2, 2, 2, 2, 2, 20, - 5, 9, 9, 9, 28, 2, 2, 6, 20, 2, - 10, 10, 10, 32, 2, 33, 2, 9, 2, 37, + 31, 1, 1, 20, 6, 6, 6, 7, 7, 7, + 1, 7, 20, 8, 8, 8, 1, 8, 26, 31, + 27, 44, 49, 1, 1, 2, 2, 2, 124, 2, + 2, 20, 2, 2, 2, 2, 2, 2, 2, 2, + 5, 49, 9, 9, 9, 27, 2, 2, 6, 124, + 2, 10, 10, 10, 28, 2, 32, 2, 9, 2, - 42, 37, 42, 49, 2, 2, 10, 20, 436, 25, - 59, 25, 55, 2, 25, 55, 59, 32, 2, 33, - 434, 61, 49, 61, 431, 2, 2, 15, 15, 15, + 33, 37, 42, 37, 42, 2, 2, 10, 25, 52, + 25, 558, 56, 25, 2, 56, 54, 57, 52, 28, + 2, 32, 57, 54, 556, 33, 54, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 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, 17, 19, 17, 19, 22, 48, 22, 50, 54, + 15, 15, 15, 15, 17, 19, 17, 19, 22, 50, - 54, 63, 17, 19, 54, 66, 22, 69, 67, 54, - 73, 79, 100, 100, 89, 63, 69, 50, 430, 73, - 48, 17, 19, 80, 66, 22, 45, 67, 107, 45, - 116, 107, 116, 51, 79, 69, 45, 45, 73, 66, - 51, 67, 45, 89, 45, 45, 80, 45, 428, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 51, 70, 81, 70, 51, 71, 82, 71, - 51, 72, 71, 72, 70, 83, 84, 119, 51, 91, - 93, 51, 72, 51, 51, 94, 91, 95, 81, 124, - 127, 82, 125, 70, 128, 119, 133, 365, 83, 126, + 22, 48, 55, 55, 60, 17, 19, 55, 64, 22, + 60, 62, 55, 62, 72, 80, 72, 66, 50, 72, + 81, 70, 64, 551, 17, 19, 48, 66, 22, 45, + 70, 112, 45, 105, 105, 112, 550, 51, 80, 45, + 45, 224, 67, 81, 51, 45, 45, 45, 45, 70, + 45, 224, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 67, 45, 45, 45, 45, 51, 82, 68, 71, + 51, 71, 74, 73, 51, 73, 67, 67, 83, 85, + 71, 74, 51, 67, 73, 84, 51, 68, 51, 51, + 90, 92, 82, 94, 95, 108, 125, 68, 92, 71, - 84, 72, 129, 155, 93, 266, 155, 168, 91, 94, - 266, 95, 91, 124, 127, 125, 91, 128, 126, 171, - 133, 129, 198, 270, 91, 427, 168, 91, 270, 91, - 91, 98, 198, 426, 425, 304, 266, 424, 171, 98, - 304, 365, 421, 420, 98, 98, 98, 98, 98, 98, - 418, 416, 414, 413, 409, 408, 407, 406, 405, 404, - 402, 400, 399, 98, 98, 98, 98, 98, 98, 139, - 398, 397, 396, 395, 139, 139, 139, 139, 139, 139, - 394, 392, 391, 390, 387, 386, 385, 384, 383, 381, - 380, 379, 377, 139, 139, 139, 139, 139, 139, 179, + 74, 83, 68, 73, 85, 96, 108, 133, 84, 122, + 122, 122, 134, 136, 135, 125, 137, 94, 95, 90, + 92, 142, 138, 170, 92, 216, 170, 188, 92, 96, + 191, 289, 133, 135, 289, 134, 92, 549, 136, 137, + 92, 138, 92, 92, 99, 142, 188, 218, 239, 191, + 540, 249, 99, 239, 457, 218, 546, 99, 99, 99, + 99, 99, 99, 249, 319, 325, 400, 544, 543, 319, + 325, 400, 542, 541, 538, 216, 99, 99, 99, 99, + 99, 99, 148, 368, 535, 533, 532, 148, 148, 148, + 148, 148, 148, 531, 529, 319, 368, 527, 368, 457, - 376, 375, 374, 373, 179, 179, 179, 179, 179, 179, - 372, 371, 370, 369, 368, 367, 366, 364, 363, 362, - 361, 359, 358, 179, 179, 179, 179, 179, 179, 214, - 357, 356, 354, 353, 214, 214, 214, 214, 214, 214, - 352, 351, 350, 349, 348, 346, 344, 343, 342, 341, - 340, 339, 338, 214, 214, 214, 214, 214, 214, 440, - 440, 440, 441, 441, 441, 442, 337, 442, 444, 444, - 444, 445, 445, 445, 446, 335, 446, 447, 447, 447, - 334, 333, 332, 331, 330, 329, 327, 326, 325, 324, - 323, 319, 318, 317, 316, 315, 314, 313, 312, 311, + 540, 525, 368, 524, 523, 522, 148, 148, 148, 148, + 148, 148, 199, 521, 517, 515, 514, 199, 199, 199, + 199, 199, 199, 513, 512, 511, 510, 509, 507, 505, + 504, 503, 502, 501, 500, 499, 199, 199, 199, 199, + 199, 199, 245, 498, 497, 496, 495, 245, 245, 245, + 245, 245, 245, 494, 493, 491, 490, 489, 486, 485, + 484, 483, 482, 480, 479, 478, 245, 245, 245, 245, + 245, 245, 562, 562, 562, 563, 563, 563, 564, 477, + 564, 566, 566, 566, 567, 567, 567, 568, 475, 568, + 569, 569, 569, 473, 472, 471, 470, 469, 468, 467, - 310, 308, 307, 306, 305, 303, 302, 300, 299, 298, - 297, 296, 294, 293, 291, 290, 289, 288, 287, 286, - 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, - 274, 273, 272, 271, 269, 268, 267, 265, 264, 263, - 262, 261, 260, 259, 258, 257, 256, 255, 253, 252, - 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, - 241, 240, 239, 237, 236, 235, 234, 233, 231, 230, - 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, - 219, 218, 217, 216, 215, 212, 211, 208, 207, 206, - 205, 204, 203, 202, 201, 200, 199, 197, 196, 195, + 466, 465, 464, 463, 462, 461, 460, 459, 458, 455, + 454, 453, 452, 451, 449, 447, 446, 445, 444, 443, + 442, 441, 440, 438, 437, 436, 434, 433, 432, 431, + 430, 427, 425, 424, 423, 422, 421, 420, 419, 418, + 417, 416, 415, 414, 412, 411, 410, 409, 408, 407, + 406, 405, 404, 403, 402, 399, 398, 397, 396, 395, + 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, + 381, 380, 377, 376, 375, 374, 373, 372, 371, 370, + 369, 367, 366, 364, 363, 362, 361, 360, 359, 357, + 356, 354, 353, 352, 351, 350, 349, 348, 347, 346, - 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, - 184, 183, 182, 181, 180, 176, 175, 174, 167, 166, - 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, - 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, - 144, 143, 142, 141, 140, 136, 135, 134, 132, 130, - 122, 121, 120, 118, 117, 115, 114, 113, 112, 111, - 110, 109, 108, 106, 105, 104, 103, 102, 101, 99, - 96, 92, 87, 86, 78, 77, 64, 62, 60, 58, - 57, 56, 53, 52, 47, 43, 41, 39, 38, 24, - 14, 11, 439, 439, 439, 439, 439, 439, 439, 439, + 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, + 335, 334, 333, 331, 330, 329, 328, 327, 326, 324, + 322, 321, 320, 318, 317, 316, 315, 314, 313, 312, + 311, 310, 308, 307, 306, 304, 303, 302, 301, 300, + 299, 298, 297, 296, 295, 293, 292, 291, 290, 285, + 284, 283, 282, 281, 280, 279, 277, 276, 275, 274, + 273, 272, 270, 269, 268, 267, 266, 265, 264, 263, + 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, + 251, 250, 248, 247, 246, 243, 242, 238, 237, 236, + 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439 + 225, 223, 222, 221, 220, 219, 217, 215, 214, 213, + 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, + 202, 201, 200, 196, 195, 194, 187, 186, 185, 184, + 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, + 173, 172, 171, 169, 168, 167, 166, 165, 164, 163, + 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, + 152, 151, 150, 149, 145, 144, 143, 141, 139, 131, + 130, 129, 128, 127, 126, 123, 121, 120, 119, 118, + 117, 116, 115, 114, 113, 111, 110, 109, 107, 106, + 104, 103, 102, 101, 100, 97, 93, 88, 87, 79, + + 78, 65, 63, 61, 59, 58, 53, 47, 43, 41, + 39, 38, 24, 14, 11, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561 } ; static yy_state_type yy_last_accepting_state; @@ -1081,15 +1149,17 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[70] = +static const flex_int16_t yy_rule_linenum[90] = { 0, 137, 139, 141, 146, 147, 152, 153, 154, 166, 169, 174, 180, 189, 200, 211, 220, 229, 238, 248, 258, - 268, 285, 302, 311, 320, 330, 342, 352, 363, 372, - 382, 392, 402, 412, 421, 430, 439, 448, 457, 466, - 475, 484, 493, 502, 511, 520, 529, 538, 551, 560, - 569, 670, 686, 735, 743, 758, 759, 760, 761, 762, - 763, 765, 783, 796, 801, 805, 807, 809, 811 + 268, 287, 306, 315, 324, 334, 346, 356, 367, 376, + 386, 396, 406, 416, 425, 434, 443, 452, 461, 470, + 479, 488, 497, 506, 515, 524, 533, 542, 551, 560, + 569, 578, 587, 596, 605, 614, 623, 632, 641, 650, + 659, 668, 677, 686, 695, 704, 713, 722, 735, 744, + 753, 854, 870, 919, 927, 942, 943, 944, 945, 946, + 947, 949, 967, 980, 985, 989, 991, 993, 995 } ; /* The intent behind this definition is that it'll catch @@ -1142,7 +1212,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 1145 "d2_lexer.cc" +#line 1215 "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 @@ -1168,8 +1238,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 1171 "d2_lexer.cc" -#line 1172 "d2_lexer.cc" +#line 1241 "d2_lexer.cc" +#line 1242 "d2_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1489,7 +1559,7 @@ YY_DECL } -#line 1492 "d2_lexer.cc" +#line 1562 "d2_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1518,13 +1588,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 >= 440 ) + if ( yy_current_state >= 562 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 439 ); + while ( yy_current_state != 561 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1543,13 +1613,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 < 70 ) + else if ( yy_act < 90 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 70 ) + else if ( yy_act == 90 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 71 ) + else if ( yy_act == 91 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -1781,6 +1851,8 @@ YY_RULE_SETUP case isc::d2::D2ParserContext::TSIG_KEY: case isc::d2::D2ParserContext::TSIG_KEYS: case isc::d2::D2ParserContext::CONTROL_SOCKET: + case isc::d2::D2ParserContext::AUTHENTICATION: + case isc::d2::D2ParserContext::CLIENTS: case isc::d2::D2ParserContext::LOGGERS: return isc::d2::D2Parser::make_USER_CONTEXT(driver.loc_); default: @@ -1790,7 +1862,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 285 "d2_lexer.ll" +#line 287 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1801,6 +1873,8 @@ YY_RULE_SETUP case isc::d2::D2ParserContext::TSIG_KEY: case isc::d2::D2ParserContext::TSIG_KEYS: case isc::d2::D2ParserContext::CONTROL_SOCKET: + case isc::d2::D2ParserContext::AUTHENTICATION: + case isc::d2::D2ParserContext::CLIENTS: case isc::d2::D2ParserContext::LOGGERS: return isc::d2::D2Parser::make_COMMENT(driver.loc_); default: @@ -1810,7 +1884,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 302 "d2_lexer.ll" +#line 306 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1822,7 +1896,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 311 "d2_lexer.ll" +#line 315 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1834,7 +1908,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 320 "d2_lexer.ll" +#line 324 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::FORWARD_DDNS: @@ -1847,7 +1921,7 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 330 "d2_lexer.ll" +#line 334 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DDNS_DOMAIN: @@ -1862,7 +1936,7 @@ YY_RULE_SETUP YY_BREAK case 27: YY_RULE_SETUP -#line 342 "d2_lexer.ll" +#line 346 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DDNS_DOMAIN: @@ -1875,7 +1949,7 @@ YY_RULE_SETUP YY_BREAK case 28: YY_RULE_SETUP -#line 352 "d2_lexer.ll" +#line 356 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DNS_SERVER: @@ -1888,7 +1962,7 @@ YY_RULE_SETUP YY_BREAK case 29: YY_RULE_SETUP -#line 363 "d2_lexer.ll" +#line 367 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1900,7 +1974,7 @@ YY_RULE_SETUP YY_BREAK case 30: YY_RULE_SETUP -#line 372 "d2_lexer.ll" +#line 376 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::TSIG_KEY: @@ -1913,7 +1987,7 @@ YY_RULE_SETUP YY_BREAK case 31: YY_RULE_SETUP -#line 382 "d2_lexer.ll" +#line 386 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::TSIG_KEY: @@ -1926,7 +2000,7 @@ YY_RULE_SETUP YY_BREAK case 32: YY_RULE_SETUP -#line 392 "d2_lexer.ll" +#line 396 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::TSIG_KEY: @@ -1939,7 +2013,7 @@ YY_RULE_SETUP YY_BREAK case 33: YY_RULE_SETUP -#line 402 "d2_lexer.ll" +#line 406 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::TSIG_KEY: @@ -1952,7 +2026,7 @@ YY_RULE_SETUP YY_BREAK case 34: YY_RULE_SETUP -#line 412 "d2_lexer.ll" +#line 416 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1964,7 +2038,19 @@ YY_RULE_SETUP YY_BREAK case 35: YY_RULE_SETUP -#line 421 "d2_lexer.ll" +#line 425 "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 36: +YY_RULE_SETUP +#line 434 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::CONTROL_SOCKET: @@ -1974,9 +2060,45 @@ YY_RULE_SETUP } } YY_BREAK -case 36: +case 37: YY_RULE_SETUP -#line 430 "d2_lexer.ll" +#line 443 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::d2::D2ParserContext::CONTROL_SOCKET_TYPE: + return isc::d2::D2Parser::make_UNIX(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("unix", driver.loc_); + } +} + YY_BREAK +case 38: +YY_RULE_SETUP +#line 452 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::d2::D2ParserContext::CONTROL_SOCKET_TYPE: + return isc::d2::D2Parser::make_HTTP(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("http", driver.loc_); + } +} + YY_BREAK +case 39: +YY_RULE_SETUP +#line 461 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::d2::D2ParserContext::CONTROL_SOCKET_TYPE: + return isc::d2::D2Parser::make_HTTPS(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("https", driver.loc_); + } +} + YY_BREAK +case 40: +YY_RULE_SETUP +#line 470 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::CONTROL_SOCKET: @@ -1986,9 +2108,201 @@ YY_RULE_SETUP } } YY_BREAK -case 37: +case 41: YY_RULE_SETUP -#line 439 "d2_lexer.ll" +#line 479 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::d2::D2ParserContext::CONTROL_SOCKET: + return isc::d2::D2Parser::make_SOCKET_ADDRESS(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("socket-address", driver.loc_); + } +} + YY_BREAK +case 42: +YY_RULE_SETUP +#line 488 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::d2::D2ParserContext::CONTROL_SOCKET: + return isc::d2::D2Parser::make_SOCKET_PORT(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("socket-port", driver.loc_); + } +} + YY_BREAK +case 43: +YY_RULE_SETUP +#line 497 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::CONTROL_SOCKET: + return isc::d2::D2Parser::make_AUTHENTICATION(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("authentication", driver.loc_); + } +} + YY_BREAK +case 44: +YY_RULE_SETUP +#line 506 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::AUTHENTICATION: + return isc::d2::D2Parser::make_TYPE(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("type", driver.loc_); + } +} + YY_BREAK +case 45: +YY_RULE_SETUP +#line 515 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::AUTH_TYPE: + return isc::d2::D2Parser::make_BASIC(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("basic", driver.loc_); + } +} + YY_BREAK +case 46: +YY_RULE_SETUP +#line 524 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::AUTHENTICATION: + return isc::d2::D2Parser::make_REALM(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("realm", driver.loc_); + } +} + YY_BREAK +case 47: +YY_RULE_SETUP +#line 533 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::AUTHENTICATION: + return isc::d2::D2Parser::make_DIRECTORY(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("directory", driver.loc_); + } +} + YY_BREAK +case 48: +YY_RULE_SETUP +#line 542 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::AUTHENTICATION: + return isc::d2::D2Parser::make_CLIENTS(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("clients", driver.loc_); + } +} + YY_BREAK +case 49: +YY_RULE_SETUP +#line 551 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::CLIENTS: + return isc::d2::D2Parser::make_USER(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("user", driver.loc_); + } +} + YY_BREAK +case 50: +YY_RULE_SETUP +#line 560 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::CLIENTS: + return isc::d2::D2Parser::make_USER_FILE(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("user-file", driver.loc_); + } +} + YY_BREAK +case 51: +YY_RULE_SETUP +#line 569 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::CLIENTS: + return isc::d2::D2Parser::make_PASSWORD(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("password", driver.loc_); + } +} + YY_BREAK +case 52: +YY_RULE_SETUP +#line 578 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::CLIENTS: + return isc::d2::D2Parser::make_PASSWORD_FILE(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("password-file", driver.loc_); + } +} + YY_BREAK +case 53: +YY_RULE_SETUP +#line 587 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::CONTROL_SOCKET: + return isc::d2::D2Parser::make_TRUST_ANCHOR(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("trust-anchor", driver.loc_); + } +} + YY_BREAK +case 54: +YY_RULE_SETUP +#line 596 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::CONTROL_SOCKET: + return isc::d2::D2Parser::make_CERT_FILE(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("cert-file", driver.loc_); + } +} + YY_BREAK +case 55: +YY_RULE_SETUP +#line 605 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::CONTROL_SOCKET: + return isc::d2::D2Parser::make_KEY_FILE(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("key-file", driver.loc_); + } +} + YY_BREAK +case 56: +YY_RULE_SETUP +#line 614 "d2_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::CONTROL_SOCKET: + return isc::d2::D2Parser::make_CERT_REQUIRED(driver.loc_); + default: + return isc::d2::D2Parser::make_STRING("cert-required", driver.loc_); + } +} + YY_BREAK +case 57: +YY_RULE_SETUP +#line 623 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -1998,9 +2312,9 @@ YY_RULE_SETUP } } YY_BREAK -case 38: +case 58: YY_RULE_SETUP -#line 448 "d2_lexer.ll" +#line 632 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::HOOKS_LIBRARIES: @@ -2010,9 +2324,9 @@ YY_RULE_SETUP } } YY_BREAK -case 39: +case 59: YY_RULE_SETUP -#line 457 "d2_lexer.ll" +#line 641 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::HOOKS_LIBRARIES: @@ -2022,9 +2336,9 @@ YY_RULE_SETUP } } YY_BREAK -case 40: +case 60: YY_RULE_SETUP -#line 466 "d2_lexer.ll" +#line 650 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::DHCPDDNS: @@ -2034,9 +2348,9 @@ YY_RULE_SETUP } } YY_BREAK -case 41: +case 61: YY_RULE_SETUP -#line 475 "d2_lexer.ll" +#line 659 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGERS: @@ -2046,9 +2360,9 @@ YY_RULE_SETUP } } YY_BREAK -case 42: +case 62: YY_RULE_SETUP -#line 484 "d2_lexer.ll" +#line 668 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGERS: @@ -2058,9 +2372,9 @@ YY_RULE_SETUP } } YY_BREAK -case 43: +case 63: YY_RULE_SETUP -#line 493 "d2_lexer.ll" +#line 677 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::OUTPUT_OPTIONS: @@ -2070,9 +2384,9 @@ YY_RULE_SETUP } } YY_BREAK -case 44: +case 64: YY_RULE_SETUP -#line 502 "d2_lexer.ll" +#line 686 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::OUTPUT_OPTIONS: @@ -2082,9 +2396,9 @@ YY_RULE_SETUP } } YY_BREAK -case 45: +case 65: YY_RULE_SETUP -#line 511 "d2_lexer.ll" +#line 695 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::OUTPUT_OPTIONS: @@ -2094,9 +2408,9 @@ YY_RULE_SETUP } } YY_BREAK -case 46: +case 66: YY_RULE_SETUP -#line 520 "d2_lexer.ll" +#line 704 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::OUTPUT_OPTIONS: @@ -2106,9 +2420,9 @@ YY_RULE_SETUP } } YY_BREAK -case 47: +case 67: YY_RULE_SETUP -#line 529 "d2_lexer.ll" +#line 713 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::OUTPUT_OPTIONS: @@ -2118,9 +2432,9 @@ YY_RULE_SETUP } } YY_BREAK -case 48: +case 68: YY_RULE_SETUP -#line 538 "d2_lexer.ll" +#line 722 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGERS: @@ -2134,9 +2448,9 @@ YY_RULE_SETUP } } YY_BREAK -case 49: +case 69: YY_RULE_SETUP -#line 551 "d2_lexer.ll" +#line 735 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGERS: @@ -2146,9 +2460,9 @@ YY_RULE_SETUP } } YY_BREAK -case 50: +case 70: YY_RULE_SETUP -#line 560 "d2_lexer.ll" +#line 744 "d2_lexer.ll" { switch(driver.ctx_) { case isc::d2::D2ParserContext::LOGGERS: @@ -2158,9 +2472,9 @@ YY_RULE_SETUP } } YY_BREAK -case 51: +case 71: YY_RULE_SETUP -#line 569 "d2_lexer.ll" +#line 753 "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. @@ -2262,10 +2576,10 @@ YY_RULE_SETUP return isc::d2::D2Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 52: -/* rule 52 can match eol */ +case 72: +/* rule 72 can match eol */ YY_RULE_SETUP -#line 670 "d2_lexer.ll" +#line 854 "d2_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -2282,10 +2596,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 53: -/* rule 53 can match eol */ +case 73: +/* rule 73 can match eol */ YY_RULE_SETUP -#line 686 "d2_lexer.ll" +#line 870 "d2_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -2335,9 +2649,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 54: +case 74: YY_RULE_SETUP -#line 735 "d2_lexer.ll" +#line 919 "d2_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -2346,9 +2660,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 55: +case 75: YY_RULE_SETUP -#line 743 "d2_lexer.ll" +#line 927 "d2_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -2364,39 +2678,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 56: +case 76: YY_RULE_SETUP -#line 758 "d2_lexer.ll" +#line 942 "d2_lexer.ll" { return isc::d2::D2Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 57: +case 77: YY_RULE_SETUP -#line 759 "d2_lexer.ll" +#line 943 "d2_lexer.ll" { return isc::d2::D2Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 58: +case 78: YY_RULE_SETUP -#line 760 "d2_lexer.ll" +#line 944 "d2_lexer.ll" { return isc::d2::D2Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 59: +case 79: YY_RULE_SETUP -#line 761 "d2_lexer.ll" +#line 945 "d2_lexer.ll" { return isc::d2::D2Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 60: +case 80: YY_RULE_SETUP -#line 762 "d2_lexer.ll" +#line 946 "d2_lexer.ll" { return isc::d2::D2Parser::make_COMMA(driver.loc_); } YY_BREAK -case 61: +case 81: YY_RULE_SETUP -#line 763 "d2_lexer.ll" +#line 947 "d2_lexer.ll" { return isc::d2::D2Parser::make_COLON(driver.loc_); } YY_BREAK -case 62: +case 82: YY_RULE_SETUP -#line 765 "d2_lexer.ll" +#line 949 "d2_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -2415,9 +2729,9 @@ YY_RULE_SETUP return isc::d2::D2Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 63: +case 83: YY_RULE_SETUP -#line 783 "d2_lexer.ll" +#line 967 "d2_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -2431,43 +2745,43 @@ YY_RULE_SETUP return isc::d2::D2Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 64: +case 84: YY_RULE_SETUP -#line 796 "d2_lexer.ll" +#line 980 "d2_lexer.ll" { string tmp(yytext); return isc::d2::D2Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 65: +case 85: YY_RULE_SETUP -#line 801 "d2_lexer.ll" +#line 985 "d2_lexer.ll" { return isc::d2::D2Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 66: +case 86: YY_RULE_SETUP -#line 805 "d2_lexer.ll" +#line 989 "d2_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 67: +case 87: YY_RULE_SETUP -#line 807 "d2_lexer.ll" +#line 991 "d2_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 68: +case 88: YY_RULE_SETUP -#line 809 "d2_lexer.ll" +#line 993 "d2_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 69: +case 89: YY_RULE_SETUP -#line 811 "d2_lexer.ll" +#line 995 "d2_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 813 "d2_lexer.ll" +#line 997 "d2_lexer.ll" { if (driver.states_.empty()) { return isc::d2::D2Parser::make_END(driver.loc_); @@ -2491,12 +2805,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 70: +case 90: YY_RULE_SETUP -#line 836 "d2_lexer.ll" +#line 1020 "d2_lexer.ll" ECHO; YY_BREAK -#line 2499 "d2_lexer.cc" +#line 2813 "d2_lexer.cc" case YY_END_OF_BUFFER: { @@ -2815,7 +3129,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 >= 440 ) + if ( yy_current_state >= 562 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -2848,11 +3162,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 >= 440 ) + if ( yy_current_state >= 562 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 439); + yy_is_jam = (yy_current_state == 561); return yy_is_jam ? 0 : yy_current_state; } @@ -3601,7 +3915,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 836 "d2_lexer.ll" +#line 1020 "d2_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/d2/d2_parser.cc b/src/bin/d2/d2_parser.cc index 91d2c6bb8f..840eaf15d9 100644 --- a/src/bin/d2/d2_parser.cc +++ b/src/bin/d2/d2_parser.cc @@ -217,6 +217,8 @@ namespace isc { namespace d2 { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case symbol_kind::S_control_socket_type_value: // control_socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; @@ -254,6 +256,8 @@ namespace isc { namespace d2 { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case symbol_kind::S_control_socket_type_value: // control_socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.move< ElementPtr > (YY_MOVE (that.value)); break; @@ -291,6 +295,8 @@ namespace isc { namespace d2 { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case symbol_kind::S_control_socket_type_value: // control_socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.copy< ElementPtr > (that.value); break; @@ -327,6 +333,8 @@ namespace isc { namespace d2 { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case symbol_kind::S_control_socket_type_value: // control_socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.move< ElementPtr > (that.value); break; @@ -383,45 +391,57 @@ namespace isc { namespace d2 { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 122 "d2_parser.yy" +#line 144 "d2_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 389 "d2_parser.cc" +#line 397 "d2_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 122 "d2_parser.yy" +#line 144 "d2_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } -#line 395 "d2_parser.cc" +#line 403 "d2_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 122 "d2_parser.yy" +#line 144 "d2_parser.yy" { yyoutput << yysym.value.template as < double > (); } -#line 401 "d2_parser.cc" +#line 409 "d2_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 122 "d2_parser.yy" +#line 144 "d2_parser.yy" { yyoutput << yysym.value.template as < bool > (); } -#line 407 "d2_parser.cc" +#line 415 "d2_parser.cc" break; case symbol_kind::S_value: // value -#line 122 "d2_parser.yy" +#line 144 "d2_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 413 "d2_parser.cc" +#line 421 "d2_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 122 "d2_parser.yy" +#line 144 "d2_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 419 "d2_parser.cc" +#line 427 "d2_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 122 "d2_parser.yy" +#line 144 "d2_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 425 "d2_parser.cc" +#line 433 "d2_parser.cc" + break; + + case symbol_kind::S_control_socket_type_value: // control_socket_type_value +#line 144 "d2_parser.yy" + { yyoutput << yysym.value.template as < ElementPtr > (); } +#line 439 "d2_parser.cc" + break; + + case symbol_kind::S_auth_type_value: // auth_type_value +#line 144 "d2_parser.yy" + { yyoutput << yysym.value.template as < ElementPtr > (); } +#line 445 "d2_parser.cc" break; default: @@ -654,6 +674,8 @@ namespace isc { namespace d2 { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case symbol_kind::S_control_socket_type_value: // control_socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value yylhs.value.emplace< ElementPtr > (); break; @@ -694,249 +716,249 @@ namespace isc { namespace d2 { switch (yyn) { case 2: // $@1: %empty -#line 131 "d2_parser.yy" +#line 153 "d2_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 700 "d2_parser.cc" +#line 722 "d2_parser.cc" break; case 4: // $@2: %empty -#line 132 "d2_parser.yy" +#line 154 "d2_parser.yy" { ctx.ctx_ = ctx.CONFIG; } -#line 706 "d2_parser.cc" +#line 728 "d2_parser.cc" break; case 6: // $@3: %empty -#line 133 "d2_parser.yy" +#line 155 "d2_parser.yy" { ctx.ctx_ = ctx.DHCPDDNS; } -#line 712 "d2_parser.cc" +#line 734 "d2_parser.cc" break; case 8: // $@4: %empty -#line 134 "d2_parser.yy" +#line 156 "d2_parser.yy" { ctx.ctx_ = ctx.TSIG_KEY; } -#line 718 "d2_parser.cc" +#line 740 "d2_parser.cc" break; case 10: // $@5: %empty -#line 135 "d2_parser.yy" +#line 157 "d2_parser.yy" { ctx.ctx_ = ctx.TSIG_KEYS; } -#line 724 "d2_parser.cc" +#line 746 "d2_parser.cc" break; case 12: // $@6: %empty -#line 136 "d2_parser.yy" +#line 158 "d2_parser.yy" { ctx.ctx_ = ctx.DDNS_DOMAIN; } -#line 730 "d2_parser.cc" +#line 752 "d2_parser.cc" break; case 14: // $@7: %empty -#line 137 "d2_parser.yy" +#line 159 "d2_parser.yy" { ctx.ctx_ = ctx.DDNS_DOMAINS; } -#line 736 "d2_parser.cc" +#line 758 "d2_parser.cc" break; case 16: // $@8: %empty -#line 138 "d2_parser.yy" +#line 160 "d2_parser.yy" { ctx.ctx_ = ctx.DNS_SERVERS; } -#line 742 "d2_parser.cc" +#line 764 "d2_parser.cc" break; case 18: // $@9: %empty -#line 139 "d2_parser.yy" +#line 161 "d2_parser.yy" { ctx.ctx_ = ctx.DNS_SERVERS; } -#line 748 "d2_parser.cc" +#line 770 "d2_parser.cc" break; case 20: // $@10: %empty -#line 140 "d2_parser.yy" +#line 162 "d2_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 754 "d2_parser.cc" +#line 776 "d2_parser.cc" break; case 22: // value: "integer" -#line 148 "d2_parser.yy" +#line 170 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 760 "d2_parser.cc" +#line 782 "d2_parser.cc" break; case 23: // value: "floating point" -#line 149 "d2_parser.yy" +#line 171 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 766 "d2_parser.cc" +#line 788 "d2_parser.cc" break; case 24: // value: "boolean" -#line 150 "d2_parser.yy" +#line 172 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 772 "d2_parser.cc" +#line 794 "d2_parser.cc" break; case 25: // value: "constant string" -#line 151 "d2_parser.yy" +#line 173 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 778 "d2_parser.cc" +#line 800 "d2_parser.cc" break; case 26: // value: "null" -#line 152 "d2_parser.yy" +#line 174 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 784 "d2_parser.cc" +#line 806 "d2_parser.cc" break; case 27: // value: map2 -#line 153 "d2_parser.yy" +#line 175 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 790 "d2_parser.cc" +#line 812 "d2_parser.cc" break; case 28: // value: list_generic -#line 154 "d2_parser.yy" +#line 176 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 796 "d2_parser.cc" +#line 818 "d2_parser.cc" break; case 29: // sub_json: value -#line 157 "d2_parser.yy" +#line 179 "d2_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); } -#line 805 "d2_parser.cc" +#line 827 "d2_parser.cc" break; case 30: // $@11: %empty -#line 162 "d2_parser.yy" +#line 184 "d2_parser.yy" { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 816 "d2_parser.cc" +#line 838 "d2_parser.cc" break; case 31: // map2: "{" $@11 map_content "}" -#line 167 "d2_parser.yy" +#line 189 "d2_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 826 "d2_parser.cc" +#line 848 "d2_parser.cc" break; case 32: // map_value: map2 -#line 173 "d2_parser.yy" +#line 195 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 832 "d2_parser.cc" +#line 854 "d2_parser.cc" break; case 35: // not_empty_map: "constant string" ":" value -#line 180 "d2_parser.yy" +#line 202 "d2_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); } -#line 842 "d2_parser.cc" +#line 864 "d2_parser.cc" break; case 36: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 185 "d2_parser.yy" +#line 207 "d2_parser.yy" { // map consisting of a shorter map followed by // comma and string:value ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); } -#line 853 "d2_parser.cc" +#line 875 "d2_parser.cc" break; case 37: // not_empty_map: not_empty_map "," -#line 191 "d2_parser.yy" +#line 213 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 861 "d2_parser.cc" +#line 883 "d2_parser.cc" break; case 38: // $@12: %empty -#line 196 "d2_parser.yy" +#line 218 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 870 "d2_parser.cc" +#line 892 "d2_parser.cc" break; case 39: // list_generic: "[" $@12 list_content "]" -#line 199 "d2_parser.yy" +#line 221 "d2_parser.yy" { // list parsing complete. Put any sanity checking here } -#line 878 "d2_parser.cc" +#line 900 "d2_parser.cc" break; case 42: // not_empty_list: value -#line 207 "d2_parser.yy" +#line 229 "d2_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 887 "d2_parser.cc" +#line 909 "d2_parser.cc" break; case 43: // not_empty_list: not_empty_list "," value -#line 211 "d2_parser.yy" +#line 233 "d2_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 896 "d2_parser.cc" +#line 918 "d2_parser.cc" break; case 44: // not_empty_list: not_empty_list "," -#line 215 "d2_parser.yy" +#line 237 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 904 "d2_parser.cc" +#line 926 "d2_parser.cc" break; case 45: // unknown_map_entry: "constant string" ":" -#line 225 "d2_parser.yy" +#line 247 "d2_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 915 "d2_parser.cc" +#line 937 "d2_parser.cc" break; case 46: // $@13: %empty -#line 234 "d2_parser.yy" +#line 256 "d2_parser.yy" { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 926 "d2_parser.cc" +#line 948 "d2_parser.cc" break; case 47: // syntax_map: "{" $@13 global_object "}" -#line 239 "d2_parser.yy" +#line 261 "d2_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 936 "d2_parser.cc" +#line 958 "d2_parser.cc" break; case 48: // $@14: %empty -#line 247 "d2_parser.yy" +#line 269 "d2_parser.yy" { ctx.unique("DhcpDdns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -944,73 +966,73 @@ namespace isc { namespace d2 { ctx.stack_.push_back(m); ctx.enter(ctx.DHCPDDNS); } -#line 948 "d2_parser.cc" +#line 970 "d2_parser.cc" break; case 49: // global_object: "DhcpDdns" $@14 ":" "{" dhcpddns_params "}" -#line 253 "d2_parser.yy" +#line 275 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 957 "d2_parser.cc" +#line 979 "d2_parser.cc" break; case 51: // global_object_comma: global_object "," -#line 260 "d2_parser.yy" +#line 282 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 965 "d2_parser.cc" +#line 987 "d2_parser.cc" break; case 52: // $@15: %empty -#line 264 "d2_parser.yy" +#line 286 "d2_parser.yy" { // Parse the dhcpddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 975 "d2_parser.cc" +#line 997 "d2_parser.cc" break; case 53: // sub_dhcpddns: "{" $@15 dhcpddns_params "}" -#line 268 "d2_parser.yy" +#line 290 "d2_parser.yy" { // parsing completed } -#line 983 "d2_parser.cc" +#line 1005 "d2_parser.cc" break; case 56: // dhcpddns_params: dhcpddns_params "," -#line 274 "d2_parser.yy" +#line 296 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 991 "d2_parser.cc" +#line 1013 "d2_parser.cc" break; - case 71: // $@16: %empty -#line 296 "d2_parser.yy" + case 72: // $@16: %empty +#line 319 "d2_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1000 "d2_parser.cc" +#line 1022 "d2_parser.cc" break; - case 72: // ip_address: "ip-address" $@16 ":" "constant string" -#line 299 "d2_parser.yy" + case 73: // ip_address: "ip-address" $@16 ":" "constant string" +#line 322 "d2_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", s); ctx.leave(); } -#line 1010 "d2_parser.cc" +#line 1032 "d2_parser.cc" break; - case 73: // port: "port" ":" "integer" -#line 305 "d2_parser.yy" + case 74: // port: "port" ":" "integer" +#line 328 "d2_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); if (yystack_[0].value.as < int64_t > () <= 0 || yystack_[0].value.as < int64_t > () >= 65536 ) { @@ -1019,11 +1041,11 @@ namespace isc { namespace d2 { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", i); } -#line 1023 "d2_parser.cc" +#line 1045 "d2_parser.cc" break; - case 74: // dns_server_timeout: "dns-server-timeout" ":" "integer" -#line 314 "d2_parser.yy" + case 75: // dns_server_timeout: "dns-server-timeout" ":" "integer" +#line 337 "d2_parser.yy" { ctx.unique("dns-server-timeout", ctx.loc2pos(yystack_[2].location)); if (yystack_[0].value.as < int64_t > () <= 0) { @@ -1033,68 +1055,68 @@ namespace isc { namespace d2 { ctx.stack_.back()->set("dns-server-timeout", i); } } -#line 1037 "d2_parser.cc" +#line 1059 "d2_parser.cc" break; - case 75: // $@17: %empty -#line 324 "d2_parser.yy" + case 76: // $@17: %empty +#line 347 "d2_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 1046 "d2_parser.cc" +#line 1068 "d2_parser.cc" break; - case 76: // ncr_protocol: "ncr-protocol" $@17 ":" ncr_protocol_value -#line 327 "d2_parser.yy" + case 77: // ncr_protocol: "ncr-protocol" $@17 ":" ncr_protocol_value +#line 350 "d2_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1055 "d2_parser.cc" +#line 1077 "d2_parser.cc" break; - case 77: // ncr_protocol_value: "UDP" -#line 333 "d2_parser.yy" + case 78: // ncr_protocol_value: "UDP" +#line 356 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 1061 "d2_parser.cc" +#line 1083 "d2_parser.cc" break; - case 78: // ncr_protocol_value: "TCP" -#line 334 "d2_parser.yy" + case 79: // ncr_protocol_value: "TCP" +#line 357 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 1067 "d2_parser.cc" +#line 1089 "d2_parser.cc" break; - case 79: // $@18: %empty -#line 337 "d2_parser.yy" + case 80: // $@18: %empty +#line 360 "d2_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 1076 "d2_parser.cc" +#line 1098 "d2_parser.cc" break; - case 80: // ncr_format: "ncr-format" $@18 ":" "JSON" -#line 340 "d2_parser.yy" + case 81: // ncr_format: "ncr-format" $@18 ":" "JSON" +#line 363 "d2_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 1086 "d2_parser.cc" +#line 1108 "d2_parser.cc" break; - case 81: // $@19: %empty -#line 346 "d2_parser.yy" + case 82: // $@19: %empty +#line 369 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1094 "d2_parser.cc" +#line 1116 "d2_parser.cc" break; - case 82: // user_context: "user-context" $@19 ":" map_value -#line 348 "d2_parser.yy" + case 83: // user_context: "user-context" $@19 ":" map_value +#line 371 "d2_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -1117,19 +1139,19 @@ namespace isc { namespace d2 { parent->set("user-context", user_context); ctx.leave(); } -#line 1121 "d2_parser.cc" +#line 1143 "d2_parser.cc" break; - case 83: // $@20: %empty -#line 371 "d2_parser.yy" + case 84: // $@20: %empty +#line 394 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1129 "d2_parser.cc" +#line 1151 "d2_parser.cc" break; - case 84: // comment: "comment" $@20 ":" "constant string" -#line 373 "d2_parser.yy" + case 85: // comment: "comment" $@20 ":" "constant string" +#line 396 "d2_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -1154,11 +1176,11 @@ namespace isc { namespace d2 { parent->set("user-context", user_context); ctx.leave(); } -#line 1158 "d2_parser.cc" +#line 1180 "d2_parser.cc" break; - case 85: // $@21: %empty -#line 398 "d2_parser.yy" + case 86: // $@21: %empty +#line 421 "d2_parser.yy" { ctx.unique("forward-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1166,20 +1188,20 @@ namespace isc { namespace d2 { ctx.stack_.push_back(m); ctx.enter(ctx.FORWARD_DDNS); } -#line 1170 "d2_parser.cc" +#line 1192 "d2_parser.cc" break; - case 86: // forward_ddns: "forward-ddns" $@21 ":" "{" ddns_mgr_params "}" -#line 404 "d2_parser.yy" + case 87: // forward_ddns: "forward-ddns" $@21 ":" "{" ddns_mgr_params "}" +#line 427 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1179 "d2_parser.cc" +#line 1201 "d2_parser.cc" break; - case 87: // $@22: %empty -#line 409 "d2_parser.yy" + case 88: // $@22: %empty +#line 432 "d2_parser.yy" { ctx.unique("reverse-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1187,28 +1209,28 @@ namespace isc { namespace d2 { ctx.stack_.push_back(m); ctx.enter(ctx.REVERSE_DDNS); } -#line 1191 "d2_parser.cc" +#line 1213 "d2_parser.cc" break; - case 88: // reverse_ddns: "reverse-ddns" $@22 ":" "{" ddns_mgr_params "}" -#line 415 "d2_parser.yy" + case 89: // reverse_ddns: "reverse-ddns" $@22 ":" "{" ddns_mgr_params "}" +#line 438 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1200 "d2_parser.cc" +#line 1222 "d2_parser.cc" break; - case 93: // not_empty_ddns_mgr_params: ddns_mgr_params "," -#line 426 "d2_parser.yy" + case 94: // not_empty_ddns_mgr_params: ddns_mgr_params "," +#line 449 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1208 "d2_parser.cc" +#line 1230 "d2_parser.cc" break; - case 96: // $@23: %empty -#line 437 "d2_parser.yy" + case 97: // $@23: %empty +#line 460 "d2_parser.yy" { ctx.unique("ddns-domains", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1216,97 +1238,97 @@ namespace isc { namespace d2 { ctx.stack_.push_back(l); ctx.enter(ctx.DDNS_DOMAINS); } -#line 1220 "d2_parser.cc" +#line 1242 "d2_parser.cc" break; - case 97: // ddns_domains: "ddns-domains" $@23 ":" "[" ddns_domain_list "]" -#line 443 "d2_parser.yy" + case 98: // ddns_domains: "ddns-domains" $@23 ":" "[" ddns_domain_list "]" +#line 466 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1229 "d2_parser.cc" +#line 1251 "d2_parser.cc" break; - case 98: // $@24: %empty -#line 448 "d2_parser.yy" + case 99: // $@24: %empty +#line 471 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 1238 "d2_parser.cc" +#line 1260 "d2_parser.cc" break; - case 99: // sub_ddns_domains: "[" $@24 ddns_domain_list "]" -#line 451 "d2_parser.yy" + case 100: // sub_ddns_domains: "[" $@24 ddns_domain_list "]" +#line 474 "d2_parser.yy" { // parsing completed } -#line 1246 "d2_parser.cc" +#line 1268 "d2_parser.cc" break; - case 104: // not_empty_ddns_domain_list: not_empty_ddns_domain_list "," -#line 461 "d2_parser.yy" + case 105: // not_empty_ddns_domain_list: not_empty_ddns_domain_list "," +#line 484 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1254 "d2_parser.cc" +#line 1276 "d2_parser.cc" break; - case 105: // $@25: %empty -#line 466 "d2_parser.yy" + case 106: // $@25: %empty +#line 489 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1264 "d2_parser.cc" +#line 1286 "d2_parser.cc" break; - case 106: // ddns_domain: "{" $@25 ddns_domain_params "}" -#line 470 "d2_parser.yy" + case 107: // ddns_domain: "{" $@25 ddns_domain_params "}" +#line 493 "d2_parser.yy" { ctx.stack_.pop_back(); } -#line 1272 "d2_parser.cc" +#line 1294 "d2_parser.cc" break; - case 107: // $@26: %empty -#line 474 "d2_parser.yy" + case 108: // $@26: %empty +#line 497 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1281 "d2_parser.cc" +#line 1303 "d2_parser.cc" break; - case 108: // sub_ddns_domain: "{" $@26 ddns_domain_params "}" -#line 477 "d2_parser.yy" + case 109: // sub_ddns_domain: "{" $@26 ddns_domain_params "}" +#line 500 "d2_parser.yy" { // parsing completed } -#line 1289 "d2_parser.cc" +#line 1311 "d2_parser.cc" break; - case 111: // ddns_domain_params: ddns_domain_params "," -#line 483 "d2_parser.yy" + case 112: // ddns_domain_params: ddns_domain_params "," +#line 506 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1297 "d2_parser.cc" +#line 1319 "d2_parser.cc" break; - case 118: // $@27: %empty -#line 497 "d2_parser.yy" + case 119: // $@27: %empty +#line 520 "d2_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1306 "d2_parser.cc" +#line 1328 "d2_parser.cc" break; - case 119: // ddns_domain_name: "name" $@27 ":" "constant string" -#line 500 "d2_parser.yy" + case 120: // ddns_domain_name: "name" $@27 ":" "constant string" +#line 523 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () == "") { error(yystack_[1].location, "Ddns domain name cannot be blank"); @@ -1316,31 +1338,31 @@ namespace isc { namespace d2 { ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1320 "d2_parser.cc" +#line 1342 "d2_parser.cc" break; - case 120: // $@28: %empty -#line 510 "d2_parser.yy" + case 121: // $@28: %empty +#line 533 "d2_parser.yy" { ctx.unique("key-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1329 "d2_parser.cc" +#line 1351 "d2_parser.cc" break; - case 121: // ddns_key_name: "key-name" $@28 ":" "constant string" -#line 513 "d2_parser.yy" + case 122: // ddns_key_name: "key-name" $@28 ":" "constant string" +#line 536 "d2_parser.yy" { 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))); ctx.stack_.back()->set("key-name", name); ctx.leave(); } -#line 1340 "d2_parser.cc" +#line 1362 "d2_parser.cc" break; - case 122: // $@29: %empty -#line 523 "d2_parser.yy" + case 123: // $@29: %empty +#line 546 "d2_parser.yy" { ctx.unique("dns-servers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1348,97 +1370,97 @@ namespace isc { namespace d2 { ctx.stack_.push_back(l); ctx.enter(ctx.DNS_SERVERS); } -#line 1352 "d2_parser.cc" +#line 1374 "d2_parser.cc" break; - case 123: // dns_servers: "dns-servers" $@29 ":" "[" dns_server_list "]" -#line 529 "d2_parser.yy" + case 124: // dns_servers: "dns-servers" $@29 ":" "[" dns_server_list "]" +#line 552 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1361 "d2_parser.cc" +#line 1383 "d2_parser.cc" break; - case 124: // $@30: %empty -#line 534 "d2_parser.yy" + case 125: // $@30: %empty +#line 557 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 1370 "d2_parser.cc" +#line 1392 "d2_parser.cc" break; - case 125: // sub_dns_servers: "[" $@30 dns_server_list "]" -#line 537 "d2_parser.yy" + case 126: // sub_dns_servers: "[" $@30 dns_server_list "]" +#line 560 "d2_parser.yy" { // parsing completed } -#line 1378 "d2_parser.cc" +#line 1400 "d2_parser.cc" break; - case 128: // dns_server_list: dns_server_list "," -#line 543 "d2_parser.yy" + case 129: // dns_server_list: dns_server_list "," +#line 566 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1386 "d2_parser.cc" +#line 1408 "d2_parser.cc" break; - case 129: // $@31: %empty -#line 548 "d2_parser.yy" + case 130: // $@31: %empty +#line 571 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1396 "d2_parser.cc" +#line 1418 "d2_parser.cc" break; - case 130: // dns_server: "{" $@31 dns_server_params "}" -#line 552 "d2_parser.yy" + case 131: // dns_server: "{" $@31 dns_server_params "}" +#line 575 "d2_parser.yy" { ctx.stack_.pop_back(); } -#line 1404 "d2_parser.cc" +#line 1426 "d2_parser.cc" break; - case 131: // $@32: %empty -#line 556 "d2_parser.yy" + case 132: // $@32: %empty +#line 579 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1413 "d2_parser.cc" +#line 1435 "d2_parser.cc" break; - case 132: // sub_dns_server: "{" $@32 dns_server_params "}" -#line 559 "d2_parser.yy" + case 133: // sub_dns_server: "{" $@32 dns_server_params "}" +#line 582 "d2_parser.yy" { // parsing completed } -#line 1421 "d2_parser.cc" +#line 1443 "d2_parser.cc" break; - case 135: // dns_server_params: dns_server_params "," -#line 565 "d2_parser.yy" + case 136: // dns_server_params: dns_server_params "," +#line 588 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1429 "d2_parser.cc" +#line 1451 "d2_parser.cc" break; - case 143: // $@33: %empty -#line 579 "d2_parser.yy" + case 144: // $@33: %empty +#line 602 "d2_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1438 "d2_parser.cc" +#line 1460 "d2_parser.cc" break; - case 144: // dns_server_hostname: "hostname" $@33 ":" "constant string" -#line 582 "d2_parser.yy" + case 145: // dns_server_hostname: "hostname" $@33 ":" "constant string" +#line 605 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () != "") { error(yystack_[1].location, "hostname is not yet supported"); @@ -1448,30 +1470,30 @@ namespace isc { namespace d2 { ctx.stack_.back()->set("hostname", name); ctx.leave(); } -#line 1452 "d2_parser.cc" +#line 1474 "d2_parser.cc" break; - case 145: // $@34: %empty -#line 592 "d2_parser.yy" + case 146: // $@34: %empty +#line 615 "d2_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1461 "d2_parser.cc" +#line 1483 "d2_parser.cc" break; - case 146: // dns_server_ip_address: "ip-address" $@34 ":" "constant string" -#line 595 "d2_parser.yy" + case 147: // dns_server_ip_address: "ip-address" $@34 ":" "constant string" +#line 618 "d2_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", s); ctx.leave(); } -#line 1471 "d2_parser.cc" +#line 1493 "d2_parser.cc" break; - case 147: // dns_server_port: "port" ":" "integer" -#line 601 "d2_parser.yy" + case 148: // dns_server_port: "port" ":" "integer" +#line 624 "d2_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); if (yystack_[0].value.as < int64_t > () <= 0 || yystack_[0].value.as < int64_t > () >= 65536 ) { @@ -1480,11 +1502,11 @@ namespace isc { namespace d2 { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", i); } -#line 1484 "d2_parser.cc" +#line 1506 "d2_parser.cc" break; - case 148: // $@35: %empty -#line 616 "d2_parser.yy" + case 149: // $@35: %empty +#line 639 "d2_parser.yy" { ctx.unique("tsig-keys", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1492,98 +1514,98 @@ namespace isc { namespace d2 { ctx.stack_.push_back(l); ctx.enter(ctx.TSIG_KEYS); } -#line 1496 "d2_parser.cc" +#line 1518 "d2_parser.cc" break; - case 149: // tsig_keys: "tsig-keys" $@35 ":" "[" tsig_keys_list "]" -#line 622 "d2_parser.yy" + case 150: // tsig_keys: "tsig-keys" $@35 ":" "[" tsig_keys_list "]" +#line 645 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1505 "d2_parser.cc" +#line 1527 "d2_parser.cc" break; - case 150: // $@36: %empty -#line 627 "d2_parser.yy" + case 151: // $@36: %empty +#line 650 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 1514 "d2_parser.cc" +#line 1536 "d2_parser.cc" break; - case 151: // sub_tsig_keys: "[" $@36 tsig_keys_list "]" -#line 630 "d2_parser.yy" + case 152: // sub_tsig_keys: "[" $@36 tsig_keys_list "]" +#line 653 "d2_parser.yy" { // parsing completed } -#line 1522 "d2_parser.cc" +#line 1544 "d2_parser.cc" break; - case 156: // not_empty_tsig_keys_list: not_empty_tsig_keys_list "," -#line 640 "d2_parser.yy" + case 157: // not_empty_tsig_keys_list: not_empty_tsig_keys_list "," +#line 663 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1530 "d2_parser.cc" +#line 1552 "d2_parser.cc" break; - case 157: // $@37: %empty -#line 645 "d2_parser.yy" + case 158: // $@37: %empty +#line 668 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1540 "d2_parser.cc" +#line 1562 "d2_parser.cc" break; - case 158: // tsig_key: "{" $@37 tsig_key_params "}" -#line 649 "d2_parser.yy" + case 159: // tsig_key: "{" $@37 tsig_key_params "}" +#line 672 "d2_parser.yy" { ctx.stack_.pop_back(); } -#line 1548 "d2_parser.cc" +#line 1570 "d2_parser.cc" break; - case 159: // $@38: %empty -#line 653 "d2_parser.yy" + case 160: // $@38: %empty +#line 676 "d2_parser.yy" { // Parse tsig key list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1558 "d2_parser.cc" +#line 1580 "d2_parser.cc" break; - case 160: // sub_tsig_key: "{" $@38 tsig_key_params "}" -#line 657 "d2_parser.yy" + case 161: // sub_tsig_key: "{" $@38 tsig_key_params "}" +#line 680 "d2_parser.yy" { // parsing completed } -#line 1566 "d2_parser.cc" +#line 1588 "d2_parser.cc" break; - case 163: // tsig_key_params: tsig_key_params "," -#line 664 "d2_parser.yy" + case 164: // tsig_key_params: tsig_key_params "," +#line 687 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1574 "d2_parser.cc" +#line 1596 "d2_parser.cc" break; - case 172: // $@39: %empty -#line 679 "d2_parser.yy" + case 173: // $@39: %empty +#line 702 "d2_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1583 "d2_parser.cc" +#line 1605 "d2_parser.cc" break; - case 173: // tsig_key_name: "name" $@39 ":" "constant string" -#line 682 "d2_parser.yy" + case 174: // tsig_key_name: "name" $@39 ":" "constant string" +#line 705 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () == "") { error(yystack_[1].location, "TSIG key name cannot be blank"); @@ -1593,20 +1615,20 @@ namespace isc { namespace d2 { ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1597 "d2_parser.cc" +#line 1619 "d2_parser.cc" break; - case 174: // $@40: %empty -#line 692 "d2_parser.yy" + case 175: // $@40: %empty +#line 715 "d2_parser.yy" { ctx.unique("algorithm", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1606 "d2_parser.cc" +#line 1628 "d2_parser.cc" break; - case 175: // tsig_key_algorithm: "algorithm" $@40 ":" "constant string" -#line 695 "d2_parser.yy" + case 176: // tsig_key_algorithm: "algorithm" $@40 ":" "constant string" +#line 718 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () == "") { error(yystack_[1].location, "TSIG key algorithm cannot be blank"); @@ -1615,11 +1637,11 @@ namespace isc { namespace d2 { ctx.stack_.back()->set("algorithm", elem); ctx.leave(); } -#line 1619 "d2_parser.cc" +#line 1641 "d2_parser.cc" break; - case 176: // tsig_key_digest_bits: "digest-bits" ":" "integer" -#line 704 "d2_parser.yy" + case 177: // tsig_key_digest_bits: "digest-bits" ":" "integer" +#line 727 "d2_parser.yy" { ctx.unique("digest-bits", ctx.loc2pos(yystack_[2].location)); if (yystack_[0].value.as < int64_t > () < 0 || (yystack_[0].value.as < int64_t > () > 0 && (yystack_[0].value.as < int64_t > () % 8 != 0))) { @@ -1628,21 +1650,21 @@ namespace isc { namespace d2 { ElementPtr elem(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("digest-bits", elem); } -#line 1632 "d2_parser.cc" +#line 1654 "d2_parser.cc" break; - case 177: // $@41: %empty -#line 713 "d2_parser.yy" + case 178: // $@41: %empty +#line 736 "d2_parser.yy" { ctx.unique("secret", ctx.loc2pos(yystack_[0].location)); ctx.unique("secret-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1642 "d2_parser.cc" +#line 1664 "d2_parser.cc" break; - case 178: // tsig_key_secret: "secret" $@41 ":" "constant string" -#line 717 "d2_parser.yy" + case 179: // tsig_key_secret: "secret" $@41 ":" "constant string" +#line 740 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () == "") { error(yystack_[1].location, "TSIG key secret cannot be blank"); @@ -1651,21 +1673,21 @@ namespace isc { namespace d2 { ctx.stack_.back()->set("secret", elem); ctx.leave(); } -#line 1655 "d2_parser.cc" +#line 1677 "d2_parser.cc" break; - case 179: // $@42: %empty -#line 726 "d2_parser.yy" + case 180: // $@42: %empty +#line 749 "d2_parser.yy" { ctx.unique("secret", ctx.loc2pos(yystack_[0].location)); ctx.unique("secret-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1665 "d2_parser.cc" +#line 1687 "d2_parser.cc" break; - case 180: // tsig_key_secret_file: "secret-file" $@42 ":" "constant string" -#line 730 "d2_parser.yy" + case 181: // tsig_key_secret_file: "secret-file" $@42 ":" "constant string" +#line 753 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () == "") { error(yystack_[1].location, "TSIG key secret file name cannot be blank"); @@ -1674,78 +1696,464 @@ namespace isc { namespace d2 { ctx.stack_.back()->set("secret-file", elem); ctx.leave(); } -#line 1678 "d2_parser.cc" +#line 1700 "d2_parser.cc" break; - case 181: // $@43: %empty -#line 744 "d2_parser.yy" + case 182: // $@43: %empty +#line 767 "d2_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); + ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); 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 1690 "d2_parser.cc" +#line 1713 "d2_parser.cc" break; - case 182: // control_socket: "control-socket" $@43 ":" "{" control_socket_params "}" -#line 750 "d2_parser.yy" + case 183: // control_socket: "control-socket" $@43 ":" "{" control_socket_params "}" +#line 774 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1699 "d2_parser.cc" +#line 1722 "d2_parser.cc" break; - case 185: // control_socket_params: control_socket_params "," -#line 757 "d2_parser.yy" - { - ctx.warnAboutExtraCommas(yystack_[0].location); - } -#line 1707 "d2_parser.cc" - break; - - case 191: // $@44: %empty -#line 769 "d2_parser.yy" + case 184: // $@44: %empty +#line 779 "d2_parser.yy" { - ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); - ctx.enter(ctx.NO_KEYWORD); -} -#line 1716 "d2_parser.cc" - break; - - case 192: // control_socket_type: "socket-type" $@44 ":" "constant string" -#line 772 "d2_parser.yy" - { - 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 1726 "d2_parser.cc" - break; - - case 193: // $@45: %empty -#line 778 "d2_parser.yy" - { - ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); - ctx.enter(ctx.NO_KEYWORD); + ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); + ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); + ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("control-sockets", l); + ctx.stack_.push_back(l); + ctx.enter(ctx.CONTROL_SOCKET); } #line 1735 "d2_parser.cc" break; - case 194: // control_socket_name: "socket-name" $@45 ":" "constant string" -#line 781 "d2_parser.yy" + case 185: // control_sockets: "control-sockets" $@44 ":" "[" control_socket_list "]" +#line 786 "d2_parser.yy" + { + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 1744 "d2_parser.cc" + break; + + case 190: // not_empty_control_socket_list: not_empty_control_socket_list "," +#line 797 "d2_parser.yy" + { + ctx.warnAboutExtraCommas(yystack_[0].location); + } +#line 1752 "d2_parser.cc" + break; + + case 191: // $@45: %empty +#line 802 "d2_parser.yy" + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(m); + ctx.stack_.push_back(m); +} +#line 1762 "d2_parser.cc" + break; + + case 192: // control_socket_entry: "{" $@45 control_socket_params "}" +#line 806 "d2_parser.yy" + { + ctx.stack_.pop_back(); +} +#line 1770 "d2_parser.cc" + break; + + case 195: // control_socket_params: control_socket_params "," +#line 812 "d2_parser.yy" + { + ctx.warnAboutExtraCommas(yystack_[0].location); + } +#line 1778 "d2_parser.cc" + break; + + case 208: // $@46: %empty +#line 831 "d2_parser.yy" + { + ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.CONTROL_SOCKET_TYPE); +} +#line 1787 "d2_parser.cc" + break; + + case 209: // control_socket_type: "socket-type" $@46 ":" control_socket_type_value +#line 834 "d2_parser.yy" + { + ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); + ctx.leave(); +} +#line 1796 "d2_parser.cc" + break; + + case 210: // control_socket_type_value: "unix" +#line 840 "d2_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } +#line 1802 "d2_parser.cc" + break; + + case 211: // control_socket_type_value: "http" +#line 841 "d2_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); } +#line 1808 "d2_parser.cc" + break; + + case 212: // control_socket_type_value: "https" +#line 842 "d2_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); } +#line 1814 "d2_parser.cc" + break; + + case 213: // $@47: %empty +#line 845 "d2_parser.yy" + { + ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 1823 "d2_parser.cc" + break; + + case 214: // control_socket_name: "socket-name" $@47 ":" "constant string" +#line 848 "d2_parser.yy" { 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 1745 "d2_parser.cc" +#line 1833 "d2_parser.cc" break; - case 195: // $@46: %empty -#line 789 "d2_parser.yy" + case 215: // $@48: %empty +#line 854 "d2_parser.yy" + { + ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 1842 "d2_parser.cc" + break; + + case 216: // control_socket_address: "socket-address" $@48 ":" "constant string" +#line 857 "d2_parser.yy" + { + ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("socket-address", address); + ctx.leave(); +} +#line 1852 "d2_parser.cc" + break; + + case 217: // control_socket_port: "socket-port" ":" "integer" +#line 863 "d2_parser.yy" + { + ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location)); + ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("socket-port", port); +} +#line 1862 "d2_parser.cc" + break; + + case 218: // $@49: %empty +#line 869 "d2_parser.yy" + { + ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 1871 "d2_parser.cc" + break; + + case 219: // trust_anchor: "trust-anchor" $@49 ":" "constant string" +#line 872 "d2_parser.yy" + { + ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("trust-anchor", ca); + ctx.leave(); +} +#line 1881 "d2_parser.cc" + break; + + case 220: // $@50: %empty +#line 878 "d2_parser.yy" + { + ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 1890 "d2_parser.cc" + break; + + case 221: // cert_file: "cert-file" $@50 ":" "constant string" +#line 881 "d2_parser.yy" + { + ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("cert-file", cert); + ctx.leave(); +} +#line 1900 "d2_parser.cc" + break; + + case 222: // $@51: %empty +#line 887 "d2_parser.yy" + { + ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 1909 "d2_parser.cc" + break; + + case 223: // key_file: "key-file" $@51 ":" "constant string" +#line 890 "d2_parser.yy" + { + ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("key-file", key); + ctx.leave(); +} +#line 1919 "d2_parser.cc" + break; + + case 224: // cert_required: "cert-required" ":" "boolean" +#line 896 "d2_parser.yy" + { + ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location)); + ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("cert-required", req); +} +#line 1929 "d2_parser.cc" + break; + + case 225: // $@52: %empty +#line 904 "d2_parser.yy" + { + ctx.unique("authentication", ctx.loc2pos(yystack_[0].location)); + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("authentication", m); + ctx.stack_.push_back(m); + ctx.enter(ctx.AUTHENTICATION); +} +#line 1941 "d2_parser.cc" + break; + + case 226: // authentication: "authentication" $@52 ":" "{" auth_params "}" +#line 910 "d2_parser.yy" + { + // The type parameter is required + ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 1952 "d2_parser.cc" + break; + + case 229: // auth_params: auth_params "," +#line 919 "d2_parser.yy" + { + ctx.warnAboutExtraCommas(yystack_[0].location); + } +#line 1960 "d2_parser.cc" + break; + + case 237: // $@53: %empty +#line 933 "d2_parser.yy" + { + ctx.unique("type", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.AUTH_TYPE); +} +#line 1969 "d2_parser.cc" + break; + + case 238: // auth_type: "type" $@53 ":" auth_type_value +#line 936 "d2_parser.yy" + { + ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + ctx.leave(); +} +#line 1978 "d2_parser.cc" + break; + + case 239: // auth_type_value: "basic" +#line 941 "d2_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); } +#line 1984 "d2_parser.cc" + break; + + case 240: // $@54: %empty +#line 944 "d2_parser.yy" + { + ctx.unique("realm", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 1993 "d2_parser.cc" + break; + + case 241: // realm: "realm" $@54 ":" "constant string" +#line 947 "d2_parser.yy" + { + ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("realm", realm); + ctx.leave(); +} +#line 2003 "d2_parser.cc" + break; + + case 242: // $@55: %empty +#line 953 "d2_parser.yy" + { + ctx.unique("directory", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 2012 "d2_parser.cc" + break; + + case 243: // directory: "directory" $@55 ":" "constant string" +#line 956 "d2_parser.yy" + { + ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("directory", directory); + ctx.leave(); +} +#line 2022 "d2_parser.cc" + break; + + case 244: // $@56: %empty +#line 962 "d2_parser.yy" + { + ctx.unique("clients", ctx.loc2pos(yystack_[0].location)); + ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("clients", l); + ctx.stack_.push_back(l); + ctx.enter(ctx.CLIENTS); +} +#line 2034 "d2_parser.cc" + break; + + case 245: // clients: "clients" $@56 ":" "[" clients_list "]" +#line 968 "d2_parser.yy" + { + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 2043 "d2_parser.cc" + break; + + case 250: // not_empty_clients_list: not_empty_clients_list "," +#line 979 "d2_parser.yy" + { + ctx.warnAboutExtraCommas(yystack_[0].location); + } +#line 2051 "d2_parser.cc" + break; + + case 251: // $@57: %empty +#line 984 "d2_parser.yy" + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(m); + ctx.stack_.push_back(m); +} +#line 2061 "d2_parser.cc" + break; + + case 252: // basic_auth: "{" $@57 clients_params "}" +#line 988 "d2_parser.yy" + { + ctx.stack_.pop_back(); +} +#line 2069 "d2_parser.cc" + break; + + case 255: // clients_params: clients_params "," +#line 994 "d2_parser.yy" + { + ctx.warnAboutExtraCommas(yystack_[0].location); + } +#line 2077 "d2_parser.cc" + break; + + case 263: // $@58: %empty +#line 1008 "d2_parser.yy" + { + ctx.unique("user", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 2086 "d2_parser.cc" + break; + + case 264: // user: "user" $@58 ":" "constant string" +#line 1011 "d2_parser.yy" + { + ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("user", user); + ctx.leave(); +} +#line 2096 "d2_parser.cc" + break; + + case 265: // $@59: %empty +#line 1017 "d2_parser.yy" + { + ctx.unique("user-file", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 2105 "d2_parser.cc" + break; + + case 266: // user_file: "user-file" $@59 ":" "constant string" +#line 1020 "d2_parser.yy" + { + ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("user-file", user); + ctx.leave(); +} +#line 2115 "d2_parser.cc" + break; + + case 267: // $@60: %empty +#line 1026 "d2_parser.yy" + { + ctx.unique("password", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 2124 "d2_parser.cc" + break; + + case 268: // password: "password" $@60 ":" "constant string" +#line 1029 "d2_parser.yy" + { + ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("password", pwd); + ctx.leave(); +} +#line 2134 "d2_parser.cc" + break; + + case 269: // $@61: %empty +#line 1035 "d2_parser.yy" + { + ctx.unique("password-file", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 2143 "d2_parser.cc" + break; + + case 270: // password_file: "password-file" $@61 ":" "constant string" +#line 1038 "d2_parser.yy" + { + ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("password-file", password); + ctx.leave(); +} +#line 2153 "d2_parser.cc" + break; + + case 271: // $@62: %empty +#line 1046 "d2_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1753,113 +2161,113 @@ namespace isc { namespace d2 { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 1757 "d2_parser.cc" +#line 2165 "d2_parser.cc" break; - case 196: // hooks_libraries: "hooks-libraries" $@46 ":" "[" hooks_libraries_list "]" -#line 795 "d2_parser.yy" + case 272: // hooks_libraries: "hooks-libraries" $@62 ":" "[" hooks_libraries_list "]" +#line 1052 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1766 "d2_parser.cc" +#line 2174 "d2_parser.cc" break; - case 201: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 806 "d2_parser.yy" + case 277: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," +#line 1063 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1774 "d2_parser.cc" +#line 2182 "d2_parser.cc" break; - case 202: // $@47: %empty -#line 811 "d2_parser.yy" + case 278: // $@63: %empty +#line 1068 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1784 "d2_parser.cc" +#line 2192 "d2_parser.cc" break; - case 203: // hooks_library: "{" $@47 hooks_params "}" -#line 815 "d2_parser.yy" + case 279: // hooks_library: "{" $@63 hooks_params "}" +#line 1072 "d2_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1794 "d2_parser.cc" +#line 2202 "d2_parser.cc" break; - case 204: // $@48: %empty -#line 821 "d2_parser.yy" + case 280: // $@64: %empty +#line 1078 "d2_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1804 "d2_parser.cc" +#line 2212 "d2_parser.cc" break; - case 205: // sub_hooks_library: "{" $@48 hooks_params "}" -#line 825 "d2_parser.yy" + case 281: // sub_hooks_library: "{" $@64 hooks_params "}" +#line 1082 "d2_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1814 "d2_parser.cc" +#line 2222 "d2_parser.cc" break; - case 208: // hooks_params: hooks_params "," -#line 833 "d2_parser.yy" + case 284: // hooks_params: hooks_params "," +#line 1090 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1822 "d2_parser.cc" +#line 2230 "d2_parser.cc" break; - case 212: // $@49: %empty -#line 843 "d2_parser.yy" + case 288: // $@65: %empty +#line 1100 "d2_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1831 "d2_parser.cc" +#line 2239 "d2_parser.cc" break; - case 213: // library: "library" $@49 ":" "constant string" -#line 846 "d2_parser.yy" + case 289: // library: "library" $@65 ":" "constant string" +#line 1103 "d2_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1841 "d2_parser.cc" +#line 2249 "d2_parser.cc" break; - case 214: // $@50: %empty -#line 852 "d2_parser.yy" + case 290: // $@66: %empty +#line 1109 "d2_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1850 "d2_parser.cc" +#line 2258 "d2_parser.cc" break; - case 215: // parameters: "parameters" $@50 ":" map_value -#line 855 "d2_parser.yy" + case 291: // parameters: "parameters" $@66 ":" map_value +#line 1112 "d2_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1859 "d2_parser.cc" +#line 2267 "d2_parser.cc" break; - case 216: // $@51: %empty -#line 862 "d2_parser.yy" + case 292: // $@67: %empty +#line 1119 "d2_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1867,102 +2275,102 @@ namespace isc { namespace d2 { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 1871 "d2_parser.cc" +#line 2279 "d2_parser.cc" break; - case 217: // loggers: "loggers" $@51 ":" "[" loggers_entries "]" -#line 868 "d2_parser.yy" + case 293: // loggers: "loggers" $@67 ":" "[" loggers_entries "]" +#line 1125 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1880 "d2_parser.cc" +#line 2288 "d2_parser.cc" break; - case 220: // loggers_entries: loggers_entries "," -#line 877 "d2_parser.yy" + case 296: // loggers_entries: loggers_entries "," +#line 1134 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1888 "d2_parser.cc" +#line 2296 "d2_parser.cc" break; - case 221: // $@52: %empty -#line 883 "d2_parser.yy" + case 297: // $@68: %empty +#line 1140 "d2_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 1898 "d2_parser.cc" +#line 2306 "d2_parser.cc" break; - case 222: // logger_entry: "{" $@52 logger_params "}" -#line 887 "d2_parser.yy" + case 298: // logger_entry: "{" $@68 logger_params "}" +#line 1144 "d2_parser.yy" { ctx.stack_.pop_back(); } -#line 1906 "d2_parser.cc" +#line 2314 "d2_parser.cc" break; - case 225: // logger_params: logger_params "," -#line 893 "d2_parser.yy" + case 301: // logger_params: logger_params "," +#line 1150 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1914 "d2_parser.cc" +#line 2322 "d2_parser.cc" break; - case 233: // $@53: %empty -#line 907 "d2_parser.yy" + case 309: // $@69: %empty +#line 1164 "d2_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1923 "d2_parser.cc" +#line 2331 "d2_parser.cc" break; - case 234: // name: "name" $@53 ":" "constant string" -#line 910 "d2_parser.yy" + case 310: // name: "name" $@69 ":" "constant string" +#line 1167 "d2_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1933 "d2_parser.cc" +#line 2341 "d2_parser.cc" break; - case 235: // debuglevel: "debuglevel" ":" "integer" -#line 916 "d2_parser.yy" + case 311: // debuglevel: "debuglevel" ":" "integer" +#line 1173 "d2_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 1943 "d2_parser.cc" +#line 2351 "d2_parser.cc" break; - case 236: // $@54: %empty -#line 922 "d2_parser.yy" + case 312: // $@70: %empty +#line 1179 "d2_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1952 "d2_parser.cc" +#line 2360 "d2_parser.cc" break; - case 237: // severity: "severity" $@54 ":" "constant string" -#line 925 "d2_parser.yy" + case 313: // severity: "severity" $@70 ":" "constant string" +#line 1182 "d2_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 1962 "d2_parser.cc" +#line 2370 "d2_parser.cc" break; - case 238: // $@55: %empty -#line 931 "d2_parser.yy" + case 314: // $@71: %empty +#line 1188 "d2_parser.yy" { ctx.unique("output-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1970,122 +2378,122 @@ namespace isc { namespace d2 { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 1974 "d2_parser.cc" +#line 2382 "d2_parser.cc" break; - case 239: // output_options_list: "output-options" $@55 ":" "[" output_options_list_content "]" -#line 937 "d2_parser.yy" + case 315: // output_options_list: "output-options" $@71 ":" "[" output_options_list_content "]" +#line 1194 "d2_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1983 "d2_parser.cc" +#line 2391 "d2_parser.cc" break; - case 242: // output_options_list_content: output_options_list_content "," -#line 944 "d2_parser.yy" + case 318: // output_options_list_content: output_options_list_content "," +#line 1201 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1991 "d2_parser.cc" +#line 2399 "d2_parser.cc" break; - case 243: // $@56: %empty -#line 949 "d2_parser.yy" + case 319: // $@72: %empty +#line 1206 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2001 "d2_parser.cc" +#line 2409 "d2_parser.cc" break; - case 244: // output_entry: "{" $@56 output_params_list "}" -#line 953 "d2_parser.yy" + case 320: // output_entry: "{" $@72 output_params_list "}" +#line 1210 "d2_parser.yy" { ctx.stack_.pop_back(); } -#line 2009 "d2_parser.cc" +#line 2417 "d2_parser.cc" break; - case 247: // output_params_list: output_params_list "," -#line 959 "d2_parser.yy" + case 323: // output_params_list: output_params_list "," +#line 1216 "d2_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2017 "d2_parser.cc" +#line 2425 "d2_parser.cc" break; - case 253: // $@57: %empty -#line 971 "d2_parser.yy" + case 329: // $@73: %empty +#line 1228 "d2_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2026 "d2_parser.cc" +#line 2434 "d2_parser.cc" break; - case 254: // output: "output" $@57 ":" "constant string" -#line 974 "d2_parser.yy" + case 330: // output: "output" $@73 ":" "constant string" +#line 1231 "d2_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 2036 "d2_parser.cc" +#line 2444 "d2_parser.cc" break; - case 255: // flush: "flush" ":" "boolean" -#line 980 "d2_parser.yy" + case 331: // flush: "flush" ":" "boolean" +#line 1237 "d2_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 2046 "d2_parser.cc" +#line 2454 "d2_parser.cc" break; - case 256: // maxsize: "maxsize" ":" "integer" -#line 986 "d2_parser.yy" + case 332: // maxsize: "maxsize" ":" "integer" +#line 1243 "d2_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 2056 "d2_parser.cc" +#line 2464 "d2_parser.cc" break; - case 257: // maxver: "maxver" ":" "integer" -#line 992 "d2_parser.yy" + case 333: // maxver: "maxver" ":" "integer" +#line 1249 "d2_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 2066 "d2_parser.cc" +#line 2474 "d2_parser.cc" break; - case 258: // $@58: %empty -#line 998 "d2_parser.yy" + case 334: // $@74: %empty +#line 1255 "d2_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2075 "d2_parser.cc" +#line 2483 "d2_parser.cc" break; - case 259: // pattern: "pattern" $@58 ":" "constant string" -#line 1001 "d2_parser.yy" + case 335: // pattern: "pattern" $@74 ":" "constant string" +#line 1258 "d2_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 2085 "d2_parser.cc" +#line 2493 "d2_parser.cc" break; -#line 2089 "d2_parser.cc" +#line 2497 "d2_parser.cc" default: break; @@ -2444,47 +2852,58 @@ namespace isc { namespace d2 { const short D2Parser::yypact_[] = { - 53, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, 10, 8, 1, 16, 18, 27, 33, 42, 57, - 44, 65, -215, -215, -215, -215, -215, -215, -215, -215, + 99, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, 33, 8, 0, 38, 42, 55, 73, 105, 96, + 107, 125, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, 8, 23, 77, 7, 32, 82, 59, 105, - 24, 106, 22, -215, 123, 111, 133, 128, 141, -215, - 30, -215, -215, 142, 164, -215, -215, -215, -215, -215, - -215, -215, -215, -215, -215, 174, -215, 38, -215, -215, + -215, -215, 8, 44, 129, 7, 47, 133, 141, 140, + 24, 142, -25, -215, 153, 160, 197, 194, 200, -215, + 22, -215, -215, 201, 202, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, 203, -215, 39, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -215, 175, -215, -215, -215, -215, -215, -215, - 67, -215, -215, -215, -215, -215, -215, -215, 150, 177, - -215, -215, -215, -215, -215, -215, -215, 85, -215, -215, - -215, -215, -215, 176, 178, -215, -215, 179, -215, -215, - -215, -215, -215, 108, -215, -215, -215, -215, -215, 132, - -215, -215, -215, -215, 112, -215, -215, -215, -215, 8, - 8, -215, 109, 180, -215, -215, 181, 127, 129, 183, - 185, 186, 187, 188, 189, 190, 191, 192, 193, -215, - 7, -215, 194, 140, 196, 197, 198, 32, -215, 32, - -215, 82, 199, 200, 201, 59, -215, 59, -215, 105, - 202, 156, 205, 24, -215, 24, 106, -215, 209, 210, - -6, -215, -215, -215, 212, 211, 159, -215, -215, 40, - 203, 213, 165, 217, 218, 214, 219, 222, 223, -215, - 172, -215, 173, 182, 184, -215, 118, -215, 195, 224, - 207, -215, 119, -215, 208, -215, 215, -215, 120, -215, - 220, 213, -215, 8, 7, -215, -215, -215, -215, -215, - -215, -215, -215, -1, -1, 82, 66, 225, 226, -215, - -215, -215, -215, -215, -215, 106, -215, -215, -215, -215, - -215, -215, -215, -215, 122, -215, -215, 152, -215, -215, - -215, 154, 228, -215, -215, -215, -215, -215, 155, -215, - -215, -215, -215, 229, 233, -215, -215, 169, -215, 170, - -215, 234, -1, -215, -215, -215, 235, 237, 66, -215, - 22, -215, 225, 34, 226, -215, -215, 232, -215, 227, - 230, -215, 161, -215, -215, -215, 239, -215, -215, -215, - -215, 162, -215, -215, -215, -215, -215, -215, 105, -215, - -215, -215, 240, 241, 216, 242, 34, -215, 243, 231, - 245, -215, 236, -215, -215, -215, 244, -215, -215, 171, - -215, 50, 244, -215, -215, 248, 250, 251, -215, 163, - -215, -215, -215, -215, -215, -215, -215, 253, 221, 238, - 246, 254, 50, -215, 249, -215, -215, -215, 252, -215, - -215, -215 + -215, -215, -215, -215, -215, 204, -215, -215, -215, -215, + -215, -215, 43, -215, -215, -215, -215, -215, -215, -215, + 198, 206, -215, -215, -215, -215, -215, -215, -215, 65, + -215, -215, -215, -215, -215, 207, 214, -215, -215, 216, + -215, -215, -215, -215, -215, 71, -215, -215, -215, -215, + -215, 58, -215, -215, -215, -215, 115, -215, -215, -215, + -215, 8, 8, -215, 132, 217, -215, -215, 218, 139, + 144, 220, 221, 223, 224, 225, 226, 227, 228, 229, + 230, 231, -215, 7, -215, 232, 158, 234, 235, 236, + 47, -215, 47, -215, 133, 237, 238, 239, 141, -215, + 141, -215, 140, 240, 166, 242, 24, -215, 24, 142, + -215, 243, 244, -34, -215, -215, -215, 245, 246, 172, + -215, -215, 76, 233, 247, 179, 248, 249, 253, 252, + 255, 256, 257, -215, 189, -215, 190, 191, 192, -215, + 116, -215, 193, 258, 195, -215, 123, -215, 196, -215, + 199, -215, 130, -215, 205, 247, -215, 8, 7, -215, + -215, -215, -215, -215, -215, -215, -215, -15, -15, 133, + 18, 259, 265, 268, -215, -215, -215, -215, -215, -215, + 142, -215, -215, -215, -215, -215, -215, -215, -215, 174, + -215, -215, 175, -215, -215, -215, 176, 270, -215, -215, + -215, 260, -215, -215, -215, -215, 261, -215, -215, -215, + 177, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, 272, 277, -215, -215, 275, 279, -215, -215, + 78, -215, 87, -215, 280, -15, -215, -215, -215, 281, + 282, 283, 173, 284, 285, 286, 287, 215, 18, -215, + 18, -215, 259, -25, -215, 265, 35, 268, -215, -215, + 293, -215, 162, 241, 250, -215, 292, 251, 254, 262, + -215, -215, 178, -215, 184, -215, -215, -215, 298, -215, + -215, -215, -215, 185, -215, -215, -215, -215, -215, -215, + 140, -215, -215, -215, -215, -215, -215, 63, -215, -215, + -215, -215, -215, 299, 301, 264, 303, 35, -215, 302, + -215, -215, -215, -215, -215, -215, -215, 186, -215, -215, + -215, -215, -215, 266, 304, -215, 267, -215, -215, 306, + 307, 309, 310, 63, -215, -215, 308, -215, 273, 269, + 271, 312, -215, -215, 98, -215, -215, -215, -215, -215, + 311, 50, 308, -215, -215, 314, 318, -215, -215, 319, + 320, 321, -215, 187, -215, -215, -215, -215, -215, -215, + -215, 80, -215, 311, 322, 274, 278, 288, 323, 50, + -215, -215, -215, -215, -215, -215, -215, -215, 188, -215, + -215, -215, -215, -215, -215, 276, -215, -215, -215, 290, + -215, 326, 327, 329, 330, 80, -215, -215, -215, 291, + 294, 295, 296, -215, -215, -215, -215, -215 }; const short @@ -2493,237 +2912,305 @@ namespace isc { namespace d2 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 38, 30, 26, 25, 22, 23, 24, - 29, 3, 27, 28, 46, 5, 52, 7, 159, 9, - 150, 11, 107, 13, 98, 15, 131, 17, 124, 19, - 204, 21, 40, 33, 0, 0, 0, 152, 0, 100, + 29, 3, 27, 28, 46, 5, 52, 7, 160, 9, + 151, 11, 108, 13, 99, 15, 132, 17, 125, 19, + 280, 21, 40, 33, 0, 0, 0, 153, 0, 101, 0, 0, 0, 42, 0, 41, 0, 0, 34, 48, - 0, 50, 71, 0, 0, 75, 79, 81, 83, 85, - 87, 148, 181, 195, 216, 0, 70, 0, 54, 57, - 58, 59, 60, 61, 68, 69, 62, 63, 64, 65, - 66, 67, 174, 0, 177, 179, 172, 171, 169, 170, - 0, 161, 164, 165, 166, 167, 168, 157, 0, 153, - 154, 120, 122, 118, 117, 115, 116, 0, 109, 112, - 113, 114, 105, 0, 101, 102, 145, 0, 143, 142, - 140, 141, 139, 0, 133, 136, 137, 138, 129, 0, - 126, 212, 214, 209, 0, 206, 210, 211, 39, 44, - 0, 31, 37, 0, 51, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, - 56, 53, 0, 0, 0, 0, 0, 163, 160, 0, - 151, 156, 0, 0, 0, 111, 108, 0, 99, 104, - 0, 0, 0, 135, 132, 0, 128, 125, 0, 0, - 208, 205, 43, 35, 0, 0, 0, 73, 74, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 0, 176, 0, 0, 0, 162, 0, 155, 0, 0, - 0, 110, 0, 103, 0, 147, 0, 134, 0, 127, - 0, 0, 207, 0, 0, 72, 77, 78, 76, 80, - 32, 82, 84, 89, 89, 152, 0, 197, 0, 175, - 178, 180, 173, 158, 121, 0, 119, 106, 146, 144, - 130, 213, 215, 36, 0, 96, 95, 0, 90, 91, - 94, 0, 0, 191, 193, 190, 188, 189, 0, 183, - 186, 187, 202, 0, 198, 199, 221, 0, 218, 0, - 49, 0, 93, 86, 88, 149, 0, 0, 185, 182, - 0, 196, 201, 0, 220, 217, 123, 0, 92, 0, - 0, 184, 0, 200, 233, 238, 0, 236, 232, 230, - 231, 0, 223, 226, 228, 229, 227, 219, 100, 192, - 194, 203, 0, 0, 0, 0, 225, 222, 0, 0, - 0, 235, 0, 224, 97, 234, 0, 237, 243, 0, - 240, 0, 242, 239, 253, 0, 0, 0, 258, 0, - 245, 248, 249, 250, 251, 252, 241, 0, 0, 0, - 0, 0, 247, 244, 0, 255, 256, 257, 0, 246, - 254, 259 + 0, 50, 72, 0, 0, 76, 80, 82, 84, 86, + 88, 149, 182, 184, 271, 292, 0, 71, 0, 54, + 57, 58, 59, 60, 61, 69, 70, 62, 63, 64, + 65, 66, 67, 68, 175, 0, 178, 180, 173, 172, + 170, 171, 0, 162, 165, 166, 167, 168, 169, 158, + 0, 154, 155, 121, 123, 119, 118, 116, 117, 0, + 110, 113, 114, 115, 106, 0, 102, 103, 146, 0, + 144, 143, 141, 142, 140, 0, 134, 137, 138, 139, + 130, 0, 127, 288, 290, 285, 0, 282, 286, 287, + 39, 44, 0, 31, 37, 0, 51, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 45, 56, 53, 0, 0, 0, 0, 0, + 164, 161, 0, 152, 157, 0, 0, 0, 112, 109, + 0, 100, 105, 0, 0, 0, 136, 133, 0, 129, + 126, 0, 0, 284, 281, 43, 35, 0, 0, 0, + 74, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 0, 177, 0, 0, 0, 163, + 0, 156, 0, 0, 0, 111, 0, 104, 0, 148, + 0, 135, 0, 128, 0, 0, 283, 0, 0, 73, + 78, 79, 77, 81, 32, 83, 85, 90, 90, 153, + 0, 186, 273, 0, 176, 179, 181, 174, 159, 122, + 0, 120, 107, 147, 145, 131, 289, 291, 36, 0, + 97, 96, 0, 91, 92, 95, 0, 0, 208, 213, + 215, 0, 225, 218, 220, 222, 0, 207, 205, 206, + 0, 193, 196, 197, 198, 199, 201, 202, 203, 204, + 200, 191, 0, 187, 188, 278, 0, 274, 275, 297, + 0, 294, 0, 49, 0, 94, 87, 89, 150, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 195, 183, + 0, 185, 190, 0, 272, 277, 0, 296, 293, 124, + 0, 93, 0, 0, 0, 217, 0, 0, 0, 0, + 224, 194, 0, 189, 0, 276, 309, 314, 0, 312, + 308, 306, 307, 0, 299, 302, 304, 305, 303, 295, + 101, 210, 211, 212, 209, 214, 216, 0, 219, 221, + 223, 192, 279, 0, 0, 0, 0, 301, 298, 0, + 237, 240, 242, 244, 236, 235, 234, 0, 227, 230, + 231, 232, 233, 0, 0, 311, 0, 300, 98, 0, + 0, 0, 0, 229, 226, 310, 0, 313, 0, 0, + 0, 0, 228, 319, 0, 316, 239, 238, 241, 243, + 246, 0, 318, 315, 251, 0, 247, 248, 329, 0, + 0, 0, 334, 0, 321, 324, 325, 326, 327, 328, + 317, 0, 245, 250, 0, 0, 0, 0, 0, 323, + 320, 263, 265, 267, 269, 262, 260, 261, 0, 253, + 256, 257, 258, 259, 249, 0, 331, 332, 333, 0, + 322, 0, 0, 0, 0, 255, 252, 330, 335, 0, + 0, 0, 0, 254, 264, 266, 268, 270 }; const short D2Parser::yypgoto_[] = { -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -41, -215, -214, -215, -4, -215, -215, -215, + -215, -215, -41, -215, -214, -215, 67, -215, -215, -215, -215, -215, -215, -56, -215, -215, -215, -215, -215, -215, - -215, 5, 68, -215, -215, -215, -215, -215, -215, -215, + -215, 77, 154, -215, -215, -215, -215, -215, -215, -215, -215, -215, -55, -215, -44, -215, -215, -215, -215, -215, - -3, -215, -52, -215, -215, -215, -215, -79, -215, 71, - -215, -215, -215, 74, 81, -215, -215, -51, -215, -215, - -215, -215, -215, 2, 75, -215, -215, -215, 78, 69, - -215, -215, -215, -215, -215, -215, -215, -215, -215, 15, - -215, 93, -215, -215, -215, 97, 100, -215, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -28, - -215, -215, -215, -215, -215, -215, -215, -215, -31, -215, - -215, -215, -27, 86, -215, -215, -215, -215, -215, -215, - -215, -32, -215, -215, -61, -215, -215, -215, -215, -215, - -215, -215, -215, -74, -215, -215, -93, -215, -215, -215, - -215, -215, -215, -215 + 68, -215, 3, -215, -215, -215, -215, -42, -215, 137, + -215, -215, -215, 146, 152, -215, -215, -51, -215, -215, + -215, -215, -215, 79, 147, -215, -215, -215, 150, 155, + -215, -215, -215, -215, -215, -215, -215, -215, -215, 91, + -215, 168, -215, -215, -215, 183, 180, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, 12, -215, 15, 23, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -67, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -97, -215, -215, -126, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, 25, -215, -215, -215, 28, 169, -215, -215, + -215, -215, -215, -215, -215, 26, -215, -215, -23, -215, + -215, -215, -215, -215, -215, -215, -215, -66, -215, -215, + -94, -215, -215, -215, -215, -215, -215, -215 }; const short D2Parser::yydefgoto_[] = { 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 30, 31, 32, 53, 261, 67, 68, 33, - 52, 64, 65, 86, 35, 54, 70, 163, 71, 37, - 55, 87, 88, 89, 166, 90, 91, 92, 169, 258, - 93, 170, 94, 171, 95, 172, 96, 173, 97, 174, - 287, 288, 289, 290, 311, 45, 59, 133, 134, 135, - 197, 43, 58, 127, 128, 129, 194, 130, 192, 131, - 193, 49, 61, 149, 150, 205, 47, 60, 143, 144, - 145, 202, 146, 200, 147, 98, 175, 41, 57, 118, - 119, 120, 189, 39, 56, 110, 111, 112, 186, 113, - 182, 114, 115, 184, 116, 185, 99, 176, 298, 299, - 300, 316, 301, 317, 100, 177, 303, 304, 305, 320, - 51, 62, 154, 155, 156, 208, 157, 209, 101, 178, - 307, 308, 323, 341, 342, 343, 352, 344, 345, 355, - 346, 353, 369, 370, 371, 379, 380, 381, 387, 382, - 383, 384, 385, 391 + 20, 21, 30, 31, 32, 53, 265, 67, 68, 33, + 52, 64, 65, 87, 35, 54, 70, 165, 71, 37, + 55, 88, 89, 90, 168, 91, 92, 93, 171, 262, + 94, 172, 95, 173, 96, 174, 97, 175, 98, 176, + 292, 293, 294, 295, 334, 45, 59, 135, 136, 137, + 200, 43, 58, 129, 130, 131, 197, 132, 195, 133, + 196, 49, 61, 151, 152, 208, 47, 60, 145, 146, + 147, 205, 148, 203, 149, 99, 177, 41, 57, 120, + 121, 122, 192, 39, 56, 112, 113, 114, 189, 115, + 185, 116, 117, 187, 118, 188, 100, 178, 101, 179, + 322, 323, 324, 350, 310, 311, 312, 339, 394, 313, + 340, 314, 341, 315, 316, 344, 317, 345, 318, 346, + 319, 320, 343, 417, 418, 419, 429, 447, 420, 430, + 421, 431, 422, 432, 455, 456, 457, 471, 488, 489, + 490, 501, 491, 502, 492, 503, 493, 504, 102, 180, + 326, 327, 328, 353, 51, 62, 156, 157, 158, 211, + 159, 212, 103, 181, 330, 331, 356, 383, 384, 385, + 403, 386, 387, 406, 388, 404, 444, 445, 451, 463, + 464, 465, 474, 466, 467, 468, 469, 478 }; const short D2Parser::yytable_[] = { - 107, 108, 124, 125, 139, 140, 153, 260, 34, 142, - 22, 63, 109, 23, 126, 24, 141, 25, 72, 73, - 74, 75, 285, 36, 76, 38, 77, 78, 79, 80, - 151, 152, 40, 164, 81, 136, 137, 260, 165, 82, - 42, 180, 83, 77, 78, 84, 181, 44, 121, 48, - 138, 77, 78, 77, 78, 256, 257, 85, 151, 152, - 102, 103, 104, 105, 46, 85, 26, 27, 28, 29, - 187, 106, 50, 334, 335, 188, 336, 337, 77, 78, - 85, 66, 85, 121, 122, 77, 78, 69, 195, 117, - 85, 374, 85, 196, 375, 376, 377, 378, 123, 293, - 294, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 203, 132, 148, 159, 210, 204, 85, 212, 213, - 211, 187, 195, 203, 85, 180, 273, 277, 280, 158, - 310, 107, 108, 107, 108, 206, 161, 160, 207, 124, - 125, 124, 125, 109, 162, 109, 167, 139, 140, 139, - 140, 126, 142, 126, 142, 312, 190, 312, 318, 141, - 313, 141, 314, 319, 210, 356, 392, 214, 168, 351, - 357, 393, 324, 206, 372, 325, 326, 373, 179, 183, - 191, 199, 198, 201, 215, 216, 217, 219, 218, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 230, 231, - 232, 233, 234, 238, 239, 240, 244, 286, 286, 246, - 295, 296, 283, 250, 251, 245, 253, 255, 254, 265, - 24, 259, 297, 262, 263, 264, 266, 267, 268, 275, - 269, 270, 302, 306, 315, 321, 322, 348, 327, 329, - 271, 330, 272, 354, 359, 360, 362, 282, 229, 364, - 366, 368, 388, 274, 389, 390, 286, 394, 398, 284, - 328, 291, 295, 296, 153, 276, 278, 338, 339, 358, - 243, 242, 247, 279, 297, 361, 241, 309, 281, 340, - 292, 249, 395, 248, 237, 349, 236, 235, 350, 365, - 331, 333, 347, 332, 367, 363, 252, 396, 386, 399, - 338, 339, 0, 0, 0, 397, 0, 400, 0, 0, - 401, 0, 340 + 109, 110, 126, 127, 141, 142, 155, 34, 290, 144, + 264, 63, 111, 23, 128, 24, 143, 25, 72, 73, + 74, 75, 153, 154, 76, 166, 77, 78, 79, 80, + 167, 153, 154, 22, 81, 138, 139, 77, 78, 82, + 83, 264, 183, 77, 78, 36, 190, 184, 123, 38, + 140, 191, 298, 86, 77, 78, 299, 300, 301, 302, + 40, 209, 84, 86, 210, 85, 77, 78, 198, 303, + 304, 305, 306, 199, 206, 104, 105, 106, 107, 207, + 42, 357, 77, 78, 358, 86, 26, 27, 28, 29, + 209, 260, 261, 359, 376, 377, 86, 378, 379, 77, + 78, 452, 86, 46, 453, 410, 108, 411, 412, 413, + 44, 458, 48, 86, 459, 460, 461, 462, 213, 190, + 215, 216, 66, 214, 278, 86, 198, 481, 482, 483, + 484, 282, 50, 206, 109, 110, 109, 110, 285, 69, + 119, 86, 126, 127, 126, 127, 111, 134, 111, 150, + 141, 142, 141, 142, 128, 144, 128, 144, 86, 160, + 77, 78, 143, 161, 143, 123, 124, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 183, 335, 335, + 348, 348, 333, 336, 337, 349, 401, 213, 407, 433, + 479, 505, 402, 408, 434, 480, 506, 391, 392, 393, + 125, 162, 163, 164, 193, 169, 170, 182, 186, 194, + 217, 291, 291, 201, 307, 308, 288, 202, 220, 86, + 204, 218, 219, 221, 222, 223, 309, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 234, 235, 236, 237, + 238, 242, 243, 244, 248, 249, 250, 254, 255, 257, + 259, 263, 365, 258, 24, 267, 268, 266, 269, 270, + 271, 272, 273, 280, 342, 347, 321, 274, 275, 276, + 277, 279, 325, 281, 283, 329, 338, 284, 351, 291, + 352, 354, 355, 286, 360, 362, 363, 364, 366, 367, + 368, 369, 307, 308, 307, 308, 370, 155, 390, 397, + 380, 381, 405, 423, 309, 424, 309, 426, 428, 436, + 438, 439, 382, 440, 441, 443, 446, 450, 454, 395, + 472, 473, 287, 475, 476, 477, 495, 499, 396, 398, + 509, 510, 399, 511, 512, 289, 296, 233, 361, 247, + 400, 414, 415, 425, 435, 437, 246, 448, 409, 449, + 245, 380, 381, 416, 507, 496, 253, 497, 252, 332, + 297, 251, 241, 382, 373, 372, 442, 498, 508, 514, + 239, 371, 515, 516, 517, 240, 494, 414, 415, 513, + 375, 374, 256, 389, 427, 500, 470, 0, 0, 416, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 485, 486, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 485, + 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 487 }; const short D2Parser::yycheck_[] = { - 56, 56, 58, 58, 60, 60, 62, 221, 7, 60, - 0, 52, 56, 5, 58, 7, 60, 9, 11, 12, - 13, 14, 23, 7, 17, 7, 19, 20, 21, 22, - 36, 37, 5, 3, 27, 11, 12, 251, 8, 32, - 7, 3, 35, 19, 20, 38, 8, 5, 24, 5, - 26, 19, 20, 19, 20, 15, 16, 58, 36, 37, - 28, 29, 30, 31, 7, 58, 58, 59, 60, 61, - 3, 39, 7, 39, 40, 8, 42, 43, 19, 20, - 58, 58, 58, 24, 25, 19, 20, 10, 3, 7, - 58, 41, 58, 8, 44, 45, 46, 47, 39, 33, - 34, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 3, 7, 7, 3, 3, 8, 58, 159, 160, - 8, 3, 3, 3, 58, 3, 8, 8, 8, 6, - 8, 187, 187, 189, 189, 3, 8, 4, 6, 195, - 195, 197, 197, 187, 3, 189, 4, 203, 203, 205, - 205, 195, 203, 197, 205, 3, 6, 3, 3, 203, - 8, 205, 8, 8, 3, 3, 3, 58, 4, 8, - 8, 8, 3, 3, 3, 6, 6, 6, 4, 4, - 3, 3, 6, 4, 4, 4, 59, 4, 59, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 59, - 4, 4, 4, 4, 4, 4, 4, 263, 264, 4, - 266, 266, 253, 4, 4, 59, 4, 58, 7, 5, - 7, 18, 266, 58, 7, 7, 7, 5, 5, 5, - 58, 58, 7, 7, 6, 6, 3, 5, 4, 4, - 58, 4, 58, 4, 4, 4, 4, 251, 180, 6, - 5, 7, 4, 58, 4, 4, 312, 4, 4, 254, - 312, 264, 318, 318, 320, 58, 58, 323, 323, 348, - 199, 197, 203, 58, 318, 59, 195, 275, 58, 323, - 265, 206, 61, 205, 191, 58, 189, 187, 58, 58, - 318, 322, 324, 320, 58, 356, 210, 59, 372, 392, - 356, 356, -1, -1, -1, 59, -1, 58, -1, -1, - 58, -1, 356 + 56, 56, 58, 58, 60, 60, 62, 7, 23, 60, + 224, 52, 56, 5, 58, 7, 60, 9, 11, 12, + 13, 14, 56, 57, 17, 3, 19, 20, 21, 22, + 8, 56, 57, 0, 27, 11, 12, 19, 20, 32, + 33, 255, 3, 19, 20, 7, 3, 8, 24, 7, + 26, 8, 34, 78, 19, 20, 38, 39, 40, 41, + 5, 3, 55, 78, 6, 58, 19, 20, 3, 51, + 52, 53, 54, 8, 3, 28, 29, 30, 31, 8, + 7, 3, 19, 20, 6, 78, 78, 79, 80, 81, + 3, 15, 16, 6, 59, 60, 78, 62, 63, 19, + 20, 3, 78, 7, 6, 42, 59, 44, 45, 46, + 5, 61, 5, 78, 64, 65, 66, 67, 3, 3, + 161, 162, 78, 8, 8, 78, 3, 47, 48, 49, + 50, 8, 7, 3, 190, 190, 192, 192, 8, 10, + 7, 78, 198, 198, 200, 200, 190, 7, 192, 7, + 206, 206, 208, 208, 198, 206, 200, 208, 78, 6, + 19, 20, 206, 3, 208, 24, 25, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 3, 3, 3, + 3, 3, 8, 8, 8, 8, 8, 3, 3, 3, + 3, 3, 8, 8, 8, 8, 8, 35, 36, 37, + 59, 4, 8, 3, 6, 4, 4, 4, 4, 3, + 78, 267, 268, 6, 270, 270, 257, 3, 79, 78, + 4, 4, 4, 79, 4, 4, 270, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 79, 4, 4, + 4, 4, 4, 4, 4, 79, 4, 4, 4, 4, + 78, 18, 79, 7, 7, 7, 7, 78, 5, 7, + 5, 5, 5, 5, 4, 4, 7, 78, 78, 78, + 78, 78, 7, 78, 78, 7, 6, 78, 6, 335, + 3, 6, 3, 78, 4, 4, 4, 4, 4, 4, + 4, 4, 348, 348, 350, 350, 81, 353, 5, 7, + 356, 356, 4, 4, 348, 4, 350, 4, 6, 5, + 4, 4, 356, 4, 4, 7, 43, 5, 7, 78, + 6, 3, 255, 4, 4, 4, 4, 4, 78, 78, + 4, 4, 78, 4, 4, 258, 268, 183, 335, 202, + 78, 397, 397, 79, 78, 78, 200, 78, 390, 78, + 198, 407, 407, 397, 78, 81, 209, 79, 208, 280, + 269, 206, 194, 407, 352, 350, 433, 79, 78, 78, + 190, 348, 78, 78, 78, 192, 473, 433, 433, 505, + 355, 353, 213, 357, 407, 479, 452, -1, -1, 433, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 471, 471, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 471, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, + 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 505 }; - const unsigned char + const short D2Parser::yystos_[] = { - 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 0, 5, 7, 9, 58, 59, 60, 61, - 74, 75, 76, 81, 7, 86, 7, 91, 7, 155, - 5, 149, 7, 123, 5, 117, 7, 138, 5, 133, - 7, 182, 82, 77, 87, 92, 156, 150, 124, 118, - 139, 134, 183, 74, 83, 84, 58, 79, 80, 10, - 88, 90, 11, 12, 13, 14, 17, 19, 20, 21, - 22, 27, 32, 35, 38, 58, 85, 93, 94, 95, - 97, 98, 99, 102, 104, 106, 108, 110, 147, 168, - 176, 190, 28, 29, 30, 31, 39, 85, 104, 106, - 157, 158, 159, 161, 163, 164, 166, 7, 151, 152, - 153, 24, 25, 39, 85, 104, 106, 125, 126, 127, - 129, 131, 7, 119, 120, 121, 11, 12, 26, 85, - 104, 106, 129, 140, 141, 142, 144, 146, 7, 135, - 136, 36, 37, 85, 184, 185, 186, 188, 6, 3, - 4, 8, 3, 89, 3, 8, 96, 4, 4, 100, - 103, 105, 107, 109, 111, 148, 169, 177, 191, 4, - 3, 8, 162, 4, 165, 167, 160, 3, 8, 154, - 6, 3, 130, 132, 128, 3, 8, 122, 6, 3, - 145, 4, 143, 3, 8, 137, 3, 6, 187, 189, - 3, 8, 74, 74, 58, 4, 4, 59, 59, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 94, - 4, 59, 4, 4, 4, 158, 157, 153, 4, 4, - 4, 126, 125, 121, 4, 59, 4, 141, 140, 136, - 4, 4, 185, 4, 7, 58, 15, 16, 101, 18, - 76, 78, 58, 7, 7, 5, 7, 5, 5, 58, - 58, 58, 58, 8, 58, 5, 58, 8, 58, 58, - 8, 58, 78, 74, 93, 23, 85, 112, 113, 114, - 115, 112, 151, 33, 34, 85, 104, 106, 170, 171, - 172, 174, 7, 178, 179, 180, 7, 192, 193, 135, - 8, 116, 3, 8, 8, 6, 173, 175, 3, 8, - 181, 6, 3, 194, 3, 6, 6, 4, 114, 4, - 4, 171, 184, 180, 39, 40, 42, 43, 85, 104, - 106, 195, 196, 197, 199, 200, 202, 193, 5, 58, - 58, 8, 198, 203, 4, 201, 3, 8, 119, 4, - 4, 59, 4, 196, 6, 58, 5, 58, 7, 204, - 205, 206, 3, 6, 41, 44, 45, 46, 47, 207, - 208, 209, 211, 212, 213, 214, 205, 210, 4, 4, - 4, 215, 3, 8, 4, 61, 59, 59, 4, 208, - 58, 58 + 0, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 0, 5, 7, 9, 78, 79, 80, 81, + 94, 95, 96, 101, 7, 106, 7, 111, 7, 175, + 5, 169, 7, 143, 5, 137, 7, 158, 5, 153, + 7, 246, 102, 97, 107, 112, 176, 170, 144, 138, + 159, 154, 247, 94, 103, 104, 78, 99, 100, 10, + 108, 110, 11, 12, 13, 14, 17, 19, 20, 21, + 22, 27, 32, 33, 55, 58, 78, 105, 113, 114, + 115, 117, 118, 119, 122, 124, 126, 128, 130, 167, + 188, 190, 240, 254, 28, 29, 30, 31, 59, 105, + 124, 126, 177, 178, 179, 181, 183, 184, 186, 7, + 171, 172, 173, 24, 25, 59, 105, 124, 126, 145, + 146, 147, 149, 151, 7, 139, 140, 141, 11, 12, + 26, 105, 124, 126, 149, 160, 161, 162, 164, 166, + 7, 155, 156, 56, 57, 105, 248, 249, 250, 252, + 6, 3, 4, 8, 3, 109, 3, 8, 116, 4, + 4, 120, 123, 125, 127, 129, 131, 168, 189, 191, + 241, 255, 4, 3, 8, 182, 4, 185, 187, 180, + 3, 8, 174, 6, 3, 150, 152, 148, 3, 8, + 142, 6, 3, 165, 4, 163, 3, 8, 157, 3, + 6, 251, 253, 3, 8, 94, 94, 78, 4, 4, + 79, 79, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 114, 4, 79, 4, 4, 4, 178, + 177, 173, 4, 4, 4, 146, 145, 141, 4, 79, + 4, 161, 160, 156, 4, 4, 249, 4, 7, 78, + 15, 16, 121, 18, 96, 98, 78, 7, 7, 5, + 7, 5, 5, 5, 78, 78, 78, 78, 8, 78, + 5, 78, 8, 78, 78, 8, 78, 98, 94, 113, + 23, 105, 132, 133, 134, 135, 132, 171, 34, 38, + 39, 40, 41, 51, 52, 53, 54, 105, 124, 126, + 196, 197, 198, 201, 203, 205, 206, 208, 210, 212, + 213, 7, 192, 193, 194, 7, 242, 243, 244, 7, + 256, 257, 155, 8, 136, 3, 8, 8, 6, 199, + 202, 204, 4, 214, 207, 209, 211, 4, 3, 8, + 195, 6, 3, 245, 6, 3, 258, 3, 6, 6, + 4, 134, 4, 4, 4, 79, 4, 4, 4, 4, + 81, 197, 196, 194, 248, 244, 59, 60, 62, 63, + 105, 124, 126, 259, 260, 261, 263, 264, 266, 257, + 5, 35, 36, 37, 200, 78, 78, 7, 78, 78, + 78, 8, 8, 262, 267, 4, 265, 3, 8, 139, + 42, 44, 45, 46, 105, 124, 126, 215, 216, 217, + 220, 222, 224, 4, 4, 79, 4, 260, 6, 218, + 221, 223, 225, 3, 8, 78, 5, 78, 4, 4, + 4, 4, 216, 7, 268, 269, 43, 219, 78, 78, + 5, 270, 3, 6, 7, 226, 227, 228, 61, 64, + 65, 66, 67, 271, 272, 273, 275, 276, 277, 278, + 269, 229, 6, 3, 274, 4, 4, 4, 279, 3, + 8, 47, 48, 49, 50, 105, 124, 126, 230, 231, + 232, 234, 236, 238, 228, 4, 81, 79, 79, 4, + 272, 233, 235, 237, 239, 3, 8, 78, 78, 4, + 4, 4, 4, 231, 78, 78, 78, 78 }; - const unsigned char + const short D2Parser::yyr1_[] = { - 0, 62, 64, 63, 65, 63, 66, 63, 67, 63, - 68, 63, 69, 63, 70, 63, 71, 63, 72, 63, - 73, 63, 74, 74, 74, 74, 74, 74, 74, 75, - 77, 76, 78, 79, 79, 80, 80, 80, 82, 81, - 83, 83, 84, 84, 84, 85, 87, 86, 89, 88, - 88, 90, 92, 91, 93, 93, 93, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 96, 95, 97, 98, 100, 99, 101, 101, 103, - 102, 105, 104, 107, 106, 109, 108, 111, 110, 112, - 112, 113, 113, 113, 114, 114, 116, 115, 118, 117, - 119, 119, 120, 120, 120, 122, 121, 124, 123, 125, - 125, 125, 126, 126, 126, 126, 126, 126, 128, 127, - 130, 129, 132, 131, 134, 133, 135, 135, 135, 137, - 136, 139, 138, 140, 140, 140, 141, 141, 141, 141, - 141, 141, 141, 143, 142, 145, 144, 146, 148, 147, - 150, 149, 151, 151, 152, 152, 152, 154, 153, 156, - 155, 157, 157, 157, 158, 158, 158, 158, 158, 158, - 158, 158, 160, 159, 162, 161, 163, 165, 164, 167, - 166, 169, 168, 170, 170, 170, 171, 171, 171, 171, - 171, 173, 172, 175, 174, 177, 176, 178, 178, 179, - 179, 179, 181, 180, 183, 182, 184, 184, 184, 184, - 185, 185, 187, 186, 189, 188, 191, 190, 192, 192, - 192, 194, 193, 195, 195, 195, 196, 196, 196, 196, - 196, 196, 196, 198, 197, 199, 201, 200, 203, 202, - 204, 204, 204, 206, 205, 207, 207, 207, 208, 208, - 208, 208, 208, 210, 209, 211, 212, 213, 215, 214 + 0, 82, 84, 83, 85, 83, 86, 83, 87, 83, + 88, 83, 89, 83, 90, 83, 91, 83, 92, 83, + 93, 83, 94, 94, 94, 94, 94, 94, 94, 95, + 97, 96, 98, 99, 99, 100, 100, 100, 102, 101, + 103, 103, 104, 104, 104, 105, 107, 106, 109, 108, + 108, 110, 112, 111, 113, 113, 113, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 116, 115, 117, 118, 120, 119, 121, 121, + 123, 122, 125, 124, 127, 126, 129, 128, 131, 130, + 132, 132, 133, 133, 133, 134, 134, 136, 135, 138, + 137, 139, 139, 140, 140, 140, 142, 141, 144, 143, + 145, 145, 145, 146, 146, 146, 146, 146, 146, 148, + 147, 150, 149, 152, 151, 154, 153, 155, 155, 155, + 157, 156, 159, 158, 160, 160, 160, 161, 161, 161, + 161, 161, 161, 161, 163, 162, 165, 164, 166, 168, + 167, 170, 169, 171, 171, 172, 172, 172, 174, 173, + 176, 175, 177, 177, 177, 178, 178, 178, 178, 178, + 178, 178, 178, 180, 179, 182, 181, 183, 185, 184, + 187, 186, 189, 188, 191, 190, 192, 192, 193, 193, + 193, 195, 194, 196, 196, 196, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 199, 198, + 200, 200, 200, 202, 201, 204, 203, 205, 207, 206, + 209, 208, 211, 210, 212, 214, 213, 215, 215, 215, + 216, 216, 216, 216, 216, 216, 216, 218, 217, 219, + 221, 220, 223, 222, 225, 224, 226, 226, 227, 227, + 227, 229, 228, 230, 230, 230, 231, 231, 231, 231, + 231, 231, 231, 233, 232, 235, 234, 237, 236, 239, + 238, 241, 240, 242, 242, 243, 243, 243, 245, 244, + 247, 246, 248, 248, 248, 248, 249, 249, 251, 250, + 253, 252, 255, 254, 256, 256, 256, 258, 257, 259, + 259, 259, 260, 260, 260, 260, 260, 260, 260, 262, + 261, 263, 265, 264, 267, 266, 268, 268, 268, 270, + 269, 271, 271, 271, 272, 272, 272, 272, 272, 274, + 273, 275, 276, 277, 279, 278 }; const signed char @@ -2736,25 +3223,33 @@ namespace isc { namespace d2 { 0, 1, 1, 3, 2, 2, 0, 4, 0, 6, 1, 2, 0, 4, 1, 3, 2, 1, 1, 1, 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, 2, 1, 1, 0, 6, 0, 4, - 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 0, 4, 1, 3, 2, 0, - 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 4, 3, 0, 6, - 0, 4, 0, 1, 1, 3, 2, 0, 4, 0, - 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 3, 0, 4, 0, - 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 6, 0, 1, 1, - 3, 2, 0, 4, 0, 4, 1, 3, 2, 1, - 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, + 1, 1, 0, 4, 3, 3, 0, 4, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 6, 0, 6, + 0, 1, 1, 3, 2, 1, 1, 0, 6, 0, + 4, 0, 1, 1, 3, 2, 0, 4, 0, 4, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 0, + 4, 0, 4, 0, 6, 0, 4, 1, 3, 2, + 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 3, 0, + 6, 0, 4, 0, 1, 1, 3, 2, 0, 4, + 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 0, 4, 3, 0, 4, + 0, 4, 0, 6, 0, 6, 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 3, 0, 4, 0, 6, - 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, - 1, 1, 1, 0, 4, 3, 3, 3, 0, 4 + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 1, 1, 1, 0, 4, 0, 4, 3, 0, 4, + 0, 4, 0, 4, 3, 0, 6, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 0, 4, 0, 4, 0, 6, 0, 1, 1, 3, + 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 6, 0, 1, 1, 3, 2, 0, 4, + 0, 4, 1, 3, 2, 1, 1, 1, 0, 4, + 0, 4, 0, 6, 1, 3, 2, 0, 4, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 3, 0, 4, 0, 6, 1, 3, 2, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 0, + 4, 3, 3, 3, 0, 4 }; @@ -2772,7 +3267,12 @@ namespace isc { namespace d2 { "\"reverse-ddns\"", "\"ddns-domains\"", "\"key-name\"", "\"dns-servers\"", "\"hostname\"", "\"tsig-keys\"", "\"algorithm\"", "\"digest-bits\"", "\"secret\"", "\"secret-file\"", "\"control-socket\"", - "\"socket-type\"", "\"socket-name\"", "\"hooks-libraries\"", + "\"control-sockets\"", "\"socket-type\"", "\"unix\"", "\"http\"", + "\"https\"", "\"socket-name\"", "\"socket-address\"", "\"socket-port\"", + "\"authentication\"", "\"type\"", "\"basic\"", "\"realm\"", + "\"directory\"", "\"clients\"", "\"user\"", "\"user-file\"", + "\"password\"", "\"password-file\"", "\"trust-anchor\"", "\"cert-file\"", + "\"key-file\"", "\"cert-required\"", "\"hooks-libraries\"", "\"library\"", "\"parameters\"", "\"loggers\"", "\"name\"", "\"output-options\"", "\"output\"", "\"debuglevel\"", "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", "TOPLEVEL_JSON", @@ -2803,16 +3303,26 @@ namespace isc { namespace d2 { "tsig_key_name", "$@39", "tsig_key_algorithm", "$@40", "tsig_key_digest_bits", "tsig_key_secret", "$@41", "tsig_key_secret_file", "$@42", "control_socket", "$@43", + "control_sockets", "$@44", "control_socket_list", + "not_empty_control_socket_list", "control_socket_entry", "$@45", "control_socket_params", "control_socket_param", "control_socket_type", - "$@44", "control_socket_name", "$@45", "hooks_libraries", "$@46", - "hooks_libraries_list", "not_empty_hooks_libraries_list", - "hooks_library", "$@47", "sub_hooks_library", "$@48", "hooks_params", - "hooks_param", "library", "$@49", "parameters", "$@50", "loggers", - "$@51", "loggers_entries", "logger_entry", "$@52", "logger_params", - "logger_param", "name", "$@53", "debuglevel", "severity", "$@54", - "output_options_list", "$@55", "output_options_list_content", - "output_entry", "$@56", "output_params_list", "output_params", "output", - "$@57", "flush", "maxsize", "maxver", "pattern", "$@58", YY_NULLPTR + "$@46", "control_socket_type_value", "control_socket_name", "$@47", + "control_socket_address", "$@48", "control_socket_port", "trust_anchor", + "$@49", "cert_file", "$@50", "key_file", "$@51", "cert_required", + "authentication", "$@52", "auth_params", "auth_param", "auth_type", + "$@53", "auth_type_value", "realm", "$@54", "directory", "$@55", + "clients", "$@56", "clients_list", "not_empty_clients_list", + "basic_auth", "$@57", "clients_params", "clients_param", "user", "$@58", + "user_file", "$@59", "password", "$@60", "password_file", "$@61", + "hooks_libraries", "$@62", "hooks_libraries_list", + "not_empty_hooks_libraries_list", "hooks_library", "$@63", + "sub_hooks_library", "$@64", "hooks_params", "hooks_param", "library", + "$@65", "parameters", "$@66", "loggers", "$@67", "loggers_entries", + "logger_entry", "$@68", "logger_params", "logger_param", "name", "$@69", + "debuglevel", "severity", "$@70", "output_options_list", "$@71", + "output_options_list_content", "output_entry", "$@72", + "output_params_list", "output_params", "output", "$@73", "flush", + "maxsize", "maxver", "pattern", "$@74", YY_NULLPTR }; #endif @@ -2821,32 +3331,40 @@ namespace isc { namespace d2 { const short D2Parser::yyrline_[] = { - 0, 131, 131, 131, 132, 132, 133, 133, 134, 134, - 135, 135, 136, 136, 137, 137, 138, 138, 139, 139, - 140, 140, 148, 149, 150, 151, 152, 153, 154, 157, - 162, 162, 173, 176, 177, 180, 185, 191, 196, 196, - 203, 204, 207, 211, 215, 225, 234, 234, 247, 247, - 257, 260, 264, 264, 272, 273, 274, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 296, 296, 305, 314, 324, 324, 333, 334, 337, - 337, 346, 346, 371, 371, 398, 398, 409, 409, 420, - 421, 424, 425, 426, 431, 432, 437, 437, 448, 448, - 455, 456, 459, 460, 461, 466, 466, 474, 474, 481, - 482, 483, 488, 489, 490, 491, 492, 493, 497, 497, - 510, 510, 523, 523, 534, 534, 541, 542, 543, 548, - 548, 556, 556, 563, 564, 565, 570, 571, 572, 573, - 574, 575, 576, 579, 579, 592, 592, 601, 616, 616, - 627, 627, 634, 635, 638, 639, 640, 645, 645, 653, - 653, 662, 663, 664, 669, 670, 671, 672, 673, 674, - 675, 676, 679, 679, 692, 692, 704, 713, 713, 726, - 726, 744, 744, 755, 756, 757, 762, 763, 764, 765, - 766, 769, 769, 778, 778, 789, 789, 800, 801, 804, - 805, 806, 811, 811, 821, 821, 831, 832, 833, 836, - 839, 840, 843, 843, 852, 852, 862, 862, 875, 876, - 877, 883, 883, 891, 892, 893, 898, 899, 900, 901, - 902, 903, 904, 907, 907, 916, 922, 922, 931, 931, - 942, 943, 944, 949, 949, 957, 958, 959, 964, 965, - 966, 967, 968, 971, 971, 980, 986, 992, 998, 998 + 0, 153, 153, 153, 154, 154, 155, 155, 156, 156, + 157, 157, 158, 158, 159, 159, 160, 160, 161, 161, + 162, 162, 170, 171, 172, 173, 174, 175, 176, 179, + 184, 184, 195, 198, 199, 202, 207, 213, 218, 218, + 225, 226, 229, 233, 237, 247, 256, 256, 269, 269, + 279, 282, 286, 286, 294, 295, 296, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 319, 319, 328, 337, 347, 347, 356, 357, + 360, 360, 369, 369, 394, 394, 421, 421, 432, 432, + 443, 444, 447, 448, 449, 454, 455, 460, 460, 471, + 471, 478, 479, 482, 483, 484, 489, 489, 497, 497, + 504, 505, 506, 511, 512, 513, 514, 515, 516, 520, + 520, 533, 533, 546, 546, 557, 557, 564, 565, 566, + 571, 571, 579, 579, 586, 587, 588, 593, 594, 595, + 596, 597, 598, 599, 602, 602, 615, 615, 624, 639, + 639, 650, 650, 657, 658, 661, 662, 663, 668, 668, + 676, 676, 685, 686, 687, 692, 693, 694, 695, 696, + 697, 698, 699, 702, 702, 715, 715, 727, 736, 736, + 749, 749, 767, 767, 779, 779, 791, 792, 795, 796, + 797, 802, 802, 810, 811, 812, 817, 818, 819, 820, + 821, 822, 823, 824, 825, 826, 827, 828, 831, 831, + 840, 841, 842, 845, 845, 854, 854, 863, 869, 869, + 878, 878, 887, 887, 896, 904, 904, 917, 918, 919, + 924, 925, 926, 927, 928, 929, 930, 933, 933, 941, + 944, 944, 953, 953, 962, 962, 973, 974, 977, 978, + 979, 984, 984, 992, 993, 994, 999, 1000, 1001, 1002, + 1003, 1004, 1005, 1008, 1008, 1017, 1017, 1026, 1026, 1035, + 1035, 1046, 1046, 1057, 1058, 1061, 1062, 1063, 1068, 1068, + 1078, 1078, 1088, 1089, 1090, 1093, 1096, 1097, 1100, 1100, + 1109, 1109, 1119, 1119, 1132, 1133, 1134, 1140, 1140, 1148, + 1149, 1150, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1164, + 1164, 1173, 1179, 1179, 1188, 1188, 1199, 1200, 1201, 1206, + 1206, 1214, 1215, 1216, 1221, 1222, 1223, 1224, 1225, 1228, + 1228, 1237, 1243, 1249, 1255, 1255 }; void @@ -2879,9 +3397,9 @@ namespace isc { namespace d2 { #line 14 "d2_parser.yy" } } // isc::d2 -#line 2883 "d2_parser.cc" +#line 3401 "d2_parser.cc" -#line 1007 "d2_parser.yy" +#line 1264 "d2_parser.yy" void diff --git a/src/bin/d2/d2_parser.h b/src/bin/d2/d2_parser.h index f9eaf8f23a..65d0b4f757 100644 --- a/src/bin/d2/d2_parser.h +++ b/src/bin/d2/d2_parser.h @@ -428,6 +428,8 @@ namespace isc { namespace d2 { // value // map_value // ncr_protocol_value + // control_socket_type_value + // auth_type_value char dummy1[sizeof (ElementPtr)]; // "boolean" @@ -523,35 +525,55 @@ namespace isc { namespace d2 { TOKEN_SECRET = 285, // "secret" TOKEN_SECRET_FILE = 286, // "secret-file" TOKEN_CONTROL_SOCKET = 287, // "control-socket" - TOKEN_SOCKET_TYPE = 288, // "socket-type" - TOKEN_SOCKET_NAME = 289, // "socket-name" - TOKEN_HOOKS_LIBRARIES = 290, // "hooks-libraries" - TOKEN_LIBRARY = 291, // "library" - TOKEN_PARAMETERS = 292, // "parameters" - TOKEN_LOGGERS = 293, // "loggers" - TOKEN_NAME = 294, // "name" - TOKEN_OUTPUT_OPTIONS = 295, // "output-options" - TOKEN_OUTPUT = 296, // "output" - TOKEN_DEBUGLEVEL = 297, // "debuglevel" - TOKEN_SEVERITY = 298, // "severity" - TOKEN_FLUSH = 299, // "flush" - TOKEN_MAXSIZE = 300, // "maxsize" - TOKEN_MAXVER = 301, // "maxver" - TOKEN_PATTERN = 302, // "pattern" - TOKEN_TOPLEVEL_JSON = 303, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCPDDNS = 304, // TOPLEVEL_DHCPDDNS - TOKEN_SUB_DHCPDDNS = 305, // SUB_DHCPDDNS - TOKEN_SUB_TSIG_KEY = 306, // SUB_TSIG_KEY - TOKEN_SUB_TSIG_KEYS = 307, // SUB_TSIG_KEYS - TOKEN_SUB_DDNS_DOMAIN = 308, // SUB_DDNS_DOMAIN - TOKEN_SUB_DDNS_DOMAINS = 309, // SUB_DDNS_DOMAINS - TOKEN_SUB_DNS_SERVER = 310, // SUB_DNS_SERVER - TOKEN_SUB_DNS_SERVERS = 311, // SUB_DNS_SERVERS - TOKEN_SUB_HOOKS_LIBRARY = 312, // SUB_HOOKS_LIBRARY - TOKEN_STRING = 313, // "constant string" - TOKEN_INTEGER = 314, // "integer" - TOKEN_FLOAT = 315, // "floating point" - TOKEN_BOOLEAN = 316 // "boolean" + TOKEN_CONTROL_SOCKETS = 288, // "control-sockets" + TOKEN_SOCKET_TYPE = 289, // "socket-type" + TOKEN_UNIX = 290, // "unix" + TOKEN_HTTP = 291, // "http" + TOKEN_HTTPS = 292, // "https" + TOKEN_SOCKET_NAME = 293, // "socket-name" + TOKEN_SOCKET_ADDRESS = 294, // "socket-address" + TOKEN_SOCKET_PORT = 295, // "socket-port" + TOKEN_AUTHENTICATION = 296, // "authentication" + TOKEN_TYPE = 297, // "type" + TOKEN_BASIC = 298, // "basic" + TOKEN_REALM = 299, // "realm" + TOKEN_DIRECTORY = 300, // "directory" + TOKEN_CLIENTS = 301, // "clients" + TOKEN_USER = 302, // "user" + TOKEN_USER_FILE = 303, // "user-file" + TOKEN_PASSWORD = 304, // "password" + TOKEN_PASSWORD_FILE = 305, // "password-file" + TOKEN_TRUST_ANCHOR = 306, // "trust-anchor" + TOKEN_CERT_FILE = 307, // "cert-file" + TOKEN_KEY_FILE = 308, // "key-file" + TOKEN_CERT_REQUIRED = 309, // "cert-required" + TOKEN_HOOKS_LIBRARIES = 310, // "hooks-libraries" + TOKEN_LIBRARY = 311, // "library" + TOKEN_PARAMETERS = 312, // "parameters" + TOKEN_LOGGERS = 313, // "loggers" + TOKEN_NAME = 314, // "name" + TOKEN_OUTPUT_OPTIONS = 315, // "output-options" + TOKEN_OUTPUT = 316, // "output" + TOKEN_DEBUGLEVEL = 317, // "debuglevel" + TOKEN_SEVERITY = 318, // "severity" + TOKEN_FLUSH = 319, // "flush" + TOKEN_MAXSIZE = 320, // "maxsize" + TOKEN_MAXVER = 321, // "maxver" + TOKEN_PATTERN = 322, // "pattern" + TOKEN_TOPLEVEL_JSON = 323, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCPDDNS = 324, // TOPLEVEL_DHCPDDNS + TOKEN_SUB_DHCPDDNS = 325, // SUB_DHCPDDNS + TOKEN_SUB_TSIG_KEY = 326, // SUB_TSIG_KEY + TOKEN_SUB_TSIG_KEYS = 327, // SUB_TSIG_KEYS + TOKEN_SUB_DDNS_DOMAIN = 328, // SUB_DDNS_DOMAIN + TOKEN_SUB_DDNS_DOMAINS = 329, // SUB_DDNS_DOMAINS + TOKEN_SUB_DNS_SERVER = 330, // SUB_DNS_SERVER + TOKEN_SUB_DNS_SERVERS = 331, // SUB_DNS_SERVERS + TOKEN_SUB_HOOKS_LIBRARY = 332, // SUB_HOOKS_LIBRARY + TOKEN_STRING = 333, // "constant string" + TOKEN_INTEGER = 334, // "integer" + TOKEN_FLOAT = 335, // "floating point" + TOKEN_BOOLEAN = 336 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -568,7 +590,7 @@ namespace isc { namespace d2 { { enum symbol_kind_type { - YYNTOKENS = 62, ///< Number of tokens. + YYNTOKENS = 82, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -603,189 +625,253 @@ namespace isc { namespace d2 { S_SECRET = 30, // "secret" S_SECRET_FILE = 31, // "secret-file" S_CONTROL_SOCKET = 32, // "control-socket" - S_SOCKET_TYPE = 33, // "socket-type" - S_SOCKET_NAME = 34, // "socket-name" - S_HOOKS_LIBRARIES = 35, // "hooks-libraries" - S_LIBRARY = 36, // "library" - S_PARAMETERS = 37, // "parameters" - S_LOGGERS = 38, // "loggers" - S_NAME = 39, // "name" - S_OUTPUT_OPTIONS = 40, // "output-options" - S_OUTPUT = 41, // "output" - S_DEBUGLEVEL = 42, // "debuglevel" - S_SEVERITY = 43, // "severity" - S_FLUSH = 44, // "flush" - S_MAXSIZE = 45, // "maxsize" - S_MAXVER = 46, // "maxver" - S_PATTERN = 47, // "pattern" - S_TOPLEVEL_JSON = 48, // TOPLEVEL_JSON - S_TOPLEVEL_DHCPDDNS = 49, // TOPLEVEL_DHCPDDNS - S_SUB_DHCPDDNS = 50, // SUB_DHCPDDNS - S_SUB_TSIG_KEY = 51, // SUB_TSIG_KEY - S_SUB_TSIG_KEYS = 52, // SUB_TSIG_KEYS - S_SUB_DDNS_DOMAIN = 53, // SUB_DDNS_DOMAIN - S_SUB_DDNS_DOMAINS = 54, // SUB_DDNS_DOMAINS - S_SUB_DNS_SERVER = 55, // SUB_DNS_SERVER - S_SUB_DNS_SERVERS = 56, // SUB_DNS_SERVERS - S_SUB_HOOKS_LIBRARY = 57, // SUB_HOOKS_LIBRARY - S_STRING = 58, // "constant string" - S_INTEGER = 59, // "integer" - S_FLOAT = 60, // "floating point" - S_BOOLEAN = 61, // "boolean" - S_YYACCEPT = 62, // $accept - S_start = 63, // start - S_64_1 = 64, // $@1 - S_65_2 = 65, // $@2 - S_66_3 = 66, // $@3 - S_67_4 = 67, // $@4 - S_68_5 = 68, // $@5 - S_69_6 = 69, // $@6 - S_70_7 = 70, // $@7 - S_71_8 = 71, // $@8 - S_72_9 = 72, // $@9 - S_73_10 = 73, // $@10 - S_value = 74, // value - S_sub_json = 75, // sub_json - S_map2 = 76, // map2 - S_77_11 = 77, // $@11 - S_map_value = 78, // map_value - S_map_content = 79, // map_content - S_not_empty_map = 80, // not_empty_map - S_list_generic = 81, // list_generic - S_82_12 = 82, // $@12 - S_list_content = 83, // list_content - S_not_empty_list = 84, // not_empty_list - S_unknown_map_entry = 85, // unknown_map_entry - S_syntax_map = 86, // syntax_map - S_87_13 = 87, // $@13 - S_global_object = 88, // global_object - S_89_14 = 89, // $@14 - S_global_object_comma = 90, // global_object_comma - S_sub_dhcpddns = 91, // sub_dhcpddns - S_92_15 = 92, // $@15 - S_dhcpddns_params = 93, // dhcpddns_params - S_dhcpddns_param = 94, // dhcpddns_param - S_ip_address = 95, // ip_address - S_96_16 = 96, // $@16 - S_port = 97, // port - S_dns_server_timeout = 98, // dns_server_timeout - S_ncr_protocol = 99, // ncr_protocol - S_100_17 = 100, // $@17 - S_ncr_protocol_value = 101, // ncr_protocol_value - S_ncr_format = 102, // ncr_format - S_103_18 = 103, // $@18 - S_user_context = 104, // user_context - S_105_19 = 105, // $@19 - S_comment = 106, // comment - S_107_20 = 107, // $@20 - S_forward_ddns = 108, // forward_ddns - S_109_21 = 109, // $@21 - S_reverse_ddns = 110, // reverse_ddns - S_111_22 = 111, // $@22 - S_ddns_mgr_params = 112, // ddns_mgr_params - S_not_empty_ddns_mgr_params = 113, // not_empty_ddns_mgr_params - S_ddns_mgr_param = 114, // ddns_mgr_param - S_ddns_domains = 115, // ddns_domains - S_116_23 = 116, // $@23 - S_sub_ddns_domains = 117, // sub_ddns_domains - S_118_24 = 118, // $@24 - S_ddns_domain_list = 119, // ddns_domain_list - S_not_empty_ddns_domain_list = 120, // not_empty_ddns_domain_list - S_ddns_domain = 121, // ddns_domain - S_122_25 = 122, // $@25 - S_sub_ddns_domain = 123, // sub_ddns_domain - S_124_26 = 124, // $@26 - S_ddns_domain_params = 125, // ddns_domain_params - S_ddns_domain_param = 126, // ddns_domain_param - S_ddns_domain_name = 127, // ddns_domain_name - S_128_27 = 128, // $@27 - S_ddns_key_name = 129, // ddns_key_name - S_130_28 = 130, // $@28 - S_dns_servers = 131, // dns_servers - S_132_29 = 132, // $@29 - S_sub_dns_servers = 133, // sub_dns_servers - S_134_30 = 134, // $@30 - S_dns_server_list = 135, // dns_server_list - S_dns_server = 136, // dns_server - S_137_31 = 137, // $@31 - S_sub_dns_server = 138, // sub_dns_server - S_139_32 = 139, // $@32 - S_dns_server_params = 140, // dns_server_params - S_dns_server_param = 141, // dns_server_param - S_dns_server_hostname = 142, // dns_server_hostname - S_143_33 = 143, // $@33 - S_dns_server_ip_address = 144, // dns_server_ip_address - S_145_34 = 145, // $@34 - S_dns_server_port = 146, // dns_server_port - S_tsig_keys = 147, // tsig_keys - S_148_35 = 148, // $@35 - S_sub_tsig_keys = 149, // sub_tsig_keys - S_150_36 = 150, // $@36 - S_tsig_keys_list = 151, // tsig_keys_list - S_not_empty_tsig_keys_list = 152, // not_empty_tsig_keys_list - S_tsig_key = 153, // tsig_key - S_154_37 = 154, // $@37 - S_sub_tsig_key = 155, // sub_tsig_key - S_156_38 = 156, // $@38 - S_tsig_key_params = 157, // tsig_key_params - S_tsig_key_param = 158, // tsig_key_param - S_tsig_key_name = 159, // tsig_key_name - S_160_39 = 160, // $@39 - S_tsig_key_algorithm = 161, // tsig_key_algorithm - S_162_40 = 162, // $@40 - S_tsig_key_digest_bits = 163, // tsig_key_digest_bits - S_tsig_key_secret = 164, // tsig_key_secret - S_165_41 = 165, // $@41 - S_tsig_key_secret_file = 166, // tsig_key_secret_file - S_167_42 = 167, // $@42 - S_control_socket = 168, // control_socket - S_169_43 = 169, // $@43 - S_control_socket_params = 170, // control_socket_params - S_control_socket_param = 171, // control_socket_param - S_control_socket_type = 172, // control_socket_type - S_173_44 = 173, // $@44 - S_control_socket_name = 174, // control_socket_name - S_175_45 = 175, // $@45 - S_hooks_libraries = 176, // hooks_libraries - S_177_46 = 177, // $@46 - S_hooks_libraries_list = 178, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 179, // not_empty_hooks_libraries_list - S_hooks_library = 180, // hooks_library - S_181_47 = 181, // $@47 - S_sub_hooks_library = 182, // sub_hooks_library - S_183_48 = 183, // $@48 - S_hooks_params = 184, // hooks_params - S_hooks_param = 185, // hooks_param - S_library = 186, // library - S_187_49 = 187, // $@49 - S_parameters = 188, // parameters - S_189_50 = 189, // $@50 - S_loggers = 190, // loggers - S_191_51 = 191, // $@51 - S_loggers_entries = 192, // loggers_entries - S_logger_entry = 193, // logger_entry - S_194_52 = 194, // $@52 - S_logger_params = 195, // logger_params - S_logger_param = 196, // logger_param - S_name = 197, // name - S_198_53 = 198, // $@53 - S_debuglevel = 199, // debuglevel - S_severity = 200, // severity - S_201_54 = 201, // $@54 - S_output_options_list = 202, // output_options_list - S_203_55 = 203, // $@55 - S_output_options_list_content = 204, // output_options_list_content - S_output_entry = 205, // output_entry - S_206_56 = 206, // $@56 - S_output_params_list = 207, // output_params_list - S_output_params = 208, // output_params - S_output = 209, // output - S_210_57 = 210, // $@57 - S_flush = 211, // flush - S_maxsize = 212, // maxsize - S_maxver = 213, // maxver - S_pattern = 214, // pattern - S_215_58 = 215 // $@58 + S_CONTROL_SOCKETS = 33, // "control-sockets" + S_SOCKET_TYPE = 34, // "socket-type" + S_UNIX = 35, // "unix" + S_HTTP = 36, // "http" + S_HTTPS = 37, // "https" + S_SOCKET_NAME = 38, // "socket-name" + S_SOCKET_ADDRESS = 39, // "socket-address" + S_SOCKET_PORT = 40, // "socket-port" + S_AUTHENTICATION = 41, // "authentication" + S_TYPE = 42, // "type" + S_BASIC = 43, // "basic" + S_REALM = 44, // "realm" + S_DIRECTORY = 45, // "directory" + S_CLIENTS = 46, // "clients" + S_USER = 47, // "user" + S_USER_FILE = 48, // "user-file" + S_PASSWORD = 49, // "password" + S_PASSWORD_FILE = 50, // "password-file" + S_TRUST_ANCHOR = 51, // "trust-anchor" + S_CERT_FILE = 52, // "cert-file" + S_KEY_FILE = 53, // "key-file" + S_CERT_REQUIRED = 54, // "cert-required" + S_HOOKS_LIBRARIES = 55, // "hooks-libraries" + S_LIBRARY = 56, // "library" + S_PARAMETERS = 57, // "parameters" + S_LOGGERS = 58, // "loggers" + S_NAME = 59, // "name" + S_OUTPUT_OPTIONS = 60, // "output-options" + S_OUTPUT = 61, // "output" + S_DEBUGLEVEL = 62, // "debuglevel" + S_SEVERITY = 63, // "severity" + S_FLUSH = 64, // "flush" + S_MAXSIZE = 65, // "maxsize" + S_MAXVER = 66, // "maxver" + S_PATTERN = 67, // "pattern" + S_TOPLEVEL_JSON = 68, // TOPLEVEL_JSON + S_TOPLEVEL_DHCPDDNS = 69, // TOPLEVEL_DHCPDDNS + S_SUB_DHCPDDNS = 70, // SUB_DHCPDDNS + S_SUB_TSIG_KEY = 71, // SUB_TSIG_KEY + S_SUB_TSIG_KEYS = 72, // SUB_TSIG_KEYS + S_SUB_DDNS_DOMAIN = 73, // SUB_DDNS_DOMAIN + S_SUB_DDNS_DOMAINS = 74, // SUB_DDNS_DOMAINS + S_SUB_DNS_SERVER = 75, // SUB_DNS_SERVER + S_SUB_DNS_SERVERS = 76, // SUB_DNS_SERVERS + S_SUB_HOOKS_LIBRARY = 77, // SUB_HOOKS_LIBRARY + S_STRING = 78, // "constant string" + S_INTEGER = 79, // "integer" + S_FLOAT = 80, // "floating point" + S_BOOLEAN = 81, // "boolean" + S_YYACCEPT = 82, // $accept + S_start = 83, // start + S_84_1 = 84, // $@1 + S_85_2 = 85, // $@2 + S_86_3 = 86, // $@3 + S_87_4 = 87, // $@4 + S_88_5 = 88, // $@5 + S_89_6 = 89, // $@6 + S_90_7 = 90, // $@7 + S_91_8 = 91, // $@8 + S_92_9 = 92, // $@9 + S_93_10 = 93, // $@10 + S_value = 94, // value + S_sub_json = 95, // sub_json + S_map2 = 96, // map2 + S_97_11 = 97, // $@11 + S_map_value = 98, // map_value + S_map_content = 99, // map_content + S_not_empty_map = 100, // not_empty_map + S_list_generic = 101, // list_generic + S_102_12 = 102, // $@12 + S_list_content = 103, // list_content + S_not_empty_list = 104, // not_empty_list + S_unknown_map_entry = 105, // unknown_map_entry + S_syntax_map = 106, // syntax_map + S_107_13 = 107, // $@13 + S_global_object = 108, // global_object + S_109_14 = 109, // $@14 + S_global_object_comma = 110, // global_object_comma + S_sub_dhcpddns = 111, // sub_dhcpddns + S_112_15 = 112, // $@15 + S_dhcpddns_params = 113, // dhcpddns_params + S_dhcpddns_param = 114, // dhcpddns_param + S_ip_address = 115, // ip_address + S_116_16 = 116, // $@16 + S_port = 117, // port + S_dns_server_timeout = 118, // dns_server_timeout + S_ncr_protocol = 119, // ncr_protocol + S_120_17 = 120, // $@17 + S_ncr_protocol_value = 121, // ncr_protocol_value + S_ncr_format = 122, // ncr_format + S_123_18 = 123, // $@18 + S_user_context = 124, // user_context + S_125_19 = 125, // $@19 + S_comment = 126, // comment + S_127_20 = 127, // $@20 + S_forward_ddns = 128, // forward_ddns + S_129_21 = 129, // $@21 + S_reverse_ddns = 130, // reverse_ddns + S_131_22 = 131, // $@22 + S_ddns_mgr_params = 132, // ddns_mgr_params + S_not_empty_ddns_mgr_params = 133, // not_empty_ddns_mgr_params + S_ddns_mgr_param = 134, // ddns_mgr_param + S_ddns_domains = 135, // ddns_domains + S_136_23 = 136, // $@23 + S_sub_ddns_domains = 137, // sub_ddns_domains + S_138_24 = 138, // $@24 + S_ddns_domain_list = 139, // ddns_domain_list + S_not_empty_ddns_domain_list = 140, // not_empty_ddns_domain_list + S_ddns_domain = 141, // ddns_domain + S_142_25 = 142, // $@25 + S_sub_ddns_domain = 143, // sub_ddns_domain + S_144_26 = 144, // $@26 + S_ddns_domain_params = 145, // ddns_domain_params + S_ddns_domain_param = 146, // ddns_domain_param + S_ddns_domain_name = 147, // ddns_domain_name + S_148_27 = 148, // $@27 + S_ddns_key_name = 149, // ddns_key_name + S_150_28 = 150, // $@28 + S_dns_servers = 151, // dns_servers + S_152_29 = 152, // $@29 + S_sub_dns_servers = 153, // sub_dns_servers + S_154_30 = 154, // $@30 + S_dns_server_list = 155, // dns_server_list + S_dns_server = 156, // dns_server + S_157_31 = 157, // $@31 + S_sub_dns_server = 158, // sub_dns_server + S_159_32 = 159, // $@32 + S_dns_server_params = 160, // dns_server_params + S_dns_server_param = 161, // dns_server_param + S_dns_server_hostname = 162, // dns_server_hostname + S_163_33 = 163, // $@33 + S_dns_server_ip_address = 164, // dns_server_ip_address + S_165_34 = 165, // $@34 + S_dns_server_port = 166, // dns_server_port + S_tsig_keys = 167, // tsig_keys + S_168_35 = 168, // $@35 + S_sub_tsig_keys = 169, // sub_tsig_keys + S_170_36 = 170, // $@36 + S_tsig_keys_list = 171, // tsig_keys_list + S_not_empty_tsig_keys_list = 172, // not_empty_tsig_keys_list + S_tsig_key = 173, // tsig_key + S_174_37 = 174, // $@37 + S_sub_tsig_key = 175, // sub_tsig_key + S_176_38 = 176, // $@38 + S_tsig_key_params = 177, // tsig_key_params + S_tsig_key_param = 178, // tsig_key_param + S_tsig_key_name = 179, // tsig_key_name + S_180_39 = 180, // $@39 + S_tsig_key_algorithm = 181, // tsig_key_algorithm + S_182_40 = 182, // $@40 + S_tsig_key_digest_bits = 183, // tsig_key_digest_bits + S_tsig_key_secret = 184, // tsig_key_secret + S_185_41 = 185, // $@41 + S_tsig_key_secret_file = 186, // tsig_key_secret_file + S_187_42 = 187, // $@42 + S_control_socket = 188, // control_socket + S_189_43 = 189, // $@43 + S_control_sockets = 190, // control_sockets + S_191_44 = 191, // $@44 + S_control_socket_list = 192, // control_socket_list + S_not_empty_control_socket_list = 193, // not_empty_control_socket_list + S_control_socket_entry = 194, // control_socket_entry + S_195_45 = 195, // $@45 + S_control_socket_params = 196, // control_socket_params + S_control_socket_param = 197, // control_socket_param + S_control_socket_type = 198, // control_socket_type + S_199_46 = 199, // $@46 + S_control_socket_type_value = 200, // control_socket_type_value + S_control_socket_name = 201, // control_socket_name + S_202_47 = 202, // $@47 + S_control_socket_address = 203, // control_socket_address + S_204_48 = 204, // $@48 + S_control_socket_port = 205, // control_socket_port + S_trust_anchor = 206, // trust_anchor + S_207_49 = 207, // $@49 + S_cert_file = 208, // cert_file + S_209_50 = 209, // $@50 + S_key_file = 210, // key_file + S_211_51 = 211, // $@51 + S_cert_required = 212, // cert_required + S_authentication = 213, // authentication + S_214_52 = 214, // $@52 + S_auth_params = 215, // auth_params + S_auth_param = 216, // auth_param + S_auth_type = 217, // auth_type + S_218_53 = 218, // $@53 + S_auth_type_value = 219, // auth_type_value + S_realm = 220, // realm + S_221_54 = 221, // $@54 + S_directory = 222, // directory + S_223_55 = 223, // $@55 + S_clients = 224, // clients + S_225_56 = 225, // $@56 + S_clients_list = 226, // clients_list + S_not_empty_clients_list = 227, // not_empty_clients_list + S_basic_auth = 228, // basic_auth + S_229_57 = 229, // $@57 + S_clients_params = 230, // clients_params + S_clients_param = 231, // clients_param + S_user = 232, // user + S_233_58 = 233, // $@58 + S_user_file = 234, // user_file + S_235_59 = 235, // $@59 + S_password = 236, // password + S_237_60 = 237, // $@60 + S_password_file = 238, // password_file + S_239_61 = 239, // $@61 + S_hooks_libraries = 240, // hooks_libraries + S_241_62 = 241, // $@62 + S_hooks_libraries_list = 242, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 243, // not_empty_hooks_libraries_list + S_hooks_library = 244, // hooks_library + S_245_63 = 245, // $@63 + S_sub_hooks_library = 246, // sub_hooks_library + S_247_64 = 247, // $@64 + S_hooks_params = 248, // hooks_params + S_hooks_param = 249, // hooks_param + S_library = 250, // library + S_251_65 = 251, // $@65 + S_parameters = 252, // parameters + S_253_66 = 253, // $@66 + S_loggers = 254, // loggers + S_255_67 = 255, // $@67 + S_loggers_entries = 256, // loggers_entries + S_logger_entry = 257, // logger_entry + S_258_68 = 258, // $@68 + S_logger_params = 259, // logger_params + S_logger_param = 260, // logger_param + S_name = 261, // name + S_262_69 = 262, // $@69 + S_debuglevel = 263, // debuglevel + S_severity = 264, // severity + S_265_70 = 265, // $@70 + S_output_options_list = 266, // output_options_list + S_267_71 = 267, // $@71 + S_output_options_list_content = 268, // output_options_list_content + S_output_entry = 269, // output_entry + S_270_72 = 270, // $@72 + S_output_params_list = 271, // output_params_list + S_output_params = 272, // output_params + S_output = 273, // output + S_274_73 = 274, // $@73 + S_flush = 275, // flush + S_maxsize = 276, // maxsize + S_maxver = 277, // maxver + S_pattern = 278, // pattern + S_279_74 = 279 // $@74 }; }; @@ -825,6 +911,8 @@ namespace isc { namespace d2 { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case symbol_kind::S_control_socket_type_value: // control_socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.move< ElementPtr > (std::move (that.value)); break; @@ -964,6 +1052,8 @@ switch (yykind) case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case symbol_kind::S_control_socket_type_value: // control_socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.template destroy< ElementPtr > (); break; @@ -1675,6 +1765,21 @@ switch (yykind) return symbol_type (token::TOKEN_CONTROL_SOCKET, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CONTROL_SOCKETS (location_type l) + { + return symbol_type (token::TOKEN_CONTROL_SOCKETS, std::move (l)); + } +#else + static + symbol_type + make_CONTROL_SOCKETS (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_SOCKETS, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -1690,6 +1795,51 @@ switch (yykind) return symbol_type (token::TOKEN_SOCKET_TYPE, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_UNIX (location_type l) + { + return symbol_type (token::TOKEN_UNIX, std::move (l)); + } +#else + static + symbol_type + make_UNIX (const location_type& l) + { + return symbol_type (token::TOKEN_UNIX, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_HTTP (location_type l) + { + return symbol_type (token::TOKEN_HTTP, std::move (l)); + } +#else + static + symbol_type + make_HTTP (const location_type& l) + { + return symbol_type (token::TOKEN_HTTP, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_HTTPS (location_type l) + { + return symbol_type (token::TOKEN_HTTPS, std::move (l)); + } +#else + static + symbol_type + make_HTTPS (const location_type& l) + { + return symbol_type (token::TOKEN_HTTPS, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -1705,6 +1855,246 @@ switch (yykind) return symbol_type (token::TOKEN_SOCKET_NAME, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SOCKET_ADDRESS (location_type l) + { + return symbol_type (token::TOKEN_SOCKET_ADDRESS, std::move (l)); + } +#else + static + symbol_type + make_SOCKET_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_ADDRESS, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SOCKET_PORT (location_type l) + { + return symbol_type (token::TOKEN_SOCKET_PORT, std::move (l)); + } +#else + static + symbol_type + make_SOCKET_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_PORT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_AUTHENTICATION (location_type l) + { + return symbol_type (token::TOKEN_AUTHENTICATION, std::move (l)); + } +#else + static + symbol_type + make_AUTHENTICATION (const location_type& l) + { + return symbol_type (token::TOKEN_AUTHENTICATION, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TYPE (location_type l) + { + return symbol_type (token::TOKEN_TYPE, std::move (l)); + } +#else + static + symbol_type + make_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_TYPE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_BASIC (location_type l) + { + return symbol_type (token::TOKEN_BASIC, std::move (l)); + } +#else + static + symbol_type + make_BASIC (const location_type& l) + { + return symbol_type (token::TOKEN_BASIC, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_REALM (location_type l) + { + return symbol_type (token::TOKEN_REALM, std::move (l)); + } +#else + static + symbol_type + make_REALM (const location_type& l) + { + return symbol_type (token::TOKEN_REALM, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DIRECTORY (location_type l) + { + return symbol_type (token::TOKEN_DIRECTORY, std::move (l)); + } +#else + static + symbol_type + make_DIRECTORY (const location_type& l) + { + return symbol_type (token::TOKEN_DIRECTORY, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CLIENTS (location_type l) + { + return symbol_type (token::TOKEN_CLIENTS, std::move (l)); + } +#else + static + symbol_type + make_CLIENTS (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENTS, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_USER (location_type l) + { + return symbol_type (token::TOKEN_USER, std::move (l)); + } +#else + static + symbol_type + make_USER (const location_type& l) + { + return symbol_type (token::TOKEN_USER, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_USER_FILE (location_type l) + { + return symbol_type (token::TOKEN_USER_FILE, std::move (l)); + } +#else + static + symbol_type + make_USER_FILE (const location_type& l) + { + return symbol_type (token::TOKEN_USER_FILE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_PASSWORD (location_type l) + { + return symbol_type (token::TOKEN_PASSWORD, std::move (l)); + } +#else + static + symbol_type + make_PASSWORD (const location_type& l) + { + return symbol_type (token::TOKEN_PASSWORD, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_PASSWORD_FILE (location_type l) + { + return symbol_type (token::TOKEN_PASSWORD_FILE, std::move (l)); + } +#else + static + symbol_type + make_PASSWORD_FILE (const location_type& l) + { + return symbol_type (token::TOKEN_PASSWORD_FILE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TRUST_ANCHOR (location_type l) + { + return symbol_type (token::TOKEN_TRUST_ANCHOR, std::move (l)); + } +#else + static + symbol_type + make_TRUST_ANCHOR (const location_type& l) + { + return symbol_type (token::TOKEN_TRUST_ANCHOR, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CERT_FILE (location_type l) + { + return symbol_type (token::TOKEN_CERT_FILE, std::move (l)); + } +#else + static + symbol_type + make_CERT_FILE (const location_type& l) + { + return symbol_type (token::TOKEN_CERT_FILE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_KEY_FILE (location_type l) + { + return symbol_type (token::TOKEN_KEY_FILE, std::move (l)); + } +#else + static + symbol_type + make_KEY_FILE (const location_type& l) + { + return symbol_type (token::TOKEN_KEY_FILE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CERT_REQUIRED (location_type l) + { + return symbol_type (token::TOKEN_CERT_REQUIRED, std::move (l)); + } +#else + static + symbol_type + make_CERT_REQUIRED (const location_type& l) + { + return symbol_type (token::TOKEN_CERT_REQUIRED, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -2202,10 +2592,10 @@ switch (yykind) // YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of // state STATE-NUM. - static const unsigned char yystos_[]; + static const short yystos_[]; // YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. - static const unsigned char yyr1_[]; + static const short yyr1_[]; // YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. static const signed char yyr2_[]; @@ -2440,8 +2830,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 312, ///< Last index in yytable_. - yynnts_ = 154, ///< Number of nonterminal symbols. + yylast_ = 461, ///< Last index in yytable_. + yynnts_ = 198, ///< Number of nonterminal symbols. yyfinal_ = 22 ///< Termination state number. }; @@ -2492,10 +2882,12 @@ switch (yykind) 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, 60, 61 + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81 }; // Last valid token kind. - const int code_max = 316; + const int code_max = 336; if (t <= 0) return symbol_kind::S_YYEOF; @@ -2517,6 +2909,8 @@ switch (yykind) case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case symbol_kind::S_control_socket_type_value: // control_socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; @@ -2570,6 +2964,8 @@ switch (yykind) case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + case symbol_kind::S_control_socket_type_value: // control_socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.move< ElementPtr > (YY_MOVE (s.value)); break; @@ -2656,7 +3052,7 @@ switch (yykind) #line 14 "d2_parser.yy" } } // isc::d2 -#line 2660 "d2_parser.h" +#line 3056 "d2_parser.h" diff --git a/src/bin/d2/location.hh b/src/bin/d2/location.hh index 4145366614..2466444683 100644 --- a/src/bin/d2/location.hh +++ b/src/bin/d2/location.hh @@ -1,3 +1,4 @@ +// Generated 202407041528 // A Bison parser, made by GNU Bison 3.8.2. // Locations for Bison parsers in C++