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