/* %% [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 56
-#define YY_END_OF_BUFFER 57
+#define YY_NUM_RULES 58
+#define YY_END_OF_BUFFER 59
/* 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[302] =
+static const flex_int16_t yy_accept[320] =
{ 0,
- 49, 49, 0, 0, 0, 0, 0, 0, 0, 0,
- 57, 55, 10, 11, 55, 1, 49, 46, 49, 49,
- 55, 48, 47, 55, 55, 55, 55, 55, 42, 43,
- 55, 55, 55, 44, 45, 5, 5, 5, 55, 55,
- 55, 10, 11, 0, 0, 38, 0, 0, 0, 0,
+ 51, 51, 0, 0, 0, 0, 0, 0, 0, 0,
+ 59, 57, 10, 11, 57, 1, 51, 48, 51, 51,
+ 57, 50, 49, 57, 57, 57, 57, 57, 44, 45,
+ 57, 57, 57, 46, 47, 5, 5, 5, 57, 57,
+ 57, 10, 11, 0, 0, 40, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 49, 49, 0, 48, 49, 3, 2, 6,
- 0, 49, 0, 0, 0, 0, 0, 0, 4, 0,
- 0, 9, 0, 39, 0, 0, 0, 0, 0, 41,
+ 0, 1, 51, 51, 0, 50, 51, 3, 2, 6,
+ 0, 51, 0, 0, 0, 0, 0, 0, 4, 0,
+ 0, 9, 0, 41, 0, 0, 0, 0, 0, 43,
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, 40, 0, 0, 18, 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, 42, 0, 0, 0, 20, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 54, 52, 0, 51, 50, 0, 0, 0, 0, 0,
+ 0, 0, 0, 56, 54, 0, 53, 52, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 53, 50, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 27, 0,
- 0, 0, 0, 21, 0, 0, 0, 35, 36, 0,
-
- 0, 0, 0, 16, 17, 30, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,
- 29, 0, 0, 0, 0, 0, 0, 25, 0, 0,
- 0, 0, 0, 23, 26, 31, 0, 0, 0, 0,
- 0, 0, 37, 0, 0, 0, 0, 0, 0, 0,
- 34, 0, 0, 0, 0, 0, 0, 13, 14, 0,
- 0, 0, 0, 0, 0, 33, 0, 0, 24, 0,
- 0, 0, 0, 0, 0, 19, 20, 0, 0, 0,
- 0, 12, 0, 0, 0, 0, 0, 28, 15, 22,
-
- 0
+ 0, 0, 55, 52, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 29, 0, 0, 0, 0, 23,
+
+ 0, 0, 0, 0, 37, 38, 0, 0, 0, 0,
+ 0, 18, 19, 32, 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, 34,
+ 31, 0, 0, 0, 0, 0, 0, 0, 27, 16,
+ 0, 0, 0, 0, 0, 25, 28, 33, 0, 0,
+ 0, 0, 0, 0, 0, 39, 0, 0, 0, 0,
+ 0, 0, 0, 36, 0, 0, 0, 0, 0, 0,
+ 0, 13, 14, 0, 0, 0, 0, 0, 0, 0,
+ 35, 0, 0, 26, 0, 0, 0, 0, 0, 0,
+
+ 0, 21, 22, 0, 0, 0, 0, 0, 15, 12,
+ 0, 0, 0, 0, 0, 30, 17, 24, 0
} ;
static const YY_CHAR yy_ec[256] =
3, 3
} ;
-static const flex_int16_t yy_base[314] =
+static const flex_int16_t yy_base[332] =
{ 0,
0, 0, 61, 64, 67, 0, 65, 69, 49, 66,
- 277, 1955, 86, 269, 129, 0, 124, 1955, 172, 129,
- 84, 178, 1955, 250, 91, 76, 71, 89, 1955, 1955,
- 96, 91, 95, 1955, 1955, 1955, 87, 250, 196, 0,
- 222, 119, 236, 114, 199, 1955, 205, 215, 222, 209,
+ 277, 2102, 86, 269, 129, 0, 124, 2102, 172, 129,
+ 84, 178, 2102, 250, 91, 76, 71, 89, 2102, 2102,
+ 96, 91, 95, 2102, 2102, 2102, 87, 250, 196, 0,
+ 222, 119, 236, 114, 199, 2102, 205, 215, 222, 209,
235, 252, 273, 279, 287, 297, 304, 310, 317, 323,
- 345, 0, 345, 367, 361, 374, 382, 1955, 0, 1955,
- 144, 215, 128, 134, 119, 171, 185, 135, 1955, 172,
- 204, 1955, 161, 1955, 379, 401, 409, 424, 203, 436,
- 458, 444, 451, 486, 501, 460, 507, 516, 525, 531,
-
- 537, 543, 551, 567, 578, 587, 595, 0, 172, 199,
- 209, 212, 221, 219, 149, 1955, 0, 602, 608, 615,
- 167, 1955, 647, 623, 1955, 645, 630, 690, 696, 702,
- 710, 716, 726, 732, 746, 756, 767, 776, 783, 242,
- 1955, 1955, 275, 1955, 1955, 109, 0, 794, 811, 802,
- 835, 818, 837, 863, 881, 887, 893, 899, 905, 911,
- 917, 929, 942, 948, 959, 965, 973, 1955, 1955, 122,
- 0, 979, 985, 1000, 1015, 1022, 1059, 1036, 1030, 1042,
- 1057, 1087, 1102, 1108, 1114, 1122, 1128, 1138, 1955, 1144,
- 1163, 1175, 1181, 1955, 109, 0, 1191, 1955, 1955, 1200,
-
- 1211, 1217, 1226, 1955, 1955, 1955, 1239, 1256, 1269, 1275,
- 1282, 1291, 1297, 1310, 1321, 1336, 1347, 1955, 1358, 1364,
- 1371, 1377, 1384, 1394, 1401, 1407, 1414, 1421, 1429, 1955,
- 1955, 1442, 1456, 1464, 1470, 1477, 1483, 1955, 1494, 1500,
- 1508, 1525, 1531, 1955, 1955, 1955, 1538, 1548, 1556, 1562,
- 1568, 1575, 1955, 1586, 1593, 1603, 1610, 1623, 1629, 1641,
- 1955, 1647, 1659, 1665, 1677, 1671, 1684, 1955, 1955, 1696,
- 1702, 1712, 1722, 1732, 1738, 1955, 1749, 1757, 1955, 1768,
- 1774, 1785, 1792, 1798, 1804, 1955, 1955, 1810, 1816, 1822,
- 1835, 1955, 1846, 1857, 1866, 1872, 1881, 1955, 1955, 1955,
-
- 1955, 1916, 1921, 1926, 1931, 1936, 1941, 1946, 1949, 132,
- 128, 121, 111
+ 345, 0, 345, 367, 361, 374, 387, 2102, 0, 2102,
+ 144, 215, 128, 134, 119, 171, 185, 135, 2102, 172,
+ 204, 2102, 161, 2102, 392, 405, 416, 422, 203, 435,
+ 457, 457, 484, 502, 508, 514, 520, 526, 533, 544,
+
+ 550, 556, 563, 572, 581, 591, 598, 608, 0, 172,
+ 199, 209, 212, 221, 219, 149, 2102, 0, 618, 626,
+ 633, 167, 2102, 665, 661, 639, 2102, 696, 710, 716,
+ 722, 731, 737, 747, 753, 762, 773, 783, 792, 800,
+ 810, 827, 242, 2102, 2102, 275, 2102, 2102, 109, 0,
+ 835, 847, 854, 887, 873, 884, 915, 930, 937, 950,
+ 960, 967, 973, 985, 991, 997, 1008, 1016, 1022, 1034,
+ 1043, 1052, 2102, 2102, 122, 0, 1065, 1071, 1078, 1087,
+ 1095, 1132, 1101, 1109, 1117, 1131, 1161, 1175, 1181, 1187,
+ 1196, 1202, 1211, 1217, 2102, 1223, 1232, 1241, 1258, 2102,
+
+ 1279, 109, 0, 1288, 2102, 2102, 1294, 1302, 1314, 1324,
+ 1332, 2102, 2102, 2102, 1349, 1355, 1374, 1380, 1386, 1392,
+ 1398, 1410, 1416, 1429, 1435, 1447, 2102, 1454, 1460, 1466,
+ 1472, 1485, 1491, 1503, 1509, 1515, 1521, 1527, 1534, 2102,
+ 2102, 1540, 1551, 1564, 1570, 1576, 1586, 1594, 2102, 2102,
+ 1600, 1606, 1612, 1630, 1636, 2102, 2102, 2102, 1643, 1654,
+ 1661, 1667, 1673, 1680, 1698, 2102, 1708, 1691, 1715, 1721,
+ 1728, 1735, 1743, 2102, 1751, 1759, 1770, 1778, 1786, 1800,
+ 1813, 2102, 2102, 1821, 1827, 1835, 1841, 1851, 1857, 1863,
+ 2102, 1878, 1887, 2102, 1893, 1899, 1913, 1923, 1934, 1940,
+
+ 1948, 2102, 2102, 1954, 1960, 1971, 1978, 1990, 2102, 2102,
+ 1998, 2006, 2013, 2021, 2028, 2102, 2102, 2102, 2102, 2063,
+ 2068, 2073, 2078, 2083, 2088, 2093, 2096, 132, 128, 121,
+ 111
} ;
-static const flex_int16_t yy_def[314] =
+static const flex_int16_t yy_def[332] =
{ 0,
- 301, 1, 302, 302, 1, 5, 5, 5, 5, 5,
- 301, 301, 301, 301, 303, 304, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 305,
- 301, 301, 301, 306, 303, 301, 303, 303, 303, 307,
- 303, 303, 303, 303, 303, 303, 303, 303, 303, 303,
- 303, 304, 301, 301, 301, 301, 301, 301, 308, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 305, 301, 306, 301, 301, 303, 303, 303, 309, 303,
- 307, 303, 303, 303, 303, 303, 303, 303, 303, 303,
-
- 303, 303, 303, 303, 303, 303, 303, 308, 301, 301,
- 301, 301, 301, 301, 301, 301, 310, 303, 303, 303,
- 309, 301, 307, 303, 301, 303, 303, 303, 303, 303,
- 303, 303, 303, 303, 303, 303, 303, 303, 303, 301,
- 301, 301, 301, 301, 301, 301, 311, 303, 303, 303,
- 307, 303, 303, 303, 303, 303, 303, 303, 303, 303,
- 303, 303, 303, 303, 303, 303, 303, 301, 301, 301,
- 312, 303, 303, 303, 303, 303, 307, 303, 303, 303,
- 303, 303, 303, 303, 303, 303, 303, 303, 301, 303,
- 303, 303, 303, 301, 301, 313, 303, 301, 301, 303,
-
- 303, 303, 303, 301, 301, 301, 303, 303, 303, 303,
- 303, 303, 303, 303, 303, 303, 303, 301, 303, 303,
- 303, 303, 303, 303, 303, 303, 303, 303, 303, 301,
- 301, 303, 303, 303, 303, 303, 303, 301, 303, 303,
- 303, 303, 303, 301, 301, 301, 303, 303, 303, 303,
- 303, 303, 301, 303, 303, 303, 303, 303, 303, 303,
- 301, 303, 303, 303, 303, 303, 303, 301, 301, 303,
- 303, 303, 303, 303, 303, 301, 303, 303, 301, 303,
- 303, 303, 303, 303, 303, 301, 301, 303, 303, 303,
- 303, 301, 303, 303, 303, 303, 303, 301, 301, 301,
-
- 0, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301
+ 319, 1, 320, 320, 1, 5, 5, 5, 5, 5,
+ 319, 319, 319, 319, 321, 322, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 323,
+ 319, 319, 319, 324, 321, 319, 321, 321, 321, 325,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 322, 319, 319, 319, 319, 319, 319, 326, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 323, 319, 324, 319, 319, 321, 321, 321, 327, 321,
+ 325, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+
+ 321, 321, 321, 321, 321, 321, 321, 321, 326, 319,
+ 319, 319, 319, 319, 319, 319, 319, 328, 321, 321,
+ 321, 327, 319, 325, 321, 321, 319, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 319, 319, 319, 319, 319, 319, 319, 329,
+ 321, 321, 321, 325, 321, 321, 321, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 319, 319, 319, 330, 321, 321, 321, 321,
+ 321, 325, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 321, 321, 319, 321, 321, 321, 321, 319,
+
+ 321, 319, 331, 321, 319, 319, 321, 321, 321, 321,
+ 321, 319, 319, 319, 321, 321, 321, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 319, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 319,
+ 319, 321, 321, 321, 321, 321, 321, 321, 319, 319,
+ 321, 321, 321, 321, 321, 319, 319, 319, 321, 321,
+ 321, 321, 321, 321, 321, 319, 321, 321, 321, 321,
+ 321, 321, 321, 319, 321, 321, 321, 321, 321, 321,
+ 321, 319, 319, 321, 321, 321, 321, 321, 321, 321,
+ 319, 321, 321, 319, 321, 321, 321, 321, 321, 321,
+
+ 321, 319, 319, 321, 321, 321, 321, 321, 319, 319,
+ 321, 321, 321, 321, 321, 319, 319, 319, 0, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319
} ;
-static const flex_int16_t yy_nxt[2018] =
+static const flex_int16_t yy_nxt[2165] =
{ 0,
12, 13, 14, 13, 12, 15, 16, 12, 17, 18,
19, 20, 21, 22, 22, 22, 22, 23, 24, 12,
12, 71, 12, 74, 72, 72, 72, 72, 12, 12,
12, 12, 39, 73, 12, 83, 12, 73, 75, 84,
- 42, 12, 42, 74, 75, 196, 74, 12, 12, 44,
- 44, 44, 171, 76, 46, 63, 147, 64, 64, 64,
+ 42, 12, 42, 74, 75, 203, 74, 12, 12, 44,
+ 44, 44, 176, 76, 46, 63, 150, 64, 64, 64,
64, 75, 67, 67, 67, 67, 77, 78, 85, 65,
- 218, 111, 47, 48, 65, 109, 49, 72, 72, 72,
- 72, 110, 195, 50, 170, 65, 84, 111, 51, 52,
- 65, 53, 122, 54, 111, 109, 55, 56, 57, 58,
- 59, 110, 60, 63, 61, 66, 66, 66, 66, 63,
- 114, 66, 66, 66, 66, 85, 146, 65, 109, 44,
-
- 44, 44, 140, 65, 46, 44, 44, 44, 122, 116,
- 46, 115, 110, 65, 90, 44, 44, 44, 112, 65,
- 46, 45, 44, 44, 44, 140, 141, 46, 72, 72,
- 72, 72, 113, 50, 142, 44, 44, 44, 43, 50,
- 46, 82, 140, 45, 142, 80, 141, 45, 141, 50,
- 142, 45, 44, 44, 44, 86, 50, 46, 45, 87,
- 145, 45, 79, 45, 91, 143, 93, 168, 144, 50,
- 70, 43, 88, 44, 44, 44, 301, 301, 46, 44,
- 44, 44, 301, 168, 46, 92, 50, 44, 44, 44,
- 301, 301, 46, 94, 301, 301, 95, 44, 44, 44,
-
- 168, 301, 46, 301, 44, 44, 44, 50, 301, 46,
- 44, 44, 44, 50, 301, 46, 169, 44, 44, 44,
- 96, 50, 46, 44, 44, 44, 301, 301, 46, 97,
- 301, 50, 99, 98, 101, 301, 301, 100, 50, 301,
- 301, 102, 301, 301, 50, 44, 44, 44, 301, 301,
- 46, 50, 301, 301, 104, 301, 301, 50, 67, 67,
- 67, 67, 301, 301, 105, 103, 301, 301, 301, 71,
- 65, 71, 301, 106, 72, 72, 72, 72, 63, 50,
- 64, 64, 64, 64, 83, 63, 65, 66, 66, 66,
- 66, 83, 65, 301, 107, 67, 67, 67, 67, 65,
-
- 301, 44, 44, 44, 301, 301, 46, 65, 65, 44,
- 44, 44, 301, 83, 46, 65, 301, 83, 301, 301,
- 301, 83, 301, 65, 44, 44, 44, 301, 83, 46,
- 301, 83, 301, 83, 117, 50, 44, 44, 44, 301,
- 301, 46, 301, 50, 44, 44, 44, 301, 119, 46,
- 118, 44, 44, 44, 301, 301, 125, 301, 50, 301,
- 44, 44, 44, 301, 301, 46, 301, 120, 301, 301,
- 50, 123, 123, 123, 123, 301, 301, 301, 50, 123,
- 123, 123, 123, 123, 123, 50, 44, 44, 44, 301,
- 301, 46, 301, 124, 50, 123, 123, 123, 123, 123,
-
- 123, 44, 44, 44, 301, 301, 46, 44, 44, 44,
- 301, 301, 46, 301, 301, 128, 44, 44, 44, 301,
- 50, 46, 301, 301, 126, 44, 44, 44, 301, 301,
- 46, 44, 44, 44, 301, 50, 46, 44, 44, 44,
- 127, 50, 46, 44, 44, 44, 301, 301, 46, 301,
- 50, 44, 44, 44, 301, 301, 46, 129, 301, 50,
- 301, 301, 301, 131, 301, 50, 301, 44, 44, 44,
- 130, 50, 46, 301, 132, 301, 301, 50, 44, 44,
- 44, 301, 301, 46, 301, 50, 301, 44, 44, 44,
- 301, 134, 46, 301, 133, 44, 44, 44, 301, 301,
-
- 46, 50, 44, 44, 44, 135, 301, 46, 44, 44,
- 44, 301, 50, 46, 301, 44, 44, 44, 301, 136,
- 46, 50, 301, 44, 44, 44, 138, 301, 46, 50,
- 44, 44, 44, 301, 137, 46, 50, 301, 301, 301,
- 139, 301, 50, 301, 301, 44, 44, 44, 301, 50,
- 46, 301, 301, 301, 301, 301, 148, 50, 150, 149,
- 151, 151, 151, 151, 50, 301, 301, 301, 151, 151,
- 151, 151, 151, 151, 301, 301, 301, 152, 301, 50,
- 301, 154, 301, 301, 151, 151, 151, 151, 151, 151,
- 44, 44, 44, 301, 301, 46, 44, 44, 44, 301,
-
- 153, 46, 44, 44, 44, 301, 301, 46, 301, 301,
- 44, 44, 44, 301, 301, 46, 44, 44, 44, 301,
- 301, 46, 301, 301, 50, 301, 44, 44, 44, 301,
- 50, 46, 44, 44, 44, 301, 50, 46, 301, 301,
- 301, 301, 156, 155, 50, 301, 44, 44, 44, 301,
- 50, 46, 301, 157, 301, 301, 44, 44, 44, 159,
- 50, 46, 158, 301, 301, 301, 50, 44, 44, 44,
- 301, 301, 46, 162, 301, 301, 44, 44, 44, 160,
- 50, 46, 161, 44, 44, 44, 301, 301, 46, 301,
- 50, 301, 301, 164, 44, 44, 44, 163, 301, 46,
-
- 301, 50, 44, 44, 44, 301, 301, 46, 165, 301,
- 50, 44, 44, 44, 301, 301, 46, 50, 44, 44,
- 44, 301, 166, 46, 301, 301, 173, 174, 50, 301,
- 301, 301, 301, 301, 301, 175, 50, 44, 44, 44,
- 167, 301, 46, 301, 301, 50, 172, 176, 177, 177,
- 177, 177, 50, 301, 301, 301, 177, 177, 177, 177,
- 177, 177, 301, 44, 44, 44, 301, 301, 46, 301,
- 178, 50, 177, 177, 177, 177, 177, 177, 180, 181,
- 179, 44, 44, 44, 301, 301, 46, 44, 44, 44,
- 301, 301, 46, 44, 44, 44, 301, 50, 46, 44,
-
- 44, 44, 301, 184, 46, 44, 44, 44, 301, 301,
- 46, 44, 44, 44, 301, 50, 46, 44, 44, 44,
- 301, 50, 46, 301, 301, 182, 301, 50, 301, 44,
- 44, 44, 301, 50, 189, 301, 185, 301, 301, 50,
- 183, 301, 44, 44, 44, 50, 186, 46, 44, 44,
- 44, 50, 301, 46, 301, 301, 187, 301, 188, 44,
- 44, 44, 301, 50, 46, 44, 44, 44, 301, 301,
- 46, 301, 301, 44, 44, 44, 50, 301, 194, 44,
- 44, 44, 50, 301, 46, 44, 44, 44, 301, 301,
- 198, 301, 301, 50, 301, 301, 191, 190, 301, 50,
-
- 44, 44, 44, 301, 301, 199, 193, 50, 301, 301,
- 301, 192, 301, 50, 301, 44, 44, 44, 301, 50,
- 46, 301, 44, 44, 44, 301, 301, 46, 301, 197,
- 44, 44, 44, 301, 50, 46, 44, 44, 44, 301,
- 301, 46, 44, 44, 44, 301, 301, 204, 301, 50,
- 301, 301, 301, 301, 301, 200, 50, 44, 44, 44,
- 301, 301, 205, 301, 50, 301, 301, 301, 301, 301,
- 50, 201, 45, 45, 45, 45, 50, 203, 301, 301,
- 45, 45, 45, 45, 45, 45, 202, 44, 44, 44,
- 301, 50, 206, 301, 301, 301, 45, 45, 45, 45,
-
- 45, 45, 44, 44, 44, 301, 301, 46, 44, 44,
- 44, 301, 207, 46, 44, 44, 44, 301, 301, 46,
- 301, 50, 44, 44, 44, 301, 301, 46, 44, 44,
- 44, 301, 301, 46, 301, 301, 50, 301, 44, 44,
- 44, 301, 50, 46, 44, 44, 44, 301, 50, 46,
- 301, 301, 208, 301, 301, 301, 50, 301, 301, 209,
- 301, 301, 50, 44, 44, 44, 210, 301, 46, 301,
- 301, 301, 50, 301, 211, 44, 44, 44, 50, 301,
- 46, 44, 44, 44, 301, 301, 46, 212, 301, 301,
- 213, 44, 44, 44, 301, 301, 46, 50, 214, 301,
-
- 44, 44, 44, 301, 215, 46, 301, 301, 301, 50,
- 301, 44, 44, 44, 301, 50, 46, 44, 44, 44,
- 216, 301, 46, 301, 301, 50, 44, 44, 44, 301,
- 301, 46, 301, 301, 50, 217, 301, 301, 219, 44,
- 44, 44, 301, 301, 46, 50, 301, 301, 301, 220,
- 301, 50, 301, 301, 221, 301, 44, 44, 44, 301,
- 50, 46, 301, 301, 222, 301, 301, 223, 301, 44,
- 44, 44, 301, 50, 46, 44, 44, 44, 301, 301,
- 46, 301, 44, 44, 44, 301, 224, 46, 301, 301,
- 50, 44, 44, 44, 301, 301, 46, 44, 44, 44,
-
- 301, 301, 230, 50, 301, 301, 225, 301, 301, 50,
- 44, 44, 44, 301, 301, 231, 50, 301, 301, 226,
- 301, 44, 44, 44, 301, 50, 46, 301, 301, 301,
- 301, 50, 229, 227, 301, 228, 44, 44, 44, 301,
- 301, 46, 301, 301, 50, 301, 232, 44, 44, 44,
- 301, 301, 46, 301, 301, 50, 301, 235, 44, 44,
- 44, 301, 301, 46, 44, 44, 44, 301, 236, 46,
- 50, 44, 44, 44, 301, 233, 238, 44, 44, 44,
- 301, 50, 46, 301, 44, 44, 44, 239, 301, 46,
- 234, 301, 50, 301, 44, 44, 44, 301, 50, 46,
-
- 301, 44, 44, 44, 301, 50, 46, 44, 44, 44,
- 301, 50, 46, 301, 44, 44, 44, 237, 50, 244,
- 301, 44, 44, 44, 301, 301, 245, 301, 50, 44,
- 44, 44, 301, 301, 246, 50, 301, 301, 301, 241,
- 240, 50, 44, 44, 44, 301, 301, 46, 50, 301,
- 301, 301, 301, 301, 242, 50, 44, 44, 44, 243,
- 301, 46, 301, 50, 44, 44, 44, 301, 301, 46,
- 44, 44, 44, 301, 301, 46, 50, 44, 44, 44,
- 301, 301, 46, 44, 44, 44, 301, 301, 253, 301,
- 50, 301, 247, 301, 44, 44, 44, 248, 50, 46,
-
- 44, 44, 44, 301, 50, 46, 301, 301, 44, 44,
- 44, 50, 301, 46, 252, 301, 301, 50, 301, 250,
- 301, 301, 249, 301, 251, 44, 44, 44, 50, 301,
- 46, 44, 44, 44, 50, 301, 46, 301, 44, 44,
- 44, 255, 50, 46, 301, 301, 256, 254, 44, 44,
- 44, 301, 301, 46, 301, 301, 44, 44, 44, 50,
- 301, 261, 44, 44, 44, 50, 301, 46, 44, 44,
- 44, 301, 50, 46, 301, 44, 44, 44, 301, 257,
- 46, 301, 50, 301, 301, 258, 44, 44, 44, 259,
- 50, 46, 301, 44, 44, 44, 50, 301, 46, 262,
-
- 260, 301, 50, 44, 44, 44, 301, 301, 46, 50,
- 44, 44, 44, 301, 301, 268, 301, 301, 264, 301,
- 50, 301, 301, 44, 44, 44, 263, 50, 269, 44,
- 44, 44, 301, 301, 46, 301, 265, 50, 301, 301,
- 266, 44, 44, 44, 50, 301, 46, 44, 44, 44,
- 301, 301, 46, 301, 301, 267, 301, 50, 301, 44,
- 44, 44, 301, 50, 46, 44, 44, 44, 301, 301,
- 46, 44, 44, 44, 301, 50, 276, 44, 44, 44,
- 301, 50, 46, 270, 44, 44, 44, 301, 301, 46,
- 301, 301, 301, 50, 271, 272, 44, 44, 44, 50,
-
- 301, 46, 44, 44, 44, 50, 274, 279, 301, 301,
- 273, 50, 44, 44, 44, 301, 275, 46, 50, 301,
- 301, 277, 44, 44, 44, 301, 301, 46, 301, 301,
- 50, 301, 44, 44, 44, 301, 50, 46, 44, 44,
- 44, 278, 301, 46, 301, 301, 50, 301, 301, 44,
- 44, 44, 301, 280, 46, 301, 50, 44, 44, 44,
- 301, 301, 46, 281, 301, 301, 50, 301, 44, 44,
- 44, 301, 50, 286, 44, 44, 44, 301, 301, 287,
- 301, 282, 301, 50, 283, 44, 44, 44, 301, 301,
- 46, 50, 44, 44, 44, 301, 301, 46, 44, 44,
-
- 44, 284, 50, 46, 44, 44, 44, 285, 50, 46,
- 44, 44, 44, 301, 301, 292, 44, 44, 44, 50,
- 301, 46, 44, 44, 44, 301, 50, 46, 301, 301,
- 301, 301, 50, 289, 301, 44, 44, 44, 50, 288,
- 46, 301, 301, 290, 50, 301, 44, 44, 44, 301,
- 50, 46, 301, 291, 301, 301, 50, 44, 44, 44,
- 301, 301, 46, 294, 301, 301, 44, 44, 44, 50,
- 293, 298, 44, 44, 44, 301, 301, 299, 301, 301,
- 50, 44, 44, 44, 301, 301, 300, 301, 295, 301,
- 301, 50, 301, 301, 301, 301, 301, 301, 301, 296,
-
- 50, 301, 301, 301, 301, 301, 50, 301, 301, 301,
- 297, 301, 301, 301, 301, 50, 36, 36, 36, 36,
- 36, 45, 45, 45, 45, 45, 62, 301, 62, 62,
- 62, 81, 301, 81, 301, 81, 83, 83, 83, 83,
- 83, 89, 89, 89, 89, 89, 108, 301, 108, 108,
- 108, 121, 121, 121, 11, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
-
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301
+ 227, 112, 47, 48, 65, 110, 49, 72, 72, 72,
+ 72, 111, 202, 50, 175, 65, 84, 112, 51, 52,
+ 65, 53, 123, 54, 112, 110, 55, 56, 57, 58,
+ 59, 111, 60, 63, 61, 66, 66, 66, 66, 63,
+ 115, 66, 66, 66, 66, 85, 149, 65, 110, 44,
+
+ 44, 44, 143, 65, 46, 44, 44, 44, 123, 117,
+ 46, 116, 111, 65, 90, 44, 44, 44, 113, 65,
+ 46, 45, 44, 44, 44, 143, 144, 46, 72, 72,
+ 72, 72, 114, 50, 145, 44, 44, 44, 43, 50,
+ 46, 82, 143, 45, 145, 80, 144, 45, 144, 50,
+ 145, 45, 44, 44, 44, 86, 50, 46, 45, 87,
+ 148, 45, 79, 45, 91, 146, 93, 173, 147, 50,
+ 70, 43, 88, 44, 44, 44, 319, 319, 46, 44,
+ 44, 44, 319, 173, 46, 92, 50, 44, 44, 44,
+ 319, 319, 46, 94, 319, 319, 95, 44, 44, 44,
+
+ 173, 319, 46, 319, 44, 44, 44, 50, 319, 46,
+ 44, 44, 44, 50, 319, 46, 174, 44, 44, 44,
+ 96, 50, 46, 44, 44, 44, 319, 319, 46, 97,
+ 319, 50, 99, 98, 101, 319, 319, 100, 50, 319,
+ 319, 102, 319, 319, 50, 44, 44, 44, 319, 319,
+ 46, 50, 319, 319, 104, 319, 319, 50, 67, 67,
+ 67, 67, 319, 319, 105, 103, 319, 319, 319, 71,
+ 65, 71, 319, 106, 72, 72, 72, 72, 63, 50,
+ 64, 64, 64, 64, 319, 63, 65, 66, 66, 66,
+ 66, 319, 65, 319, 107, 319, 319, 83, 108, 65,
+
+ 67, 67, 67, 67, 83, 44, 44, 44, 65, 319,
+ 46, 319, 65, 319, 319, 65, 44, 44, 44, 319,
+ 319, 46, 44, 44, 44, 319, 83, 46, 65, 319,
+ 83, 319, 319, 319, 83, 44, 44, 44, 319, 50,
+ 46, 83, 319, 319, 83, 319, 83, 118, 319, 319,
+ 50, 319, 319, 319, 119, 120, 50, 44, 44, 44,
+ 319, 319, 46, 319, 319, 121, 319, 319, 319, 50,
+ 124, 124, 124, 124, 319, 319, 319, 319, 124, 124,
+ 124, 124, 124, 124, 44, 44, 44, 319, 319, 127,
+ 319, 50, 319, 319, 124, 124, 124, 124, 124, 124,
+
+ 319, 319, 44, 44, 44, 125, 126, 46, 44, 44,
+ 44, 319, 319, 46, 44, 44, 44, 319, 50, 46,
+ 44, 44, 44, 319, 319, 46, 44, 44, 44, 319,
+ 319, 46, 319, 44, 44, 44, 50, 319, 46, 319,
+ 128, 319, 50, 319, 44, 44, 44, 129, 50, 46,
+ 44, 44, 44, 319, 50, 46, 44, 44, 44, 319,
+ 50, 46, 319, 44, 44, 44, 319, 50, 46, 130,
+ 131, 133, 44, 44, 44, 319, 319, 46, 50, 319,
+ 132, 44, 44, 44, 50, 319, 46, 134, 319, 319,
+ 50, 44, 44, 44, 319, 319, 46, 50, 44, 44,
+
+ 44, 319, 319, 46, 136, 319, 50, 135, 44, 44,
+ 44, 319, 319, 46, 319, 50, 319, 137, 44, 44,
+ 44, 319, 319, 46, 138, 50, 44, 44, 44, 319,
+ 140, 46, 50, 44, 44, 44, 319, 139, 46, 44,
+ 44, 44, 50, 141, 46, 319, 319, 319, 319, 142,
+ 319, 319, 50, 319, 319, 319, 319, 319, 319, 319,
+ 50, 44, 44, 44, 319, 319, 46, 50, 319, 319,
+ 319, 319, 151, 50, 319, 319, 153, 152, 154, 154,
+ 154, 154, 319, 319, 319, 319, 154, 154, 154, 154,
+ 154, 154, 319, 156, 319, 50, 44, 44, 44, 319,
+
+ 319, 46, 154, 154, 154, 154, 154, 154, 319, 155,
+ 44, 44, 44, 319, 319, 46, 44, 44, 44, 319,
+ 319, 46, 44, 44, 44, 319, 319, 46, 319, 319,
+ 50, 44, 44, 44, 319, 319, 46, 44, 44, 44,
+ 319, 319, 46, 319, 50, 319, 319, 44, 44, 44,
+ 50, 157, 46, 44, 44, 44, 50, 319, 46, 319,
+ 319, 158, 44, 44, 44, 50, 319, 46, 160, 159,
+ 319, 50, 319, 44, 44, 44, 319, 319, 46, 319,
+ 319, 50, 161, 44, 44, 44, 319, 50, 46, 162,
+ 163, 319, 44, 44, 44, 319, 50, 46, 319, 319,
+
+ 44, 44, 44, 166, 319, 46, 164, 50, 319, 165,
+ 44, 44, 44, 319, 319, 46, 319, 50, 319, 319,
+ 168, 319, 319, 319, 167, 319, 50, 44, 44, 44,
+ 319, 319, 46, 169, 50, 44, 44, 44, 319, 319,
+ 46, 319, 319, 319, 50, 319, 170, 44, 44, 44,
+ 319, 319, 46, 319, 44, 44, 44, 319, 319, 46,
+ 319, 50, 178, 179, 319, 319, 319, 171, 319, 50,
+ 319, 180, 319, 44, 44, 44, 319, 319, 46, 172,
+ 319, 50, 319, 319, 44, 44, 44, 177, 50, 46,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 181,
+
+ 182, 182, 182, 182, 319, 319, 319, 50, 182, 182,
+ 182, 182, 182, 182, 183, 44, 44, 44, 50, 319,
+ 46, 319, 319, 319, 182, 182, 182, 182, 182, 182,
+ 44, 44, 44, 319, 319, 46, 184, 44, 44, 44,
+ 319, 319, 46, 319, 319, 186, 187, 319, 319, 50,
+ 44, 44, 44, 319, 319, 46, 319, 319, 185, 319,
+ 44, 44, 44, 319, 50, 46, 319, 44, 44, 44,
+ 190, 50, 46, 44, 44, 44, 319, 319, 46, 319,
+ 319, 188, 319, 319, 50, 44, 44, 44, 319, 319,
+ 46, 44, 44, 44, 50, 319, 46, 44, 44, 44,
+
+ 319, 50, 195, 189, 191, 319, 319, 50, 44, 44,
+ 44, 319, 319, 46, 192, 319, 44, 44, 44, 50,
+ 319, 46, 44, 44, 44, 50, 319, 46, 319, 319,
+ 193, 50, 194, 319, 44, 44, 44, 319, 319, 46,
+ 319, 319, 50, 44, 44, 44, 319, 319, 200, 319,
+ 50, 319, 44, 44, 44, 319, 50, 46, 319, 319,
+ 319, 319, 201, 196, 197, 44, 44, 44, 50, 319,
+ 46, 44, 44, 44, 198, 199, 205, 50, 44, 44,
+ 44, 319, 319, 206, 319, 319, 50, 44, 44, 44,
+ 319, 319, 46, 319, 319, 44, 44, 44, 319, 50,
+
+ 46, 44, 44, 44, 319, 50, 46, 319, 319, 44,
+ 44, 44, 50, 319, 46, 204, 319, 44, 44, 44,
+ 319, 50, 46, 319, 319, 319, 319, 207, 319, 50,
+ 319, 44, 44, 44, 319, 50, 212, 319, 319, 319,
+ 319, 319, 319, 50, 208, 45, 45, 45, 45, 319,
+ 209, 50, 319, 45, 45, 45, 45, 45, 45, 210,
+ 319, 44, 44, 44, 211, 50, 213, 319, 319, 45,
+ 45, 45, 45, 45, 45, 44, 44, 44, 319, 319,
+ 214, 44, 44, 44, 319, 319, 46, 44, 44, 44,
+ 319, 215, 46, 319, 319, 50, 44, 44, 44, 319,
+
+ 319, 46, 44, 44, 44, 319, 319, 46, 319, 50,
+ 319, 44, 44, 44, 319, 50, 46, 44, 44, 44,
+ 319, 50, 46, 44, 44, 44, 319, 319, 46, 319,
+ 50, 216, 44, 44, 44, 319, 50, 46, 217, 319,
+ 319, 44, 44, 44, 319, 50, 46, 319, 218, 319,
+ 319, 50, 319, 319, 219, 319, 319, 50, 44, 44,
+ 44, 319, 319, 46, 319, 319, 50, 319, 319, 221,
+ 220, 319, 319, 223, 319, 50, 319, 222, 319, 44,
+ 44, 44, 319, 319, 46, 319, 224, 319, 44, 44,
+ 44, 319, 50, 46, 44, 44, 44, 319, 319, 46,
+
+ 319, 319, 44, 44, 44, 319, 319, 46, 319, 319,
+ 319, 319, 225, 50, 44, 44, 44, 319, 226, 46,
+ 319, 319, 50, 319, 44, 44, 44, 319, 50, 46,
+ 319, 319, 44, 44, 44, 228, 50, 46, 319, 319,
+ 319, 319, 319, 229, 319, 230, 319, 319, 50, 44,
+ 44, 44, 319, 319, 46, 44, 44, 44, 50, 319,
+ 46, 319, 319, 319, 319, 319, 50, 319, 231, 319,
+ 319, 232, 319, 233, 44, 44, 44, 319, 319, 46,
+ 44, 44, 44, 50, 319, 46, 44, 44, 44, 50,
+ 319, 46, 44, 44, 44, 319, 234, 46, 44, 44,
+
+ 44, 319, 319, 240, 319, 235, 319, 319, 50, 319,
+ 44, 44, 44, 319, 50, 241, 44, 44, 44, 319,
+ 50, 46, 319, 319, 236, 319, 50, 319, 319, 44,
+ 44, 44, 50, 239, 46, 44, 44, 44, 237, 238,
+ 46, 319, 319, 319, 50, 245, 242, 44, 44, 44,
+ 50, 319, 46, 319, 44, 44, 44, 319, 319, 46,
+ 44, 44, 44, 50, 247, 46, 44, 44, 44, 50,
+ 243, 249, 44, 44, 44, 319, 319, 250, 319, 319,
+ 319, 50, 319, 244, 319, 44, 44, 44, 50, 319,
+ 46, 44, 44, 44, 50, 251, 46, 246, 319, 319,
+
+ 50, 319, 319, 44, 44, 44, 50, 319, 46, 44,
+ 44, 44, 319, 248, 46, 44, 44, 44, 319, 50,
+ 46, 44, 44, 44, 319, 50, 256, 44, 44, 44,
+ 319, 319, 257, 319, 44, 44, 44, 50, 319, 258,
+ 44, 44, 44, 50, 319, 46, 319, 252, 253, 50,
+ 319, 44, 44, 44, 319, 50, 46, 319, 319, 319,
+ 319, 50, 254, 319, 44, 44, 44, 255, 50, 46,
+ 44, 44, 44, 319, 50, 46, 44, 44, 44, 319,
+ 319, 46, 319, 319, 319, 50, 44, 44, 44, 319,
+ 259, 46, 260, 319, 44, 44, 44, 319, 50, 266,
+
+ 44, 44, 44, 319, 50, 46, 44, 44, 44, 319,
+ 50, 46, 44, 44, 44, 319, 319, 46, 319, 262,
+ 50, 319, 261, 265, 263, 264, 319, 319, 50, 319,
+ 44, 44, 44, 319, 50, 46, 44, 44, 44, 319,
+ 50, 46, 319, 44, 44, 44, 50, 268, 46, 319,
+ 269, 319, 319, 267, 44, 44, 44, 319, 319, 46,
+ 319, 44, 44, 44, 50, 319, 274, 44, 44, 44,
+ 50, 319, 46, 44, 44, 44, 319, 50, 46, 319,
+ 44, 44, 44, 319, 270, 46, 319, 319, 50, 319,
+ 271, 44, 44, 44, 272, 50, 46, 319, 44, 44,
+
+ 44, 50, 319, 46, 275, 319, 273, 50, 44, 44,
+ 44, 319, 319, 46, 50, 44, 44, 44, 319, 319,
+ 46, 44, 44, 44, 319, 50, 282, 319, 44, 44,
+ 44, 276, 50, 283, 277, 44, 44, 44, 280, 319,
+ 46, 278, 50, 44, 44, 44, 319, 319, 46, 50,
+ 319, 44, 44, 44, 319, 50, 46, 319, 279, 44,
+ 44, 44, 50, 319, 46, 319, 319, 281, 319, 50,
+ 44, 44, 44, 319, 319, 46, 319, 50, 44, 44,
+ 44, 319, 319, 46, 319, 50, 44, 44, 44, 284,
+ 319, 46, 319, 50, 319, 319, 285, 319, 319, 286,
+
+ 44, 44, 44, 319, 50, 291, 319, 319, 319, 319,
+ 287, 288, 50, 44, 44, 44, 319, 319, 46, 289,
+ 50, 44, 44, 44, 319, 290, 46, 44, 44, 44,
+ 319, 319, 294, 319, 50, 44, 44, 44, 319, 319,
+ 46, 44, 44, 44, 319, 319, 46, 50, 319, 319,
+ 292, 44, 44, 44, 319, 50, 46, 44, 44, 44,
+ 319, 50, 46, 44, 44, 44, 293, 319, 46, 50,
+ 319, 319, 319, 319, 319, 50, 295, 319, 44, 44,
+ 44, 319, 296, 46, 319, 50, 319, 44, 44, 44,
+ 319, 50, 46, 44, 44, 44, 319, 50, 302, 44,
+
+ 44, 44, 319, 319, 303, 319, 298, 319, 297, 299,
+ 319, 319, 50, 44, 44, 44, 319, 319, 46, 319,
+ 319, 50, 319, 44, 44, 44, 319, 50, 46, 319,
+ 300, 319, 319, 50, 44, 44, 44, 301, 319, 46,
+ 44, 44, 44, 319, 319, 46, 319, 50, 44, 44,
+ 44, 319, 319, 46, 44, 44, 44, 50, 319, 309,
+ 44, 44, 44, 319, 319, 310, 319, 304, 50, 319,
+ 319, 44, 44, 44, 50, 306, 46, 305, 44, 44,
+ 44, 319, 50, 46, 319, 307, 319, 319, 50, 319,
+ 44, 44, 44, 319, 50, 46, 319, 308, 44, 44,
+
+ 44, 319, 319, 46, 319, 50, 44, 44, 44, 319,
+ 319, 46, 50, 44, 44, 44, 319, 319, 316, 312,
+ 319, 44, 44, 44, 50, 311, 317, 319, 44, 44,
+ 44, 319, 50, 318, 319, 319, 319, 319, 319, 319,
+ 50, 319, 319, 313, 319, 319, 319, 50, 319, 319,
+ 319, 314, 319, 319, 319, 50, 319, 319, 319, 315,
+ 319, 319, 50, 36, 36, 36, 36, 36, 45, 45,
+ 45, 45, 45, 62, 319, 62, 62, 62, 81, 319,
+ 81, 319, 81, 83, 83, 83, 83, 83, 89, 89,
+ 89, 89, 89, 109, 319, 109, 109, 109, 122, 122,
+
+ 122, 11, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319
} ;
-static const flex_int16_t yy_chk[2018] =
+static const flex_int16_t yy_chk[2165] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
37, 21, 5, 5, 9, 5, 21, 26, 5, 25,
5, 25, 5, 27, 25, 25, 25, 25, 5, 5,
- 7, 10, 5, 26, 8, 313, 5, 31, 28, 44,
- 42, 5, 42, 32, 33, 312, 27, 5, 5, 15,
- 15, 15, 311, 31, 15, 17, 310, 17, 17, 17,
+ 7, 10, 5, 26, 8, 331, 5, 31, 28, 44,
+ 42, 5, 42, 32, 33, 330, 27, 5, 5, 15,
+ 15, 15, 329, 31, 15, 17, 328, 17, 17, 17,
17, 28, 20, 20, 20, 20, 32, 33, 44, 17,
- 195, 75, 15, 15, 20, 73, 15, 71, 71, 71,
- 71, 74, 170, 15, 146, 17, 83, 78, 15, 15,
- 20, 15, 121, 15, 75, 73, 15, 15, 15, 15,
+ 202, 75, 15, 15, 20, 73, 15, 71, 71, 71,
+ 71, 74, 175, 15, 149, 17, 83, 78, 15, 15,
+ 20, 15, 122, 15, 75, 73, 15, 15, 15, 15,
15, 74, 15, 19, 15, 19, 19, 19, 19, 22,
- 78, 22, 22, 22, 22, 83, 115, 19, 76, 45,
+ 78, 22, 22, 22, 22, 83, 116, 19, 76, 45,
- 45, 45, 109, 22, 45, 47, 47, 47, 89, 81,
+ 45, 45, 110, 22, 45, 47, 47, 47, 89, 81,
47, 80, 77, 19, 50, 48, 48, 48, 76, 22,
- 48, 50, 49, 49, 49, 109, 110, 49, 72, 72,
- 72, 72, 77, 45, 111, 51, 51, 51, 43, 47,
- 51, 41, 112, 50, 114, 39, 110, 50, 113, 48,
- 111, 50, 52, 52, 52, 47, 49, 52, 50, 48,
- 114, 50, 38, 50, 50, 112, 52, 140, 113, 51,
+ 48, 50, 49, 49, 49, 110, 111, 49, 72, 72,
+ 72, 72, 77, 45, 112, 51, 51, 51, 43, 47,
+ 51, 41, 113, 50, 115, 39, 111, 50, 114, 48,
+ 112, 50, 52, 52, 52, 47, 49, 52, 50, 48,
+ 115, 50, 38, 50, 50, 113, 52, 143, 114, 51,
24, 14, 49, 53, 53, 53, 11, 0, 53, 54,
- 54, 54, 0, 140, 54, 51, 52, 55, 55, 55,
+ 54, 54, 0, 143, 54, 51, 52, 55, 55, 55,
0, 0, 55, 52, 0, 0, 52, 56, 56, 56,
- 143, 0, 56, 0, 57, 57, 57, 53, 0, 57,
- 58, 58, 58, 54, 0, 58, 143, 59, 59, 59,
+ 146, 0, 56, 0, 57, 57, 57, 53, 0, 57,
+ 58, 58, 58, 54, 0, 58, 146, 59, 59, 59,
53, 55, 59, 60, 60, 60, 0, 0, 60, 54,
0, 56, 55, 54, 56, 0, 0, 55, 57, 0,
0, 57, 0, 0, 58, 61, 61, 61, 0, 0,
61, 59, 0, 0, 59, 0, 0, 60, 63, 63,
63, 63, 0, 0, 60, 58, 0, 0, 0, 65,
63, 65, 0, 60, 65, 65, 65, 65, 64, 61,
- 64, 64, 64, 64, 85, 66, 63, 66, 66, 66,
- 66, 85, 64, 0, 61, 67, 67, 67, 67, 66,
-
- 0, 86, 86, 86, 0, 0, 86, 67, 64, 87,
- 87, 87, 0, 85, 87, 66, 0, 85, 0, 0,
- 0, 85, 0, 67, 88, 88, 88, 0, 85, 88,
- 0, 85, 0, 85, 85, 86, 90, 90, 90, 0,
- 0, 90, 0, 87, 92, 92, 92, 0, 87, 92,
- 86, 93, 93, 93, 0, 0, 93, 0, 88, 0,
- 96, 96, 96, 0, 0, 96, 0, 88, 0, 0,
- 90, 91, 91, 91, 91, 0, 0, 0, 92, 91,
- 91, 91, 91, 91, 91, 93, 94, 94, 94, 0,
- 0, 94, 0, 92, 96, 91, 91, 91, 91, 91,
-
- 91, 95, 95, 95, 0, 0, 95, 97, 97, 97,
- 0, 0, 97, 0, 0, 96, 98, 98, 98, 0,
- 94, 98, 0, 0, 94, 99, 99, 99, 0, 0,
- 99, 100, 100, 100, 0, 95, 100, 101, 101, 101,
- 95, 97, 101, 102, 102, 102, 0, 0, 102, 0,
- 98, 103, 103, 103, 0, 0, 103, 97, 0, 99,
- 0, 0, 0, 99, 0, 100, 0, 104, 104, 104,
- 98, 101, 104, 0, 100, 0, 0, 102, 105, 105,
- 105, 0, 0, 105, 0, 103, 0, 106, 106, 106,
- 0, 102, 106, 0, 101, 107, 107, 107, 0, 0,
-
- 107, 104, 118, 118, 118, 103, 0, 118, 119, 119,
- 119, 0, 105, 119, 0, 120, 120, 120, 0, 104,
- 120, 106, 0, 124, 124, 124, 106, 0, 124, 107,
- 127, 127, 127, 0, 105, 127, 118, 0, 0, 0,
- 107, 0, 119, 0, 0, 126, 126, 126, 0, 120,
- 126, 0, 0, 0, 0, 0, 118, 124, 120, 119,
- 123, 123, 123, 123, 127, 0, 0, 0, 123, 123,
- 123, 123, 123, 123, 0, 0, 0, 124, 0, 126,
- 0, 127, 0, 0, 123, 123, 123, 123, 123, 123,
- 128, 128, 128, 0, 0, 128, 129, 129, 129, 0,
-
- 126, 129, 130, 130, 130, 0, 0, 130, 0, 0,
- 131, 131, 131, 0, 0, 131, 132, 132, 132, 0,
- 0, 132, 0, 0, 128, 0, 133, 133, 133, 0,
- 129, 133, 134, 134, 134, 0, 130, 134, 0, 0,
- 0, 0, 129, 128, 131, 0, 135, 135, 135, 0,
- 132, 135, 0, 130, 0, 0, 136, 136, 136, 132,
- 133, 136, 131, 0, 0, 0, 134, 137, 137, 137,
- 0, 0, 137, 134, 0, 0, 138, 138, 138, 133,
- 135, 138, 133, 139, 139, 139, 0, 0, 139, 0,
- 136, 0, 0, 136, 148, 148, 148, 135, 0, 148,
-
- 0, 137, 150, 150, 150, 0, 0, 150, 137, 0,
- 138, 149, 149, 149, 0, 0, 149, 139, 152, 152,
- 152, 0, 138, 152, 0, 0, 149, 149, 148, 0,
- 0, 0, 0, 0, 0, 149, 150, 153, 153, 153,
- 139, 0, 153, 0, 0, 149, 148, 150, 151, 151,
- 151, 151, 152, 0, 0, 0, 151, 151, 151, 151,
- 151, 151, 0, 154, 154, 154, 0, 0, 154, 0,
- 152, 153, 151, 151, 151, 151, 151, 151, 154, 154,
- 153, 155, 155, 155, 0, 0, 155, 156, 156, 156,
- 0, 0, 156, 157, 157, 157, 0, 154, 157, 158,
-
- 158, 158, 0, 157, 158, 159, 159, 159, 0, 0,
- 159, 160, 160, 160, 0, 155, 160, 161, 161, 161,
- 0, 156, 161, 0, 0, 155, 0, 157, 0, 162,
- 162, 162, 0, 158, 162, 0, 158, 0, 0, 159,
- 156, 0, 163, 163, 163, 160, 159, 163, 164, 164,
- 164, 161, 0, 164, 0, 0, 160, 0, 161, 165,
- 165, 165, 0, 162, 165, 166, 166, 166, 0, 0,
- 166, 0, 0, 167, 167, 167, 163, 0, 167, 172,
- 172, 172, 164, 0, 172, 173, 173, 173, 0, 0,
- 173, 0, 0, 165, 0, 0, 164, 163, 0, 166,
-
- 174, 174, 174, 0, 0, 174, 166, 167, 0, 0,
- 0, 165, 0, 172, 0, 175, 175, 175, 0, 173,
- 175, 0, 176, 176, 176, 0, 0, 176, 0, 172,
- 179, 179, 179, 0, 174, 179, 178, 178, 178, 0,
- 0, 178, 180, 180, 180, 0, 0, 180, 0, 175,
- 0, 0, 0, 0, 0, 175, 176, 181, 181, 181,
- 0, 0, 181, 0, 179, 0, 0, 0, 0, 0,
- 178, 176, 177, 177, 177, 177, 180, 179, 0, 0,
- 177, 177, 177, 177, 177, 177, 178, 182, 182, 182,
- 0, 181, 182, 0, 0, 0, 177, 177, 177, 177,
-
- 177, 177, 183, 183, 183, 0, 0, 183, 184, 184,
- 184, 0, 183, 184, 185, 185, 185, 0, 0, 185,
- 0, 182, 186, 186, 186, 0, 0, 186, 187, 187,
- 187, 0, 0, 187, 0, 0, 183, 0, 188, 188,
- 188, 0, 184, 188, 190, 190, 190, 0, 185, 190,
- 0, 0, 184, 0, 0, 0, 186, 0, 0, 184,
- 0, 0, 187, 191, 191, 191, 185, 0, 191, 0,
- 0, 0, 188, 0, 186, 192, 192, 192, 190, 0,
- 192, 193, 193, 193, 0, 0, 193, 187, 0, 0,
- 188, 197, 197, 197, 0, 0, 197, 191, 190, 0,
-
- 200, 200, 200, 0, 191, 200, 0, 0, 0, 192,
- 0, 201, 201, 201, 0, 193, 201, 202, 202, 202,
- 192, 0, 202, 0, 0, 197, 203, 203, 203, 0,
- 0, 203, 0, 0, 200, 193, 0, 0, 197, 207,
- 207, 207, 0, 0, 207, 201, 0, 0, 0, 200,
- 0, 202, 0, 0, 201, 0, 208, 208, 208, 0,
- 203, 208, 0, 0, 202, 0, 0, 203, 0, 209,
- 209, 209, 0, 207, 209, 210, 210, 210, 0, 0,
- 210, 0, 211, 211, 211, 0, 207, 211, 0, 0,
- 208, 212, 212, 212, 0, 0, 212, 213, 213, 213,
-
- 0, 0, 213, 209, 0, 0, 208, 0, 0, 210,
- 214, 214, 214, 0, 0, 214, 211, 0, 0, 209,
- 0, 215, 215, 215, 0, 212, 215, 0, 0, 0,
- 0, 213, 212, 210, 0, 211, 216, 216, 216, 0,
- 0, 216, 0, 0, 214, 0, 214, 217, 217, 217,
- 0, 0, 217, 0, 0, 215, 0, 217, 219, 219,
- 219, 0, 0, 219, 220, 220, 220, 0, 219, 220,
- 216, 221, 221, 221, 0, 215, 221, 222, 222, 222,
- 0, 217, 222, 0, 223, 223, 223, 222, 0, 223,
- 216, 0, 219, 0, 224, 224, 224, 0, 220, 224,
-
- 0, 225, 225, 225, 0, 221, 225, 226, 226, 226,
- 0, 222, 226, 0, 227, 227, 227, 220, 223, 227,
- 0, 228, 228, 228, 0, 0, 228, 0, 224, 229,
- 229, 229, 0, 0, 229, 225, 0, 0, 0, 224,
- 223, 226, 232, 232, 232, 0, 0, 232, 227, 0,
- 0, 0, 0, 0, 225, 228, 233, 233, 233, 226,
- 0, 233, 0, 229, 234, 234, 234, 0, 0, 234,
- 235, 235, 235, 0, 0, 235, 232, 236, 236, 236,
- 0, 0, 236, 237, 237, 237, 0, 0, 237, 0,
- 233, 0, 232, 0, 239, 239, 239, 233, 234, 239,
-
- 240, 240, 240, 0, 235, 240, 0, 0, 241, 241,
- 241, 236, 0, 241, 236, 0, 0, 237, 0, 235,
- 0, 0, 234, 0, 235, 242, 242, 242, 239, 0,
- 242, 243, 243, 243, 240, 0, 243, 0, 247, 247,
- 247, 240, 241, 247, 0, 0, 241, 239, 248, 248,
- 248, 0, 0, 248, 0, 0, 249, 249, 249, 242,
- 0, 249, 250, 250, 250, 243, 0, 250, 251, 251,
- 251, 0, 247, 251, 0, 252, 252, 252, 0, 242,
- 252, 0, 248, 0, 0, 243, 254, 254, 254, 247,
- 249, 254, 0, 255, 255, 255, 250, 0, 255, 250,
-
- 248, 0, 251, 256, 256, 256, 0, 0, 256, 252,
- 257, 257, 257, 0, 0, 257, 0, 0, 252, 0,
- 254, 0, 0, 258, 258, 258, 251, 255, 258, 259,
- 259, 259, 0, 0, 259, 0, 254, 256, 0, 0,
- 255, 260, 260, 260, 257, 0, 260, 262, 262, 262,
- 0, 0, 262, 0, 0, 256, 0, 258, 0, 263,
- 263, 263, 0, 259, 263, 264, 264, 264, 0, 0,
- 264, 266, 266, 266, 0, 260, 266, 265, 265, 265,
- 0, 262, 265, 259, 267, 267, 267, 0, 0, 267,
- 0, 0, 0, 263, 260, 262, 270, 270, 270, 264,
-
- 0, 270, 271, 271, 271, 266, 264, 271, 0, 0,
- 263, 265, 272, 272, 272, 0, 265, 272, 267, 0,
- 0, 267, 273, 273, 273, 0, 0, 273, 0, 0,
- 270, 0, 274, 274, 274, 0, 271, 274, 275, 275,
- 275, 270, 0, 275, 0, 0, 272, 0, 0, 277,
- 277, 277, 0, 272, 277, 0, 273, 278, 278, 278,
- 0, 0, 278, 273, 0, 0, 274, 0, 280, 280,
- 280, 0, 275, 280, 281, 281, 281, 0, 0, 281,
- 0, 274, 0, 277, 275, 282, 282, 282, 0, 0,
- 282, 278, 283, 283, 283, 0, 0, 283, 284, 284,
-
- 284, 277, 280, 284, 285, 285, 285, 278, 281, 285,
- 288, 288, 288, 0, 0, 288, 289, 289, 289, 282,
- 0, 289, 290, 290, 290, 0, 283, 290, 0, 0,
- 0, 0, 284, 283, 0, 291, 291, 291, 285, 282,
- 291, 0, 0, 284, 288, 0, 293, 293, 293, 0,
- 289, 293, 0, 285, 0, 0, 290, 294, 294, 294,
- 0, 0, 294, 290, 0, 0, 295, 295, 295, 291,
- 289, 295, 296, 296, 296, 0, 0, 296, 0, 0,
- 293, 297, 297, 297, 0, 0, 297, 0, 291, 0,
- 0, 294, 0, 0, 0, 0, 0, 0, 0, 293,
-
- 295, 0, 0, 0, 0, 0, 296, 0, 0, 0,
- 294, 0, 0, 0, 0, 297, 302, 302, 302, 302,
- 302, 303, 303, 303, 303, 303, 304, 0, 304, 304,
- 304, 305, 0, 305, 0, 305, 306, 306, 306, 306,
- 306, 307, 307, 307, 307, 307, 308, 0, 308, 308,
- 308, 309, 309, 309, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
-
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301
+ 64, 64, 64, 64, 0, 66, 63, 66, 66, 66,
+ 66, 0, 64, 0, 61, 0, 0, 85, 61, 66,
+
+ 67, 67, 67, 67, 85, 86, 86, 86, 64, 0,
+ 86, 0, 67, 0, 0, 66, 87, 87, 87, 0,
+ 0, 87, 88, 88, 88, 0, 85, 88, 67, 0,
+ 85, 0, 0, 0, 85, 90, 90, 90, 0, 86,
+ 90, 85, 0, 0, 85, 0, 85, 85, 0, 0,
+ 87, 0, 0, 0, 86, 87, 88, 92, 92, 92,
+ 0, 0, 92, 0, 0, 88, 0, 0, 0, 90,
+ 91, 91, 91, 91, 0, 0, 0, 0, 91, 91,
+ 91, 91, 91, 91, 93, 93, 93, 0, 0, 93,
+ 0, 92, 0, 0, 91, 91, 91, 91, 91, 91,
+
+ 0, 0, 94, 94, 94, 92, 92, 94, 95, 95,
+ 95, 0, 0, 95, 96, 96, 96, 0, 93, 96,
+ 97, 97, 97, 0, 0, 97, 98, 98, 98, 0,
+ 0, 98, 0, 99, 99, 99, 94, 0, 99, 0,
+ 94, 0, 95, 0, 100, 100, 100, 95, 96, 100,
+ 101, 101, 101, 0, 97, 101, 102, 102, 102, 0,
+ 98, 102, 0, 103, 103, 103, 0, 99, 103, 96,
+ 97, 99, 104, 104, 104, 0, 0, 104, 100, 0,
+ 98, 105, 105, 105, 101, 0, 105, 100, 0, 0,
+ 102, 106, 106, 106, 0, 0, 106, 103, 107, 107,
+
+ 107, 0, 0, 107, 102, 0, 104, 101, 108, 108,
+ 108, 0, 0, 108, 0, 105, 0, 103, 119, 119,
+ 119, 0, 0, 119, 104, 106, 120, 120, 120, 0,
+ 106, 120, 107, 121, 121, 121, 0, 105, 121, 126,
+ 126, 126, 108, 107, 126, 0, 0, 0, 0, 108,
+ 0, 0, 119, 0, 0, 0, 0, 0, 0, 0,
+ 120, 125, 125, 125, 0, 0, 125, 121, 0, 0,
+ 0, 0, 119, 126, 0, 0, 121, 120, 124, 124,
+ 124, 124, 0, 0, 0, 0, 124, 124, 124, 124,
+ 124, 124, 0, 126, 0, 125, 128, 128, 128, 0,
+
+ 0, 128, 124, 124, 124, 124, 124, 124, 0, 125,
+ 129, 129, 129, 0, 0, 129, 130, 130, 130, 0,
+ 0, 130, 131, 131, 131, 0, 0, 131, 0, 0,
+ 128, 132, 132, 132, 0, 0, 132, 133, 133, 133,
+ 0, 0, 133, 0, 129, 0, 0, 134, 134, 134,
+ 130, 128, 134, 135, 135, 135, 131, 0, 135, 0,
+ 0, 129, 136, 136, 136, 132, 0, 136, 131, 130,
+ 0, 133, 0, 137, 137, 137, 0, 0, 137, 0,
+ 0, 134, 132, 138, 138, 138, 0, 135, 138, 133,
+ 134, 0, 139, 139, 139, 0, 136, 139, 0, 0,
+
+ 140, 140, 140, 136, 0, 140, 135, 137, 0, 135,
+ 141, 141, 141, 0, 0, 141, 0, 138, 0, 0,
+ 138, 0, 0, 0, 137, 0, 139, 142, 142, 142,
+ 0, 0, 142, 139, 140, 151, 151, 151, 0, 0,
+ 151, 0, 0, 0, 141, 0, 140, 152, 152, 152,
+ 0, 0, 152, 0, 153, 153, 153, 0, 0, 153,
+ 0, 142, 152, 152, 0, 0, 0, 141, 0, 151,
+ 0, 152, 0, 155, 155, 155, 0, 0, 155, 142,
+ 0, 152, 0, 0, 156, 156, 156, 151, 153, 156,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 153,
+
+ 154, 154, 154, 154, 0, 0, 0, 155, 154, 154,
+ 154, 154, 154, 154, 155, 157, 157, 157, 156, 0,
+ 157, 0, 0, 0, 154, 154, 154, 154, 154, 154,
+ 158, 158, 158, 0, 0, 158, 156, 159, 159, 159,
+ 0, 0, 159, 0, 0, 158, 158, 0, 0, 157,
+ 160, 160, 160, 0, 0, 160, 0, 0, 157, 0,
+ 161, 161, 161, 0, 158, 161, 0, 162, 162, 162,
+ 161, 159, 162, 163, 163, 163, 0, 0, 163, 0,
+ 0, 159, 0, 0, 160, 164, 164, 164, 0, 0,
+ 164, 165, 165, 165, 161, 0, 165, 166, 166, 166,
+
+ 0, 162, 166, 160, 162, 0, 0, 163, 167, 167,
+ 167, 0, 0, 167, 163, 0, 168, 168, 168, 164,
+ 0, 168, 169, 169, 169, 165, 0, 169, 0, 0,
+ 164, 166, 165, 0, 170, 170, 170, 0, 0, 170,
+ 0, 0, 167, 171, 171, 171, 0, 0, 171, 0,
+ 168, 0, 172, 172, 172, 0, 169, 172, 0, 0,
+ 0, 0, 172, 167, 168, 177, 177, 177, 170, 0,
+ 177, 178, 178, 178, 169, 170, 178, 171, 179, 179,
+ 179, 0, 0, 179, 0, 0, 172, 180, 180, 180,
+ 0, 0, 180, 0, 0, 181, 181, 181, 0, 177,
+
+ 181, 183, 183, 183, 0, 178, 183, 0, 0, 184,
+ 184, 184, 179, 0, 184, 177, 0, 185, 185, 185,
+ 0, 180, 185, 0, 0, 0, 0, 180, 0, 181,
+ 0, 186, 186, 186, 0, 183, 186, 0, 0, 0,
+ 0, 0, 0, 184, 181, 182, 182, 182, 182, 0,
+ 183, 185, 0, 182, 182, 182, 182, 182, 182, 184,
+ 0, 187, 187, 187, 185, 186, 187, 0, 0, 182,
+ 182, 182, 182, 182, 182, 188, 188, 188, 0, 0,
+ 188, 189, 189, 189, 0, 0, 189, 190, 190, 190,
+ 0, 189, 190, 0, 0, 187, 191, 191, 191, 0,
+
+ 0, 191, 192, 192, 192, 0, 0, 192, 0, 188,
+ 0, 193, 193, 193, 0, 189, 193, 194, 194, 194,
+ 0, 190, 194, 196, 196, 196, 0, 0, 196, 0,
+ 191, 190, 197, 197, 197, 0, 192, 197, 190, 0,
+ 0, 198, 198, 198, 0, 193, 198, 0, 191, 0,
+ 0, 194, 0, 0, 192, 0, 0, 196, 199, 199,
+ 199, 0, 0, 199, 0, 0, 197, 0, 0, 194,
+ 193, 0, 0, 197, 0, 198, 0, 196, 0, 201,
+ 201, 201, 0, 0, 201, 0, 198, 0, 204, 204,
+ 204, 0, 199, 204, 207, 207, 207, 0, 0, 207,
+
+ 0, 0, 208, 208, 208, 0, 0, 208, 0, 0,
+ 0, 0, 199, 201, 209, 209, 209, 0, 201, 209,
+ 0, 0, 204, 0, 210, 210, 210, 0, 207, 210,
+ 0, 0, 211, 211, 211, 204, 208, 211, 0, 0,
+ 0, 0, 0, 207, 0, 208, 0, 0, 209, 215,
+ 215, 215, 0, 0, 215, 216, 216, 216, 210, 0,
+ 216, 0, 0, 0, 0, 0, 211, 0, 209, 0,
+ 0, 210, 0, 211, 217, 217, 217, 0, 0, 217,
+ 218, 218, 218, 215, 0, 218, 219, 219, 219, 216,
+ 0, 219, 220, 220, 220, 0, 215, 220, 221, 221,
+
+ 221, 0, 0, 221, 0, 216, 0, 0, 217, 0,
+ 222, 222, 222, 0, 218, 222, 223, 223, 223, 0,
+ 219, 223, 0, 0, 217, 0, 220, 0, 0, 224,
+ 224, 224, 221, 220, 224, 225, 225, 225, 218, 219,
+ 225, 0, 0, 0, 222, 225, 222, 226, 226, 226,
+ 223, 0, 226, 0, 228, 228, 228, 0, 0, 228,
+ 229, 229, 229, 224, 228, 229, 230, 230, 230, 225,
+ 223, 230, 231, 231, 231, 0, 0, 231, 0, 0,
+ 0, 226, 0, 224, 0, 232, 232, 232, 228, 0,
+ 232, 233, 233, 233, 229, 232, 233, 226, 0, 0,
+
+ 230, 0, 0, 234, 234, 234, 231, 0, 234, 235,
+ 235, 235, 0, 229, 235, 236, 236, 236, 0, 232,
+ 236, 237, 237, 237, 0, 233, 237, 238, 238, 238,
+ 0, 0, 238, 0, 239, 239, 239, 234, 0, 239,
+ 242, 242, 242, 235, 0, 242, 0, 233, 234, 236,
+ 0, 243, 243, 243, 0, 237, 243, 0, 0, 0,
+ 0, 238, 235, 0, 244, 244, 244, 236, 239, 244,
+ 245, 245, 245, 0, 242, 245, 246, 246, 246, 0,
+ 0, 246, 0, 0, 0, 243, 247, 247, 247, 0,
+ 242, 247, 243, 0, 248, 248, 248, 0, 244, 248,
+
+ 251, 251, 251, 0, 245, 251, 252, 252, 252, 0,
+ 246, 252, 253, 253, 253, 0, 0, 253, 0, 245,
+ 247, 0, 244, 247, 245, 246, 0, 0, 248, 0,
+ 254, 254, 254, 0, 251, 254, 255, 255, 255, 0,
+ 252, 255, 0, 259, 259, 259, 253, 252, 259, 0,
+ 253, 0, 0, 251, 260, 260, 260, 0, 0, 260,
+ 0, 261, 261, 261, 254, 0, 261, 262, 262, 262,
+ 255, 0, 262, 263, 263, 263, 0, 259, 263, 0,
+ 264, 264, 264, 0, 254, 264, 0, 0, 260, 0,
+ 255, 268, 268, 268, 259, 261, 268, 0, 265, 265,
+
+ 265, 262, 0, 265, 262, 0, 260, 263, 267, 267,
+ 267, 0, 0, 267, 264, 269, 269, 269, 0, 0,
+ 269, 270, 270, 270, 0, 268, 270, 0, 271, 271,
+ 271, 263, 265, 271, 264, 272, 272, 272, 268, 0,
+ 272, 265, 267, 273, 273, 273, 0, 0, 273, 269,
+ 0, 275, 275, 275, 0, 270, 275, 0, 267, 276,
+ 276, 276, 271, 0, 276, 0, 0, 269, 0, 272,
+ 277, 277, 277, 0, 0, 277, 0, 273, 278, 278,
+ 278, 0, 0, 278, 0, 275, 279, 279, 279, 272,
+ 0, 279, 0, 276, 0, 0, 273, 0, 0, 275,
+
+ 280, 280, 280, 0, 277, 280, 0, 0, 0, 0,
+ 276, 277, 278, 281, 281, 281, 0, 0, 281, 278,
+ 279, 284, 284, 284, 0, 279, 284, 285, 285, 285,
+ 0, 0, 285, 0, 280, 286, 286, 286, 0, 0,
+ 286, 287, 287, 287, 0, 0, 287, 281, 0, 0,
+ 281, 288, 288, 288, 0, 284, 288, 289, 289, 289,
+ 0, 285, 289, 290, 290, 290, 284, 0, 290, 286,
+ 0, 0, 0, 0, 0, 287, 286, 0, 292, 292,
+ 292, 0, 287, 292, 0, 288, 0, 293, 293, 293,
+ 0, 289, 293, 295, 295, 295, 0, 290, 295, 296,
+
+ 296, 296, 0, 0, 296, 0, 289, 0, 288, 290,
+ 0, 0, 292, 297, 297, 297, 0, 0, 297, 0,
+ 0, 293, 0, 298, 298, 298, 0, 295, 298, 0,
+ 292, 0, 0, 296, 299, 299, 299, 293, 0, 299,
+ 300, 300, 300, 0, 0, 300, 0, 297, 301, 301,
+ 301, 0, 0, 301, 304, 304, 304, 298, 0, 304,
+ 305, 305, 305, 0, 0, 305, 0, 297, 299, 0,
+ 0, 306, 306, 306, 300, 299, 306, 298, 307, 307,
+ 307, 0, 301, 307, 0, 300, 0, 0, 304, 0,
+ 308, 308, 308, 0, 305, 308, 0, 301, 311, 311,
+
+ 311, 0, 0, 311, 0, 306, 312, 312, 312, 0,
+ 0, 312, 307, 313, 313, 313, 0, 0, 313, 307,
+ 0, 314, 314, 314, 308, 306, 314, 0, 315, 315,
+ 315, 0, 311, 315, 0, 0, 0, 0, 0, 0,
+ 312, 0, 0, 308, 0, 0, 0, 313, 0, 0,
+ 0, 311, 0, 0, 0, 314, 0, 0, 0, 312,
+ 0, 0, 315, 320, 320, 320, 320, 320, 321, 321,
+ 321, 321, 321, 322, 0, 322, 322, 322, 323, 0,
+ 323, 0, 323, 324, 324, 324, 324, 324, 325, 325,
+ 325, 325, 325, 326, 0, 326, 326, 326, 327, 327,
+
+ 327, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
+ 319, 319, 319, 319
} ;
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[56] =
+static const flex_int16_t yy_rule_linenum[58] =
{ 0,
133, 135, 137, 142, 143, 148, 149, 150, 162, 165,
- 170, 177, 186, 195, 204, 213, 222, 231, 240, 249,
- 258, 267, 276, 285, 294, 303, 312, 321, 330, 339,
- 348, 357, 366, 375, 384, 393, 402, 411, 510, 515,
- 520, 525, 526, 527, 528, 529, 530, 532, 550, 563,
- 568, 572, 574, 576, 578
+ 170, 177, 186, 195, 204, 215, 226, 235, 244, 253,
+ 262, 271, 280, 289, 298, 307, 316, 325, 334, 343,
+ 352, 361, 370, 379, 388, 397, 406, 415, 424, 433,
+ 532, 537, 542, 547, 548, 549, 550, 551, 552, 554,
+ 572, 585, 590, 594, 596, 598, 600
} ;
/* The intent behind this definition is that it'll catch
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "agent_lexer.ll"
-/* Copyright (C) 2017 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2017-2018 Internet Systems Consortium, Inc. ("ISC")
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::agent::ParserContext::fatal(msg)
-#line 1382 "agent_lexer.cc"
+#line 1419 "agent_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 1408 "agent_lexer.cc"
-#line 1409 "agent_lexer.cc"
+#line 1445 "agent_lexer.cc"
+#line 1446 "agent_lexer.cc"
#define INITIAL 0
#define COMMENT 1
}
-#line 1723 "agent_lexer.cc"
+#line 1760 "agent_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 >= 302 )
+ if ( yy_current_state >= 320 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 301 );
+ while ( yy_current_state != 319 );
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 < 56 )
+ else if ( yy_act < 58 )
fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
(long)yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 56 )
+ else if ( yy_act == 58 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
- else if ( yy_act == 57 )
+ else if ( yy_act == 59 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
case 15:
YY_RULE_SETUP
#line 204 "agent_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case ParserContext::AGENT:
+ case ParserContext::SERVER:
+ case ParserContext::LOGGERS:
+ return AgentParser::make_USER_CONTEXT(driver.loc_);
+ default:
+ return AgentParser::make_STRING("user-context", driver.loc_);
+ }
+}
+ YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 215 "agent_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case ParserContext::AGENT:
+ case ParserContext::SERVER:
+ case ParserContext::LOGGERS:
+ return AgentParser::make_COMMENT(driver.loc_);
+ default:
+ return AgentParser::make_STRING("comment", driver.loc_);
+ }
+}
+ YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 226 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
}
}
YY_BREAK
-case 16:
+case 18:
YY_RULE_SETUP
-#line 213 "agent_lexer.ll"
+#line 235 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONTROL_SOCKETS:
}
}
YY_BREAK
-case 17:
+case 19:
YY_RULE_SETUP
-#line 222 "agent_lexer.ll"
+#line 244 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONTROL_SOCKETS:
}
}
YY_BREAK
-case 18:
+case 20:
YY_RULE_SETUP
-#line 231 "agent_lexer.ll"
+#line 253 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONTROL_SOCKETS:
}
}
YY_BREAK
-case 19:
+case 21:
YY_RULE_SETUP
-#line 240 "agent_lexer.ll"
+#line 262 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SERVER:
}
}
YY_BREAK
-case 20:
+case 22:
YY_RULE_SETUP
-#line 249 "agent_lexer.ll"
+#line 271 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SERVER:
}
}
YY_BREAK
-case 21:
+case 23:
YY_RULE_SETUP
-#line 258 "agent_lexer.ll"
+#line 280 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::SOCKET_TYPE:
}
}
YY_BREAK
-case 22:
+case 24:
YY_RULE_SETUP
-#line 267 "agent_lexer.ll"
+#line 289 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::AGENT:
}
}
YY_BREAK
-case 23:
+case 25:
YY_RULE_SETUP
-#line 276 "agent_lexer.ll"
+#line 298 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::HOOKS_LIBRARIES:
}
}
YY_BREAK
-case 24:
+case 26:
YY_RULE_SETUP
-#line 285 "agent_lexer.ll"
+#line 307 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::HOOKS_LIBRARIES:
}
}
YY_BREAK
-case 25:
+case 27:
YY_RULE_SETUP
-#line 294 "agent_lexer.ll"
+#line 316 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONFIG:
}
}
YY_BREAK
-case 26:
+case 28:
YY_RULE_SETUP
-#line 303 "agent_lexer.ll"
+#line 325 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGING:
}
}
YY_BREAK
-case 27:
+case 29:
YY_RULE_SETUP
-#line 312 "agent_lexer.ll"
+#line 334 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
}
}
YY_BREAK
-case 28:
+case 30:
YY_RULE_SETUP
-#line 321 "agent_lexer.ll"
+#line 343 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
}
}
YY_BREAK
-case 29:
+case 31:
YY_RULE_SETUP
-#line 330 "agent_lexer.ll"
+#line 352 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 30:
+case 32:
YY_RULE_SETUP
-#line 339 "agent_lexer.ll"
+#line 361 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 31:
+case 33:
YY_RULE_SETUP
-#line 348 "agent_lexer.ll"
+#line 370 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 32:
+case 34:
YY_RULE_SETUP
-#line 357 "agent_lexer.ll"
+#line 379 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 33:
+case 35:
YY_RULE_SETUP
-#line 366 "agent_lexer.ll"
+#line 388 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
}
}
YY_BREAK
-case 34:
+case 36:
YY_RULE_SETUP
-#line 375 "agent_lexer.ll"
+#line 397 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
}
}
YY_BREAK
-case 35:
+case 37:
YY_RULE_SETUP
-#line 384 "agent_lexer.ll"
+#line 406 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONFIG:
}
}
YY_BREAK
-case 36:
+case 38:
YY_RULE_SETUP
-#line 393 "agent_lexer.ll"
+#line 415 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONFIG:
}
}
YY_BREAK
-case 37:
+case 39:
YY_RULE_SETUP
-#line 402 "agent_lexer.ll"
+#line 424 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONFIG:
}
}
YY_BREAK
-case 38:
+case 40:
YY_RULE_SETUP
-#line 411 "agent_lexer.ll"
+#line 433 "agent_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 AgentParser::make_STRING(decoded, driver.loc_);
}
YY_BREAK
-case 39:
-/* rule 39 can match eol */
+case 41:
+/* rule 41 can match eol */
YY_RULE_SETUP
-#line 510 "agent_lexer.ll"
+#line 532 "agent_lexer.ll"
{
/* Bad string with a forbidden control character inside */
driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
}
YY_BREAK
-case 40:
-/* rule 40 can match eol */
+case 42:
+/* rule 42 can match eol */
YY_RULE_SETUP
-#line 515 "agent_lexer.ll"
+#line 537 "agent_lexer.ll"
{
/* Bad string with a bad escape inside */
driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
}
YY_BREAK
-case 41:
+case 43:
YY_RULE_SETUP
-#line 520 "agent_lexer.ll"
+#line 542 "agent_lexer.ll"
{
/* Bad string with an open escape at the end */
driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
}
YY_BREAK
-case 42:
+case 44:
YY_RULE_SETUP
-#line 525 "agent_lexer.ll"
+#line 547 "agent_lexer.ll"
{ return AgentParser::make_LSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 43:
+case 45:
YY_RULE_SETUP
-#line 526 "agent_lexer.ll"
+#line 548 "agent_lexer.ll"
{ return AgentParser::make_RSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 44:
+case 46:
YY_RULE_SETUP
-#line 527 "agent_lexer.ll"
+#line 549 "agent_lexer.ll"
{ return AgentParser::make_LCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 45:
+case 47:
YY_RULE_SETUP
-#line 528 "agent_lexer.ll"
+#line 550 "agent_lexer.ll"
{ return AgentParser::make_RCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 46:
+case 48:
YY_RULE_SETUP
-#line 529 "agent_lexer.ll"
+#line 551 "agent_lexer.ll"
{ return AgentParser::make_COMMA(driver.loc_); }
YY_BREAK
-case 47:
+case 49:
YY_RULE_SETUP
-#line 530 "agent_lexer.ll"
+#line 552 "agent_lexer.ll"
{ return AgentParser::make_COLON(driver.loc_); }
YY_BREAK
-case 48:
+case 50:
YY_RULE_SETUP
-#line 532 "agent_lexer.ll"
+#line 554 "agent_lexer.ll"
{
/* An integer was found. */
std::string tmp(yytext);
return AgentParser::make_INTEGER(integer, driver.loc_);
}
YY_BREAK
-case 49:
+case 51:
YY_RULE_SETUP
-#line 550 "agent_lexer.ll"
+#line 572 "agent_lexer.ll"
{
/* A floating point was found. */
std::string tmp(yytext);
return AgentParser::make_FLOAT(fp, driver.loc_);
}
YY_BREAK
-case 50:
+case 52:
YY_RULE_SETUP
-#line 563 "agent_lexer.ll"
+#line 585 "agent_lexer.ll"
{
string tmp(yytext);
return AgentParser::make_BOOLEAN(tmp == "true", driver.loc_);
}
YY_BREAK
-case 51:
+case 53:
YY_RULE_SETUP
-#line 568 "agent_lexer.ll"
+#line 590 "agent_lexer.ll"
{
return AgentParser::make_NULL_TYPE(driver.loc_);
}
YY_BREAK
-case 52:
+case 54:
YY_RULE_SETUP
-#line 572 "agent_lexer.ll"
+#line 594 "agent_lexer.ll"
driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
YY_BREAK
-case 53:
+case 55:
YY_RULE_SETUP
-#line 574 "agent_lexer.ll"
+#line 596 "agent_lexer.ll"
driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
YY_BREAK
-case 54:
+case 56:
YY_RULE_SETUP
-#line 576 "agent_lexer.ll"
+#line 598 "agent_lexer.ll"
driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
YY_BREAK
-case 55:
+case 57:
YY_RULE_SETUP
-#line 578 "agent_lexer.ll"
+#line 600 "agent_lexer.ll"
driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 580 "agent_lexer.ll"
+#line 602 "agent_lexer.ll"
{
if (driver.states_.empty()) {
return AgentParser::make_END(driver.loc_);
BEGIN(DIR_EXIT);
}
YY_BREAK
-case 56:
+case 58:
YY_RULE_SETUP
-#line 603 "agent_lexer.ll"
+#line 625 "agent_lexer.ll"
ECHO;
YY_BREAK
-#line 2459 "agent_lexer.cc"
+#line 2524 "agent_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 >= 302 )
+ if ( yy_current_state >= 320 )
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 >= 302 )
+ if ( yy_current_state >= 320 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 301);
+ yy_is_jam = (yy_current_state == 319);
return yy_is_jam ? 0 : yy_current_state;
}
/* %ok-for-header */
-#line 603 "agent_lexer.ll"
+#line 625 "agent_lexer.ll"
using namespace isc::dhcp;
{
switch (that.type_get ())
{
- case 51: // value
- case 100: // socket_type_value
+ case 53: // value
+ case 56: // map_value
+ case 107: // socket_type_value
value.move< ElementPtr > (that.value);
break;
- case 42: // "boolean"
+ case 44: // "boolean"
value.move< bool > (that.value);
break;
- case 41: // "floating point"
+ case 43: // "floating point"
value.move< double > (that.value);
break;
- case 40: // "integer"
+ case 42: // "integer"
value.move< int64_t > (that.value);
break;
- case 39: // "constant string"
+ case 41: // "constant string"
value.move< std::string > (that.value);
break;
state = that.state;
switch (that.type_get ())
{
- case 51: // value
- case 100: // socket_type_value
+ case 53: // value
+ case 56: // map_value
+ case 107: // socket_type_value
value.copy< ElementPtr > (that.value);
break;
- case 42: // "boolean"
+ case 44: // "boolean"
value.copy< bool > (that.value);
break;
- case 41: // "floating point"
+ case 43: // "floating point"
value.copy< double > (that.value);
break;
- case 40: // "integer"
+ case 42: // "integer"
value.copy< int64_t > (that.value);
break;
- case 39: // "constant string"
+ case 41: // "constant string"
value.copy< std::string > (that.value);
break;
<< yysym.location << ": ";
switch (yytype)
{
- case 39: // "constant string"
+ case 41: // "constant string"
-#line 99 "agent_parser.yy" // lalr1.cc:636
+#line 103 "agent_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< std::string > (); }
-#line 354 "agent_parser.cc" // lalr1.cc:636
+#line 356 "agent_parser.cc" // lalr1.cc:636
break;
- case 40: // "integer"
+ case 42: // "integer"
-#line 99 "agent_parser.yy" // lalr1.cc:636
+#line 103 "agent_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< int64_t > (); }
-#line 361 "agent_parser.cc" // lalr1.cc:636
+#line 363 "agent_parser.cc" // lalr1.cc:636
break;
- case 41: // "floating point"
+ case 43: // "floating point"
-#line 99 "agent_parser.yy" // lalr1.cc:636
+#line 103 "agent_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< double > (); }
-#line 368 "agent_parser.cc" // lalr1.cc:636
+#line 370 "agent_parser.cc" // lalr1.cc:636
break;
- case 42: // "boolean"
+ case 44: // "boolean"
-#line 99 "agent_parser.yy" // lalr1.cc:636
+#line 103 "agent_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< bool > (); }
-#line 375 "agent_parser.cc" // lalr1.cc:636
+#line 377 "agent_parser.cc" // lalr1.cc:636
break;
- case 51: // value
+ case 53: // value
-#line 99 "agent_parser.yy" // lalr1.cc:636
+#line 103 "agent_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< ElementPtr > (); }
-#line 382 "agent_parser.cc" // lalr1.cc:636
+#line 384 "agent_parser.cc" // lalr1.cc:636
break;
- case 100: // socket_type_value
+ case 56: // map_value
-#line 99 "agent_parser.yy" // lalr1.cc:636
+#line 103 "agent_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< ElementPtr > (); }
-#line 389 "agent_parser.cc" // lalr1.cc:636
+#line 391 "agent_parser.cc" // lalr1.cc:636
+ break;
+
+ case 107: // socket_type_value
+
+#line 103 "agent_parser.yy" // lalr1.cc:636
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 398 "agent_parser.cc" // lalr1.cc:636
break;
when using variants. */
switch (yyr1_[yyn])
{
- case 51: // value
- case 100: // socket_type_value
+ case 53: // value
+ case 56: // map_value
+ case 107: // socket_type_value
yylhs.value.build< ElementPtr > ();
break;
- case 42: // "boolean"
+ case 44: // "boolean"
yylhs.value.build< bool > ();
break;
- case 41: // "floating point"
+ case 43: // "floating point"
yylhs.value.build< double > ();
break;
- case 40: // "integer"
+ case 42: // "integer"
yylhs.value.build< int64_t > ();
break;
- case 39: // "constant string"
+ case 41: // "constant string"
yylhs.value.build< std::string > ();
break;
switch (yyn)
{
case 2:
-#line 110 "agent_parser.yy" // lalr1.cc:859
+#line 114 "agent_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.NO_KEYWORDS; }
-#line 630 "agent_parser.cc" // lalr1.cc:859
+#line 640 "agent_parser.cc" // lalr1.cc:859
break;
case 4:
-#line 111 "agent_parser.yy" // lalr1.cc:859
+#line 115 "agent_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.CONFIG; }
-#line 636 "agent_parser.cc" // lalr1.cc:859
+#line 646 "agent_parser.cc" // lalr1.cc:859
break;
case 6:
-#line 112 "agent_parser.yy" // lalr1.cc:859
+#line 116 "agent_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.AGENT; }
-#line 642 "agent_parser.cc" // lalr1.cc:859
+#line 652 "agent_parser.cc" // lalr1.cc:859
break;
case 8:
-#line 120 "agent_parser.yy" // lalr1.cc:859
+#line 124 "agent_parser.yy" // lalr1.cc:859
{
// Parse the Control-agent map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 652 "agent_parser.cc" // lalr1.cc:859
+#line 662 "agent_parser.cc" // lalr1.cc:859
break;
case 9:
-#line 124 "agent_parser.yy" // lalr1.cc:859
+#line 128 "agent_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 660 "agent_parser.cc" // lalr1.cc:859
+#line 670 "agent_parser.cc" // lalr1.cc:859
break;
case 10:
-#line 131 "agent_parser.yy" // lalr1.cc:859
+#line 135 "agent_parser.yy" // lalr1.cc:859
{
// Push back the JSON value on the stack
ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
}
-#line 669 "agent_parser.cc" // lalr1.cc:859
+#line 679 "agent_parser.cc" // lalr1.cc:859
break;
case 11:
-#line 137 "agent_parser.yy" // lalr1.cc:859
+#line 141 "agent_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
-#line 675 "agent_parser.cc" // lalr1.cc:859
+#line 685 "agent_parser.cc" // lalr1.cc:859
break;
case 12:
-#line 138 "agent_parser.yy" // lalr1.cc:859
+#line 142 "agent_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 681 "agent_parser.cc" // lalr1.cc:859
+#line 691 "agent_parser.cc" // lalr1.cc:859
break;
case 13:
-#line 139 "agent_parser.yy" // lalr1.cc:859
+#line 143 "agent_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 687 "agent_parser.cc" // lalr1.cc:859
+#line 697 "agent_parser.cc" // lalr1.cc:859
break;
case 14:
-#line 140 "agent_parser.yy" // lalr1.cc:859
+#line 144 "agent_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 693 "agent_parser.cc" // lalr1.cc:859
+#line 703 "agent_parser.cc" // lalr1.cc:859
break;
case 15:
-#line 141 "agent_parser.yy" // lalr1.cc:859
+#line 145 "agent_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 699 "agent_parser.cc" // lalr1.cc:859
+#line 709 "agent_parser.cc" // lalr1.cc:859
break;
case 16:
-#line 142 "agent_parser.yy" // lalr1.cc:859
+#line 146 "agent_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 705 "agent_parser.cc" // lalr1.cc:859
+#line 715 "agent_parser.cc" // lalr1.cc:859
break;
case 17:
-#line 143 "agent_parser.yy" // lalr1.cc:859
+#line 147 "agent_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 711 "agent_parser.cc" // lalr1.cc:859
+#line 721 "agent_parser.cc" // lalr1.cc:859
break;
case 18:
-#line 147 "agent_parser.yy" // lalr1.cc:859
+#line 151 "agent_parser.yy" // lalr1.cc:859
{
// This code is executed when we're about to start parsing
// the content of the map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 722 "agent_parser.cc" // lalr1.cc:859
+#line 732 "agent_parser.cc" // lalr1.cc:859
break;
case 19:
-#line 152 "agent_parser.yy" // lalr1.cc:859
+#line 156 "agent_parser.yy" // lalr1.cc:859
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// for it.
}
-#line 732 "agent_parser.cc" // lalr1.cc:859
+#line 742 "agent_parser.cc" // lalr1.cc:859
+ break;
+
+ case 20:
+#line 162 "agent_parser.yy" // lalr1.cc:859
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 748 "agent_parser.cc" // lalr1.cc:859
break;
- case 22:
-#line 170 "agent_parser.yy" // lalr1.cc:859
+ case 23:
+#line 176 "agent_parser.yy" // lalr1.cc:859
{
// map containing a single entry
ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
}
-#line 741 "agent_parser.cc" // lalr1.cc:859
+#line 757 "agent_parser.cc" // lalr1.cc:859
break;
- case 23:
-#line 174 "agent_parser.yy" // lalr1.cc:859
+ case 24:
+#line 180 "agent_parser.yy" // lalr1.cc:859
{
// map consisting of a shorter map followed by
// comma and string:value
ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
}
-#line 751 "agent_parser.cc" // lalr1.cc:859
+#line 767 "agent_parser.cc" // lalr1.cc:859
break;
- case 24:
-#line 181 "agent_parser.yy" // lalr1.cc:859
+ case 25:
+#line 187 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
}
-#line 760 "agent_parser.cc" // lalr1.cc:859
+#line 776 "agent_parser.cc" // lalr1.cc:859
break;
- case 25:
-#line 184 "agent_parser.yy" // lalr1.cc:859
+ case 26:
+#line 190 "agent_parser.yy" // lalr1.cc:859
{
}
-#line 767 "agent_parser.cc" // lalr1.cc:859
+#line 783 "agent_parser.cc" // lalr1.cc:859
break;
- case 28:
-#line 191 "agent_parser.yy" // lalr1.cc:859
+ case 29:
+#line 197 "agent_parser.yy" // lalr1.cc:859
{
// List consisting of a single element.
ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
}
-#line 776 "agent_parser.cc" // lalr1.cc:859
+#line 792 "agent_parser.cc" // lalr1.cc:859
break;
- case 29:
-#line 195 "agent_parser.yy" // lalr1.cc:859
+ case 30:
+#line 201 "agent_parser.yy" // lalr1.cc:859
{
// List ending with , and a value.
ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
}
-#line 785 "agent_parser.cc" // lalr1.cc:859
+#line 801 "agent_parser.cc" // lalr1.cc:859
break;
- case 30:
-#line 208 "agent_parser.yy" // lalr1.cc:859
+ case 31:
+#line 214 "agent_parser.yy" // lalr1.cc:859
{
const std::string& where = ctx.contextName();
const std::string& keyword = yystack_[1].value.as< std::string > ();
error(yystack_[1].location,
"got unexpected keyword \"" + keyword + "\" in " + where + " map.");
}
-#line 796 "agent_parser.cc" // lalr1.cc:859
+#line 812 "agent_parser.cc" // lalr1.cc:859
break;
- case 31:
-#line 217 "agent_parser.yy" // lalr1.cc:859
+ case 32:
+#line 223 "agent_parser.yy" // lalr1.cc:859
{
// This code is executed when we're about to start parsing
// the content of the map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 807 "agent_parser.cc" // lalr1.cc:859
+#line 823 "agent_parser.cc" // lalr1.cc:859
break;
- case 32:
-#line 222 "agent_parser.yy" // lalr1.cc:859
+ case 33:
+#line 228 "agent_parser.yy" // lalr1.cc:859
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// for it.
}
-#line 817 "agent_parser.cc" // lalr1.cc:859
+#line 833 "agent_parser.cc" // lalr1.cc:859
break;
- case 41:
-#line 243 "agent_parser.yy" // lalr1.cc:859
+ case 42:
+#line 249 "agent_parser.yy" // lalr1.cc:859
{
// Let's create a MapElement that will represent it, add it to the
ctx.stack_.push_back(m);
ctx.enter(ctx.AGENT);
}
-#line 833 "agent_parser.cc" // lalr1.cc:859
+#line 849 "agent_parser.cc" // lalr1.cc:859
break;
- case 42:
-#line 253 "agent_parser.yy" // lalr1.cc:859
+ case 43:
+#line 259 "agent_parser.yy" // lalr1.cc:859
{
// Ok, we're done with parsing control-agent. Let's take the map
// off the stack.
ctx.stack_.pop_back();
ctx.leave();
}
-#line 844 "agent_parser.cc" // lalr1.cc:859
+#line 860 "agent_parser.cc" // lalr1.cc:859
break;
- case 50:
-#line 273 "agent_parser.yy" // lalr1.cc:859
+ case 53:
+#line 281 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 852 "agent_parser.cc" // lalr1.cc:859
+#line 868 "agent_parser.cc" // lalr1.cc:859
break;
- case 51:
-#line 275 "agent_parser.yy" // lalr1.cc:859
+ case 54:
+#line 283 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("http-host", host);
ctx.leave();
}
-#line 862 "agent_parser.cc" // lalr1.cc:859
+#line 878 "agent_parser.cc" // lalr1.cc:859
break;
- case 52:
-#line 281 "agent_parser.yy" // lalr1.cc:859
+ case 55:
+#line 289 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("http-port", prf);
}
-#line 871 "agent_parser.cc" // lalr1.cc:859
+#line 887 "agent_parser.cc" // lalr1.cc:859
break;
- case 53:
-#line 287 "agent_parser.yy" // lalr1.cc:859
+ case 56:
+#line 294 "agent_parser.yy" // lalr1.cc:859
+ {
+ ctx.enter(ctx.NO_KEYWORD);
+}
+#line 895 "agent_parser.cc" // lalr1.cc:859
+ break;
+
+ case 57:
+#line 296 "agent_parser.yy" // lalr1.cc:859
+ {
+ ElementPtr parent = ctx.stack_.back();
+ ElementPtr user_context = yystack_[0].value.as< ElementPtr > ();
+ ConstElementPtr old = parent->get("user-context");
+
+ // Handle already existing user context
+ if (old) {
+ // Check if it was a comment or a duplicate
+ if ((old->size() != 1) || !old->contains("comment")) {
+ std::stringstream msg;
+ msg << "duplicate user-context entries (previous at "
+ << old->getPosition().str() << ")";
+ error(yystack_[3].location, msg.str());
+ }
+ // Merge the comment
+ user_context->set("comment", old->get("comment"));
+ }
+
+ // Set the user context
+ parent->set("user-context", user_context);
+ ctx.leave();
+}
+#line 922 "agent_parser.cc" // lalr1.cc:859
+ break;
+
+ case 58:
+#line 319 "agent_parser.yy" // lalr1.cc:859
+ {
+ ctx.enter(ctx.NO_KEYWORD);
+}
+#line 930 "agent_parser.cc" // lalr1.cc:859
+ break;
+
+ case 59:
+#line 321 "agent_parser.yy" // lalr1.cc:859
+ {
+ ElementPtr parent = ctx.stack_.back();
+ ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
+ ElementPtr comment(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+ user_context->set("comment", comment);
+
+ // Handle already existing user context
+ ConstElementPtr old = parent->get("user-context");
+ if (old) {
+ // Check for duplicate comment
+ if (old->contains("comment")) {
+ std::stringstream msg;
+ msg << "duplicate user-context/comment entries (previous at "
+ << old->getPosition().str() << ")";
+ error(yystack_[3].location, msg.str());
+ }
+ // Merge the user context in the comment
+ merge(user_context, old);
+ }
+
+ // Set the user context
+ parent->set("user-context", user_context);
+ ctx.leave();
+}
+#line 959 "agent_parser.cc" // lalr1.cc:859
+ break;
+
+ case 60:
+#line 347 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hooks-libraries", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.HOOKS_LIBRARIES);
}
-#line 882 "agent_parser.cc" // lalr1.cc:859
+#line 970 "agent_parser.cc" // lalr1.cc:859
break;
- case 54:
-#line 292 "agent_parser.yy" // lalr1.cc:859
+ case 61:
+#line 352 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 891 "agent_parser.cc" // lalr1.cc:859
+#line 979 "agent_parser.cc" // lalr1.cc:859
break;
- case 59:
-#line 305 "agent_parser.yy" // lalr1.cc:859
+ case 66:
+#line 365 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 901 "agent_parser.cc" // lalr1.cc:859
+#line 989 "agent_parser.cc" // lalr1.cc:859
break;
- case 60:
-#line 309 "agent_parser.yy" // lalr1.cc:859
+ case 67:
+#line 369 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 909 "agent_parser.cc" // lalr1.cc:859
+#line 997 "agent_parser.cc" // lalr1.cc:859
break;
- case 66:
-#line 322 "agent_parser.yy" // lalr1.cc:859
+ case 73:
+#line 382 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 917 "agent_parser.cc" // lalr1.cc:859
+#line 1005 "agent_parser.cc" // lalr1.cc:859
break;
- case 67:
-#line 324 "agent_parser.yy" // lalr1.cc:859
+ case 74:
+#line 384 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("library", lib);
ctx.leave();
}
-#line 927 "agent_parser.cc" // lalr1.cc:859
+#line 1015 "agent_parser.cc" // lalr1.cc:859
break;
- case 68:
-#line 330 "agent_parser.yy" // lalr1.cc:859
+ case 75:
+#line 390 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 935 "agent_parser.cc" // lalr1.cc:859
+#line 1023 "agent_parser.cc" // lalr1.cc:859
break;
- case 69:
-#line 332 "agent_parser.yy" // lalr1.cc:859
+ case 76:
+#line 392 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 944 "agent_parser.cc" // lalr1.cc:859
+#line 1032 "agent_parser.cc" // lalr1.cc:859
break;
- case 70:
-#line 340 "agent_parser.yy" // lalr1.cc:859
+ case 77:
+#line 400 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[2].location)));
ctx.stack_.back()->set("control-sockets", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.CONTROL_SOCKETS);
}
-#line 955 "agent_parser.cc" // lalr1.cc:859
+#line 1043 "agent_parser.cc" // lalr1.cc:859
break;
- case 71:
-#line 345 "agent_parser.yy" // lalr1.cc:859
+ case 78:
+#line 405 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 964 "agent_parser.cc" // lalr1.cc:859
+#line 1052 "agent_parser.cc" // lalr1.cc:859
break;
- case 78:
-#line 366 "agent_parser.yy" // lalr1.cc:859
+ case 85:
+#line 426 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp4", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.SERVER);
}
-#line 975 "agent_parser.cc" // lalr1.cc:859
+#line 1063 "agent_parser.cc" // lalr1.cc:859
break;
- case 79:
-#line 371 "agent_parser.yy" // lalr1.cc:859
+ case 86:
+#line 431 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 984 "agent_parser.cc" // lalr1.cc:859
+#line 1072 "agent_parser.cc" // lalr1.cc:859
break;
- case 80:
-#line 377 "agent_parser.yy" // lalr1.cc:859
+ case 87:
+#line 437 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp6", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.SERVER);
}
-#line 995 "agent_parser.cc" // lalr1.cc:859
+#line 1083 "agent_parser.cc" // lalr1.cc:859
break;
- case 81:
-#line 382 "agent_parser.yy" // lalr1.cc:859
+ case 88:
+#line 442 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1004 "agent_parser.cc" // lalr1.cc:859
+#line 1092 "agent_parser.cc" // lalr1.cc:859
break;
- case 82:
-#line 388 "agent_parser.yy" // lalr1.cc:859
+ case 89:
+#line 448 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("d2", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.SERVER);
}
-#line 1015 "agent_parser.cc" // lalr1.cc:859
+#line 1103 "agent_parser.cc" // lalr1.cc:859
break;
- case 83:
-#line 393 "agent_parser.yy" // lalr1.cc:859
+ case 90:
+#line 453 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1024 "agent_parser.cc" // lalr1.cc:859
+#line 1112 "agent_parser.cc" // lalr1.cc:859
break;
- case 88:
-#line 409 "agent_parser.yy" // lalr1.cc:859
+ case 98:
+#line 472 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1032 "agent_parser.cc" // lalr1.cc:859
+#line 1120 "agent_parser.cc" // lalr1.cc:859
break;
- case 89:
-#line 411 "agent_parser.yy" // lalr1.cc:859
+ case 99:
+#line 474 "agent_parser.yy" // lalr1.cc:859
{
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 1042 "agent_parser.cc" // lalr1.cc:859
+#line 1130 "agent_parser.cc" // lalr1.cc:859
break;
- case 90:
-#line 418 "agent_parser.yy" // lalr1.cc:859
+ case 100:
+#line 481 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.SOCKET_TYPE);
}
-#line 1050 "agent_parser.cc" // lalr1.cc:859
+#line 1138 "agent_parser.cc" // lalr1.cc:859
break;
- case 91:
-#line 420 "agent_parser.yy" // lalr1.cc:859
+ case 101:
+#line 483 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("socket-type", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1059 "agent_parser.cc" // lalr1.cc:859
+#line 1147 "agent_parser.cc" // lalr1.cc:859
break;
- case 92:
-#line 426 "agent_parser.yy" // lalr1.cc:859
+ case 102:
+#line 489 "agent_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); }
-#line 1065 "agent_parser.cc" // lalr1.cc:859
+#line 1153 "agent_parser.cc" // lalr1.cc:859
break;
- case 93:
-#line 432 "agent_parser.yy" // lalr1.cc:859
+ case 103:
+#line 495 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1073 "agent_parser.cc" // lalr1.cc:859
+#line 1161 "agent_parser.cc" // lalr1.cc:859
break;
- case 94:
-#line 434 "agent_parser.yy" // lalr1.cc:859
+ case 104:
+#line 497 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1082 "agent_parser.cc" // lalr1.cc:859
+#line 1170 "agent_parser.cc" // lalr1.cc:859
break;
- case 95:
-#line 439 "agent_parser.yy" // lalr1.cc:859
+ case 105:
+#line 502 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1090 "agent_parser.cc" // lalr1.cc:859
+#line 1178 "agent_parser.cc" // lalr1.cc:859
break;
- case 96:
-#line 441 "agent_parser.yy" // lalr1.cc:859
+ case 106:
+#line 504 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1099 "agent_parser.cc" // lalr1.cc:859
+#line 1187 "agent_parser.cc" // lalr1.cc:859
break;
- case 97:
-#line 446 "agent_parser.yy" // lalr1.cc:859
+ case 107:
+#line 509 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1107 "agent_parser.cc" // lalr1.cc:859
+#line 1195 "agent_parser.cc" // lalr1.cc:859
break;
- case 98:
-#line 448 "agent_parser.yy" // lalr1.cc:859
+ case 108:
+#line 511 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1116 "agent_parser.cc" // lalr1.cc:859
+#line 1204 "agent_parser.cc" // lalr1.cc:859
break;
- case 99:
-#line 458 "agent_parser.yy" // lalr1.cc:859
+ case 109:
+#line 521 "agent_parser.yy" // lalr1.cc:859
{
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 1127 "agent_parser.cc" // lalr1.cc:859
+#line 1215 "agent_parser.cc" // lalr1.cc:859
break;
- case 100:
-#line 463 "agent_parser.yy" // lalr1.cc:859
+ case 110:
+#line 526 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1136 "agent_parser.cc" // lalr1.cc:859
+#line 1224 "agent_parser.cc" // lalr1.cc:859
break;
- case 104:
-#line 480 "agent_parser.yy" // lalr1.cc:859
+ case 114:
+#line 543 "agent_parser.yy" // lalr1.cc:859
{
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 1147 "agent_parser.cc" // lalr1.cc:859
+#line 1235 "agent_parser.cc" // lalr1.cc:859
break;
- case 105:
-#line 485 "agent_parser.yy" // lalr1.cc:859
+ case 115:
+#line 548 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1156 "agent_parser.cc" // lalr1.cc:859
+#line 1244 "agent_parser.cc" // lalr1.cc:859
break;
- case 108:
-#line 497 "agent_parser.yy" // lalr1.cc:859
+ case 118:
+#line 560 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 1166 "agent_parser.cc" // lalr1.cc:859
+#line 1254 "agent_parser.cc" // lalr1.cc:859
break;
- case 109:
-#line 501 "agent_parser.yy" // lalr1.cc:859
+ case 119:
+#line 564 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1174 "agent_parser.cc" // lalr1.cc:859
+#line 1262 "agent_parser.cc" // lalr1.cc:859
break;
- case 117:
-#line 516 "agent_parser.yy" // lalr1.cc:859
+ case 129:
+#line 581 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1182 "agent_parser.cc" // lalr1.cc:859
+#line 1270 "agent_parser.cc" // lalr1.cc:859
break;
- case 118:
-#line 518 "agent_parser.yy" // lalr1.cc:859
+ case 130:
+#line 583 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("name", name);
ctx.leave();
}
-#line 1192 "agent_parser.cc" // lalr1.cc:859
+#line 1280 "agent_parser.cc" // lalr1.cc:859
break;
- case 119:
-#line 524 "agent_parser.yy" // lalr1.cc:859
+ case 131:
+#line 589 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 1201 "agent_parser.cc" // lalr1.cc:859
+#line 1289 "agent_parser.cc" // lalr1.cc:859
break;
- case 120:
-#line 529 "agent_parser.yy" // lalr1.cc:859
+ case 132:
+#line 594 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1209 "agent_parser.cc" // lalr1.cc:859
+#line 1297 "agent_parser.cc" // lalr1.cc:859
break;
- case 121:
-#line 531 "agent_parser.yy" // lalr1.cc:859
+ case 133:
+#line 596 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 1219 "agent_parser.cc" // lalr1.cc:859
+#line 1307 "agent_parser.cc" // lalr1.cc:859
break;
- case 122:
-#line 537 "agent_parser.yy" // lalr1.cc:859
+ case 134:
+#line 602 "agent_parser.yy" // lalr1.cc:859
{
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 1230 "agent_parser.cc" // lalr1.cc:859
+#line 1318 "agent_parser.cc" // lalr1.cc:859
break;
- case 123:
-#line 542 "agent_parser.yy" // lalr1.cc:859
+ case 135:
+#line 607 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1239 "agent_parser.cc" // lalr1.cc:859
+#line 1327 "agent_parser.cc" // lalr1.cc:859
break;
- case 126:
-#line 551 "agent_parser.yy" // lalr1.cc:859
+ case 138:
+#line 616 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1249 "agent_parser.cc" // lalr1.cc:859
+#line 1337 "agent_parser.cc" // lalr1.cc:859
break;
- case 127:
-#line 555 "agent_parser.yy" // lalr1.cc:859
+ case 139:
+#line 620 "agent_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1257 "agent_parser.cc" // lalr1.cc:859
+#line 1345 "agent_parser.cc" // lalr1.cc:859
break;
- case 134:
-#line 569 "agent_parser.yy" // lalr1.cc:859
+ case 146:
+#line 634 "agent_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1265 "agent_parser.cc" // lalr1.cc:859
+#line 1353 "agent_parser.cc" // lalr1.cc:859
break;
- case 135:
-#line 571 "agent_parser.yy" // lalr1.cc:859
+ case 147:
+#line 636 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 1275 "agent_parser.cc" // lalr1.cc:859
+#line 1363 "agent_parser.cc" // lalr1.cc:859
break;
- case 136:
-#line 577 "agent_parser.yy" // lalr1.cc:859
+ case 148:
+#line 642 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush", flush);
}
-#line 1284 "agent_parser.cc" // lalr1.cc:859
+#line 1372 "agent_parser.cc" // lalr1.cc:859
break;
- case 137:
-#line 582 "agent_parser.yy" // lalr1.cc:859
+ case 149:
+#line 647 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxsize", maxsize);
}
-#line 1293 "agent_parser.cc" // lalr1.cc:859
+#line 1381 "agent_parser.cc" // lalr1.cc:859
break;
- case 138:
-#line 587 "agent_parser.yy" // lalr1.cc:859
+ case 150:
+#line 652 "agent_parser.yy" // lalr1.cc:859
{
ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxver", maxver);
}
-#line 1302 "agent_parser.cc" // lalr1.cc:859
+#line 1390 "agent_parser.cc" // lalr1.cc:859
break;
-#line 1306 "agent_parser.cc" // lalr1.cc:859
+#line 1394 "agent_parser.cc" // lalr1.cc:859
default:
break;
}
}
- const signed char AgentParser::yypact_ninf_ = -77;
+ const signed char AgentParser::yypact_ninf_ = -68;
const signed char AgentParser::yytable_ninf_ = -1;
const short int
AgentParser::yypact_[] =
{
- 45, -77, -77, -77, 6, 0, 7, 17, -77, -77,
- -77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
- -77, -77, -77, -77, 0, -17, -8, 8, -77, 30,
- 61, 82, 68, 84, -77, -77, -77, -77, -77, 85,
- -77, 5, -77, -77, -77, -77, -77, -77, -77, 86,
- 87, -77, -77, 15, -77, -77, -77, -77, -77, -77,
- 0, 0, -77, 53, 89, 90, 91, 92, 93, -77,
- -8, -77, 94, 48, 95, 96, 8, -77, -77, -77,
- 100, 98, 99, 0, 0, 0, -77, 69, -77, -77,
- 102, -77, 0, 8, 75, -77, -77, -77, -77, -4,
- 103, -77, 43, -77, 49, -77, -77, -77, -77, -77,
- -77, 50, -77, -77, -77, -77, -77, 105, 106, -77,
- -77, 108, 75, -77, 109, 110, 111, -4, -77, -5,
- -77, 103, 112, -77, 113, 114, 115, -77, -77, -77,
- -77, 51, -77, -77, -77, -77, 116, -14, -14, -14,
- 120, 121, 34, -77, -77, 72, -77, -77, -77, 60,
- -77, -77, -77, 62, 63, 77, 0, -77, 4, 116,
- -77, 122, 123, -14, -77, -77, -77, -77, -77, -77,
- -77, 124, -77, -77, 64, -77, -77, -77, -77, -77,
- -77, 79, 117, -77, 125, 126, 97, 127, 4, -77,
- -77, -77, -77, 80, 128, -77, 101, -77, -77, 131,
- -77, -77, 74, -77, 18, 131, -77, -77, 130, 135,
- 137, 71, -77, -77, -77, -77, -77, -77, 140, 104,
- 107, 118, 18, -77, 129, -77, -77, -77, -77, -77
+ 59, -68, -68, -68, 6, 8, 9, 34, -68, -68,
+ -68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
+ -68, -68, -68, -68, 8, -29, -5, -4, -68, 41,
+ 51, 98, 85, 100, -68, -68, -68, -68, -68, 101,
+ -68, 11, -68, -68, -68, -68, -68, -68, -68, 102,
+ -68, -68, 103, -68, -68, 21, -68, -68, -68, -68,
+ -68, -68, -68, -68, 8, 8, -68, 63, 104, 105,
+ 106, 107, 109, -68, -5, -68, 111, 74, 113, 114,
+ 112, 116, -4, -68, -68, -68, 117, 115, 118, 8,
+ 8, 8, -68, 83, -68, 119, 87, -68, 122, -68,
+ 8, -4, 97, -68, -68, -68, -68, -68, -68, -68,
+ 5, 123, -68, 64, -68, 65, -68, -68, -68, -68,
+ -68, -68, 71, -68, -68, -68, -68, -68, 125, 126,
+ -68, -68, 128, 97, -68, 129, 130, 131, 5, -68,
+ 37, -68, 123, 132, -68, 133, 134, 135, -68, -68,
+ -68, -68, 78, -68, -68, -68, -68, 136, 14, 14,
+ 14, 140, 141, 42, -68, -68, 32, -68, -68, -68,
+ -68, -68, -68, 79, -68, -68, -68, 80, 82, 95,
+ 8, -68, 12, 136, -68, 142, 143, 14, -68, -68,
+ -68, -68, -68, -68, -68, 144, -68, -68, -68, -68,
+ 86, -68, -68, -68, -68, -68, -68, 108, 138, -68,
+ 146, 147, 96, 148, 12, -68, -68, -68, -68, 120,
+ 149, -68, 121, -68, -68, 156, -68, -68, 89, -68,
+ 30, 156, -68, -68, 151, 160, 161, 88, -68, -68,
+ -68, -68, -68, -68, 162, 124, 127, 137, 30, -68,
+ 139, -68, -68, -68, -68, -68
};
const unsigned char
AgentParser::yydefact_[] =
{
- 0, 2, 4, 6, 0, 0, 0, 0, 1, 24,
+ 0, 2, 4, 6, 0, 0, 0, 0, 1, 25,
18, 15, 14, 11, 12, 13, 3, 10, 16, 17,
- 31, 5, 8, 7, 26, 20, 0, 0, 28, 0,
- 27, 0, 0, 21, 41, 99, 93, 95, 97, 0,
- 40, 0, 33, 35, 37, 38, 39, 36, 50, 0,
- 0, 53, 49, 0, 43, 45, 46, 48, 47, 25,
- 0, 0, 19, 0, 0, 0, 0, 0, 0, 30,
- 0, 32, 0, 0, 0, 0, 0, 9, 29, 22,
- 0, 0, 0, 0, 0, 0, 34, 0, 52, 70,
- 0, 44, 0, 0, 0, 94, 96, 98, 51, 0,
- 55, 23, 0, 104, 0, 101, 103, 78, 80, 82,
- 77, 0, 72, 74, 75, 76, 59, 0, 56, 57,
- 42, 0, 0, 100, 0, 0, 0, 0, 71, 0,
- 54, 0, 0, 102, 0, 0, 0, 73, 66, 68,
- 63, 0, 61, 64, 65, 58, 0, 0, 0, 0,
- 0, 0, 0, 60, 108, 0, 106, 88, 90, 0,
- 84, 86, 87, 0, 0, 0, 0, 62, 0, 0,
- 105, 0, 0, 0, 79, 81, 83, 67, 69, 117,
- 122, 0, 120, 116, 0, 110, 112, 114, 115, 113,
- 107, 0, 0, 85, 0, 0, 0, 0, 0, 109,
- 89, 92, 91, 0, 0, 119, 0, 111, 118, 0,
- 121, 126, 0, 124, 0, 0, 123, 134, 0, 0,
- 0, 0, 128, 130, 131, 132, 133, 125, 0, 0,
- 0, 0, 0, 127, 0, 136, 137, 138, 129, 135
+ 32, 5, 8, 7, 27, 21, 0, 0, 29, 0,
+ 28, 0, 0, 22, 42, 109, 103, 105, 107, 0,
+ 41, 0, 34, 36, 38, 39, 40, 37, 53, 0,
+ 56, 58, 0, 60, 52, 0, 44, 46, 47, 50,
+ 51, 49, 48, 26, 0, 0, 19, 0, 0, 0,
+ 0, 0, 0, 31, 0, 33, 0, 0, 0, 0,
+ 0, 0, 0, 9, 30, 23, 0, 0, 0, 0,
+ 0, 0, 35, 0, 55, 0, 0, 77, 0, 45,
+ 0, 0, 0, 104, 106, 108, 54, 20, 57, 59,
+ 0, 62, 24, 0, 114, 0, 111, 113, 85, 87,
+ 89, 84, 0, 79, 81, 82, 83, 66, 0, 63,
+ 64, 43, 0, 0, 110, 0, 0, 0, 0, 78,
+ 0, 61, 0, 0, 112, 0, 0, 0, 80, 73,
+ 75, 70, 0, 68, 71, 72, 65, 0, 0, 0,
+ 0, 0, 0, 0, 67, 118, 0, 116, 98, 100,
+ 97, 95, 96, 0, 91, 93, 94, 0, 0, 0,
+ 0, 69, 0, 0, 115, 0, 0, 0, 86, 88,
+ 90, 74, 76, 129, 134, 0, 132, 128, 126, 127,
+ 0, 120, 122, 124, 125, 123, 117, 0, 0, 92,
+ 0, 0, 0, 0, 0, 119, 99, 102, 101, 0,
+ 0, 131, 0, 121, 130, 0, 133, 138, 0, 136,
+ 0, 0, 135, 146, 0, 0, 0, 0, 140, 142,
+ 143, 144, 145, 137, 0, 0, 0, 0, 0, 139,
+ 0, 148, 149, 150, 141, 147
};
const signed char
AgentParser::yypgoto_[] =
{
- -77, -77, -77, -77, -77, -77, -77, -77, -23, -77,
- -77, -77, -77, -77, -77, -77, -77, -26, -77, -77,
- -77, 65, -77, -77, 39, 73, -77, -77, -77, -77,
- -77, -77, -77, 14, -77, -77, -2, -77, -77, -77,
- -77, -77, -77, -77, 21, -77, -77, -77, -77, -77,
- -77, -64, -22, -77, -77, -77, -77, -77, -77, -77,
- -77, -77, -77, -77, -77, -77, -77, 31, -77, -77,
- -77, -15, -77, -77, -46, -77, -77, -77, -77, -77,
- -77, -77, -77, -60, -77, -77, -76, -77, -77, -77,
- -77, -77
+ -68, -68, -68, -68, -68, -68, -68, -68, -20, 44,
+ -68, -68, -68, -68, -68, -68, -68, -68, -26, -68,
+ -68, -68, 93, -68, -68, 52, 90, -68, -68, -68,
+ -25, -68, -24, -68, -68, -68, -68, -68, 28, -68,
+ -68, 10, -68, -68, -68, -68, -68, -68, -68, 33,
+ -68, -68, -68, -68, -68, -68, -59, -13, -68, -68,
+ -68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
+ -68, -68, 43, -68, -68, -68, -8, -68, -68, -37,
+ -68, -68, -68, -68, -68, -68, -68, -68, -53, -68,
+ -68, -67, -68, -68, -68, -68, -68
};
const short int
AgentParser::yydefgoto_[] =
{
-1, 4, 5, 6, 7, 23, 27, 16, 17, 18,
- 25, 32, 33, 19, 24, 29, 30, 52, 21, 26,
- 41, 42, 43, 64, 53, 54, 55, 72, 56, 57,
- 75, 117, 118, 119, 129, 141, 142, 143, 150, 144,
- 151, 58, 99, 111, 112, 113, 124, 114, 125, 115,
- 126, 159, 160, 161, 171, 162, 172, 202, 44, 66,
- 45, 67, 46, 68, 47, 65, 104, 105, 106, 121,
- 155, 156, 168, 184, 185, 186, 194, 187, 188, 197,
- 189, 195, 212, 213, 214, 221, 222, 223, 228, 224,
- 225, 226
+ 25, 108, 32, 33, 19, 24, 29, 30, 170, 21,
+ 26, 41, 42, 43, 68, 55, 56, 57, 76, 58,
+ 171, 78, 172, 79, 61, 81, 128, 129, 130, 140,
+ 152, 153, 154, 161, 155, 162, 62, 110, 122, 123,
+ 124, 135, 125, 136, 126, 137, 173, 174, 175, 185,
+ 176, 186, 218, 44, 70, 45, 71, 46, 72, 47,
+ 69, 115, 116, 117, 132, 166, 167, 182, 200, 201,
+ 202, 210, 203, 204, 213, 205, 211, 228, 229, 230,
+ 237, 238, 239, 244, 240, 241, 242
};
const unsigned char
AgentParser::yytable_[] =
{
- 40, 28, 34, 157, 158, 9, 8, 10, 70, 11,
- 107, 108, 109, 71, 20, 35, 138, 139, 76, 48,
- 49, 50, 31, 77, 22, 36, 37, 38, 51, 179,
- 180, 39, 181, 182, 39, 39, 59, 78, 79, 12,
- 13, 14, 15, 39, 40, 217, 76, 39, 218, 219,
- 220, 120, 122, 127, 152, 138, 139, 123, 128, 153,
- 95, 96, 97, 173, 60, 173, 173, 198, 174, 101,
- 175, 176, 199, 110, 232, 169, 62, 215, 170, 233,
- 216, 1, 2, 3, 163, 164, 61, 63, 88, 69,
- 73, 74, 80, 81, 82, 83, 84, 85, 87, 103,
- 90, 110, 89, 140, 92, 93, 94, 100, 98, 131,
- 116, 130, 132, 134, 135, 136, 177, 146, 200, 208,
- 147, 148, 149, 154, 165, 166, 191, 192, 196, 203,
- 204, 206, 102, 209, 229, 86, 201, 205, 211, 230,
- 210, 231, 183, 178, 234, 145, 235, 236, 137, 91,
- 167, 193, 207, 133, 190, 227, 238, 0, 237, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 239, 0,
- 0, 0, 183
+ 40, 54, 59, 60, 28, 34, 8, 48, 49, 50,
+ 51, 52, 31, 9, 74, 10, 20, 11, 53, 75,
+ 35, 118, 119, 120, 82, 50, 51, 50, 51, 83,
+ 36, 37, 38, 168, 169, 183, 39, 39, 184, 193,
+ 194, 22, 195, 196, 84, 85, 39, 63, 40, 12,
+ 13, 14, 15, 39, 64, 39, 54, 59, 60, 233,
+ 149, 150, 234, 235, 236, 149, 150, 82, 133, 103,
+ 104, 105, 131, 134, 138, 54, 59, 60, 39, 139,
+ 112, 163, 187, 187, 121, 187, 164, 188, 189, 214,
+ 190, 248, 231, 66, 215, 232, 249, 1, 2, 3,
+ 177, 178, 65, 67, 86, 73, 77, 80, 87, 88,
+ 89, 90, 121, 91, 151, 93, 94, 95, 96, 97,
+ 98, 100, 101, 114, 106, 102, 10, 111, 109, 142,
+ 127, 141, 143, 145, 146, 147, 191, 157, 221, 107,
+ 158, 159, 160, 165, 179, 180, 207, 208, 212, 216,
+ 219, 220, 222, 113, 225, 245, 197, 198, 199, 217,
+ 192, 224, 226, 227, 246, 247, 250, 92, 251, 252,
+ 156, 148, 99, 181, 209, 206, 144, 223, 243, 253,
+ 255, 254, 0, 0, 0, 0, 0, 0, 197, 198,
+ 199
};
const short int
AgentParser::yycheck_[] =
{
- 26, 24, 10, 17, 18, 5, 0, 7, 3, 9,
- 14, 15, 16, 8, 7, 23, 21, 22, 3, 11,
- 12, 13, 39, 8, 7, 33, 34, 35, 20, 25,
- 26, 39, 28, 29, 39, 39, 6, 60, 61, 39,
- 40, 41, 42, 39, 70, 27, 3, 39, 30, 31,
- 32, 8, 3, 3, 3, 21, 22, 8, 8, 8,
- 83, 84, 85, 3, 3, 3, 3, 3, 8, 92,
- 8, 8, 8, 99, 3, 3, 8, 3, 6, 8,
- 6, 36, 37, 38, 148, 149, 4, 3, 40, 4,
- 4, 4, 39, 4, 4, 4, 4, 4, 4, 24,
- 4, 127, 7, 129, 4, 7, 7, 5, 39, 3,
- 7, 6, 4, 4, 4, 4, 39, 5, 39, 39,
- 7, 7, 7, 7, 4, 4, 4, 4, 4, 4,
- 4, 4, 93, 5, 4, 70, 19, 40, 7, 4,
- 39, 4, 168, 166, 4, 131, 42, 40, 127, 76,
- 152, 173, 198, 122, 169, 215, 232, -1, 40, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 39, -1,
- -1, -1, 198
+ 26, 27, 27, 27, 24, 10, 0, 11, 12, 13,
+ 14, 15, 41, 5, 3, 7, 7, 9, 22, 8,
+ 25, 16, 17, 18, 3, 13, 14, 13, 14, 8,
+ 35, 36, 37, 19, 20, 3, 41, 41, 6, 27,
+ 28, 7, 30, 31, 64, 65, 41, 6, 74, 41,
+ 42, 43, 44, 41, 3, 41, 82, 82, 82, 29,
+ 23, 24, 32, 33, 34, 23, 24, 3, 3, 89,
+ 90, 91, 8, 8, 3, 101, 101, 101, 41, 8,
+ 100, 3, 3, 3, 110, 3, 8, 8, 8, 3,
+ 8, 3, 3, 8, 8, 6, 8, 38, 39, 40,
+ 159, 160, 4, 3, 41, 4, 4, 4, 4, 4,
+ 4, 4, 138, 4, 140, 4, 42, 4, 4, 7,
+ 4, 4, 7, 26, 41, 7, 7, 5, 41, 3,
+ 7, 6, 4, 4, 4, 4, 41, 5, 42, 95,
+ 7, 7, 7, 7, 4, 4, 4, 4, 4, 41,
+ 4, 4, 4, 101, 5, 4, 182, 182, 182, 21,
+ 180, 41, 41, 7, 4, 4, 4, 74, 44, 42,
+ 142, 138, 82, 163, 187, 183, 133, 214, 231, 42,
+ 41, 248, -1, -1, -1, -1, -1, -1, 214, 214,
+ 214
};
const unsigned char
AgentParser::yystos_[] =
{
- 0, 36, 37, 38, 44, 45, 46, 47, 0, 5,
- 7, 9, 39, 40, 41, 42, 50, 51, 52, 56,
- 7, 61, 7, 48, 57, 53, 62, 49, 51, 58,
- 59, 39, 54, 55, 10, 23, 33, 34, 35, 39,
- 60, 63, 64, 65, 101, 103, 105, 107, 11, 12,
- 13, 20, 60, 67, 68, 69, 71, 72, 84, 6,
- 3, 4, 8, 3, 66, 108, 102, 104, 106, 4,
- 3, 8, 70, 4, 4, 73, 3, 8, 51, 51,
- 39, 4, 4, 4, 4, 4, 64, 4, 40, 7,
- 4, 68, 4, 7, 7, 51, 51, 51, 39, 85,
- 5, 51, 67, 24, 109, 110, 111, 14, 15, 16,
- 60, 86, 87, 88, 90, 92, 7, 74, 75, 76,
- 8, 112, 3, 8, 89, 91, 93, 3, 8, 77,
- 6, 3, 4, 110, 4, 4, 4, 87, 21, 22,
- 60, 78, 79, 80, 82, 76, 5, 7, 7, 7,
- 81, 83, 3, 8, 7, 113, 114, 17, 18, 94,
- 95, 96, 98, 94, 94, 4, 4, 79, 115, 3,
- 6, 97, 99, 3, 8, 8, 8, 39, 51, 25,
- 26, 28, 29, 60, 116, 117, 118, 120, 121, 123,
- 114, 4, 4, 95, 119, 124, 4, 122, 3, 8,
- 39, 19, 100, 4, 4, 40, 4, 117, 39, 5,
- 39, 7, 125, 126, 127, 3, 6, 27, 30, 31,
- 32, 128, 129, 130, 132, 133, 134, 126, 131, 4,
- 4, 4, 3, 8, 4, 42, 40, 40, 129, 39
+ 0, 38, 39, 40, 46, 47, 48, 49, 0, 5,
+ 7, 9, 41, 42, 43, 44, 52, 53, 54, 59,
+ 7, 64, 7, 50, 60, 55, 65, 51, 53, 61,
+ 62, 41, 57, 58, 10, 25, 35, 36, 37, 41,
+ 63, 66, 67, 68, 108, 110, 112, 114, 11, 12,
+ 13, 14, 15, 22, 63, 70, 71, 72, 74, 75,
+ 77, 79, 91, 6, 3, 4, 8, 3, 69, 115,
+ 109, 111, 113, 4, 3, 8, 73, 4, 76, 78,
+ 4, 80, 3, 8, 53, 53, 41, 4, 4, 4,
+ 4, 4, 67, 4, 42, 4, 4, 7, 4, 71,
+ 4, 7, 7, 53, 53, 53, 41, 54, 56, 41,
+ 92, 5, 53, 70, 26, 116, 117, 118, 16, 17,
+ 18, 63, 93, 94, 95, 97, 99, 7, 81, 82,
+ 83, 8, 119, 3, 8, 96, 98, 100, 3, 8,
+ 84, 6, 3, 4, 117, 4, 4, 4, 94, 23,
+ 24, 63, 85, 86, 87, 89, 83, 5, 7, 7,
+ 7, 88, 90, 3, 8, 7, 120, 121, 19, 20,
+ 63, 75, 77, 101, 102, 103, 105, 101, 101, 4,
+ 4, 86, 122, 3, 6, 104, 106, 3, 8, 8,
+ 8, 41, 53, 27, 28, 30, 31, 63, 75, 77,
+ 123, 124, 125, 127, 128, 130, 121, 4, 4, 102,
+ 126, 131, 4, 129, 3, 8, 41, 21, 107, 4,
+ 4, 42, 4, 124, 41, 5, 41, 7, 132, 133,
+ 134, 3, 6, 29, 32, 33, 34, 135, 136, 137,
+ 139, 140, 141, 133, 138, 4, 4, 4, 3, 8,
+ 4, 44, 42, 42, 136, 41
};
const unsigned char
AgentParser::yyr1_[] =
{
- 0, 43, 45, 44, 46, 44, 47, 44, 49, 48,
- 50, 51, 51, 51, 51, 51, 51, 51, 53, 52,
- 54, 54, 55, 55, 57, 56, 58, 58, 59, 59,
- 60, 62, 61, 63, 63, 64, 64, 64, 64, 64,
- 64, 66, 65, 67, 67, 68, 68, 68, 68, 68,
- 70, 69, 71, 73, 72, 74, 74, 75, 75, 77,
- 76, 78, 78, 78, 79, 79, 81, 80, 83, 82,
- 85, 84, 86, 86, 87, 87, 87, 87, 89, 88,
- 91, 90, 93, 92, 94, 94, 95, 95, 97, 96,
- 99, 98, 100, 102, 101, 104, 103, 106, 105, 108,
- 107, 109, 109, 110, 112, 111, 113, 113, 115, 114,
- 116, 116, 117, 117, 117, 117, 117, 119, 118, 120,
- 122, 121, 124, 123, 125, 125, 127, 126, 128, 128,
- 129, 129, 129, 129, 131, 130, 132, 133, 134
+ 0, 45, 47, 46, 48, 46, 49, 46, 51, 50,
+ 52, 53, 53, 53, 53, 53, 53, 53, 55, 54,
+ 56, 57, 57, 58, 58, 60, 59, 61, 61, 62,
+ 62, 63, 65, 64, 66, 66, 67, 67, 67, 67,
+ 67, 67, 69, 68, 70, 70, 71, 71, 71, 71,
+ 71, 71, 71, 73, 72, 74, 76, 75, 78, 77,
+ 80, 79, 81, 81, 82, 82, 84, 83, 85, 85,
+ 85, 86, 86, 88, 87, 90, 89, 92, 91, 93,
+ 93, 94, 94, 94, 94, 96, 95, 98, 97, 100,
+ 99, 101, 101, 102, 102, 102, 102, 102, 104, 103,
+ 106, 105, 107, 109, 108, 111, 110, 113, 112, 115,
+ 114, 116, 116, 117, 119, 118, 120, 120, 122, 121,
+ 123, 123, 124, 124, 124, 124, 124, 124, 124, 126,
+ 125, 127, 129, 128, 131, 130, 132, 132, 134, 133,
+ 135, 135, 136, 136, 136, 136, 138, 137, 139, 140,
+ 141
};
const unsigned char
{
0, 2, 0, 3, 0, 3, 0, 3, 0, 4,
1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
- 0, 1, 3, 5, 0, 4, 0, 1, 1, 3,
- 2, 0, 4, 1, 3, 1, 1, 1, 1, 1,
- 1, 0, 6, 1, 3, 1, 1, 1, 1, 1,
- 0, 4, 3, 0, 6, 0, 1, 1, 3, 0,
- 4, 1, 3, 1, 1, 1, 0, 4, 0, 4,
- 0, 6, 1, 3, 1, 1, 1, 1, 0, 6,
- 0, 6, 0, 6, 1, 3, 1, 1, 0, 4,
+ 1, 0, 1, 3, 5, 0, 4, 0, 1, 1,
+ 3, 2, 0, 4, 1, 3, 1, 1, 1, 1,
+ 1, 1, 0, 6, 1, 3, 1, 1, 1, 1,
+ 1, 1, 1, 0, 4, 3, 0, 4, 0, 4,
+ 0, 6, 0, 1, 1, 3, 0, 4, 1, 3,
+ 1, 1, 1, 0, 4, 0, 4, 0, 6, 1,
+ 3, 1, 1, 1, 1, 0, 6, 0, 6, 0,
+ 6, 1, 3, 1, 1, 1, 1, 1, 0, 4,
0, 4, 1, 0, 4, 0, 4, 0, 4, 0,
6, 1, 3, 1, 0, 6, 1, 3, 0, 4,
- 1, 3, 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, 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
};
{
"\"end of file\"", "error", "$undefined", "\",\"", "\":\"", "\"[\"",
"\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Control-agent\"",
- "\"http-host\"", "\"http-port\"", "\"control-sockets\"", "\"dhcp4\"",
- "\"dhcp6\"", "\"d2\"", "\"socket-name\"", "\"socket-type\"", "\"unix\"",
- "\"hooks-libraries\"", "\"library\"", "\"parameters\"", "\"Logging\"",
- "\"loggers\"", "\"name\"", "\"output_options\"", "\"output\"",
- "\"debuglevel\"", "\"severity\"", "\"flush\"", "\"maxsize\"",
- "\"maxver\"", "\"Dhcp4\"", "\"Dhcp6\"", "\"DhcpDdns\"", "START_JSON",
- "START_AGENT", "START_SUB_AGENT", "\"constant string\"", "\"integer\"",
+ "\"http-host\"", "\"http-port\"", "\"user-context\"", "\"comment\"",
+ "\"control-sockets\"", "\"dhcp4\"", "\"dhcp6\"", "\"d2\"",
+ "\"socket-name\"", "\"socket-type\"", "\"unix\"", "\"hooks-libraries\"",
+ "\"library\"", "\"parameters\"", "\"Logging\"", "\"loggers\"",
+ "\"name\"", "\"output_options\"", "\"output\"", "\"debuglevel\"",
+ "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"Dhcp4\"",
+ "\"Dhcp6\"", "\"DhcpDdns\"", "START_JSON", "START_AGENT",
+ "START_SUB_AGENT", "\"constant string\"", "\"integer\"",
"\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2",
- "$@3", "sub_agent", "$@4", "json", "value", "map", "$@5", "map_content",
- "not_empty_map", "list_generic", "$@6", "list_content", "not_empty_list",
- "unknown_map_entry", "agent_syntax_map", "$@7", "global_objects",
- "global_object", "agent_object", "$@8", "global_params", "global_param",
- "http_host", "$@9", "http_port", "hooks_libraries", "$@10",
+ "$@3", "sub_agent", "$@4", "json", "value", "map", "$@5", "map_value",
+ "map_content", "not_empty_map", "list_generic", "$@6", "list_content",
+ "not_empty_list", "unknown_map_entry", "agent_syntax_map", "$@7",
+ "global_objects", "global_object", "agent_object", "$@8",
+ "global_params", "global_param", "http_host", "$@9", "http_port",
+ "user_context", "$@10", "comment", "$@11", "hooks_libraries", "$@12",
"hooks_libraries_list", "not_empty_hooks_libraries_list",
- "hooks_library", "$@11", "hooks_params", "hooks_param", "library",
- "$@12", "parameters", "$@13", "control_sockets", "$@14",
+ "hooks_library", "$@13", "hooks_params", "hooks_param", "library",
+ "$@14", "parameters", "$@15", "control_sockets", "$@16",
"control_sockets_params", "control_socket", "dhcp4_server_socket",
- "$@15", "dhcp6_server_socket", "$@16", "d2_server_socket", "$@17",
- "control_socket_params", "control_socket_param", "socket_name", "$@18",
- "socket_type", "$@19", "socket_type_value", "dhcp4_json_object", "$@20",
- "dhcp6_json_object", "$@21", "dhcpddns_json_object", "$@22",
- "logging_object", "$@23", "logging_params", "logging_param", "loggers",
- "$@24", "loggers_entries", "logger_entry", "$@25", "logger_params",
- "logger_param", "name", "$@26", "debuglevel", "severity", "$@27",
- "output_options_list", "$@28", "output_options_list_content",
- "output_entry", "$@29", "output_params_list", "output_params", "output",
- "$@30", "flush", "maxsize", "maxver", YY_NULLPTR
+ "$@17", "dhcp6_server_socket", "$@18", "d2_server_socket", "$@19",
+ "control_socket_params", "control_socket_param", "socket_name", "$@20",
+ "socket_type", "$@21", "socket_type_value", "dhcp4_json_object", "$@22",
+ "dhcp6_json_object", "$@23", "dhcpddns_json_object", "$@24",
+ "logging_object", "$@25", "logging_params", "logging_param", "loggers",
+ "$@26", "loggers_entries", "logger_entry", "$@27", "logger_params",
+ "logger_param", "name", "$@28", "debuglevel", "severity", "$@29",
+ "output_options_list", "$@30", "output_options_list_content",
+ "output_entry", "$@31", "output_params_list", "output_params", "output",
+ "$@32", "flush", "maxsize", "maxver", YY_NULLPTR
};
#if AGENT_DEBUG
const unsigned short int
AgentParser::yyrline_[] =
{
- 0, 110, 110, 110, 111, 111, 112, 112, 120, 120,
- 131, 137, 138, 139, 140, 141, 142, 143, 147, 147,
- 161, 162, 170, 174, 181, 181, 187, 188, 191, 195,
- 208, 217, 217, 229, 230, 234, 235, 236, 237, 238,
- 239, 243, 243, 260, 261, 266, 267, 268, 269, 270,
- 273, 273, 281, 287, 287, 297, 298, 301, 302, 305,
- 305, 313, 314, 315, 318, 319, 322, 322, 330, 330,
- 340, 340, 353, 354, 359, 360, 361, 362, 366, 366,
- 377, 377, 388, 388, 399, 400, 404, 405, 409, 409,
- 418, 418, 426, 432, 432, 439, 439, 446, 446, 458,
- 458, 471, 472, 476, 480, 480, 492, 493, 497, 497,
- 505, 506, 509, 510, 511, 512, 513, 516, 516, 524,
- 529, 529, 537, 537, 547, 548, 551, 551, 559, 560,
- 563, 564, 565, 566, 569, 569, 577, 582, 587
+ 0, 114, 114, 114, 115, 115, 116, 116, 124, 124,
+ 135, 141, 142, 143, 144, 145, 146, 147, 151, 151,
+ 162, 167, 168, 176, 180, 187, 187, 193, 194, 197,
+ 201, 214, 223, 223, 235, 236, 240, 241, 242, 243,
+ 244, 245, 249, 249, 266, 267, 272, 273, 274, 275,
+ 276, 277, 278, 281, 281, 289, 294, 294, 319, 319,
+ 347, 347, 357, 358, 361, 362, 365, 365, 373, 374,
+ 375, 378, 379, 382, 382, 390, 390, 400, 400, 413,
+ 414, 419, 420, 421, 422, 426, 426, 437, 437, 448,
+ 448, 459, 460, 464, 465, 466, 467, 468, 472, 472,
+ 481, 481, 489, 495, 495, 502, 502, 509, 509, 521,
+ 521, 534, 535, 539, 543, 543, 555, 556, 560, 560,
+ 568, 569, 572, 573, 574, 575, 576, 577, 578, 581,
+ 581, 589, 594, 594, 602, 602, 612, 613, 616, 616,
+ 624, 625, 628, 629, 630, 631, 634, 634, 642, 647,
+ 652
};
// Print the state stack on the debug stream.
#line 14 "agent_parser.yy" // lalr1.cc:1167
} } // isc::agent
-#line 1856 "agent_parser.cc" // lalr1.cc:1167
-#line 592 "agent_parser.yy" // lalr1.cc:1168
+#line 1962 "agent_parser.cc" // lalr1.cc:1167
+#line 657 "agent_parser.yy" // lalr1.cc:1168
void
union union_type
{
// value
+ // map_value
// socket_type_value
char dummy1[sizeof(ElementPtr)];
TOKEN_CONTROL_AGENT = 265,
TOKEN_HTTP_HOST = 266,
TOKEN_HTTP_PORT = 267,
- TOKEN_CONTROL_SOCKETS = 268,
- TOKEN_DHCP4_SERVER = 269,
- TOKEN_DHCP6_SERVER = 270,
- TOKEN_D2_SERVER = 271,
- TOKEN_SOCKET_NAME = 272,
- TOKEN_SOCKET_TYPE = 273,
- TOKEN_UNIX = 274,
- TOKEN_HOOKS_LIBRARIES = 275,
- TOKEN_LIBRARY = 276,
- TOKEN_PARAMETERS = 277,
- TOKEN_LOGGING = 278,
- TOKEN_LOGGERS = 279,
- TOKEN_NAME = 280,
- TOKEN_OUTPUT_OPTIONS = 281,
- TOKEN_OUTPUT = 282,
- TOKEN_DEBUGLEVEL = 283,
- TOKEN_SEVERITY = 284,
- TOKEN_FLUSH = 285,
- TOKEN_MAXSIZE = 286,
- TOKEN_MAXVER = 287,
- TOKEN_DHCP4 = 288,
- TOKEN_DHCP6 = 289,
- TOKEN_DHCPDDNS = 290,
- TOKEN_START_JSON = 291,
- TOKEN_START_AGENT = 292,
- TOKEN_START_SUB_AGENT = 293,
- TOKEN_STRING = 294,
- TOKEN_INTEGER = 295,
- TOKEN_FLOAT = 296,
- TOKEN_BOOLEAN = 297
+ TOKEN_USER_CONTEXT = 268,
+ TOKEN_COMMENT = 269,
+ TOKEN_CONTROL_SOCKETS = 270,
+ TOKEN_DHCP4_SERVER = 271,
+ TOKEN_DHCP6_SERVER = 272,
+ TOKEN_D2_SERVER = 273,
+ TOKEN_SOCKET_NAME = 274,
+ TOKEN_SOCKET_TYPE = 275,
+ TOKEN_UNIX = 276,
+ TOKEN_HOOKS_LIBRARIES = 277,
+ TOKEN_LIBRARY = 278,
+ TOKEN_PARAMETERS = 279,
+ TOKEN_LOGGING = 280,
+ TOKEN_LOGGERS = 281,
+ TOKEN_NAME = 282,
+ TOKEN_OUTPUT_OPTIONS = 283,
+ TOKEN_OUTPUT = 284,
+ TOKEN_DEBUGLEVEL = 285,
+ TOKEN_SEVERITY = 286,
+ TOKEN_FLUSH = 287,
+ TOKEN_MAXSIZE = 288,
+ TOKEN_MAXVER = 289,
+ TOKEN_DHCP4 = 290,
+ TOKEN_DHCP6 = 291,
+ TOKEN_DHCPDDNS = 292,
+ TOKEN_START_JSON = 293,
+ TOKEN_START_AGENT = 294,
+ TOKEN_START_SUB_AGENT = 295,
+ TOKEN_STRING = 296,
+ TOKEN_INTEGER = 297,
+ TOKEN_FLOAT = 298,
+ TOKEN_BOOLEAN = 299
};
};
symbol_type
make_HTTP_PORT (const location_type& l);
+ static inline
+ symbol_type
+ make_USER_CONTEXT (const location_type& l);
+
+ static inline
+ symbol_type
+ make_COMMENT (const location_type& l);
+
static inline
symbol_type
make_CONTROL_SOCKETS (const location_type& l);
enum
{
yyeof_ = 0,
- yylast_ = 172, ///< Last index in yytable_.
- yynnts_ = 92, ///< Number of nonterminal symbols.
+ yylast_ = 190, ///< Last index in yytable_.
+ yynnts_ = 97, ///< Number of nonterminal symbols.
yyfinal_ = 8, ///< Termination state number.
yyterror_ = 1,
yyerrcode_ = 256,
- yyntokens_ = 43 ///< Number of tokens.
+ yyntokens_ = 45 ///< Number of tokens.
};
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
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
};
- const unsigned int user_token_number_max_ = 297;
+ const unsigned int user_token_number_max_ = 299;
const token_number_type undef_token_ = 2;
if (static_cast<int>(t) <= yyeof_)
{
switch (other.type_get ())
{
- case 51: // value
- case 100: // socket_type_value
+ case 53: // value
+ case 56: // map_value
+ case 107: // socket_type_value
value.copy< ElementPtr > (other.value);
break;
- case 42: // "boolean"
+ case 44: // "boolean"
value.copy< bool > (other.value);
break;
- case 41: // "floating point"
+ case 43: // "floating point"
value.copy< double > (other.value);
break;
- case 40: // "integer"
+ case 42: // "integer"
value.copy< int64_t > (other.value);
break;
- case 39: // "constant string"
+ case 41: // "constant string"
value.copy< std::string > (other.value);
break;
(void) v;
switch (this->type_get ())
{
- case 51: // value
- case 100: // socket_type_value
+ case 53: // value
+ case 56: // map_value
+ case 107: // socket_type_value
value.copy< ElementPtr > (v);
break;
- case 42: // "boolean"
+ case 44: // "boolean"
value.copy< bool > (v);
break;
- case 41: // "floating point"
+ case 43: // "floating point"
value.copy< double > (v);
break;
- case 40: // "integer"
+ case 42: // "integer"
value.copy< int64_t > (v);
break;
- case 39: // "constant string"
+ case 41: // "constant string"
value.copy< std::string > (v);
break;
// Type destructor.
switch (yytype)
{
- case 51: // value
- case 100: // socket_type_value
+ case 53: // value
+ case 56: // map_value
+ case 107: // socket_type_value
value.template destroy< ElementPtr > ();
break;
- case 42: // "boolean"
+ case 44: // "boolean"
value.template destroy< bool > ();
break;
- case 41: // "floating point"
+ case 43: // "floating point"
value.template destroy< double > ();
break;
- case 40: // "integer"
+ case 42: // "integer"
value.template destroy< int64_t > ();
break;
- case 39: // "constant string"
+ case 41: // "constant string"
value.template destroy< std::string > ();
break;
super_type::move(s);
switch (this->type_get ())
{
- case 51: // value
- case 100: // socket_type_value
+ case 53: // value
+ case 56: // map_value
+ case 107: // socket_type_value
value.move< ElementPtr > (s.value);
break;
- case 42: // "boolean"
+ case 44: // "boolean"
value.move< bool > (s.value);
break;
- case 41: // "floating point"
+ case 43: // "floating point"
value.move< double > (s.value);
break;
- case 40: // "integer"
+ case 42: // "integer"
value.move< int64_t > (s.value);
break;
- case 39: // "constant string"
+ case 41: // "constant string"
value.move< std::string > (s.value);
break;
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
+ 295, 296, 297, 298, 299
};
return static_cast<token_type> (yytoken_number_[type]);
}
return symbol_type (token::TOKEN_HTTP_PORT, l);
}
+ AgentParser::symbol_type
+ AgentParser::make_USER_CONTEXT (const location_type& l)
+ {
+ return symbol_type (token::TOKEN_USER_CONTEXT, l);
+ }
+
+ AgentParser::symbol_type
+ AgentParser::make_COMMENT (const location_type& l)
+ {
+ return symbol_type (token::TOKEN_COMMENT, l);
+ }
+
AgentParser::symbol_type
AgentParser::make_CONTROL_SOCKETS (const location_type& l)
{
#line 14 "agent_parser.yy" // lalr1.cc:377
} } // isc::agent
-#line 1467 "agent_parser.h" // lalr1.cc:377
+#line 1494 "agent_parser.h" // lalr1.cc:377
%token <bool> BOOLEAN "boolean"
%type <ElementPtr> value
+%type <ElementPtr> map_value
%type <ElementPtr> socket_type_value
%printer { yyoutput << $$; } <*>;
-// Generated 201710081556
+// Generated 201801020210
// A Bison parser, made by GNU Bison 3.0.4.
// Locations for Bison parsers in C++
-// Generated 201710081556
+// Generated 201801020210
// A Bison parser, made by GNU Bison 3.0.4.
// Positions for Bison parsers in C++
-// Generated 201710081556
+// Generated 201801020210
// A Bison parser, made by GNU Bison 3.0.4.
// Stack handling for Bison parsers in C++
/* %% [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 62
-#define YY_END_OF_BUFFER 63
+#define YY_NUM_RULES 64
+#define YY_END_OF_BUFFER 65
/* 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[367] =
+static const flex_int16_t yy_accept[388] =
{ 0,
- 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
- 63, 61, 10, 11, 61, 1, 55, 52, 55, 55,
- 61, 54, 53, 61, 61, 61, 61, 61, 48, 49,
- 61, 61, 61, 50, 51, 5, 5, 5, 61, 61,
- 61, 10, 11, 0, 0, 44, 0, 0, 0, 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,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 55, 55,
- 0, 54, 55, 3, 2, 6, 0, 55, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 9, 0, 45,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 57, 57, 0, 56, 57, 3, 2, 6, 0, 57,
+ 0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
+ 0, 47, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 2,
- 0, 0, 0, 0, 0, 0, 0, 8, 0, 0,
- 0, 0, 0, 0, 0, 0, 46, 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, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,
- 58, 0, 57, 56, 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, 0, 59, 56, 0, 0, 0, 0,
- 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 38, 0,
- 0, 0, 14, 0, 0, 0, 0, 0, 0, 0,
- 41, 42, 0, 0, 0, 0, 0, 0, 0, 35,
+ 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, 0, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
- 0, 0, 34, 0, 0, 30, 0, 0, 0, 0,
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 36, 0, 0, 0, 0, 0, 0, 0, 12,
-
- 0, 0, 0, 0, 0, 0, 26, 0, 24, 0,
- 0, 0, 0, 40, 0, 0, 28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 27, 0, 0,
- 39, 0, 0, 0, 0, 13, 17, 0, 0, 0,
- 0, 0, 29, 0, 25, 0, 0, 0, 0, 0,
- 23, 0, 21, 16, 0, 22, 43, 0, 0, 0,
- 33, 0, 0, 0, 15, 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
} ;
static const YY_CHAR yy_ec[256] =
3, 3, 3, 3, 3, 3
} ;
-static const flex_int16_t yy_base[378] =
+static const flex_int16_t yy_base[399] =
{ 0,
0, 0, 65, 68, 71, 0, 69, 73, 54, 70,
- 684, 685, 89, 680, 137, 0, 192, 685, 197, 200,
- 86, 212, 685, 662, 97, 74, 63, 69, 685, 685,
- 83, 68, 78, 685, 685, 685, 124, 668, 627, 0,
- 660, 128, 675, 212, 234, 685, 623, 629, 172, 621,
- 196, 196, 257, 623, 187, 191, 619, 617, 627, 616,
- 629, 91, 609, 613, 622, 621, 209, 0, 281, 289,
- 239, 305, 293, 685, 0, 685, 257, 308, 182, 195,
- 208, 224, 248, 276, 685, 622, 657, 685, 228, 685,
- 321, 609, 619, 282, 614, 295, 297, 653, 0, 367,
-
- 612, 604, 615, 609, 597, 594, 596, 594, 639, 586,
- 602, 585, 594, 589, 586, 587, 582, 218, 593, 0,
- 296, 303, 307, 306, 310, 315, 589, 685, 0, 581,
- 583, 312, 591, 630, 629, 628, 685, 399, 579, 575,
- 572, 586, 618, 571, 566, 568, 585, 613, 577, 285,
- 578, 610, 565, 561, 574, 561, 572, 569, 323, 685,
- 685, 331, 685, 685, 555, 0, 557, 331, 606, 563,
- 685, 685, 431, 554, 598, 562, 550, 549, 558, 564,
- 550, 559, 548, 556, 551, 554, 591, 315, 537, 589,
- 538, 549, 536, 580, 685, 685, 547, 0, 535, 582,
-
- 581, 543, 685, 532, 463, 536, 540, 531, 523, 536,
- 573, 522, 537, 533, 535, 518, 509, 516, 685, 517,
- 514, 511, 685, 511, 509, 518, 515, 520, 0, 512,
- 685, 685, 509, 515, 502, 505, 514, 546, 500, 685,
- 512, 502, 497, 500, 494, 506, 543, 492, 493, 241,
- 502, 539, 486, 499, 685, 531, 478, 516, 473, 463,
- 442, 460, 440, 488, 454, 453, 452, 489, 488, 685,
- 441, 434, 685, 437, 479, 685, 420, 419, 441, 474,
- 685, 418, 429, 424, 419, 422, 422, 458, 406, 456,
- 685, 685, 421, 406, 404, 415, 445, 393, 403, 685,
-
- 442, 390, 386, 378, 379, 391, 685, 376, 685, 374,
- 389, 372, 386, 685, 422, 383, 685, 373, 413, 361,
- 346, 364, 410, 400, 351, 356, 349, 685, 348, 343,
- 685, 393, 340, 391, 339, 685, 685, 344, 340, 330,
- 328, 379, 685, 336, 685, 372, 370, 320, 366, 365,
- 685, 317, 685, 685, 311, 685, 685, 320, 338, 289,
- 685, 241, 206, 253, 685, 685, 508, 513, 518, 523,
- 528, 533, 536, 216, 130, 115, 87
+ 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
+
} ;
-static const flex_int16_t yy_def[378] =
+static const flex_int16_t yy_def[399] =
{ 0,
- 366, 1, 367, 367, 1, 5, 5, 5, 5, 5,
- 366, 366, 366, 366, 366, 368, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 369,
- 366, 366, 366, 370, 15, 366, 45, 45, 45, 45,
- 45, 45, 371, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 368, 366, 366,
- 366, 366, 366, 366, 372, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 369, 366, 370, 366,
- 366, 45, 45, 45, 45, 45, 45, 373, 45, 371,
-
+ 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,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 372,
- 366, 366, 366, 366, 366, 366, 366, 366, 374, 45,
- 45, 45, 45, 45, 45, 373, 366, 371, 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, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 366, 366,
- 366, 366, 366, 366, 366, 375, 45, 45, 45, 45,
- 366, 366, 371, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 366, 366, 366, 376, 45, 45,
- 45, 45, 366, 45, 371, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 366, 45,
- 45, 45, 366, 45, 45, 45, 45, 366, 377, 45,
- 366, 366, 45, 45, 45, 45, 45, 45, 45, 366,
+ 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, 45, 45, 45,
- 45, 45, 45, 45, 366, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 366,
- 45, 45, 366, 45, 45, 366, 45, 45, 45, 45,
- 366, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 366, 366, 45, 45, 45, 45, 45, 45, 45, 366,
-
- 45, 45, 45, 45, 45, 45, 366, 45, 366, 45,
- 45, 45, 45, 366, 45, 45, 366, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 366, 45, 45,
- 366, 45, 45, 45, 45, 366, 366, 45, 45, 45,
- 45, 45, 366, 45, 366, 45, 45, 45, 45, 45,
- 366, 45, 366, 366, 45, 366, 366, 45, 45, 45,
- 366, 45, 45, 45, 366, 0, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366
+ 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
+
} ;
-static const flex_int16_t yy_nxt[752] =
+static const flex_int16_t yy_nxt[774] =
{ 0,
12, 13, 14, 13, 12, 15, 16, 12, 17, 18,
19, 20, 21, 22, 22, 22, 23, 24, 12, 12,
12, 12, 12, 12, 34, 35, 37, 14, 37, 37,
14, 37, 38, 41, 40, 38, 12, 12, 40, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 41,
- 42, 89, 42, 74, 79, 12, 12, 80, 75, 12,
+ 42, 91, 42, 76, 81, 12, 12, 82, 77, 12,
- 81, 12, 80, 79, 12, 77, 12, 77, 12, 81,
- 78, 78, 78, 79, 12, 12, 12, 12, 39, 229,
- 12, 80, 82, 12, 81, 42, 83, 42, 12, 42,
- 113, 42, 114, 84, 198, 12, 12, 44, 44, 44,
+ 83, 12, 82, 81, 12, 79, 12, 79, 12, 83,
+ 80, 80, 80, 81, 12, 12, 12, 12, 39, 239,
+ 12, 82, 84, 12, 83, 42, 85, 42, 12, 42,
+ 116, 42, 117, 86, 206, 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,
- 51, 52, 45, 53, 45, 45, 54, 45, 45, 55,
- 45, 56, 45, 57, 58, 49, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 52, 45, 45, 45, 45,
-
- 45, 45, 45, 69, 94, 70, 70, 70, 69, 121,
- 72, 72, 72, 73, 73, 73, 71, 90, 96, 97,
- 166, 71, 122, 69, 71, 72, 72, 72, 94, 102,
- 103, 96, 121, 90, 104, 71, 71, 96, 97, 105,
- 71, 106, 123, 71, 107, 122, 273, 77, 91, 77,
- 96, 121, 78, 78, 78, 71, 45, 45, 365, 156,
- 45, 45, 99, 364, 91, 119, 123, 45, 45, 45,
- 78, 78, 78, 45, 124, 122, 45, 157, 45, 274,
+ 51, 52, 45, 53, 45, 45, 54, 45, 55, 56,
+ 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,
+ 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,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 73, 73, 73, 45, 125, 363,
-
- 69, 45, 70, 70, 70, 71, 73, 73, 73, 45,
- 123, 132, 45, 71, 45, 100, 69, 71, 72, 72,
- 72, 78, 78, 78, 71, 134, 89, 135, 159, 71,
- 160, 161, 71, 89, 126, 132, 71, 160, 159, 161,
- 169, 185, 362, 361, 186, 200, 201, 195, 71, 134,
- 161, 135, 159, 160, 202, 195, 333, 89, 164, 220,
- 163, 89, 162, 360, 169, 89, 195, 359, 358, 221,
- 357, 356, 355, 89, 196, 354, 89, 353, 89, 129,
- 138, 138, 138, 352, 351, 350, 349, 138, 138, 138,
- 138, 138, 138, 348, 347, 346, 345, 344, 343, 342,
-
- 341, 340, 334, 339, 338, 337, 138, 138, 138, 138,
- 138, 138, 173, 173, 173, 336, 335, 332, 331, 173,
- 173, 173, 173, 173, 173, 330, 329, 328, 327, 326,
- 325, 324, 323, 322, 321, 320, 319, 318, 173, 173,
- 173, 173, 173, 173, 205, 205, 205, 317, 316, 315,
- 314, 205, 205, 205, 205, 205, 205, 313, 312, 311,
+ 45, 45, 45, 45, 75, 75, 75, 45, 167, 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,
- 205, 205, 205, 205, 205, 205, 45, 45, 45, 300,
- 299, 298, 297, 45, 45, 45, 45, 45, 45, 296,
- 295, 294, 293, 292, 291, 290, 289, 288, 287, 286,
-
- 285, 284, 45, 45, 45, 45, 45, 45, 36, 36,
- 36, 36, 36, 68, 283, 68, 68, 68, 87, 282,
- 87, 281, 87, 89, 89, 89, 89, 89, 98, 98,
- 98, 98, 98, 120, 280, 120, 120, 120, 136, 136,
- 136, 279, 278, 277, 276, 275, 272, 271, 270, 269,
- 268, 267, 266, 265, 264, 263, 262, 261, 260, 259,
- 258, 257, 256, 255, 254, 253, 252, 251, 250, 249,
- 248, 247, 246, 245, 244, 243, 242, 241, 240, 239,
- 238, 237, 236, 235, 234, 233, 232, 231, 230, 228,
- 227, 226, 225, 224, 223, 222, 219, 218, 217, 216,
-
- 215, 214, 213, 212, 211, 210, 209, 208, 207, 206,
- 204, 203, 199, 197, 194, 193, 192, 191, 190, 189,
- 188, 187, 184, 183, 182, 181, 180, 179, 178, 177,
- 176, 175, 174, 137, 172, 171, 170, 168, 167, 165,
- 158, 155, 154, 153, 152, 151, 150, 149, 148, 147,
- 146, 145, 144, 143, 142, 141, 140, 139, 137, 133,
- 131, 130, 128, 127, 118, 117, 116, 115, 112, 111,
- 110, 109, 108, 101, 95, 93, 92, 43, 88, 86,
- 85, 76, 43, 366, 11, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
-
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366
+ 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
} ;
-static const flex_int16_t yy_chk[752] =
+static const flex_int16_t yy_chk[774] =
{ 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, 377, 13, 21, 26, 5, 5, 27, 21, 5,
+ 13, 398, 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, 376,
+ 25, 25, 25, 26, 5, 5, 7, 10, 5, 397,
8, 27, 31, 5, 28, 37, 32, 37, 5, 42,
- 62, 42, 62, 33, 375, 5, 5, 15, 15, 15,
+ 63, 42, 63, 33, 396, 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, 79,
+ 15, 15, 15, 17, 49, 17, 17, 17, 19, 81,
19, 19, 19, 20, 20, 20, 17, 44, 51, 52,
- 374, 19, 80, 22, 20, 22, 22, 22, 49, 55,
- 55, 67, 79, 89, 55, 17, 22, 51, 52, 55,
- 19, 56, 81, 20, 56, 80, 250, 71, 44, 71,
- 67, 82, 71, 71, 71, 22, 45, 45, 364, 118,
- 45, 45, 53, 363, 89, 67, 81, 45, 45, 53,
- 77, 77, 77, 45, 82, 83, 45, 118, 45, 250,
+ 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,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 53, 69, 69, 69, 53, 83, 362,
-
- 70, 53, 70, 70, 70, 69, 73, 73, 73, 53,
- 84, 94, 53, 70, 53, 53, 72, 73, 72, 72,
- 72, 78, 78, 78, 69, 96, 91, 97, 121, 72,
- 122, 123, 70, 91, 84, 94, 73, 125, 124, 126,
- 132, 150, 360, 359, 150, 168, 168, 159, 72, 96,
- 123, 97, 121, 122, 168, 162, 321, 91, 126, 188,
- 125, 91, 124, 358, 132, 91, 159, 355, 352, 188,
- 350, 349, 348, 91, 162, 347, 91, 346, 91, 91,
- 100, 100, 100, 344, 342, 341, 340, 100, 100, 100,
- 100, 100, 100, 339, 338, 335, 334, 333, 332, 330,
-
- 329, 327, 321, 326, 325, 324, 100, 100, 100, 100,
- 100, 100, 138, 138, 138, 323, 322, 320, 319, 138,
- 138, 138, 138, 138, 138, 318, 316, 315, 313, 312,
- 311, 310, 308, 306, 305, 304, 303, 302, 138, 138,
- 138, 138, 138, 138, 173, 173, 173, 301, 299, 298,
- 297, 173, 173, 173, 173, 173, 173, 296, 295, 294,
- 293, 290, 289, 288, 287, 286, 285, 284, 283, 282,
- 173, 173, 173, 173, 173, 173, 205, 205, 205, 280,
- 279, 278, 277, 205, 205, 205, 205, 205, 205, 275,
- 274, 272, 271, 269, 268, 267, 266, 265, 264, 263,
-
- 262, 261, 205, 205, 205, 205, 205, 205, 367, 367,
- 367, 367, 367, 368, 260, 368, 368, 368, 369, 259,
- 369, 258, 369, 370, 370, 370, 370, 370, 371, 371,
- 371, 371, 371, 372, 257, 372, 372, 372, 373, 373,
- 373, 256, 254, 253, 252, 251, 249, 248, 247, 246,
- 245, 244, 243, 242, 241, 239, 238, 237, 236, 235,
- 234, 233, 230, 228, 227, 226, 225, 224, 222, 221,
- 220, 218, 217, 216, 215, 214, 213, 212, 211, 210,
- 209, 208, 207, 206, 204, 202, 201, 200, 199, 197,
- 194, 193, 192, 191, 190, 189, 187, 186, 185, 184,
-
- 183, 182, 181, 180, 179, 178, 177, 176, 175, 174,
- 170, 169, 167, 165, 158, 157, 156, 155, 154, 153,
- 152, 151, 149, 148, 147, 146, 145, 144, 143, 142,
- 141, 140, 139, 136, 135, 134, 133, 131, 130, 127,
- 119, 117, 116, 115, 114, 113, 112, 111, 110, 109,
- 108, 107, 106, 105, 104, 103, 102, 101, 98, 95,
- 93, 92, 87, 86, 66, 65, 64, 63, 61, 60,
- 59, 58, 57, 54, 50, 48, 47, 43, 41, 39,
- 38, 24, 14, 11, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
-
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366
+ 45, 45, 45, 53, 71, 71, 71, 53, 127, 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
} ;
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[62] =
+static const flex_int16_t yy_rule_linenum[64] =
{ 0,
133, 135, 137, 142, 143, 148, 149, 150, 162, 165,
170, 176, 185, 196, 207, 216, 225, 234, 244, 254,
- 264, 273, 282, 292, 302, 312, 323, 332, 342, 352,
- 363, 372, 381, 390, 399, 408, 417, 426, 439, 448,
- 457, 466, 475, 485, 584, 589, 594, 599, 600, 601,
- 602, 603, 604, 606, 624, 637, 642, 646, 648, 650,
- 652
+ 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
} ;
/* The intent behind this definition is that it'll catch
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "d2_lexer.ll"
-/* Copyright (C) 2017 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2017-2018 Internet Systems Consortium, Inc. ("ISC")
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::d2::D2ParserContext::fatal(msg)
-#line 1119 "d2_lexer.cc"
+#line 1131 "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 1145 "d2_lexer.cc"
-#line 1146 "d2_lexer.cc"
+#line 1157 "d2_lexer.cc"
+#line 1158 "d2_lexer.cc"
#define INITIAL 0
#define COMMENT 1
}
-#line 1464 "d2_lexer.cc"
+#line 1476 "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 >= 367 )
+ if ( yy_current_state >= 388 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 366 );
+ while ( yy_current_state != 387 );
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 < 62 )
+ else if ( yy_act < 64 )
fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
(long)yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 62 )
+ else if ( yy_act == 64 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
- else if ( yy_act == 63 )
+ else if ( yy_act == 65 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
case 21:
YY_RULE_SETUP
#line 264 "d2_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case isc::d2::D2ParserContext::DHCPDDNS:
+ case isc::d2::D2ParserContext::DDNS_DOMAIN:
+ case isc::d2::D2ParserContext::DDNS_DOMAINS:
+ case isc::d2::D2ParserContext::DNS_SERVER:
+ case isc::d2::D2ParserContext::DNS_SERVERS:
+ case isc::d2::D2ParserContext::TSIG_KEY:
+ case isc::d2::D2ParserContext::TSIG_KEYS:
+ case isc::d2::D2ParserContext::LOGGERS:
+ return isc::d2::D2Parser::make_USER_CONTEXT(driver.loc_);
+ default:
+ return isc::d2::D2Parser::make_STRING("user-context", driver.loc_);
+ }
+}
+ YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 280 "d2_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case isc::d2::D2ParserContext::DHCPDDNS:
+ case isc::d2::D2ParserContext::DDNS_DOMAIN:
+ case isc::d2::D2ParserContext::DDNS_DOMAINS:
+ case isc::d2::D2ParserContext::DNS_SERVER:
+ case isc::d2::D2ParserContext::DNS_SERVERS:
+ case isc::d2::D2ParserContext::TSIG_KEY:
+ case isc::d2::D2ParserContext::TSIG_KEYS:
+ case isc::d2::D2ParserContext::LOGGERS:
+ return isc::d2::D2Parser::make_COMMENT(driver.loc_);
+ default:
+ return isc::d2::D2Parser::make_STRING("comment", driver.loc_);
+ }
+}
+ YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 296 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
}
}
YY_BREAK
-case 22:
+case 24:
YY_RULE_SETUP
-#line 273 "d2_lexer.ll"
+#line 305 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
}
}
YY_BREAK
-case 23:
+case 25:
YY_RULE_SETUP
-#line 282 "d2_lexer.ll"
+#line 314 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::FORWARD_DDNS:
}
}
YY_BREAK
-case 24:
+case 26:
YY_RULE_SETUP
-#line 292 "d2_lexer.ll"
+#line 324 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DDNS_DOMAIN:
}
}
YY_BREAK
-case 25:
+case 27:
YY_RULE_SETUP
-#line 302 "d2_lexer.ll"
+#line 334 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DDNS_DOMAIN:
}
}
YY_BREAK
-case 26:
+case 28:
YY_RULE_SETUP
-#line 312 "d2_lexer.ll"
+#line 344 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DNS_SERVER:
}
}
YY_BREAK
-case 27:
+case 29:
YY_RULE_SETUP
-#line 323 "d2_lexer.ll"
+#line 355 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::DHCPDDNS:
}
}
YY_BREAK
-case 28:
+case 30:
YY_RULE_SETUP
-#line 332 "d2_lexer.ll"
+#line 364 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::TSIG_KEY:
}
}
YY_BREAK
-case 29:
+case 31:
YY_RULE_SETUP
-#line 342 "d2_lexer.ll"
+#line 374 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::TSIG_KEY:
}
}
YY_BREAK
-case 30:
+case 32:
YY_RULE_SETUP
-#line 352 "d2_lexer.ll"
+#line 384 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::TSIG_KEY:
}
}
YY_BREAK
-case 31:
+case 33:
YY_RULE_SETUP
-#line 363 "d2_lexer.ll"
+#line 395 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::CONFIG:
}
}
YY_BREAK
-case 32:
+case 34:
YY_RULE_SETUP
-#line 372 "d2_lexer.ll"
+#line 404 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::LOGGING:
}
}
YY_BREAK
-case 33:
+case 35:
YY_RULE_SETUP
-#line 381 "d2_lexer.ll"
+#line 413 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::LOGGERS:
}
}
YY_BREAK
-case 34:
+case 36:
YY_RULE_SETUP
-#line 390 "d2_lexer.ll"
+#line 422 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 35:
+case 37:
YY_RULE_SETUP
-#line 399 "d2_lexer.ll"
+#line 431 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 36:
+case 38:
YY_RULE_SETUP
-#line 408 "d2_lexer.ll"
+#line 440 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 37:
+case 39:
YY_RULE_SETUP
-#line 417 "d2_lexer.ll"
+#line 449 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 38:
+case 40:
YY_RULE_SETUP
-#line 426 "d2_lexer.ll"
+#line 458 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::LOGGERS:
}
}
YY_BREAK
-case 39:
+case 41:
YY_RULE_SETUP
-#line 439 "d2_lexer.ll"
+#line 471 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::LOGGERS:
}
}
YY_BREAK
-case 40:
+case 42:
YY_RULE_SETUP
-#line 448 "d2_lexer.ll"
+#line 480 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::LOGGERS:
}
}
YY_BREAK
-case 41:
+case 43:
YY_RULE_SETUP
-#line 457 "d2_lexer.ll"
+#line 489 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::CONFIG:
}
}
YY_BREAK
-case 42:
+case 44:
YY_RULE_SETUP
-#line 466 "d2_lexer.ll"
+#line 498 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::CONFIG:
}
}
YY_BREAK
-case 43:
+case 45:
YY_RULE_SETUP
-#line 475 "d2_lexer.ll"
+#line 507 "d2_lexer.ll"
{
switch(driver.ctx_) {
case isc::d2::D2ParserContext::CONFIG:
}
}
YY_BREAK
-case 44:
+case 46:
YY_RULE_SETUP
-#line 485 "d2_lexer.ll"
+#line 517 "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 45:
-/* rule 45 can match eol */
+case 47:
+/* rule 47 can match eol */
YY_RULE_SETUP
-#line 584 "d2_lexer.ll"
+#line 616 "d2_lexer.ll"
{
/* Bad string with a forbidden control character inside */
driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
}
YY_BREAK
-case 46:
-/* rule 46 can match eol */
+case 48:
+/* rule 48 can match eol */
YY_RULE_SETUP
-#line 589 "d2_lexer.ll"
+#line 621 "d2_lexer.ll"
{
/* Bad string with a bad escape inside */
driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
}
YY_BREAK
-case 47:
+case 49:
YY_RULE_SETUP
-#line 594 "d2_lexer.ll"
+#line 626 "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 48:
+case 50:
YY_RULE_SETUP
-#line 599 "d2_lexer.ll"
+#line 631 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_LSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 49:
+case 51:
YY_RULE_SETUP
-#line 600 "d2_lexer.ll"
+#line 632 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_RSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 50:
+case 52:
YY_RULE_SETUP
-#line 601 "d2_lexer.ll"
+#line 633 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_LCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 51:
+case 53:
YY_RULE_SETUP
-#line 602 "d2_lexer.ll"
+#line 634 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_RCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 52:
+case 54:
YY_RULE_SETUP
-#line 603 "d2_lexer.ll"
+#line 635 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_COMMA(driver.loc_); }
YY_BREAK
-case 53:
+case 55:
YY_RULE_SETUP
-#line 604 "d2_lexer.ll"
+#line 636 "d2_lexer.ll"
{ return isc::d2::D2Parser::make_COLON(driver.loc_); }
YY_BREAK
-case 54:
+case 56:
YY_RULE_SETUP
-#line 606 "d2_lexer.ll"
+#line 638 "d2_lexer.ll"
{
/* An integer was found. */
std::string tmp(yytext);
return isc::d2::D2Parser::make_INTEGER(integer, driver.loc_);
}
YY_BREAK
-case 55:
+case 57:
YY_RULE_SETUP
-#line 624 "d2_lexer.ll"
+#line 656 "d2_lexer.ll"
{
/* A floating point was found. */
std::string tmp(yytext);
return isc::d2::D2Parser::make_FLOAT(fp, driver.loc_);
}
YY_BREAK
-case 56:
+case 58:
YY_RULE_SETUP
-#line 637 "d2_lexer.ll"
+#line 669 "d2_lexer.ll"
{
string tmp(yytext);
return isc::d2::D2Parser::make_BOOLEAN(tmp == "true", driver.loc_);
}
YY_BREAK
-case 57:
+case 59:
YY_RULE_SETUP
-#line 642 "d2_lexer.ll"
+#line 674 "d2_lexer.ll"
{
return isc::d2::D2Parser::make_NULL_TYPE(driver.loc_);
}
YY_BREAK
-case 58:
+case 60:
YY_RULE_SETUP
-#line 646 "d2_lexer.ll"
+#line 678 "d2_lexer.ll"
driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
YY_BREAK
-case 59:
+case 61:
YY_RULE_SETUP
-#line 648 "d2_lexer.ll"
+#line 680 "d2_lexer.ll"
driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
YY_BREAK
-case 60:
+case 62:
YY_RULE_SETUP
-#line 650 "d2_lexer.ll"
+#line 682 "d2_lexer.ll"
driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
YY_BREAK
-case 61:
+case 63:
YY_RULE_SETUP
-#line 652 "d2_lexer.ll"
+#line 684 "d2_lexer.ll"
driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 654 "d2_lexer.ll"
+#line 686 "d2_lexer.ll"
{
if (driver.states_.empty()) {
return isc::d2::D2Parser::make_END(driver.loc_);
BEGIN(DIR_EXIT);
}
YY_BREAK
-case 62:
+case 64:
YY_RULE_SETUP
-#line 677 "d2_lexer.ll"
+#line 709 "d2_lexer.ll"
ECHO;
YY_BREAK
-#line 2290 "d2_lexer.cc"
+#line 2340 "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 >= 367 )
+ if ( yy_current_state >= 388 )
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 >= 367 )
+ if ( yy_current_state >= 388 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 366);
+ yy_is_jam = (yy_current_state == 387);
return yy_is_jam ? 0 : yy_current_state;
}
/* %ok-for-header */
-#line 677 "d2_lexer.ll"
+#line 709 "d2_lexer.ll"
using namespace isc::dhcp;
{
switch (that.type_get ())
{
- case 66: // value
- case 93: // ncr_protocol_value
+ case 68: // value
+ case 72: // map_value
+ case 96: // ncr_protocol_value
value.move< ElementPtr > (that.value);
break;
- case 54: // "boolean"
+ case 56: // "boolean"
value.move< bool > (that.value);
break;
- case 53: // "floating point"
+ case 55: // "floating point"
value.move< double > (that.value);
break;
- case 52: // "integer"
+ case 54: // "integer"
value.move< int64_t > (that.value);
break;
- case 51: // "constant string"
+ case 53: // "constant string"
value.move< std::string > (that.value);
break;
state = that.state;
switch (that.type_get ())
{
- case 66: // value
- case 93: // ncr_protocol_value
+ case 68: // value
+ case 72: // map_value
+ case 96: // ncr_protocol_value
value.copy< ElementPtr > (that.value);
break;
- case 54: // "boolean"
+ case 56: // "boolean"
value.copy< bool > (that.value);
break;
- case 53: // "floating point"
+ case 55: // "floating point"
value.copy< double > (that.value);
break;
- case 52: // "integer"
+ case 54: // "integer"
value.copy< int64_t > (that.value);
break;
- case 51: // "constant string"
+ case 53: // "constant string"
value.copy< std::string > (that.value);
break;
<< yysym.location << ": ";
switch (yytype)
{
- case 51: // "constant string"
+ case 53: // "constant string"
-#line 108 "d2_parser.yy" // lalr1.cc:636
+#line 111 "d2_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< std::string > (); }
-#line 354 "d2_parser.cc" // lalr1.cc:636
+#line 356 "d2_parser.cc" // lalr1.cc:636
break;
- case 52: // "integer"
+ case 54: // "integer"
-#line 108 "d2_parser.yy" // lalr1.cc:636
+#line 111 "d2_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< int64_t > (); }
-#line 361 "d2_parser.cc" // lalr1.cc:636
+#line 363 "d2_parser.cc" // lalr1.cc:636
break;
- case 53: // "floating point"
+ case 55: // "floating point"
-#line 108 "d2_parser.yy" // lalr1.cc:636
+#line 111 "d2_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< double > (); }
-#line 368 "d2_parser.cc" // lalr1.cc:636
+#line 370 "d2_parser.cc" // lalr1.cc:636
break;
- case 54: // "boolean"
+ case 56: // "boolean"
-#line 108 "d2_parser.yy" // lalr1.cc:636
+#line 111 "d2_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< bool > (); }
-#line 375 "d2_parser.cc" // lalr1.cc:636
+#line 377 "d2_parser.cc" // lalr1.cc:636
break;
- case 66: // value
+ case 68: // value
-#line 108 "d2_parser.yy" // lalr1.cc:636
+#line 111 "d2_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< ElementPtr > (); }
-#line 382 "d2_parser.cc" // lalr1.cc:636
+#line 384 "d2_parser.cc" // lalr1.cc:636
break;
- case 93: // ncr_protocol_value
+ case 72: // map_value
-#line 108 "d2_parser.yy" // lalr1.cc:636
+#line 111 "d2_parser.yy" // lalr1.cc:636
{ yyoutput << yysym.value.template as< ElementPtr > (); }
-#line 389 "d2_parser.cc" // lalr1.cc:636
+#line 391 "d2_parser.cc" // lalr1.cc:636
+ break;
+
+ case 96: // ncr_protocol_value
+
+#line 111 "d2_parser.yy" // lalr1.cc:636
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 398 "d2_parser.cc" // lalr1.cc:636
break;
when using variants. */
switch (yyr1_[yyn])
{
- case 66: // value
- case 93: // ncr_protocol_value
+ case 68: // value
+ case 72: // map_value
+ case 96: // ncr_protocol_value
yylhs.value.build< ElementPtr > ();
break;
- case 54: // "boolean"
+ case 56: // "boolean"
yylhs.value.build< bool > ();
break;
- case 53: // "floating point"
+ case 55: // "floating point"
yylhs.value.build< double > ();
break;
- case 52: // "integer"
+ case 54: // "integer"
yylhs.value.build< int64_t > ();
break;
- case 51: // "constant string"
+ case 53: // "constant string"
yylhs.value.build< std::string > ();
break;
switch (yyn)
{
case 2:
-#line 117 "d2_parser.yy" // lalr1.cc:859
+#line 120 "d2_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.NO_KEYWORD; }
-#line 630 "d2_parser.cc" // lalr1.cc:859
+#line 640 "d2_parser.cc" // lalr1.cc:859
break;
case 4:
-#line 118 "d2_parser.yy" // lalr1.cc:859
+#line 121 "d2_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.CONFIG; }
-#line 636 "d2_parser.cc" // lalr1.cc:859
+#line 646 "d2_parser.cc" // lalr1.cc:859
break;
case 6:
-#line 119 "d2_parser.yy" // lalr1.cc:859
+#line 122 "d2_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.DHCPDDNS; }
-#line 642 "d2_parser.cc" // lalr1.cc:859
+#line 652 "d2_parser.cc" // lalr1.cc:859
break;
case 8:
-#line 120 "d2_parser.yy" // lalr1.cc:859
+#line 123 "d2_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.TSIG_KEY; }
-#line 648 "d2_parser.cc" // lalr1.cc:859
+#line 658 "d2_parser.cc" // lalr1.cc:859
break;
case 10:
-#line 121 "d2_parser.yy" // lalr1.cc:859
+#line 124 "d2_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.TSIG_KEYS; }
-#line 654 "d2_parser.cc" // lalr1.cc:859
+#line 664 "d2_parser.cc" // lalr1.cc:859
break;
case 12:
-#line 122 "d2_parser.yy" // lalr1.cc:859
+#line 125 "d2_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.DDNS_DOMAIN; }
-#line 660 "d2_parser.cc" // lalr1.cc:859
+#line 670 "d2_parser.cc" // lalr1.cc:859
break;
case 14:
-#line 123 "d2_parser.yy" // lalr1.cc:859
+#line 126 "d2_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.DDNS_DOMAINS; }
-#line 666 "d2_parser.cc" // lalr1.cc:859
+#line 676 "d2_parser.cc" // lalr1.cc:859
break;
case 16:
-#line 124 "d2_parser.yy" // lalr1.cc:859
+#line 127 "d2_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.DNS_SERVERS; }
-#line 672 "d2_parser.cc" // lalr1.cc:859
+#line 682 "d2_parser.cc" // lalr1.cc:859
break;
case 18:
-#line 125 "d2_parser.yy" // lalr1.cc:859
+#line 128 "d2_parser.yy" // lalr1.cc:859
{ ctx.ctx_ = ctx.DNS_SERVERS; }
-#line 678 "d2_parser.cc" // lalr1.cc:859
+#line 688 "d2_parser.cc" // lalr1.cc:859
break;
case 20:
-#line 133 "d2_parser.yy" // lalr1.cc:859
+#line 136 "d2_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
-#line 684 "d2_parser.cc" // lalr1.cc:859
+#line 694 "d2_parser.cc" // lalr1.cc:859
break;
case 21:
-#line 134 "d2_parser.yy" // lalr1.cc:859
+#line 137 "d2_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 690 "d2_parser.cc" // lalr1.cc:859
+#line 700 "d2_parser.cc" // lalr1.cc:859
break;
case 22:
-#line 135 "d2_parser.yy" // lalr1.cc:859
+#line 138 "d2_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 696 "d2_parser.cc" // lalr1.cc:859
+#line 706 "d2_parser.cc" // lalr1.cc:859
break;
case 23:
-#line 136 "d2_parser.yy" // lalr1.cc:859
+#line 139 "d2_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 702 "d2_parser.cc" // lalr1.cc:859
+#line 712 "d2_parser.cc" // lalr1.cc:859
break;
case 24:
-#line 137 "d2_parser.yy" // lalr1.cc:859
+#line 140 "d2_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 708 "d2_parser.cc" // lalr1.cc:859
+#line 718 "d2_parser.cc" // lalr1.cc:859
break;
case 25:
-#line 138 "d2_parser.yy" // lalr1.cc:859
+#line 141 "d2_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 714 "d2_parser.cc" // lalr1.cc:859
+#line 724 "d2_parser.cc" // lalr1.cc:859
break;
case 26:
-#line 139 "d2_parser.yy" // lalr1.cc:859
+#line 142 "d2_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 720 "d2_parser.cc" // lalr1.cc:859
+#line 730 "d2_parser.cc" // lalr1.cc:859
break;
case 27:
-#line 142 "d2_parser.yy" // lalr1.cc:859
+#line 145 "d2_parser.yy" // lalr1.cc:859
{
// Push back the JSON value on the stack
ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
}
-#line 729 "d2_parser.cc" // lalr1.cc:859
+#line 739 "d2_parser.cc" // lalr1.cc:859
break;
case 28:
-#line 147 "d2_parser.yy" // lalr1.cc:859
+#line 150 "d2_parser.yy" // lalr1.cc:859
{
// This code is executed when we're about to start parsing
// the content of the map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 740 "d2_parser.cc" // lalr1.cc:859
+#line 750 "d2_parser.cc" // lalr1.cc:859
break;
case 29:
-#line 152 "d2_parser.yy" // lalr1.cc:859
+#line 155 "d2_parser.yy" // lalr1.cc:859
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// for it.
}
-#line 750 "d2_parser.cc" // lalr1.cc:859
+#line 760 "d2_parser.cc" // lalr1.cc:859
break;
- case 32:
-#line 163 "d2_parser.yy" // lalr1.cc:859
+ case 30:
+#line 161 "d2_parser.yy" // lalr1.cc:859
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 766 "d2_parser.cc" // lalr1.cc:859
+ break;
+
+ case 33:
+#line 168 "d2_parser.yy" // lalr1.cc:859
{
// map containing a single entry
ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
}
-#line 759 "d2_parser.cc" // lalr1.cc:859
+#line 775 "d2_parser.cc" // lalr1.cc:859
break;
- case 33:
-#line 167 "d2_parser.yy" // lalr1.cc:859
+ case 34:
+#line 172 "d2_parser.yy" // lalr1.cc:859
{
// map consisting of a shorter map followed by
// comma and string:value
ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
}
-#line 769 "d2_parser.cc" // lalr1.cc:859
+#line 785 "d2_parser.cc" // lalr1.cc:859
break;
- case 34:
-#line 174 "d2_parser.yy" // lalr1.cc:859
+ case 35:
+#line 179 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
}
-#line 778 "d2_parser.cc" // lalr1.cc:859
+#line 794 "d2_parser.cc" // lalr1.cc:859
break;
- case 35:
-#line 177 "d2_parser.yy" // lalr1.cc:859
+ case 36:
+#line 182 "d2_parser.yy" // lalr1.cc:859
{
// list parsing complete. Put any sanity checking here
}
-#line 786 "d2_parser.cc" // lalr1.cc:859
+#line 802 "d2_parser.cc" // lalr1.cc:859
break;
- case 38:
-#line 185 "d2_parser.yy" // lalr1.cc:859
+ case 39:
+#line 190 "d2_parser.yy" // lalr1.cc:859
{
// List consisting of a single element.
ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
}
-#line 795 "d2_parser.cc" // lalr1.cc:859
+#line 811 "d2_parser.cc" // lalr1.cc:859
break;
- case 39:
-#line 189 "d2_parser.yy" // lalr1.cc:859
+ case 40:
+#line 194 "d2_parser.yy" // lalr1.cc:859
{
// List ending with , and a value.
ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
}
-#line 804 "d2_parser.cc" // lalr1.cc:859
+#line 820 "d2_parser.cc" // lalr1.cc:859
break;
- case 40:
-#line 200 "d2_parser.yy" // lalr1.cc:859
+ case 41:
+#line 205 "d2_parser.yy" // lalr1.cc:859
{
const std::string& where = ctx.contextName();
const std::string& keyword = yystack_[1].value.as< std::string > ();
error(yystack_[1].location,
"got unexpected keyword \"" + keyword + "\" in " + where + " map.");
}
-#line 815 "d2_parser.cc" // lalr1.cc:859
+#line 831 "d2_parser.cc" // lalr1.cc:859
break;
- case 41:
-#line 210 "d2_parser.yy" // lalr1.cc:859
+ case 42:
+#line 215 "d2_parser.yy" // lalr1.cc:859
{
// This code is executed when we're about to start parsing
// the content of the map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 826 "d2_parser.cc" // lalr1.cc:859
+#line 842 "d2_parser.cc" // lalr1.cc:859
break;
- case 42:
-#line 215 "d2_parser.yy" // lalr1.cc:859
+ case 43:
+#line 220 "d2_parser.yy" // lalr1.cc:859
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// for it.
}
-#line 836 "d2_parser.cc" // lalr1.cc:859
+#line 852 "d2_parser.cc" // lalr1.cc:859
break;
- case 51:
-#line 237 "d2_parser.yy" // lalr1.cc:859
+ case 52:
+#line 242 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("DhcpDdns", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCPDDNS);
}
-#line 847 "d2_parser.cc" // lalr1.cc:859
+#line 863 "d2_parser.cc" // lalr1.cc:859
break;
- case 52:
-#line 242 "d2_parser.yy" // lalr1.cc:859
+ case 53:
+#line 247 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 856 "d2_parser.cc" // lalr1.cc:859
+#line 872 "d2_parser.cc" // lalr1.cc:859
break;
- case 53:
-#line 247 "d2_parser.yy" // lalr1.cc:859
+ case 54:
+#line 252 "d2_parser.yy" // lalr1.cc:859
{
// Parse the dhcpddns map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 866 "d2_parser.cc" // lalr1.cc:859
+#line 882 "d2_parser.cc" // lalr1.cc:859
break;
- case 54:
-#line 251 "d2_parser.yy" // lalr1.cc:859
+ case 55:
+#line 256 "d2_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 874 "d2_parser.cc" // lalr1.cc:859
+#line 890 "d2_parser.cc" // lalr1.cc:859
break;
- case 66:
-#line 271 "d2_parser.yy" // lalr1.cc:859
+ case 69:
+#line 278 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 882 "d2_parser.cc" // lalr1.cc:859
+#line 898 "d2_parser.cc" // lalr1.cc:859
break;
- case 67:
-#line 273 "d2_parser.yy" // lalr1.cc:859
+ case 70:
+#line 280 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ip-address", s);
ctx.leave();
}
-#line 892 "d2_parser.cc" // lalr1.cc:859
+#line 908 "d2_parser.cc" // lalr1.cc:859
break;
- case 68:
-#line 279 "d2_parser.yy" // lalr1.cc:859
+ case 71:
+#line 286 "d2_parser.yy" // lalr1.cc:859
{
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");
ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("port", i);
}
-#line 904 "d2_parser.cc" // lalr1.cc:859
+#line 920 "d2_parser.cc" // lalr1.cc:859
break;
- case 69:
-#line 287 "d2_parser.yy" // lalr1.cc:859
+ case 72:
+#line 294 "d2_parser.yy" // lalr1.cc:859
{
if (yystack_[0].value.as< int64_t > () <= 0) {
error(yystack_[0].location, "dns-server-timeout must be greater than zero");
ctx.stack_.back()->set("dns-server-timeout", i);
}
}
-#line 917 "d2_parser.cc" // lalr1.cc:859
+#line 933 "d2_parser.cc" // lalr1.cc:859
break;
- case 70:
-#line 296 "d2_parser.yy" // lalr1.cc:859
+ case 73:
+#line 303 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 925 "d2_parser.cc" // lalr1.cc:859
+#line 941 "d2_parser.cc" // lalr1.cc:859
break;
- case 71:
-#line 298 "d2_parser.yy" // lalr1.cc:859
+ case 74:
+#line 305 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 934 "d2_parser.cc" // lalr1.cc:859
+#line 950 "d2_parser.cc" // lalr1.cc:859
break;
- case 72:
-#line 304 "d2_parser.yy" // lalr1.cc:859
+ case 75:
+#line 311 "d2_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 940 "d2_parser.cc" // lalr1.cc:859
+#line 956 "d2_parser.cc" // lalr1.cc:859
break;
- case 73:
-#line 305 "d2_parser.yy" // lalr1.cc:859
+ case 76:
+#line 312 "d2_parser.yy" // lalr1.cc:859
{ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 946 "d2_parser.cc" // lalr1.cc:859
+#line 962 "d2_parser.cc" // lalr1.cc:859
break;
- case 74:
-#line 308 "d2_parser.yy" // lalr1.cc:859
+ case 77:
+#line 315 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NCR_FORMAT);
}
-#line 954 "d2_parser.cc" // lalr1.cc:859
+#line 970 "d2_parser.cc" // lalr1.cc:859
break;
- case 75:
-#line 310 "d2_parser.yy" // lalr1.cc:859
+ case 78:
+#line 317 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ncr-format", json);
ctx.leave();
}
-#line 964 "d2_parser.cc" // lalr1.cc:859
+#line 980 "d2_parser.cc" // lalr1.cc:859
break;
- case 76:
-#line 316 "d2_parser.yy" // lalr1.cc:859
+ case 79:
+#line 323 "d2_parser.yy" // lalr1.cc:859
+ {
+ ctx.enter(ctx.NO_KEYWORD);
+}
+#line 988 "d2_parser.cc" // lalr1.cc:859
+ break;
+
+ case 80:
+#line 325 "d2_parser.yy" // lalr1.cc:859
+ {
+ ElementPtr parent = ctx.stack_.back();
+ ElementPtr user_context = yystack_[0].value.as< ElementPtr > ();
+ ConstElementPtr old = parent->get("user-context");
+
+ // Handle already existing user context
+ if (old) {
+ // Check if it was a comment or a duplicate
+ if ((old->size() != 1) || !old->contains("comment")) {
+ std::stringstream msg;
+ msg << "duplicate user-context entries (previous at "
+ << old->getPosition().str() << ")";
+ error(yystack_[3].location, msg.str());
+ }
+ // Merge the comment
+ user_context->set("comment", old->get("comment"));
+ }
+
+ // Set the user context
+ parent->set("user-context", user_context);
+ ctx.leave();
+}
+#line 1015 "d2_parser.cc" // lalr1.cc:859
+ break;
+
+ case 81:
+#line 348 "d2_parser.yy" // lalr1.cc:859
+ {
+ ctx.enter(ctx.NO_KEYWORD);
+}
+#line 1023 "d2_parser.cc" // lalr1.cc:859
+ break;
+
+ case 82:
+#line 350 "d2_parser.yy" // lalr1.cc:859
+ {
+ ElementPtr parent = ctx.stack_.back();
+ ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
+ ElementPtr comment(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+ user_context->set("comment", comment);
+
+ // Handle already existing user context
+ ConstElementPtr old = parent->get("user-context");
+ if (old) {
+ // Check for duplicate comment
+ if (old->contains("comment")) {
+ std::stringstream msg;
+ msg << "duplicate user-context/comment entries (previous at "
+ << old->getPosition().str() << ")";
+ error(yystack_[3].location, msg.str());
+ }
+ // Merge the user context in the comment
+ merge(user_context, old);
+ }
+
+ // Set the user context
+ parent->set("user-context", user_context);
+ ctx.leave();
+}
+#line 1052 "d2_parser.cc" // lalr1.cc:859
+ break;
+
+ case 83:
+#line 375 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("forward-ddns", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.FORWARD_DDNS);
}
-#line 975 "d2_parser.cc" // lalr1.cc:859
+#line 1063 "d2_parser.cc" // lalr1.cc:859
break;
- case 77:
-#line 321 "d2_parser.yy" // lalr1.cc:859
+ case 84:
+#line 380 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 984 "d2_parser.cc" // lalr1.cc:859
+#line 1072 "d2_parser.cc" // lalr1.cc:859
break;
- case 78:
-#line 326 "d2_parser.yy" // lalr1.cc:859
+ case 85:
+#line 385 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reverse-ddns", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.REVERSE_DDNS);
}
-#line 995 "d2_parser.cc" // lalr1.cc:859
+#line 1083 "d2_parser.cc" // lalr1.cc:859
break;
- case 79:
-#line 331 "d2_parser.yy" // lalr1.cc:859
+ case 86:
+#line 390 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1004 "d2_parser.cc" // lalr1.cc:859
+#line 1092 "d2_parser.cc" // lalr1.cc:859
break;
- case 86:
-#line 350 "d2_parser.yy" // lalr1.cc:859
+ case 93:
+#line 409 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ddns-domains", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.DDNS_DOMAINS);
}
-#line 1015 "d2_parser.cc" // lalr1.cc:859
+#line 1103 "d2_parser.cc" // lalr1.cc:859
break;
- case 87:
-#line 355 "d2_parser.yy" // lalr1.cc:859
+ case 94:
+#line 414 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1024 "d2_parser.cc" // lalr1.cc:859
+#line 1112 "d2_parser.cc" // lalr1.cc:859
break;
- case 88:
-#line 360 "d2_parser.yy" // lalr1.cc:859
+ case 95:
+#line 419 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
}
-#line 1033 "d2_parser.cc" // lalr1.cc:859
+#line 1121 "d2_parser.cc" // lalr1.cc:859
break;
- case 89:
-#line 363 "d2_parser.yy" // lalr1.cc:859
+ case 96:
+#line 422 "d2_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1041 "d2_parser.cc" // lalr1.cc:859
+#line 1129 "d2_parser.cc" // lalr1.cc:859
break;
- case 94:
-#line 375 "d2_parser.yy" // lalr1.cc:859
+ case 101:
+#line 434 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1051 "d2_parser.cc" // lalr1.cc:859
+#line 1139 "d2_parser.cc" // lalr1.cc:859
break;
- case 95:
-#line 379 "d2_parser.yy" // lalr1.cc:859
+ case 102:
+#line 438 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1059 "d2_parser.cc" // lalr1.cc:859
+#line 1147 "d2_parser.cc" // lalr1.cc:859
break;
- case 96:
-#line 383 "d2_parser.yy" // lalr1.cc:859
+ case 103:
+#line 442 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1068 "d2_parser.cc" // lalr1.cc:859
+#line 1156 "d2_parser.cc" // lalr1.cc:859
break;
- case 97:
-#line 386 "d2_parser.yy" // lalr1.cc:859
+ case 104:
+#line 445 "d2_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1076 "d2_parser.cc" // lalr1.cc:859
+#line 1164 "d2_parser.cc" // lalr1.cc:859
break;
- case 104:
-#line 401 "d2_parser.yy" // lalr1.cc:859
+ case 113:
+#line 462 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1084 "d2_parser.cc" // lalr1.cc:859
+#line 1172 "d2_parser.cc" // lalr1.cc:859
break;
- case 105:
-#line 403 "d2_parser.yy" // lalr1.cc:859
+ case 114:
+#line 464 "d2_parser.yy" // lalr1.cc:859
{
if (yystack_[0].value.as< std::string > () == "") {
error(yystack_[1].location, "Ddns domain name cannot be blank");
ctx.stack_.back()->set("name", name);
ctx.leave();
}
-#line 1098 "d2_parser.cc" // lalr1.cc:859
+#line 1186 "d2_parser.cc" // lalr1.cc:859
break;
- case 106:
-#line 413 "d2_parser.yy" // lalr1.cc:859
+ case 115:
+#line 474 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1106 "d2_parser.cc" // lalr1.cc:859
+#line 1194 "d2_parser.cc" // lalr1.cc:859
break;
- case 107:
-#line 415 "d2_parser.yy" // lalr1.cc:859
+ case 116:
+#line 476 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr elem(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("key-name", name);
ctx.leave();
}
-#line 1117 "d2_parser.cc" // lalr1.cc:859
+#line 1205 "d2_parser.cc" // lalr1.cc:859
break;
- case 108:
-#line 425 "d2_parser.yy" // lalr1.cc:859
+ case 117:
+#line 486 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dns-servers", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.DNS_SERVERS);
}
-#line 1128 "d2_parser.cc" // lalr1.cc:859
+#line 1216 "d2_parser.cc" // lalr1.cc:859
break;
- case 109:
-#line 430 "d2_parser.yy" // lalr1.cc:859
+ case 118:
+#line 491 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1137 "d2_parser.cc" // lalr1.cc:859
+#line 1225 "d2_parser.cc" // lalr1.cc:859
break;
- case 110:
-#line 435 "d2_parser.yy" // lalr1.cc:859
+ case 119:
+#line 496 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
}
-#line 1146 "d2_parser.cc" // lalr1.cc:859
+#line 1234 "d2_parser.cc" // lalr1.cc:859
break;
- case 111:
-#line 438 "d2_parser.yy" // lalr1.cc:859
+ case 120:
+#line 499 "d2_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1154 "d2_parser.cc" // lalr1.cc:859
+#line 1242 "d2_parser.cc" // lalr1.cc:859
break;
- case 114:
-#line 446 "d2_parser.yy" // lalr1.cc:859
+ case 123:
+#line 507 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1164 "d2_parser.cc" // lalr1.cc:859
+#line 1252 "d2_parser.cc" // lalr1.cc:859
break;
- case 115:
-#line 450 "d2_parser.yy" // lalr1.cc:859
+ case 124:
+#line 511 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1172 "d2_parser.cc" // lalr1.cc:859
+#line 1260 "d2_parser.cc" // lalr1.cc:859
break;
- case 116:
-#line 454 "d2_parser.yy" // lalr1.cc:859
+ case 125:
+#line 515 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1181 "d2_parser.cc" // lalr1.cc:859
+#line 1269 "d2_parser.cc" // lalr1.cc:859
break;
- case 117:
-#line 457 "d2_parser.yy" // lalr1.cc:859
+ case 126:
+#line 518 "d2_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1189 "d2_parser.cc" // lalr1.cc:859
+#line 1277 "d2_parser.cc" // lalr1.cc:859
break;
- case 124:
-#line 471 "d2_parser.yy" // lalr1.cc:859
+ case 135:
+#line 534 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1197 "d2_parser.cc" // lalr1.cc:859
+#line 1285 "d2_parser.cc" // lalr1.cc:859
break;
- case 125:
-#line 473 "d2_parser.yy" // lalr1.cc:859
+ case 136:
+#line 536 "d2_parser.yy" // lalr1.cc:859
{
if (yystack_[0].value.as< std::string > () != "") {
error(yystack_[1].location, "hostname is not yet supported");
ctx.stack_.back()->set("hostname", name);
ctx.leave();
}
-#line 1211 "d2_parser.cc" // lalr1.cc:859
+#line 1299 "d2_parser.cc" // lalr1.cc:859
break;
- case 126:
-#line 483 "d2_parser.yy" // lalr1.cc:859
+ case 137:
+#line 546 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1219 "d2_parser.cc" // lalr1.cc:859
+#line 1307 "d2_parser.cc" // lalr1.cc:859
break;
- case 127:
-#line 485 "d2_parser.yy" // lalr1.cc:859
+ case 138:
+#line 548 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ip-address", s);
ctx.leave();
}
-#line 1229 "d2_parser.cc" // lalr1.cc:859
+#line 1317 "d2_parser.cc" // lalr1.cc:859
break;
- case 128:
-#line 491 "d2_parser.yy" // lalr1.cc:859
+ case 139:
+#line 554 "d2_parser.yy" // lalr1.cc:859
{
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");
ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("port", i);
}
-#line 1241 "d2_parser.cc" // lalr1.cc:859
+#line 1329 "d2_parser.cc" // lalr1.cc:859
break;
- case 129:
-#line 505 "d2_parser.yy" // lalr1.cc:859
+ case 140:
+#line 568 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("tsig-keys", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.TSIG_KEYS);
}
-#line 1252 "d2_parser.cc" // lalr1.cc:859
+#line 1340 "d2_parser.cc" // lalr1.cc:859
break;
- case 130:
-#line 510 "d2_parser.yy" // lalr1.cc:859
+ case 141:
+#line 573 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1261 "d2_parser.cc" // lalr1.cc:859
+#line 1349 "d2_parser.cc" // lalr1.cc:859
break;
- case 131:
-#line 515 "d2_parser.yy" // lalr1.cc:859
+ case 142:
+#line 578 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
}
-#line 1270 "d2_parser.cc" // lalr1.cc:859
+#line 1358 "d2_parser.cc" // lalr1.cc:859
break;
- case 132:
-#line 518 "d2_parser.yy" // lalr1.cc:859
+ case 143:
+#line 581 "d2_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1278 "d2_parser.cc" // lalr1.cc:859
+#line 1366 "d2_parser.cc" // lalr1.cc:859
break;
- case 137:
-#line 530 "d2_parser.yy" // lalr1.cc:859
+ case 148:
+#line 593 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1288 "d2_parser.cc" // lalr1.cc:859
+#line 1376 "d2_parser.cc" // lalr1.cc:859
break;
- case 138:
-#line 534 "d2_parser.yy" // lalr1.cc:859
+ case 149:
+#line 597 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1296 "d2_parser.cc" // lalr1.cc:859
+#line 1384 "d2_parser.cc" // lalr1.cc:859
break;
- case 139:
-#line 538 "d2_parser.yy" // lalr1.cc:859
+ case 150:
+#line 601 "d2_parser.yy" // lalr1.cc:859
{
// Parse tsig key list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1306 "d2_parser.cc" // lalr1.cc:859
+#line 1394 "d2_parser.cc" // lalr1.cc:859
break;
- case 140:
-#line 542 "d2_parser.yy" // lalr1.cc:859
+ case 151:
+#line 605 "d2_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1314 "d2_parser.cc" // lalr1.cc:859
+#line 1402 "d2_parser.cc" // lalr1.cc:859
break;
- case 148:
-#line 558 "d2_parser.yy" // lalr1.cc:859
+ case 161:
+#line 623 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1322 "d2_parser.cc" // lalr1.cc:859
+#line 1410 "d2_parser.cc" // lalr1.cc:859
break;
- case 149:
-#line 560 "d2_parser.yy" // lalr1.cc:859
+ case 162:
+#line 625 "d2_parser.yy" // lalr1.cc:859
{
if (yystack_[0].value.as< std::string > () == "") {
error(yystack_[1].location, "TSIG key name cannot be blank");
ctx.stack_.back()->set("name", name);
ctx.leave();
}
-#line 1336 "d2_parser.cc" // lalr1.cc:859
+#line 1424 "d2_parser.cc" // lalr1.cc:859
break;
- case 150:
-#line 570 "d2_parser.yy" // lalr1.cc:859
+ case 163:
+#line 635 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1344 "d2_parser.cc" // lalr1.cc:859
+#line 1432 "d2_parser.cc" // lalr1.cc:859
break;
- case 151:
-#line 572 "d2_parser.yy" // lalr1.cc:859
+ case 164:
+#line 637 "d2_parser.yy" // lalr1.cc:859
{
if (yystack_[0].value.as< std::string > () == "") {
error(yystack_[1].location, "TSIG key algorithm cannot be blank");
ctx.stack_.back()->set("algorithm", elem);
ctx.leave();
}
-#line 1357 "d2_parser.cc" // lalr1.cc:859
+#line 1445 "d2_parser.cc" // lalr1.cc:859
break;
- case 152:
-#line 581 "d2_parser.yy" // lalr1.cc:859
+ case 165:
+#line 646 "d2_parser.yy" // lalr1.cc:859
{
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");
ElementPtr elem(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("digest-bits", elem);
}
-#line 1369 "d2_parser.cc" // lalr1.cc:859
+#line 1457 "d2_parser.cc" // lalr1.cc:859
break;
- case 153:
-#line 589 "d2_parser.yy" // lalr1.cc:859
+ case 166:
+#line 654 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1377 "d2_parser.cc" // lalr1.cc:859
+#line 1465 "d2_parser.cc" // lalr1.cc:859
break;
- case 154:
-#line 591 "d2_parser.yy" // lalr1.cc:859
+ case 167:
+#line 656 "d2_parser.yy" // lalr1.cc:859
{
if (yystack_[0].value.as< std::string > () == "") {
error(yystack_[1].location, "TSIG key secret cannot be blank");
ctx.stack_.back()->set("secret", elem);
ctx.leave();
}
-#line 1390 "d2_parser.cc" // lalr1.cc:859
+#line 1478 "d2_parser.cc" // lalr1.cc:859
break;
- case 155:
-#line 604 "d2_parser.yy" // lalr1.cc:859
+ case 168:
+#line 669 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1398 "d2_parser.cc" // lalr1.cc:859
+#line 1486 "d2_parser.cc" // lalr1.cc:859
break;
- case 156:
-#line 606 "d2_parser.yy" // lalr1.cc:859
+ case 169:
+#line 671 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1407 "d2_parser.cc" // lalr1.cc:859
+#line 1495 "d2_parser.cc" // lalr1.cc:859
break;
- case 157:
-#line 611 "d2_parser.yy" // lalr1.cc:859
+ case 170:
+#line 676 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1415 "d2_parser.cc" // lalr1.cc:859
+#line 1503 "d2_parser.cc" // lalr1.cc:859
break;
- case 158:
-#line 613 "d2_parser.yy" // lalr1.cc:859
+ case 171:
+#line 678 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1424 "d2_parser.cc" // lalr1.cc:859
+#line 1512 "d2_parser.cc" // lalr1.cc:859
break;
- case 159:
-#line 618 "d2_parser.yy" // lalr1.cc:859
+ case 172:
+#line 683 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1432 "d2_parser.cc" // lalr1.cc:859
+#line 1520 "d2_parser.cc" // lalr1.cc:859
break;
- case 160:
-#line 620 "d2_parser.yy" // lalr1.cc:859
+ case 173:
+#line 685 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1441 "d2_parser.cc" // lalr1.cc:859
+#line 1529 "d2_parser.cc" // lalr1.cc:859
break;
- case 161:
-#line 630 "d2_parser.yy" // lalr1.cc:859
+ case 174:
+#line 695 "d2_parser.yy" // lalr1.cc:859
{
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 1452 "d2_parser.cc" // lalr1.cc:859
+#line 1540 "d2_parser.cc" // lalr1.cc:859
break;
- case 162:
-#line 635 "d2_parser.yy" // lalr1.cc:859
+ case 175:
+#line 700 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1461 "d2_parser.cc" // lalr1.cc:859
+#line 1549 "d2_parser.cc" // lalr1.cc:859
break;
- case 166:
-#line 652 "d2_parser.yy" // lalr1.cc:859
+ case 179:
+#line 717 "d2_parser.yy" // lalr1.cc:859
{
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 1472 "d2_parser.cc" // lalr1.cc:859
+#line 1560 "d2_parser.cc" // lalr1.cc:859
break;
- case 167:
-#line 657 "d2_parser.yy" // lalr1.cc:859
+ case 180:
+#line 722 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1481 "d2_parser.cc" // lalr1.cc:859
+#line 1569 "d2_parser.cc" // lalr1.cc:859
break;
- case 170:
-#line 669 "d2_parser.yy" // lalr1.cc:859
+ case 183:
+#line 734 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 1491 "d2_parser.cc" // lalr1.cc:859
+#line 1579 "d2_parser.cc" // lalr1.cc:859
break;
- case 171:
-#line 673 "d2_parser.yy" // lalr1.cc:859
+ case 184:
+#line 738 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1499 "d2_parser.cc" // lalr1.cc:859
+#line 1587 "d2_parser.cc" // lalr1.cc:859
break;
- case 179:
-#line 688 "d2_parser.yy" // lalr1.cc:859
+ case 194:
+#line 755 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1507 "d2_parser.cc" // lalr1.cc:859
+#line 1595 "d2_parser.cc" // lalr1.cc:859
break;
- case 180:
-#line 690 "d2_parser.yy" // lalr1.cc:859
+ case 195:
+#line 757 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("name", name);
ctx.leave();
}
-#line 1517 "d2_parser.cc" // lalr1.cc:859
+#line 1605 "d2_parser.cc" // lalr1.cc:859
break;
- case 181:
-#line 696 "d2_parser.yy" // lalr1.cc:859
+ case 196:
+#line 763 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 1526 "d2_parser.cc" // lalr1.cc:859
+#line 1614 "d2_parser.cc" // lalr1.cc:859
break;
- case 182:
-#line 700 "d2_parser.yy" // lalr1.cc:859
+ case 197:
+#line 767 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1534 "d2_parser.cc" // lalr1.cc:859
+#line 1622 "d2_parser.cc" // lalr1.cc:859
break;
- case 183:
-#line 702 "d2_parser.yy" // lalr1.cc:859
+ case 198:
+#line 769 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 1544 "d2_parser.cc" // lalr1.cc:859
+#line 1632 "d2_parser.cc" // lalr1.cc:859
break;
- case 184:
-#line 708 "d2_parser.yy" // lalr1.cc:859
+ case 199:
+#line 775 "d2_parser.yy" // lalr1.cc:859
{
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 1555 "d2_parser.cc" // lalr1.cc:859
+#line 1643 "d2_parser.cc" // lalr1.cc:859
break;
- case 185:
-#line 713 "d2_parser.yy" // lalr1.cc:859
+ case 200:
+#line 780 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1564 "d2_parser.cc" // lalr1.cc:859
+#line 1652 "d2_parser.cc" // lalr1.cc:859
break;
- case 188:
-#line 722 "d2_parser.yy" // lalr1.cc:859
+ case 203:
+#line 789 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1574 "d2_parser.cc" // lalr1.cc:859
+#line 1662 "d2_parser.cc" // lalr1.cc:859
break;
- case 189:
-#line 726 "d2_parser.yy" // lalr1.cc:859
+ case 204:
+#line 793 "d2_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1582 "d2_parser.cc" // lalr1.cc:859
+#line 1670 "d2_parser.cc" // lalr1.cc:859
break;
- case 196:
-#line 740 "d2_parser.yy" // lalr1.cc:859
+ case 211:
+#line 807 "d2_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1590 "d2_parser.cc" // lalr1.cc:859
+#line 1678 "d2_parser.cc" // lalr1.cc:859
break;
- case 197:
-#line 742 "d2_parser.yy" // lalr1.cc:859
+ case 212:
+#line 809 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 1600 "d2_parser.cc" // lalr1.cc:859
+#line 1688 "d2_parser.cc" // lalr1.cc:859
break;
- case 198:
-#line 748 "d2_parser.yy" // lalr1.cc:859
+ case 213:
+#line 815 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush", flush);
}
-#line 1609 "d2_parser.cc" // lalr1.cc:859
+#line 1697 "d2_parser.cc" // lalr1.cc:859
break;
- case 199:
-#line 753 "d2_parser.yy" // lalr1.cc:859
+ case 214:
+#line 820 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxsize", maxsize);
}
-#line 1618 "d2_parser.cc" // lalr1.cc:859
+#line 1706 "d2_parser.cc" // lalr1.cc:859
break;
- case 200:
-#line 758 "d2_parser.yy" // lalr1.cc:859
+ case 215:
+#line 825 "d2_parser.yy" // lalr1.cc:859
{
ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxver", maxver);
}
-#line 1627 "d2_parser.cc" // lalr1.cc:859
+#line 1715 "d2_parser.cc" // lalr1.cc:859
break;
-#line 1631 "d2_parser.cc" // lalr1.cc:859
+#line 1719 "d2_parser.cc" // lalr1.cc:859
default:
break;
}
}
- const signed char D2Parser::yypact_ninf_ = -111;
+ const signed char D2Parser::yypact_ninf_ = -90;
const signed char D2Parser::yytable_ninf_ = -1;
const short int
D2Parser::yypact_[] =
{
- 20, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- 24, -2, 35, 51, 96, 31, 100, 101, 102, 103,
- -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, -2, 59,
- 2, 3, 10, 104, 4, 105, -6, 106, -111, 109,
- 114, 115, 110, 117, -111, -111, -111, -111, -111, 119,
- -111, 8, -111, -111, -111, -111, -111, -111, -111, 121,
- 122, -111, -111, -111, -111, -111, -111, 19, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, 123, -111,
- -111, -111, 25, -111, -111, -111, -111, -111, -111, 125,
- 118, -111, -111, -111, -111, -111, 68, -111, -111, -111,
- -111, -111, 127, 126, -111, -111, 124, -111, -111, 69,
- -111, -111, -111, -111, -111, 29, -111, -111, -2, -2,
- -111, 83, 131, 132, 133, 134, 135, -111, 2, -111,
- 136, 92, 93, 142, 143, 144, 145, 146, 3, -111,
- 147, 107, 148, 149, 10, -111, 10, -111, 104, 150,
- 151, 152, 4, -111, 4, -111, 105, 153, 108, 154,
- -6, -111, -6, 106, -111, -111, -111, 157, -2, -2,
- -2, 155, 156, -111, 113, -111, -111, 77, 158, 159,
- 160, 163, -111, 120, -111, 129, 130, -111, 71, -111,
- 137, 164, 138, -111, 72, -111, 139, -111, 140, -111,
- 75, -111, -2, -111, -111, -111, 3, 141, -111, -111,
- -111, -111, -111, -14, -14, 104, -111, -111, -111, -111,
- -111, 106, -111, -111, -111, -111, -111, -111, 78, -111,
- 79, -111, -111, -111, -111, 81, -111, -111, -111, 82,
- 166, 94, -111, 161, 141, -111, 169, -14, -111, -111,
- -111, -111, 165, -111, 171, -111, 170, 105, -111, 98,
- -111, 172, 22, 170, -111, -111, -111, -111, 178, -111,
- -111, 85, -111, -111, -111, -111, -111, -111, 181, 182,
- 162, 183, 22, -111, 167, 187, -111, 168, -111, -111,
- 186, -111, -111, 99, -111, 7, 186, -111, -111, 190,
- 191, 192, 91, -111, -111, -111, -111, -111, -111, 193,
- 173, 174, 176, 7, -111, 179, -111, -111, -111, -111,
- -111
+ 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
};
const unsigned char
{
0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 34, 28, 24, 23, 20, 21, 22, 27, 3,
- 25, 26, 41, 5, 53, 7, 139, 9, 131, 11,
- 96, 13, 88, 15, 116, 17, 110, 19, 36, 30,
- 0, 0, 0, 133, 0, 90, 0, 0, 38, 0,
- 37, 0, 0, 31, 155, 157, 159, 51, 161, 0,
- 50, 0, 43, 48, 45, 47, 49, 46, 66, 0,
- 0, 70, 74, 76, 78, 129, 65, 0, 55, 57,
- 58, 59, 60, 61, 62, 63, 64, 150, 0, 153,
- 148, 147, 0, 141, 143, 144, 145, 146, 137, 0,
- 134, 135, 106, 108, 104, 103, 0, 98, 100, 101,
- 102, 94, 0, 91, 92, 126, 0, 124, 123, 0,
- 118, 120, 121, 122, 114, 0, 112, 35, 0, 0,
- 29, 0, 0, 0, 0, 0, 0, 40, 0, 42,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
- 0, 0, 0, 0, 0, 140, 0, 132, 0, 0,
- 0, 0, 0, 97, 0, 89, 0, 0, 0, 0,
- 0, 117, 0, 0, 111, 39, 32, 0, 0, 0,
- 0, 0, 0, 44, 0, 68, 69, 0, 0, 0,
- 0, 0, 56, 0, 152, 0, 0, 142, 0, 136,
- 0, 0, 0, 99, 0, 93, 0, 128, 0, 119,
- 0, 113, 0, 156, 158, 160, 0, 0, 67, 72,
- 73, 71, 75, 80, 80, 133, 151, 154, 149, 138,
- 107, 0, 105, 95, 127, 125, 115, 33, 0, 166,
- 0, 163, 165, 86, 85, 0, 81, 82, 84, 0,
- 0, 0, 52, 0, 0, 162, 0, 0, 77, 79,
- 130, 109, 0, 164, 0, 83, 0, 90, 170, 0,
- 168, 0, 0, 0, 167, 87, 179, 184, 0, 182,
- 178, 0, 172, 174, 176, 177, 175, 169, 0, 0,
- 0, 0, 0, 171, 0, 0, 181, 0, 173, 180,
- 0, 183, 188, 0, 186, 0, 0, 185, 196, 0,
- 0, 0, 0, 190, 192, 193, 194, 195, 187, 0,
- 0, 0, 0, 0, 189, 0, 198, 199, 200, 191,
- 197
+ 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
};
const signed char
D2Parser::yypgoto_[] =
{
- -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -47, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -50, -111, -111, -111, 50, -111, -111, -111, -111,
- -27, 42, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, -33, -111, -65, -111, -111,
- -111, -111, -74, -111, 28, -111, -111, -111, 32, 33,
- -111, -111, -111, -111, -111, -111, -111, -111, -34, 26,
- -111, -111, -111, 30, 36, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -25, -111, 40, -111, -111, -111,
- 45, 49, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -111, -111, -111, -111, -49, -111,
- -111, -111, -63, -111, -111, -81, -111, -111, -111, -111,
- -111, -111, -111, -111, -94, -111, -111, -110, -111, -111,
- -111, -111, -111
+ -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
};
const short int
D2Parser::yydefgoto_[] =
{
-1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 28, 29, 30, 49, 62, 63, 31, 48, 59,
- 60, 86, 33, 50, 71, 72, 73, 145, 35, 51,
- 87, 88, 89, 150, 90, 91, 92, 153, 231, 93,
- 154, 94, 155, 95, 156, 255, 256, 257, 258, 266,
- 43, 55, 122, 123, 124, 174, 41, 54, 116, 117,
- 118, 171, 119, 169, 120, 170, 47, 57, 135, 136,
- 182, 45, 56, 129, 130, 131, 179, 132, 177, 133,
- 96, 157, 39, 53, 109, 110, 111, 166, 37, 52,
- 102, 103, 104, 163, 105, 160, 106, 107, 162, 74,
- 142, 75, 143, 76, 144, 77, 146, 250, 251, 252,
- 263, 279, 280, 282, 291, 292, 293, 298, 294, 295,
- 301, 296, 299, 313, 314, 315, 322, 323, 324, 329,
- 325, 326, 327
+ 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
};
const unsigned short int
D2Parser::yytable_[] =
{
- 70, 58, 101, 21, 115, 22, 128, 23, 125, 126,
- 253, 148, 64, 65, 66, 67, 149, 78, 79, 80,
- 81, 127, 158, 82, 20, 83, 84, 159, 164, 112,
- 113, 85, 183, 165, 68, 184, 38, 69, 114, 97,
- 98, 99, 32, 318, 100, 69, 319, 320, 321, 24,
- 25, 26, 27, 69, 69, 69, 286, 287, 34, 288,
- 289, 69, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 172, 180, 69, 164, 172, 173, 181, 180, 239,
- 243, 158, 264, 246, 267, 267, 262, 265, 302, 268,
- 269, 185, 186, 303, 333, 229, 230, 183, 70, 334,
- 271, 283, 316, 36, 284, 317, 42, 40, 46, 44,
- 61, 108, 121, 134, 101, 137, 101, 138, 140, 139,
- 141, 168, 115, 147, 115, 151, 152, 161, 178, 176,
- 128, 167, 128, 175, 187, 188, 189, 190, 191, 192,
- 194, 223, 224, 225, 195, 196, 197, 198, 199, 200,
- 201, 203, 205, 206, 210, 211, 212, 216, 218, 204,
- 217, 222, 226, 227, 228, 272, 233, 234, 235, 241,
- 276, 236, 270, 274, 249, 247, 277, 278, 285, 232,
- 237, 238, 300, 254, 254, 304, 305, 307, 240, 242,
- 244, 245, 310, 312, 330, 331, 332, 335, 193, 248,
- 202, 259, 275, 281, 215, 213, 214, 261, 209, 221,
- 260, 208, 220, 207, 306, 273, 219, 254, 309, 311,
- 297, 308, 328, 339, 0, 0, 337, 336, 338, 0,
- 340, 0, 290, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 290
+ 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
};
const short int
D2Parser::yycheck_[] =
{
- 50, 48, 52, 5, 54, 7, 56, 9, 14, 15,
- 24, 3, 10, 11, 12, 13, 8, 14, 15, 16,
- 17, 27, 3, 20, 0, 22, 23, 8, 3, 25,
- 26, 28, 3, 8, 32, 6, 5, 51, 34, 29,
- 30, 31, 7, 36, 34, 51, 39, 40, 41, 51,
- 52, 53, 54, 51, 51, 51, 34, 35, 7, 37,
- 38, 51, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 3, 3, 51, 3, 3, 8, 8, 3, 8,
- 8, 3, 3, 8, 3, 3, 8, 8, 3, 8,
- 8, 138, 139, 8, 3, 18, 19, 3, 148, 8,
- 6, 3, 3, 7, 6, 6, 5, 7, 5, 7,
- 51, 7, 7, 7, 164, 6, 166, 3, 8, 4,
- 3, 3, 172, 4, 174, 4, 4, 4, 4, 3,
- 180, 6, 182, 6, 51, 4, 4, 4, 4, 4,
- 4, 188, 189, 190, 52, 52, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 52,
- 52, 4, 7, 7, 51, 4, 7, 7, 5, 5,
- 5, 51, 6, 4, 33, 222, 5, 7, 6, 21,
- 51, 51, 4, 233, 234, 4, 4, 4, 51, 51,
- 51, 51, 5, 7, 4, 4, 4, 4, 148, 226,
- 158, 234, 267, 277, 176, 172, 174, 241, 168, 183,
- 235, 166, 182, 164, 52, 264, 180, 267, 51, 51,
- 283, 302, 316, 333, -1, -1, 52, 54, 52, -1,
- 51, -1, 282, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 302
+ 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
};
const unsigned char
D2Parser::yystos_[] =
{
- 0, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 0, 5, 7, 9, 51, 52, 53, 54, 66, 67,
- 68, 72, 7, 77, 7, 83, 7, 143, 5, 137,
- 7, 111, 5, 105, 7, 126, 5, 121, 73, 69,
- 78, 84, 144, 138, 112, 106, 127, 122, 66, 74,
- 75, 51, 70, 71, 10, 11, 12, 13, 32, 51,
- 76, 79, 80, 81, 154, 156, 158, 160, 14, 15,
- 16, 17, 20, 22, 23, 28, 76, 85, 86, 87,
- 89, 90, 91, 94, 96, 98, 135, 29, 30, 31,
- 34, 76, 145, 146, 147, 149, 151, 152, 7, 139,
- 140, 141, 25, 26, 34, 76, 113, 114, 115, 117,
- 119, 7, 107, 108, 109, 14, 15, 27, 76, 128,
- 129, 130, 132, 134, 7, 123, 124, 6, 3, 4,
- 8, 3, 155, 157, 159, 82, 161, 4, 3, 8,
- 88, 4, 4, 92, 95, 97, 99, 136, 3, 8,
- 150, 4, 153, 148, 3, 8, 142, 6, 3, 118,
- 120, 116, 3, 8, 110, 6, 3, 133, 4, 131,
- 3, 8, 125, 3, 6, 66, 66, 51, 4, 4,
- 4, 4, 4, 80, 4, 52, 52, 4, 4, 4,
- 4, 4, 86, 4, 52, 4, 4, 146, 145, 141,
- 4, 4, 4, 114, 113, 109, 4, 52, 4, 129,
- 128, 124, 4, 66, 66, 66, 7, 7, 51, 18,
- 19, 93, 21, 7, 7, 5, 51, 51, 51, 8,
- 51, 5, 51, 8, 51, 51, 8, 66, 85, 33,
- 162, 163, 164, 24, 76, 100, 101, 102, 103, 100,
- 139, 123, 8, 165, 3, 8, 104, 3, 8, 8,
- 6, 6, 4, 163, 4, 102, 5, 5, 7, 166,
- 167, 107, 168, 3, 6, 6, 34, 35, 37, 38,
- 76, 169, 170, 171, 173, 174, 176, 167, 172, 177,
- 4, 175, 3, 8, 4, 4, 52, 4, 170, 51,
- 5, 51, 7, 178, 179, 180, 3, 6, 36, 39,
- 40, 41, 181, 182, 183, 185, 186, 187, 179, 184,
- 4, 4, 4, 3, 8, 4, 54, 52, 52, 182,
- 51
+ 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
};
const unsigned char
D2Parser::yyr1_[] =
{
- 0, 55, 57, 56, 58, 56, 59, 56, 60, 56,
- 61, 56, 62, 56, 63, 56, 64, 56, 65, 56,
- 66, 66, 66, 66, 66, 66, 66, 67, 69, 68,
- 70, 70, 71, 71, 73, 72, 74, 74, 75, 75,
- 76, 78, 77, 79, 79, 80, 80, 80, 80, 80,
- 80, 82, 81, 84, 83, 85, 85, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 88, 87, 89, 90,
- 92, 91, 93, 93, 95, 94, 97, 96, 99, 98,
- 100, 100, 101, 101, 102, 102, 104, 103, 106, 105,
- 107, 107, 108, 108, 110, 109, 112, 111, 113, 113,
- 114, 114, 114, 114, 116, 115, 118, 117, 120, 119,
- 122, 121, 123, 123, 125, 124, 127, 126, 128, 128,
- 129, 129, 129, 129, 131, 130, 133, 132, 134, 136,
- 135, 138, 137, 139, 139, 140, 140, 142, 141, 144,
- 143, 145, 145, 146, 146, 146, 146, 146, 148, 147,
- 150, 149, 151, 153, 152, 155, 154, 157, 156, 159,
- 158, 161, 160, 162, 162, 163, 165, 164, 166, 166,
- 168, 167, 169, 169, 170, 170, 170, 170, 170, 172,
- 171, 173, 175, 174, 177, 176, 178, 178, 180, 179,
- 181, 181, 182, 182, 182, 182, 184, 183, 185, 186,
- 187
+ 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
};
const unsigned char
0, 2, 0, 3, 0, 3, 0, 3, 0, 3,
0, 3, 0, 3, 0, 3, 0, 3, 0, 3,
1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
- 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, 0, 4, 3, 3,
- 0, 4, 1, 1, 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, 0, 4, 0, 4, 0, 6,
- 0, 4, 1, 3, 0, 4, 0, 4, 1, 3,
- 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, 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, 0,
- 4, 3, 0, 4, 0, 6, 1, 3, 0, 4,
- 1, 3, 1, 1, 1, 1, 0, 4, 3, 3,
- 3
+ 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
};
"\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp6\"", "\"Dhcp4\"",
"\"Control-agent\"", "\"DhcpDdns\"", "\"ip-address\"", "\"port\"",
"\"dns-server-timeout\"", "\"ncr-protocol\"", "\"UDP\"", "\"TCP\"",
- "\"ncr-format\"", "\"JSON\"", "\"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_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", "dhcpddns_params", "dhcpddns_param",
- "ip_address", "$@15", "port", "dns_server_timeout", "ncr_protocol",
- "$@16", "ncr_protocol_value", "ncr_format", "$@17", "forward_ddns",
- "$@18", "reverse_ddns", "$@19", "ddns_mgr_params",
- "not_empty_ddns_mgr_params", "ddns_mgr_param", "ddns_domains", "$@20",
- "sub_ddns_domains", "$@21", "ddns_domain_list",
- "not_empty_ddns_domain_list", "ddns_domain", "$@22", "sub_ddns_domain",
- "$@23", "ddns_domain_params", "ddns_domain_param", "ddns_domain_name",
- "$@24", "ddns_domain_key_name", "$@25", "dns_servers", "$@26",
- "sub_dns_servers", "$@27", "dns_server_list", "dns_server", "$@28",
- "sub_dns_server", "$@29", "dns_server_params", "dns_server_param",
- "dns_server_hostname", "$@30", "dns_server_ip_address", "$@31",
- "dns_server_port", "tsig_keys", "$@32", "sub_tsig_keys", "$@33",
- "tsig_keys_list", "not_empty_tsig_keys_list", "tsig_key", "$@34",
- "sub_tsig_key", "$@35", "tsig_key_params", "tsig_key_param",
- "tsig_key_name", "$@36", "tsig_key_algorithm", "$@37",
- "tsig_key_digest_bits", "tsig_key_secret", "$@38", "dhcp6_json_object",
- "$@39", "dhcp4_json_object", "$@40", "control_agent_json_object", "$@41",
- "logging_object", "$@42", "logging_params", "logging_param", "loggers",
- "$@43", "loggers_entries", "logger_entry", "$@44", "logger_params",
- "logger_param", "name", "$@45", "debuglevel", "severity", "$@46",
- "output_options_list", "$@47", "output_options_list_content",
- "output_entry", "$@48", "output_params_list", "output_params", "output",
- "$@49", "flush", "maxsize", "maxver", YY_NULLPTR
+ "\"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",
+ "list_generic", "$@11", "list_content", "not_empty_list",
+ "unknown_map_entry", "syntax_map", "$@12", "global_objects",
+ "global_object", "dhcpddns_object", "$@13", "sub_dhcpddns", "$@14",
+ "dhcpddns_params", "dhcpddns_param", "ip_address", "$@15", "port",
+ "dns_server_timeout", "ncr_protocol", "$@16", "ncr_protocol_value",
+ "ncr_format", "$@17", "user_context", "$@18", "comment", "$@19",
+ "forward_ddns", "$@20", "reverse_ddns", "$@21", "ddns_mgr_params",
+ "not_empty_ddns_mgr_params", "ddns_mgr_param", "ddns_domains", "$@22",
+ "sub_ddns_domains", "$@23", "ddns_domain_list",
+ "not_empty_ddns_domain_list", "ddns_domain", "$@24", "sub_ddns_domain",
+ "$@25", "ddns_domain_params", "ddns_domain_param", "ddns_domain_name",
+ "$@26", "ddns_domain_key_name", "$@27", "dns_servers", "$@28",
+ "sub_dns_servers", "$@29", "dns_server_list", "dns_server", "$@30",
+ "sub_dns_server", "$@31", "dns_server_params", "dns_server_param",
+ "dns_server_hostname", "$@32", "dns_server_ip_address", "$@33",
+ "dns_server_port", "tsig_keys", "$@34", "sub_tsig_keys", "$@35",
+ "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
};
#if D2_PARSER_DEBUG
const unsigned short int
D2Parser::yyrline_[] =
{
- 0, 117, 117, 117, 118, 118, 119, 119, 120, 120,
- 121, 121, 122, 122, 123, 123, 124, 124, 125, 125,
- 133, 134, 135, 136, 137, 138, 139, 142, 147, 147,
- 159, 160, 163, 167, 174, 174, 181, 182, 185, 189,
- 200, 210, 210, 222, 223, 227, 228, 229, 230, 231,
- 232, 237, 237, 247, 247, 255, 256, 260, 261, 262,
- 263, 264, 265, 266, 267, 268, 271, 271, 279, 287,
- 296, 296, 304, 305, 308, 308, 316, 316, 326, 326,
- 336, 337, 340, 341, 344, 345, 350, 350, 360, 360,
- 367, 368, 371, 372, 375, 375, 383, 383, 390, 391,
- 394, 395, 396, 397, 401, 401, 413, 413, 425, 425,
- 435, 435, 442, 443, 446, 446, 454, 454, 461, 462,
- 465, 466, 467, 468, 471, 471, 483, 483, 491, 505,
- 505, 515, 515, 522, 523, 526, 527, 530, 530, 538,
- 538, 547, 548, 551, 552, 553, 554, 555, 558, 558,
- 570, 570, 581, 589, 589, 604, 604, 611, 611, 618,
- 618, 630, 630, 643, 644, 648, 652, 652, 664, 665,
- 669, 669, 677, 678, 681, 682, 683, 684, 685, 688,
- 688, 696, 700, 700, 708, 708, 718, 719, 722, 722,
- 730, 731, 734, 735, 736, 737, 740, 740, 748, 753,
- 758
+ 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
};
// Print the state stack on the debug stream.
#line 14 "d2_parser.yy" // lalr1.cc:1167
} } // isc::d2
-#line 2272 "d2_parser.cc" // lalr1.cc:1167
-#line 763 "d2_parser.yy" // lalr1.cc:1168
+#line 2373 "d2_parser.cc" // lalr1.cc:1167
+#line 830 "d2_parser.yy" // lalr1.cc:1168
void
union union_type
{
// value
+ // map_value
// ncr_protocol_value
char dummy1[sizeof(ElementPtr)];
TOKEN_TCP = 274,
TOKEN_NCR_FORMAT = 275,
TOKEN_JSON = 276,
- TOKEN_FORWARD_DDNS = 277,
- TOKEN_REVERSE_DDNS = 278,
- TOKEN_DDNS_DOMAINS = 279,
- TOKEN_KEY_NAME = 280,
- TOKEN_DNS_SERVERS = 281,
- TOKEN_HOSTNAME = 282,
- TOKEN_TSIG_KEYS = 283,
- TOKEN_ALGORITHM = 284,
- TOKEN_DIGEST_BITS = 285,
- TOKEN_SECRET = 286,
- TOKEN_LOGGING = 287,
- TOKEN_LOGGERS = 288,
- TOKEN_NAME = 289,
- TOKEN_OUTPUT_OPTIONS = 290,
- TOKEN_OUTPUT = 291,
- TOKEN_DEBUGLEVEL = 292,
- TOKEN_SEVERITY = 293,
- TOKEN_FLUSH = 294,
- TOKEN_MAXSIZE = 295,
- TOKEN_MAXVER = 296,
- TOKEN_TOPLEVEL_JSON = 297,
- TOKEN_TOPLEVEL_DHCPDDNS = 298,
- TOKEN_SUB_DHCPDDNS = 299,
- TOKEN_SUB_TSIG_KEY = 300,
- TOKEN_SUB_TSIG_KEYS = 301,
- TOKEN_SUB_DDNS_DOMAIN = 302,
- TOKEN_SUB_DDNS_DOMAINS = 303,
- TOKEN_SUB_DNS_SERVER = 304,
- TOKEN_SUB_DNS_SERVERS = 305,
- TOKEN_STRING = 306,
- TOKEN_INTEGER = 307,
- TOKEN_FLOAT = 308,
- TOKEN_BOOLEAN = 309
+ TOKEN_USER_CONTEXT = 277,
+ TOKEN_COMMENT = 278,
+ TOKEN_FORWARD_DDNS = 279,
+ TOKEN_REVERSE_DDNS = 280,
+ TOKEN_DDNS_DOMAINS = 281,
+ TOKEN_KEY_NAME = 282,
+ TOKEN_DNS_SERVERS = 283,
+ TOKEN_HOSTNAME = 284,
+ TOKEN_TSIG_KEYS = 285,
+ 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
};
};
symbol_type
make_JSON (const location_type& l);
+ static inline
+ symbol_type
+ make_USER_CONTEXT (const location_type& l);
+
+ static inline
+ symbol_type
+ make_COMMENT (const location_type& l);
+
static inline
symbol_type
make_FORWARD_DDNS (const location_type& l);
enum
{
yyeof_ = 0,
- yylast_ = 252, ///< Last index in yytable_.
- yynnts_ = 133, ///< Number of nonterminal symbols.
+ yylast_ = 282, ///< Last index in yytable_.
+ yynnts_ = 138, ///< Number of nonterminal symbols.
yyfinal_ = 20, ///< Termination state number.
yyterror_ = 1,
yyerrcode_ = 256,
- yyntokens_ = 55 ///< Number of tokens.
+ yyntokens_ = 57 ///< Number of tokens.
};
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
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56
};
- const unsigned int user_token_number_max_ = 309;
+ const unsigned int user_token_number_max_ = 311;
const token_number_type undef_token_ = 2;
if (static_cast<int>(t) <= yyeof_)
{
switch (other.type_get ())
{
- case 66: // value
- case 93: // ncr_protocol_value
+ case 68: // value
+ case 72: // map_value
+ case 96: // ncr_protocol_value
value.copy< ElementPtr > (other.value);
break;
- case 54: // "boolean"
+ case 56: // "boolean"
value.copy< bool > (other.value);
break;
- case 53: // "floating point"
+ case 55: // "floating point"
value.copy< double > (other.value);
break;
- case 52: // "integer"
+ case 54: // "integer"
value.copy< int64_t > (other.value);
break;
- case 51: // "constant string"
+ case 53: // "constant string"
value.copy< std::string > (other.value);
break;
(void) v;
switch (this->type_get ())
{
- case 66: // value
- case 93: // ncr_protocol_value
+ case 68: // value
+ case 72: // map_value
+ case 96: // ncr_protocol_value
value.copy< ElementPtr > (v);
break;
- case 54: // "boolean"
+ case 56: // "boolean"
value.copy< bool > (v);
break;
- case 53: // "floating point"
+ case 55: // "floating point"
value.copy< double > (v);
break;
- case 52: // "integer"
+ case 54: // "integer"
value.copy< int64_t > (v);
break;
- case 51: // "constant string"
+ case 53: // "constant string"
value.copy< std::string > (v);
break;
// Type destructor.
switch (yytype)
{
- case 66: // value
- case 93: // ncr_protocol_value
+ case 68: // value
+ case 72: // map_value
+ case 96: // ncr_protocol_value
value.template destroy< ElementPtr > ();
break;
- case 54: // "boolean"
+ case 56: // "boolean"
value.template destroy< bool > ();
break;
- case 53: // "floating point"
+ case 55: // "floating point"
value.template destroy< double > ();
break;
- case 52: // "integer"
+ case 54: // "integer"
value.template destroy< int64_t > ();
break;
- case 51: // "constant string"
+ case 53: // "constant string"
value.template destroy< std::string > ();
break;
super_type::move(s);
switch (this->type_get ())
{
- case 66: // value
- case 93: // ncr_protocol_value
+ case 68: // value
+ case 72: // map_value
+ case 96: // ncr_protocol_value
value.move< ElementPtr > (s.value);
break;
- case 54: // "boolean"
+ case 56: // "boolean"
value.move< bool > (s.value);
break;
- case 53: // "floating point"
+ case 55: // "floating point"
value.move< double > (s.value);
break;
- case 52: // "integer"
+ case 54: // "integer"
value.move< int64_t > (s.value);
break;
- case 51: // "constant string"
+ case 53: // "constant string"
value.move< std::string > (s.value);
break;
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
+ 305, 306, 307, 308, 309, 310, 311
};
return static_cast<token_type> (yytoken_number_[type]);
}
return symbol_type (token::TOKEN_JSON, l);
}
+ D2Parser::symbol_type
+ D2Parser::make_USER_CONTEXT (const location_type& l)
+ {
+ return symbol_type (token::TOKEN_USER_CONTEXT, l);
+ }
+
+ D2Parser::symbol_type
+ D2Parser::make_COMMENT (const location_type& l)
+ {
+ return symbol_type (token::TOKEN_COMMENT, l);
+ }
+
D2Parser::symbol_type
D2Parser::make_FORWARD_DDNS (const location_type& l)
{
#line 14 "d2_parser.yy" // lalr1.cc:377
} } // isc::d2
-#line 1602 "d2_parser.h" // lalr1.cc:377
+#line 1630 "d2_parser.h" // lalr1.cc:377
%token <bool> BOOLEAN "boolean"
%type <ElementPtr> value
+%type <ElementPtr> map_value
%type <ElementPtr> ncr_protocol_value
%printer { yyoutput << $$; } <*>;
-// Generated 201710081556
+// Generated 201801020209
// A Bison parser, made by GNU Bison 3.0.4.
// Locations for Bison parsers in C++
-// Generated 201710081556
+// Generated 201801020209
// A Bison parser, made by GNU Bison 3.0.4.
// Positions for Bison parsers in C++
-// Generated 201710081556
+// Generated 201801020209
// A Bison parser, made by GNU Bison 3.0.4.
// Stack handling for Bison parsers in C++