-#line 1 "agent_lexer.cc"
+#line 2 "agent_lexer.cc"
-#line 3 "agent_lexer.cc"
+#line 4 "agent_lexer.cc"
#define YY_INT_ALIGNED short int
/* %% [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 58
-#define YY_END_OF_BUFFER 59
+#define YY_NUM_RULES 59
+#define YY_END_OF_BUFFER 60
/* 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[320] =
+static const flex_int16_t yy_accept[326] =
{ 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,
+ 52, 52, 0, 0, 0, 0, 0, 0, 0, 0,
+ 60, 58, 10, 11, 58, 1, 52, 49, 52, 52,
+ 58, 51, 50, 58, 58, 58, 58, 58, 45, 46,
+ 58, 58, 58, 47, 48, 5, 5, 5, 58, 58,
+ 58, 10, 11, 0, 0, 41, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 1, 52, 52, 0, 51, 52, 3, 2, 6,
+ 0, 52, 0, 0, 0, 0, 0, 0, 4, 0,
+ 0, 9, 0, 42, 0, 0, 0, 0, 0, 44,
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, 42, 0, 0, 0, 20, 0, 0, 0,
+ 0, 0, 43, 0, 0, 0, 20, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 56, 54, 0, 53, 52, 0, 0,
+ 0, 0, 0, 0, 57, 55, 0, 54, 53, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 55, 52, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 56, 53, 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
+ 0, 0, 0, 0, 0, 0, 29, 0, 0, 0,
+
+ 0, 0, 23, 0, 0, 0, 0, 38, 39, 0,
+ 0, 0, 0, 0, 18, 19, 32, 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, 34, 31, 0, 0, 0, 0, 0,
+ 0, 0, 0, 27, 16, 0, 0, 0, 0, 0,
+ 25, 28, 33, 0, 0, 35, 0, 0, 0, 0,
+ 0, 40, 0, 0, 0, 0, 0, 0, 0, 37,
+ 0, 0, 0, 0, 0, 0, 0, 13, 14, 0,
+ 0, 0, 0, 0, 0, 0, 36, 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[332] =
+static const flex_int16_t yy_base[338] =
{ 0,
0, 0, 61, 64, 67, 0, 65, 69, 49, 66,
- 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,
+ 277, 2165, 86, 269, 129, 0, 124, 2165, 172, 129,
+ 84, 178, 2165, 250, 91, 76, 71, 89, 2165, 2165,
+ 96, 91, 95, 2165, 2165, 2165, 87, 250, 196, 0,
+ 222, 119, 236, 114, 199, 2165, 205, 215, 222, 209,
235, 252, 273, 279, 287, 297, 304, 310, 317, 323,
- 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,
+ 345, 0, 345, 367, 361, 374, 387, 2165, 0, 2165,
+ 144, 215, 128, 134, 119, 171, 185, 135, 2165, 172,
+ 204, 2165, 161, 2165, 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
+ 199, 209, 212, 221, 219, 149, 2165, 0, 618, 633,
+ 639, 167, 2165, 672, 655, 645, 2165, 700, 715, 722,
+ 728, 735, 742, 758, 777, 783, 795, 802, 808, 814,
+ 820, 826, 851, 242, 2165, 2165, 275, 2165, 2165, 109,
+ 0, 863, 871, 877, 910, 912, 937, 954, 960, 967,
+ 978, 985, 991, 998, 1004, 1013, 1021, 1035, 1041, 1051,
+ 1057, 1063, 1071, 1077, 2165, 2165, 122, 0, 1093, 1101,
+ 1112, 1118, 1128, 1165, 1136, 1148, 1163, 1194, 1211, 1217,
+ 1224, 1230, 1236, 1242, 1248, 1261, 2165, 1255, 1267, 1278,
+
+ 1291, 1285, 2165, 1298, 109, 0, 1315, 2165, 2165, 1321,
+ 1333, 1340, 1346, 1356, 2165, 2165, 2165, 1364, 1381, 1387,
+ 1399, 1405, 1412, 1418, 1425, 1440, 1449, 1462, 1468, 1475,
+ 2165, 1485, 1499, 1505, 1512, 1521, 1527, 1535, 1542, 1548,
+ 1557, 1563, 1570, 2165, 2165, 1584, 1601, 1607, 1614, 1620,
+ 1626, 1644, 1650, 2165, 2165, 1656, 1662, 1686, 1692, 1699,
+ 2165, 2165, 2165, 1705, 1711, 2165, 1717, 1727, 1735, 1742,
+ 1757, 2165, 1765, 1772, 1778, 1784, 1802, 1808, 1820, 2165,
+ 1826, 1832, 1838, 1844, 1850, 1856, 1863, 2165, 2165, 1875,
+ 1891, 1901, 1910, 1916, 1922, 1928, 2165, 1936, 1947, 2165,
+
+ 1953, 1959, 1967, 1975, 1984, 1990, 1998, 2165, 2165, 2005,
+ 2011, 2026, 2036, 2048, 2165, 2165, 2054, 2061, 2071, 2084,
+ 2091, 2165, 2165, 2165, 2165, 2126, 2131, 2136, 2141, 2146,
+ 2151, 2156, 2159, 132, 128, 121, 111
} ;
-static const flex_int16_t yy_def[332] =
+static const flex_int16_t yy_def[338] =
{ 0,
- 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
+ 325, 1, 326, 326, 1, 5, 5, 5, 5, 5,
+ 325, 325, 325, 325, 327, 328, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 329,
+ 325, 325, 325, 330, 327, 325, 327, 327, 327, 331,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 328, 325, 325, 325, 325, 325, 325, 332, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 329, 325, 330, 325, 325, 327, 327, 327, 333, 327,
+ 331, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+
+ 327, 327, 327, 327, 327, 327, 327, 327, 332, 325,
+ 325, 325, 325, 325, 325, 325, 325, 334, 327, 327,
+ 327, 333, 325, 331, 327, 327, 325, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 325, 325, 325, 325, 325, 325, 325,
+ 335, 327, 327, 327, 331, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 325, 325, 325, 336, 327, 327,
+ 327, 327, 327, 331, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 325, 327, 327, 327,
+
+ 327, 327, 325, 327, 325, 337, 327, 325, 325, 327,
+ 327, 327, 327, 327, 325, 325, 325, 327, 327, 327,
+ 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 325, 327, 327, 327, 327, 327, 327, 327, 327, 327,
+ 327, 327, 327, 325, 325, 327, 327, 327, 327, 327,
+ 327, 327, 327, 325, 325, 327, 327, 327, 327, 327,
+ 325, 325, 325, 327, 327, 325, 327, 327, 327, 327,
+ 327, 325, 327, 327, 327, 327, 327, 327, 327, 325,
+ 327, 327, 327, 327, 327, 327, 327, 325, 325, 327,
+ 327, 327, 327, 327, 327, 327, 325, 327, 327, 325,
+
+ 327, 327, 327, 327, 327, 327, 327, 325, 325, 327,
+ 327, 327, 327, 327, 325, 325, 327, 327, 327, 327,
+ 327, 325, 325, 325, 0, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325
} ;
-static const flex_int16_t yy_nxt[2165] =
+static const flex_int16_t yy_nxt[2228] =
{ 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, 203, 74, 12, 12, 44,
- 44, 44, 176, 76, 46, 63, 150, 64, 64, 64,
+ 42, 12, 42, 74, 75, 206, 74, 12, 12, 44,
+ 44, 44, 178, 76, 46, 63, 151, 64, 64, 64,
64, 75, 67, 67, 67, 67, 77, 78, 85, 65,
- 227, 112, 47, 48, 65, 110, 49, 72, 72, 72,
- 72, 111, 202, 50, 175, 65, 84, 112, 51, 52,
+ 231, 112, 47, 48, 65, 110, 49, 72, 72, 72,
+ 72, 111, 205, 50, 177, 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,
+ 115, 66, 66, 66, 66, 85, 150, 65, 110, 44,
- 44, 44, 143, 65, 46, 44, 44, 44, 123, 117,
+ 44, 44, 144, 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
+ 46, 45, 44, 44, 44, 144, 145, 46, 72, 72,
+ 72, 72, 114, 50, 146, 44, 44, 44, 43, 50,
+ 46, 82, 144, 45, 146, 80, 145, 45, 145, 50,
+ 146, 45, 44, 44, 44, 86, 50, 46, 45, 87,
+ 149, 45, 79, 45, 91, 147, 93, 175, 148, 50,
+ 70, 43, 88, 44, 44, 44, 325, 325, 46, 44,
+ 44, 44, 325, 175, 46, 92, 50, 44, 44, 44,
+ 325, 325, 46, 94, 325, 325, 95, 44, 44, 44,
+
+ 175, 325, 46, 325, 44, 44, 44, 50, 325, 46,
+ 44, 44, 44, 50, 325, 46, 176, 44, 44, 44,
+ 96, 50, 46, 44, 44, 44, 325, 325, 46, 97,
+ 325, 50, 99, 98, 101, 325, 325, 100, 50, 325,
+ 325, 102, 325, 325, 50, 44, 44, 44, 325, 325,
+ 46, 50, 325, 325, 104, 325, 325, 50, 67, 67,
+ 67, 67, 325, 325, 105, 103, 325, 325, 325, 71,
+ 65, 71, 325, 106, 72, 72, 72, 72, 63, 50,
+ 64, 64, 64, 64, 325, 63, 65, 66, 66, 66,
+ 66, 325, 65, 325, 107, 325, 325, 83, 108, 65,
+
+ 67, 67, 67, 67, 83, 44, 44, 44, 65, 325,
+ 46, 325, 65, 325, 325, 65, 44, 44, 44, 325,
+ 325, 46, 44, 44, 44, 325, 83, 46, 65, 325,
+ 83, 325, 325, 325, 83, 44, 44, 44, 325, 50,
+ 46, 83, 325, 325, 83, 325, 83, 118, 325, 325,
+ 50, 325, 325, 325, 119, 120, 50, 44, 44, 44,
+ 325, 325, 46, 325, 325, 121, 325, 325, 325, 50,
+ 124, 124, 124, 124, 325, 325, 325, 325, 124, 124,
+ 124, 124, 124, 124, 44, 44, 44, 325, 325, 127,
+ 325, 50, 325, 325, 124, 124, 124, 124, 124, 124,
+
+ 325, 325, 44, 44, 44, 125, 126, 46, 44, 44,
+ 44, 325, 325, 46, 44, 44, 44, 325, 50, 46,
+ 44, 44, 44, 325, 325, 46, 44, 44, 44, 325,
+ 325, 46, 325, 44, 44, 44, 50, 325, 46, 325,
+ 128, 325, 50, 325, 44, 44, 44, 129, 50, 46,
+ 44, 44, 44, 325, 50, 46, 44, 44, 44, 325,
+ 50, 46, 325, 44, 44, 44, 325, 50, 46, 130,
+ 131, 133, 44, 44, 44, 325, 325, 46, 50, 325,
+ 132, 44, 44, 44, 50, 325, 46, 134, 325, 325,
+ 50, 44, 44, 44, 325, 325, 46, 50, 44, 44,
+
+ 44, 325, 325, 46, 136, 325, 50, 135, 44, 44,
+ 44, 325, 325, 46, 325, 50, 325, 137, 44, 44,
+ 44, 325, 325, 46, 138, 50, 139, 325, 325, 325,
+ 141, 325, 50, 44, 44, 44, 325, 140, 46, 44,
+ 44, 44, 50, 142, 46, 44, 44, 44, 325, 143,
+ 46, 325, 50, 325, 325, 44, 44, 44, 325, 325,
+ 46, 325, 325, 325, 325, 325, 325, 50, 325, 325,
+ 325, 325, 152, 50, 325, 325, 325, 325, 325, 50,
+ 325, 325, 154, 325, 153, 155, 155, 155, 155, 50,
+ 325, 325, 325, 155, 155, 155, 155, 155, 155, 157,
+
+ 44, 44, 44, 156, 325, 46, 325, 325, 325, 155,
+ 155, 155, 155, 155, 155, 44, 44, 44, 325, 325,
+ 46, 325, 44, 44, 44, 325, 325, 46, 44, 44,
+ 44, 325, 325, 46, 50, 44, 44, 44, 325, 325,
+ 46, 325, 44, 44, 44, 325, 325, 46, 325, 50,
+ 325, 325, 325, 325, 325, 158, 50, 325, 44, 44,
+ 44, 325, 50, 46, 325, 325, 159, 325, 325, 50,
+ 325, 325, 325, 325, 161, 160, 50, 44, 44, 44,
+ 325, 325, 46, 44, 44, 44, 162, 325, 46, 325,
+ 325, 325, 50, 325, 163, 44, 44, 44, 325, 325,
+
+ 46, 164, 44, 44, 44, 325, 325, 46, 44, 44,
+ 44, 50, 325, 46, 44, 44, 44, 50, 325, 46,
+ 44, 44, 44, 325, 167, 46, 44, 44, 44, 50,
+ 165, 46, 325, 166, 325, 325, 50, 325, 325, 169,
+ 325, 325, 50, 325, 325, 325, 168, 325, 50, 325,
+ 325, 44, 44, 44, 50, 171, 46, 325, 325, 325,
+ 50, 325, 170, 44, 44, 44, 172, 325, 46, 325,
+ 325, 44, 44, 44, 325, 325, 46, 44, 44, 44,
+ 325, 325, 46, 173, 325, 50, 180, 181, 325, 325,
+ 325, 325, 325, 325, 325, 182, 325, 50, 325, 325,
+
+ 325, 325, 325, 174, 325, 50, 325, 325, 325, 325,
+ 325, 50, 44, 44, 44, 179, 325, 46, 325, 325,
+ 325, 325, 183, 184, 184, 184, 184, 325, 325, 325,
+ 325, 184, 184, 184, 184, 184, 184, 44, 44, 44,
+ 325, 325, 46, 325, 325, 325, 50, 184, 184, 184,
+ 184, 184, 184, 185, 44, 44, 44, 325, 325, 46,
+ 44, 44, 44, 325, 325, 46, 325, 44, 44, 44,
+ 325, 50, 46, 325, 325, 188, 189, 325, 44, 44,
+ 44, 325, 325, 46, 325, 44, 44, 44, 50, 186,
+ 46, 44, 44, 44, 50, 192, 46, 187, 44, 44,
+
+ 44, 50, 325, 46, 44, 44, 44, 325, 325, 46,
+ 325, 190, 50, 44, 44, 44, 325, 325, 46, 50,
+ 325, 44, 44, 44, 325, 50, 197, 325, 193, 325,
+ 325, 191, 50, 325, 325, 44, 44, 44, 50, 194,
+ 46, 44, 44, 44, 325, 325, 46, 50, 325, 195,
+ 325, 44, 44, 44, 196, 50, 46, 44, 44, 44,
+ 325, 325, 46, 44, 44, 44, 325, 325, 46, 50,
+ 325, 44, 44, 44, 325, 50, 203, 44, 44, 44,
+ 325, 325, 46, 325, 325, 50, 325, 204, 325, 199,
+ 198, 50, 200, 44, 44, 44, 325, 50, 46, 325,
+
+ 325, 44, 44, 44, 202, 50, 208, 325, 325, 201,
+ 325, 50, 44, 44, 44, 325, 325, 209, 44, 44,
+ 44, 325, 325, 46, 325, 325, 325, 50, 44, 44,
+ 44, 325, 325, 46, 325, 50, 44, 44, 44, 325,
+ 325, 46, 325, 207, 325, 325, 50, 325, 44, 44,
+ 44, 325, 50, 46, 325, 325, 325, 325, 210, 325,
+ 325, 325, 50, 44, 44, 44, 325, 325, 46, 325,
+ 50, 325, 325, 325, 325, 325, 325, 211, 45, 45,
+ 45, 45, 50, 325, 325, 212, 45, 45, 45, 45,
+ 45, 45, 325, 325, 44, 44, 44, 50, 213, 215,
+
+ 325, 325, 45, 45, 45, 45, 45, 45, 325, 325,
+ 214, 44, 44, 44, 325, 325, 216, 44, 44, 44,
+ 325, 325, 217, 325, 44, 44, 44, 325, 50, 46,
+ 44, 44, 44, 325, 218, 46, 44, 44, 44, 325,
+ 325, 46, 44, 44, 44, 50, 325, 46, 44, 44,
+ 44, 50, 325, 46, 325, 44, 44, 44, 50, 325,
+ 46, 44, 44, 44, 50, 325, 46, 44, 44, 44,
+ 50, 325, 46, 325, 219, 325, 50, 325, 44, 44,
+ 44, 220, 50, 46, 325, 44, 44, 44, 221, 50,
+ 46, 44, 44, 44, 222, 50, 46, 325, 44, 44,
+
+ 44, 50, 325, 46, 325, 325, 325, 223, 226, 225,
+ 325, 325, 50, 224, 325, 44, 44, 44, 325, 50,
+ 46, 44, 44, 44, 325, 50, 46, 325, 325, 325,
+ 227, 325, 50, 44, 44, 44, 228, 230, 46, 229,
+ 44, 44, 44, 325, 325, 46, 44, 44, 44, 50,
+ 325, 46, 325, 325, 325, 50, 44, 44, 44, 325,
+ 325, 46, 232, 325, 44, 44, 44, 50, 325, 46,
+ 233, 325, 325, 325, 50, 325, 234, 325, 325, 325,
+ 50, 44, 44, 44, 325, 325, 46, 44, 44, 44,
+ 50, 325, 46, 236, 235, 325, 325, 237, 50, 44,
+
+ 44, 44, 325, 325, 46, 44, 44, 44, 325, 325,
+ 46, 238, 44, 44, 44, 50, 325, 46, 44, 44,
+ 44, 50, 325, 244, 325, 44, 44, 44, 325, 325,
+ 245, 239, 325, 50, 325, 325, 325, 240, 325, 50,
+ 44, 44, 44, 325, 325, 46, 50, 325, 325, 44,
+ 44, 44, 50, 243, 46, 325, 325, 241, 242, 50,
+ 325, 246, 44, 44, 44, 325, 325, 46, 44, 44,
+ 44, 325, 325, 46, 50, 44, 44, 44, 250, 325,
+ 46, 325, 325, 50, 325, 44, 44, 44, 325, 325,
+ 46, 325, 325, 325, 247, 252, 50, 325, 248, 44,
+
+ 44, 44, 50, 325, 46, 44, 44, 44, 325, 50,
+ 254, 325, 44, 44, 44, 325, 249, 255, 325, 50,
+ 325, 44, 44, 44, 325, 251, 46, 44, 44, 44,
+ 325, 256, 46, 50, 325, 44, 44, 44, 325, 50,
+ 46, 325, 44, 44, 44, 325, 50, 46, 44, 44,
+ 44, 325, 253, 46, 325, 50, 325, 44, 44, 44,
+ 325, 50, 261, 44, 44, 44, 325, 325, 262, 50,
+ 44, 44, 44, 325, 325, 263, 50, 325, 325, 325,
+ 258, 325, 50, 257, 44, 44, 44, 325, 325, 46,
+ 325, 50, 325, 325, 325, 259, 325, 50, 325, 325,
+
+ 260, 44, 44, 44, 50, 325, 46, 44, 44, 44,
+ 325, 325, 266, 325, 44, 44, 44, 325, 50, 46,
+ 44, 44, 44, 325, 325, 46, 44, 44, 44, 325,
+ 325, 46, 325, 325, 264, 50, 325, 325, 325, 325,
+ 325, 50, 265, 325, 44, 44, 44, 325, 50, 46,
+ 44, 44, 44, 325, 50, 272, 44, 44, 44, 325,
+ 50, 46, 44, 44, 44, 325, 325, 46, 325, 268,
+ 325, 325, 267, 325, 269, 270, 325, 325, 50, 325,
+ 325, 271, 325, 325, 50, 325, 44, 44, 44, 325,
+ 50, 46, 44, 44, 44, 325, 50, 46, 325, 44,
+
+ 44, 44, 325, 274, 46, 44, 44, 44, 325, 273,
+ 46, 44, 44, 44, 325, 325, 46, 44, 44, 44,
+ 50, 325, 280, 325, 275, 325, 50, 44, 44, 44,
+ 325, 325, 46, 50, 325, 44, 44, 44, 325, 50,
+ 46, 325, 44, 44, 44, 50, 276, 46, 325, 325,
+ 325, 50, 325, 277, 325, 325, 278, 44, 44, 44,
+ 325, 50, 46, 279, 281, 44, 44, 44, 325, 50,
+ 46, 325, 44, 44, 44, 325, 50, 46, 44, 44,
+ 44, 325, 325, 46, 44, 44, 44, 325, 325, 288,
+ 325, 50, 325, 282, 325, 325, 283, 325, 325, 50,
+
+ 284, 325, 44, 44, 44, 325, 50, 289, 44, 44,
+ 44, 325, 50, 46, 325, 285, 325, 325, 50, 286,
+ 44, 44, 44, 325, 325, 46, 44, 44, 44, 325,
+ 287, 46, 44, 44, 44, 325, 50, 46, 44, 44,
+ 44, 325, 50, 46, 44, 44, 44, 325, 325, 46,
+ 44, 44, 44, 325, 50, 46, 44, 44, 44, 325,
+ 50, 297, 290, 44, 44, 44, 50, 325, 46, 325,
+ 325, 325, 50, 291, 292, 44, 44, 44, 50, 294,
+ 46, 325, 325, 293, 50, 295, 325, 325, 325, 296,
+ 50, 44, 44, 44, 325, 325, 300, 50, 325, 325,
+
+ 298, 44, 44, 44, 325, 325, 46, 325, 325, 50,
+ 44, 44, 44, 325, 325, 46, 44, 44, 44, 325,
+ 299, 46, 44, 44, 44, 50, 325, 46, 44, 44,
+ 44, 325, 325, 46, 325, 50, 44, 44, 44, 325,
+ 325, 46, 301, 325, 50, 325, 325, 44, 44, 44,
+ 50, 302, 46, 44, 44, 44, 50, 325, 308, 44,
+ 44, 44, 50, 325, 309, 325, 325, 44, 44, 44,
+ 50, 304, 46, 303, 305, 44, 44, 44, 325, 325,
+ 46, 50, 325, 325, 44, 44, 44, 50, 306, 46,
+ 44, 44, 44, 50, 325, 46, 325, 307, 44, 44,
+
+ 44, 50, 325, 46, 325, 44, 44, 44, 325, 50,
+ 315, 44, 44, 44, 325, 325, 316, 325, 50, 325,
+ 325, 310, 325, 325, 50, 312, 44, 44, 44, 311,
+ 325, 46, 50, 325, 325, 313, 44, 44, 44, 50,
+ 325, 46, 325, 325, 325, 50, 325, 314, 44, 44,
+ 44, 325, 325, 46, 44, 44, 44, 325, 325, 46,
+ 50, 44, 44, 44, 325, 325, 46, 325, 325, 325,
+ 50, 44, 44, 44, 325, 325, 322, 318, 325, 325,
+ 317, 325, 50, 325, 44, 44, 44, 325, 50, 323,
+ 325, 44, 44, 44, 325, 50, 324, 325, 325, 325,
+
+ 325, 319, 325, 325, 325, 50, 325, 320, 325, 325,
+ 325, 325, 325, 325, 321, 325, 325, 325, 50, 325,
+ 325, 325, 325, 325, 325, 50, 36, 36, 36, 36,
+ 36, 45, 45, 45, 45, 45, 62, 325, 62, 62,
+ 62, 81, 325, 81, 325, 81, 83, 83, 83, 83,
+ 83, 89, 89, 89, 89, 89, 109, 325, 109, 109,
+ 109, 122, 122, 122, 11, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325
} ;
-static const flex_int16_t yy_chk[2165] =
+static const flex_int16_t yy_chk[2228] =
{ 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, 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,
+ 7, 10, 5, 26, 8, 337, 5, 31, 28, 44,
+ 42, 5, 42, 32, 33, 336, 27, 5, 5, 15,
+ 15, 15, 335, 31, 15, 17, 334, 17, 17, 17,
17, 28, 20, 20, 20, 20, 32, 33, 44, 17,
- 202, 75, 15, 15, 20, 73, 15, 71, 71, 71,
- 71, 74, 175, 15, 149, 17, 83, 78, 15, 15,
+ 205, 75, 15, 15, 20, 73, 15, 71, 71, 71,
+ 71, 74, 177, 15, 150, 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, 116, 19, 76, 45,
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,
+ 115, 50, 38, 50, 50, 113, 52, 144, 114, 51,
24, 14, 49, 53, 53, 53, 11, 0, 53, 54,
- 54, 54, 0, 143, 54, 51, 52, 55, 55, 55,
+ 54, 54, 0, 144, 54, 51, 52, 55, 55, 55,
0, 0, 55, 52, 0, 0, 52, 56, 56, 56,
- 146, 0, 56, 0, 57, 57, 57, 53, 0, 57,
- 58, 58, 58, 54, 0, 58, 146, 59, 59, 59,
+ 147, 0, 56, 0, 57, 57, 57, 53, 0, 57,
+ 58, 58, 58, 54, 0, 58, 147, 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,
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
+ 119, 0, 0, 119, 104, 106, 104, 0, 0, 0,
+ 106, 0, 107, 120, 120, 120, 0, 105, 120, 121,
+ 121, 121, 108, 107, 121, 126, 126, 126, 0, 108,
+ 126, 0, 119, 0, 0, 125, 125, 125, 0, 0,
+ 125, 0, 0, 0, 0, 0, 0, 120, 0, 0,
+ 0, 0, 119, 121, 0, 0, 0, 0, 0, 126,
+ 0, 0, 121, 0, 120, 124, 124, 124, 124, 125,
+ 0, 0, 0, 124, 124, 124, 124, 124, 124, 126,
+
+ 128, 128, 128, 125, 0, 128, 0, 0, 0, 124,
+ 124, 124, 124, 124, 124, 129, 129, 129, 0, 0,
+ 129, 0, 130, 130, 130, 0, 0, 130, 131, 131,
+ 131, 0, 0, 131, 128, 132, 132, 132, 0, 0,
+ 132, 0, 133, 133, 133, 0, 0, 133, 0, 129,
+ 0, 0, 0, 0, 0, 128, 130, 0, 134, 134,
+ 134, 0, 131, 134, 0, 0, 129, 0, 0, 132,
+ 0, 0, 0, 0, 131, 130, 133, 135, 135, 135,
+ 0, 0, 135, 136, 136, 136, 132, 0, 136, 0,
+ 0, 0, 134, 0, 133, 137, 137, 137, 0, 0,
+
+ 137, 134, 138, 138, 138, 0, 0, 138, 139, 139,
+ 139, 135, 0, 139, 140, 140, 140, 136, 0, 140,
+ 141, 141, 141, 0, 136, 141, 142, 142, 142, 137,
+ 135, 142, 0, 135, 0, 0, 138, 0, 0, 138,
+ 0, 0, 139, 0, 0, 0, 137, 0, 140, 0,
+ 0, 143, 143, 143, 141, 140, 143, 0, 0, 0,
+ 142, 0, 139, 152, 152, 152, 141, 0, 152, 0,
+ 0, 153, 153, 153, 0, 0, 153, 154, 154, 154,
+ 0, 0, 154, 142, 0, 143, 153, 153, 0, 0,
+ 0, 0, 0, 0, 0, 153, 0, 152, 0, 0,
+
+ 0, 0, 0, 143, 0, 153, 0, 0, 0, 0,
+ 0, 154, 156, 156, 156, 152, 0, 156, 0, 0,
+ 0, 0, 154, 155, 155, 155, 155, 0, 0, 0,
+ 0, 155, 155, 155, 155, 155, 155, 157, 157, 157,
+ 0, 0, 157, 0, 0, 0, 156, 155, 155, 155,
+ 155, 155, 155, 156, 158, 158, 158, 0, 0, 158,
+ 159, 159, 159, 0, 0, 159, 0, 160, 160, 160,
+ 0, 157, 160, 0, 0, 159, 159, 0, 161, 161,
+ 161, 0, 0, 161, 0, 162, 162, 162, 158, 157,
+ 162, 163, 163, 163, 159, 162, 163, 158, 164, 164,
+
+ 164, 160, 0, 164, 165, 165, 165, 0, 0, 165,
+ 0, 160, 161, 166, 166, 166, 0, 0, 166, 162,
+ 0, 167, 167, 167, 0, 163, 167, 0, 163, 0,
+ 0, 161, 164, 0, 0, 168, 168, 168, 165, 164,
+ 168, 169, 169, 169, 0, 0, 169, 166, 0, 165,
+ 0, 170, 170, 170, 166, 167, 170, 171, 171, 171,
+ 0, 0, 171, 172, 172, 172, 0, 0, 172, 168,
+ 0, 173, 173, 173, 0, 169, 173, 174, 174, 174,
+ 0, 0, 174, 0, 0, 170, 0, 174, 0, 169,
+ 168, 171, 170, 179, 179, 179, 0, 172, 179, 0,
+
+ 0, 180, 180, 180, 172, 173, 180, 0, 0, 171,
+ 0, 174, 181, 181, 181, 0, 0, 181, 182, 182,
+ 182, 0, 0, 182, 0, 0, 0, 179, 183, 183,
+ 183, 0, 0, 183, 0, 180, 185, 185, 185, 0,
+ 0, 185, 0, 179, 0, 0, 181, 0, 186, 186,
+ 186, 0, 182, 186, 0, 0, 0, 0, 182, 0,
+ 0, 0, 183, 187, 187, 187, 0, 0, 187, 0,
+ 185, 0, 0, 0, 0, 0, 0, 183, 184, 184,
+ 184, 184, 186, 0, 0, 185, 184, 184, 184, 184,
+ 184, 184, 0, 0, 188, 188, 188, 187, 186, 188,
+
+ 0, 0, 184, 184, 184, 184, 184, 184, 0, 0,
+ 187, 189, 189, 189, 0, 0, 189, 190, 190, 190,
+ 0, 0, 190, 0, 191, 191, 191, 0, 188, 191,
+ 192, 192, 192, 0, 191, 192, 193, 193, 193, 0,
+ 0, 193, 194, 194, 194, 189, 0, 194, 195, 195,
+ 195, 190, 0, 195, 0, 198, 198, 198, 191, 0,
+ 198, 196, 196, 196, 192, 0, 196, 199, 199, 199,
+ 193, 0, 199, 0, 192, 0, 194, 0, 200, 200,
+ 200, 192, 195, 200, 0, 202, 202, 202, 193, 198,
+ 202, 201, 201, 201, 194, 196, 201, 0, 204, 204,
+
+ 204, 199, 0, 204, 0, 0, 0, 195, 199, 198,
+ 0, 0, 200, 196, 0, 207, 207, 207, 0, 202,
+ 207, 210, 210, 210, 0, 201, 210, 0, 0, 0,
+ 200, 0, 204, 211, 211, 211, 201, 204, 211, 202,
+ 212, 212, 212, 0, 0, 212, 213, 213, 213, 207,
+ 0, 213, 0, 0, 0, 210, 214, 214, 214, 0,
+ 0, 214, 207, 0, 218, 218, 218, 211, 0, 218,
+ 210, 0, 0, 0, 212, 0, 211, 0, 0, 0,
+ 213, 219, 219, 219, 0, 0, 219, 220, 220, 220,
+ 214, 0, 220, 213, 212, 0, 0, 214, 218, 221,
+
+ 221, 221, 0, 0, 221, 222, 222, 222, 0, 0,
+ 222, 218, 223, 223, 223, 219, 0, 223, 224, 224,
+ 224, 220, 0, 224, 0, 225, 225, 225, 0, 0,
+ 225, 219, 0, 221, 0, 0, 0, 220, 0, 222,
+ 226, 226, 226, 0, 0, 226, 223, 0, 0, 227,
+ 227, 227, 224, 223, 227, 0, 0, 221, 222, 225,
+ 0, 225, 228, 228, 228, 0, 0, 228, 229, 229,
+ 229, 0, 0, 229, 226, 230, 230, 230, 229, 0,
+ 230, 0, 0, 227, 0, 232, 232, 232, 0, 0,
+ 232, 0, 0, 0, 226, 232, 228, 0, 227, 233,
+
+ 233, 233, 229, 0, 233, 234, 234, 234, 0, 230,
+ 234, 0, 235, 235, 235, 0, 228, 235, 0, 232,
+ 0, 236, 236, 236, 0, 230, 236, 237, 237, 237,
+ 0, 236, 237, 233, 0, 238, 238, 238, 0, 234,
+ 238, 0, 239, 239, 239, 0, 235, 239, 240, 240,
+ 240, 0, 233, 240, 0, 236, 0, 241, 241, 241,
+ 0, 237, 241, 242, 242, 242, 0, 0, 242, 238,
+ 243, 243, 243, 0, 0, 243, 239, 0, 0, 0,
+ 238, 0, 240, 237, 246, 246, 246, 0, 0, 246,
+ 0, 241, 0, 0, 0, 239, 0, 242, 0, 0,
+
+ 240, 247, 247, 247, 243, 0, 247, 248, 248, 248,
+ 0, 0, 248, 0, 249, 249, 249, 0, 246, 249,
+ 250, 250, 250, 0, 0, 250, 251, 251, 251, 0,
+ 0, 251, 0, 0, 246, 247, 0, 0, 0, 0,
+ 0, 248, 247, 0, 252, 252, 252, 0, 249, 252,
+ 253, 253, 253, 0, 250, 253, 256, 256, 256, 0,
+ 251, 256, 257, 257, 257, 0, 0, 257, 0, 250,
+ 0, 0, 249, 0, 250, 251, 0, 0, 252, 0,
+ 0, 252, 0, 0, 253, 0, 258, 258, 258, 0,
+ 256, 258, 259, 259, 259, 0, 257, 259, 0, 260,
+
+ 260, 260, 0, 257, 260, 264, 264, 264, 0, 256,
+ 264, 265, 265, 265, 0, 0, 265, 267, 267, 267,
+ 258, 0, 267, 0, 258, 0, 259, 268, 268, 268,
+ 0, 0, 268, 260, 0, 269, 269, 269, 0, 264,
+ 269, 0, 270, 270, 270, 265, 259, 270, 0, 0,
+ 0, 267, 0, 260, 0, 0, 264, 271, 271, 271,
+ 0, 268, 271, 265, 268, 273, 273, 273, 0, 269,
+ 273, 0, 274, 274, 274, 0, 270, 274, 275, 275,
+ 275, 0, 0, 275, 276, 276, 276, 0, 0, 276,
+ 0, 271, 0, 269, 0, 0, 270, 0, 0, 273,
+
+ 271, 0, 277, 277, 277, 0, 274, 277, 278, 278,
+ 278, 0, 275, 278, 0, 273, 0, 0, 276, 274,
+ 279, 279, 279, 0, 0, 279, 281, 281, 281, 0,
+ 275, 281, 282, 282, 282, 0, 277, 282, 283, 283,
+ 283, 0, 278, 283, 284, 284, 284, 0, 0, 284,
+ 285, 285, 285, 0, 279, 285, 286, 286, 286, 0,
+ 281, 286, 278, 287, 287, 287, 282, 0, 287, 0,
+ 0, 0, 283, 279, 281, 290, 290, 290, 284, 283,
+ 290, 0, 0, 282, 285, 284, 0, 0, 0, 285,
+ 286, 291, 291, 291, 0, 0, 291, 287, 0, 0,
+
+ 287, 292, 292, 292, 0, 0, 292, 0, 0, 290,
+ 293, 293, 293, 0, 0, 293, 294, 294, 294, 0,
+ 290, 294, 295, 295, 295, 291, 0, 295, 296, 296,
+ 296, 0, 0, 296, 0, 292, 298, 298, 298, 0,
+ 0, 298, 292, 0, 293, 0, 0, 299, 299, 299,
+ 294, 293, 299, 301, 301, 301, 295, 0, 301, 302,
+ 302, 302, 296, 0, 302, 0, 0, 303, 303, 303,
+ 298, 295, 303, 294, 296, 304, 304, 304, 0, 0,
+ 304, 299, 0, 0, 305, 305, 305, 301, 298, 305,
+ 306, 306, 306, 302, 0, 306, 0, 299, 307, 307,
+
+ 307, 303, 0, 307, 0, 310, 310, 310, 0, 304,
+ 310, 311, 311, 311, 0, 0, 311, 0, 305, 0,
+ 0, 303, 0, 0, 306, 305, 312, 312, 312, 304,
+ 0, 312, 307, 0, 0, 306, 313, 313, 313, 310,
+ 0, 313, 0, 0, 0, 311, 0, 307, 314, 314,
+ 314, 0, 0, 314, 317, 317, 317, 0, 0, 317,
+ 312, 318, 318, 318, 0, 0, 318, 0, 0, 0,
+ 313, 319, 319, 319, 0, 0, 319, 313, 0, 0,
+ 312, 0, 314, 0, 320, 320, 320, 0, 317, 320,
+ 0, 321, 321, 321, 0, 318, 321, 0, 0, 0,
+
+ 0, 314, 0, 0, 0, 319, 0, 317, 0, 0,
+ 0, 0, 0, 0, 318, 0, 0, 0, 320, 0,
+ 0, 0, 0, 0, 0, 321, 326, 326, 326, 326,
+ 326, 327, 327, 327, 327, 327, 328, 0, 328, 328,
+ 328, 329, 0, 329, 0, 329, 330, 330, 330, 330,
+ 330, 331, 331, 331, 331, 331, 332, 0, 332, 332,
+ 332, 333, 333, 333, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325
} ;
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[58] =
+static const flex_int16_t yy_rule_linenum[59] =
{ 0,
133, 135, 137, 142, 143, 148, 149, 150, 162, 165,
170, 177, 186, 195, 204, 215, 226, 235, 244, 253,
262, 271, 280, 289, 298, 307, 316, 325, 335, 344,
353, 362, 371, 380, 389, 398, 407, 416, 425, 434,
- 533, 538, 543, 548, 549, 550, 551, 552, 553, 555,
- 573, 586, 591, 595, 597, 599, 601
+ 443, 542, 547, 552, 557, 558, 559, 560, 561, 562,
+ 564, 582, 595, 600, 604, 606, 608, 610
} ;
/* The intent behind this definition is that it'll catch
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::agent::ParserContext::fatal(msg)
-#line 1419 "agent_lexer.cc"
+#line 1435 "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 1445 "agent_lexer.cc"
-#line 1446 "agent_lexer.cc"
+#line 1461 "agent_lexer.cc"
+#line 1462 "agent_lexer.cc"
#define INITIAL 0
#define COMMENT 1
}
-#line 1760 "agent_lexer.cc"
+#line 1776 "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 >= 320 )
+ if ( yy_current_state >= 326 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 319 );
+ while ( yy_current_state != 325 );
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 < 58 )
+ else if ( yy_act < 59 )
fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
(long)yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 58 )
+ else if ( yy_act == 59 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
- else if ( yy_act == 59 )
+ else if ( yy_act == 60 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
case 35:
YY_RULE_SETUP
#line 389 "agent_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case ParserContext::OUTPUT_OPTIONS:
+ return AgentParser::make_PATTERN(driver.loc_);
+ default:
+ return AgentParser::make_STRING("pattern", driver.loc_);
+ }
+}
+ YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 398 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
}
}
YY_BREAK
-case 36:
+case 37:
YY_RULE_SETUP
-#line 398 "agent_lexer.ll"
+#line 407 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::LOGGERS:
}
}
YY_BREAK
-case 37:
+case 38:
YY_RULE_SETUP
-#line 407 "agent_lexer.ll"
+#line 416 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONFIG:
}
}
YY_BREAK
-case 38:
+case 39:
YY_RULE_SETUP
-#line 416 "agent_lexer.ll"
+#line 425 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONFIG:
}
}
YY_BREAK
-case 39:
+case 40:
YY_RULE_SETUP
-#line 425 "agent_lexer.ll"
+#line 434 "agent_lexer.ll"
{
switch(driver.ctx_) {
case ParserContext::CONFIG:
}
}
YY_BREAK
-case 40:
+case 41:
YY_RULE_SETUP
-#line 434 "agent_lexer.ll"
+#line 443 "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 41:
-/* rule 41 can match eol */
+case 42:
+/* rule 42 can match eol */
YY_RULE_SETUP
-#line 533 "agent_lexer.ll"
+#line 542 "agent_lexer.ll"
{
/* Bad string with a forbidden control character inside */
driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
}
YY_BREAK
-case 42:
-/* rule 42 can match eol */
+case 43:
+/* rule 43 can match eol */
YY_RULE_SETUP
-#line 538 "agent_lexer.ll"
+#line 547 "agent_lexer.ll"
{
/* Bad string with a bad escape inside */
driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
}
YY_BREAK
-case 43:
+case 44:
YY_RULE_SETUP
-#line 543 "agent_lexer.ll"
+#line 552 "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 44:
+case 45:
YY_RULE_SETUP
-#line 548 "agent_lexer.ll"
+#line 557 "agent_lexer.ll"
{ return AgentParser::make_LSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 45:
+case 46:
YY_RULE_SETUP
-#line 549 "agent_lexer.ll"
+#line 558 "agent_lexer.ll"
{ return AgentParser::make_RSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 46:
+case 47:
YY_RULE_SETUP
-#line 550 "agent_lexer.ll"
+#line 559 "agent_lexer.ll"
{ return AgentParser::make_LCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 47:
+case 48:
YY_RULE_SETUP
-#line 551 "agent_lexer.ll"
+#line 560 "agent_lexer.ll"
{ return AgentParser::make_RCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 48:
+case 49:
YY_RULE_SETUP
-#line 552 "agent_lexer.ll"
+#line 561 "agent_lexer.ll"
{ return AgentParser::make_COMMA(driver.loc_); }
YY_BREAK
-case 49:
+case 50:
YY_RULE_SETUP
-#line 553 "agent_lexer.ll"
+#line 562 "agent_lexer.ll"
{ return AgentParser::make_COLON(driver.loc_); }
YY_BREAK
-case 50:
+case 51:
YY_RULE_SETUP
-#line 555 "agent_lexer.ll"
+#line 564 "agent_lexer.ll"
{
/* An integer was found. */
std::string tmp(yytext);
return AgentParser::make_INTEGER(integer, driver.loc_);
}
YY_BREAK
-case 51:
+case 52:
YY_RULE_SETUP
-#line 573 "agent_lexer.ll"
+#line 582 "agent_lexer.ll"
{
/* A floating point was found. */
std::string tmp(yytext);
return AgentParser::make_FLOAT(fp, driver.loc_);
}
YY_BREAK
-case 52:
+case 53:
YY_RULE_SETUP
-#line 586 "agent_lexer.ll"
+#line 595 "agent_lexer.ll"
{
string tmp(yytext);
return AgentParser::make_BOOLEAN(tmp == "true", driver.loc_);
}
YY_BREAK
-case 53:
+case 54:
YY_RULE_SETUP
-#line 591 "agent_lexer.ll"
+#line 600 "agent_lexer.ll"
{
return AgentParser::make_NULL_TYPE(driver.loc_);
}
YY_BREAK
-case 54:
+case 55:
YY_RULE_SETUP
-#line 595 "agent_lexer.ll"
+#line 604 "agent_lexer.ll"
driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
YY_BREAK
-case 55:
+case 56:
YY_RULE_SETUP
-#line 597 "agent_lexer.ll"
+#line 606 "agent_lexer.ll"
driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
YY_BREAK
-case 56:
+case 57:
YY_RULE_SETUP
-#line 599 "agent_lexer.ll"
+#line 608 "agent_lexer.ll"
driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
YY_BREAK
-case 57:
+case 58:
YY_RULE_SETUP
-#line 601 "agent_lexer.ll"
+#line 610 "agent_lexer.ll"
driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 603 "agent_lexer.ll"
+#line 612 "agent_lexer.ll"
{
if (driver.states_.empty()) {
return AgentParser::make_END(driver.loc_);
BEGIN(DIR_EXIT);
}
YY_BREAK
-case 58:
+case 59:
YY_RULE_SETUP
-#line 626 "agent_lexer.ll"
+#line 635 "agent_lexer.ll"
ECHO;
YY_BREAK
-#line 2525 "agent_lexer.cc"
+#line 2553 "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 >= 320 )
+ if ( yy_current_state >= 326 )
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 >= 320 )
+ if ( yy_current_state >= 326 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 319);
+ yy_is_jam = (yy_current_state == 325);
return yy_is_jam ? 0 : yy_current_state;
}
/* %ok-for-header */
-#line 626 "agent_lexer.ll"
+#line 635 "agent_lexer.ll"
using namespace isc::dhcp;
-// A Bison parser, made by GNU Bison 3.4.1.
+// A Bison parser, made by GNU Bison 3.2.1.
// Skeleton implementation for Bison LALR(1) parsers in C++
-// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// Unqualified %code blocks.
-#line 33 "agent_parser.yy"
+#line 33 "agent_parser.yy" // lalr1.cc:438
#include <agent/parser_context.h>
-#line 51 "agent_parser.cc"
+#line 51 "agent_parser.cc" // lalr1.cc:438
#ifndef YY_
{ \
(Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
} \
- while (false)
+ while (/*CONSTCOND*/ false)
# endif
#define YYERROR goto yyerrorlab
#define YYRECOVERING() (!!yyerrstatus_)
-#line 14 "agent_parser.yy"
+#line 14 "agent_parser.yy" // lalr1.cc:513
namespace isc { namespace agent {
-#line 146 "agent_parser.cc"
-
+#line 146 "agent_parser.cc" // lalr1.cc:513
/* Return YYSTR after stripping away unnecessary quotes and
backslashes, so that it's suitable for yyerror. The heuristic is
{
if (*yystr == '"')
{
- std::string yyr;
+ std::string yyr = "";
char const *yyp = yystr;
for (;;)
case '\\':
if (*++yyp != '\\')
goto do_not_strip_quotes;
- else
- goto append;
-
- append:
+ // Fall through.
default:
yyr += *yyp;
break;
AgentParser::~AgentParser ()
{}
- AgentParser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
- {}
/*---------------.
| Symbol types. |
// by_state.
- AgentParser::by_state::by_state () YY_NOEXCEPT
+ AgentParser::by_state::by_state ()
: state (empty_state)
{}
- AgentParser::by_state::by_state (const by_state& that) YY_NOEXCEPT
- : state (that.state)
+ AgentParser::by_state::by_state (const by_state& other)
+ : state (other.state)
{}
void
- AgentParser::by_state::clear () YY_NOEXCEPT
+ AgentParser::by_state::clear ()
{
state = empty_state;
}
that.clear ();
}
- AgentParser::by_state::by_state (state_type s) YY_NOEXCEPT
+ AgentParser::by_state::by_state (state_type s)
: state (s)
{}
AgentParser::symbol_number_type
- AgentParser::by_state::type_get () const YY_NOEXCEPT
+ AgentParser::by_state::type_get () const
{
if (state == empty_state)
return empty_symbol;
{
switch (that.type_get ())
{
- case 53: // value
- case 56: // map_value
- case 107: // socket_type_value
+ case 54: // value
+ case 57: // map_value
+ case 108: // socket_type_value
value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
break;
- case 44: // "boolean"
+ case 45: // "boolean"
value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
break;
- case 43: // "floating point"
+ case 44: // "floating point"
value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
break;
- case 42: // "integer"
+ case 43: // "integer"
value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
break;
- case 41: // "constant string"
+ case 42: // "constant string"
value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
break;
break;
}
-#if 201103L <= YY_CPLUSPLUS
+#if defined __cplusplus && 201103L <= __cplusplus
// that is emptied.
that.state = empty_state;
#endif
{
switch (that.type_get ())
{
- case 53: // value
- case 56: // map_value
- case 107: // socket_type_value
+ case 54: // value
+ case 57: // map_value
+ case 108: // socket_type_value
value.move< ElementPtr > (YY_MOVE (that.value));
break;
- case 44: // "boolean"
+ case 45: // "boolean"
value.move< bool > (YY_MOVE (that.value));
break;
- case 43: // "floating point"
+ case 44: // "floating point"
value.move< double > (YY_MOVE (that.value));
break;
- case 42: // "integer"
+ case 43: // "integer"
value.move< int64_t > (YY_MOVE (that.value));
break;
- case 41: // "constant string"
+ case 42: // "constant string"
value.move< std::string > (YY_MOVE (that.value));
break;
that.type = empty_symbol;
}
-#if YY_CPLUSPLUS < 201103L
+#if !defined __cplusplus || __cplusplus < 201103L
AgentParser::stack_symbol_type&
AgentParser::stack_symbol_type::operator= (stack_symbol_type& that)
{
state = that.state;
switch (that.type_get ())
{
- case 53: // value
- case 56: // map_value
- case 107: // socket_type_value
+ case 54: // value
+ case 57: // map_value
+ case 108: // socket_type_value
value.move< ElementPtr > (that.value);
break;
- case 44: // "boolean"
+ case 45: // "boolean"
value.move< bool > (that.value);
break;
- case 43: // "floating point"
+ case 44: // "floating point"
value.move< double > (that.value);
break;
- case 42: // "integer"
+ case 43: // "integer"
value.move< int64_t > (that.value);
break;
- case 41: // "constant string"
+ case 42: // "constant string"
value.move< std::string > (that.value);
break;
std::ostream& yyoutput = yyo;
YYUSE (yyoutput);
symbol_number_type yytype = yysym.type_get ();
-#if defined __GNUC__ && ! defined __clang__ && ! defined __ICC && __GNUC__ * 100 + __GNUC_MINOR__ <= 408
// Avoid a (spurious) G++ 4.8 warning about "array subscript is
// below array bounds".
if (yysym.empty ())
std::abort ();
-#endif
yyo << (yytype < yyntokens_ ? "token" : "nterm")
<< ' ' << yytname_[yytype] << " ("
<< yysym.location << ": ";
switch (yytype)
{
- case 41: // "constant string"
-#line 103 "agent_parser.yy"
- { yyoutput << yysym.value.template as < std::string > (); }
-#line 393 "agent_parser.cc"
+ case 42: // "constant string"
+
+#line 104 "agent_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< std::string > (); }
+#line 386 "agent_parser.cc" // lalr1.cc:672
break;
- case 42: // "integer"
-#line 103 "agent_parser.yy"
- { yyoutput << yysym.value.template as < int64_t > (); }
-#line 399 "agent_parser.cc"
+ case 43: // "integer"
+
+#line 104 "agent_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< int64_t > (); }
+#line 393 "agent_parser.cc" // lalr1.cc:672
break;
- case 43: // "floating point"
-#line 103 "agent_parser.yy"
- { yyoutput << yysym.value.template as < double > (); }
-#line 405 "agent_parser.cc"
+ case 44: // "floating point"
+
+#line 104 "agent_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< double > (); }
+#line 400 "agent_parser.cc" // lalr1.cc:672
break;
- case 44: // "boolean"
-#line 103 "agent_parser.yy"
- { yyoutput << yysym.value.template as < bool > (); }
-#line 411 "agent_parser.cc"
+ case 45: // "boolean"
+
+#line 104 "agent_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< bool > (); }
+#line 407 "agent_parser.cc" // lalr1.cc:672
break;
- case 53: // value
-#line 103 "agent_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 417 "agent_parser.cc"
+ case 54: // value
+
+#line 104 "agent_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 414 "agent_parser.cc" // lalr1.cc:672
break;
- case 56: // map_value
-#line 103 "agent_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 423 "agent_parser.cc"
+ case 57: // map_value
+
+#line 104 "agent_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 421 "agent_parser.cc" // lalr1.cc:672
break;
- case 107: // socket_type_value
-#line 103 "agent_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 429 "agent_parser.cc"
+ case 108: // socket_type_value
+
+#line 104 "agent_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 428 "agent_parser.cc" // lalr1.cc:672
break;
+
default:
break;
}
void
AgentParser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym)
{
-#if 201103L <= YY_CPLUSPLUS
+#if defined __cplusplus && 201103L <= __cplusplus
yypush_ (m, stack_symbol_type (s, std::move (sym)));
#else
stack_symbol_type ss (s, sym);
yystack_.clear ();
yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla));
- /*-----------------------------------------------.
- | yynewstate -- push a new symbol on the stack. |
- `-----------------------------------------------*/
+ // A new symbol was pushed on the stack.
yynewstate:
YYCDEBUG << "Entering state " << yystack_[0].state << '\n';
// Accept?
if (yystack_[0].state == yyfinal_)
- YYACCEPT;
+ goto yyacceptlab;
goto yybackup;
-
- /*-----------.
- | yybackup. |
- `-----------*/
+ // Backup.
yybackup:
// Try to take a decision without lookahead.
yyn = yypact_[yystack_[0].state];
#if YY_EXCEPTIONS
catch (const syntax_error& yyexc)
{
- YYCDEBUG << "Caught exception: " << yyexc.what() << '\n';
error (yyexc);
goto yyerrlab1;
}
yypush_ ("Shifting", yyn, YY_MOVE (yyla));
goto yynewstate;
-
/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state. |
`-----------------------------------------------------------*/
goto yyerrlab;
goto yyreduce;
-
/*-----------------------------.
- | yyreduce -- do a reduction. |
+ | yyreduce -- Do a reduction. |
`-----------------------------*/
yyreduce:
yylen = yyr2_[yyn];
when using variants. */
switch (yyr1_[yyn])
{
- case 53: // value
- case 56: // map_value
- case 107: // socket_type_value
+ case 54: // value
+ case 57: // map_value
+ case 108: // socket_type_value
yylhs.value.emplace< ElementPtr > ();
break;
- case 44: // "boolean"
+ case 45: // "boolean"
yylhs.value.emplace< bool > ();
break;
- case 43: // "floating point"
+ case 44: // "floating point"
yylhs.value.emplace< double > ();
break;
- case 42: // "integer"
+ case 43: // "integer"
yylhs.value.emplace< int64_t > ();
break;
- case 41: // "constant string"
+ case 42: // "constant string"
yylhs.value.emplace< std::string > ();
break;
// Default location.
{
- stack_type::slice range (yystack_, yylen);
- YYLLOC_DEFAULT (yylhs.location, range, yylen);
+ slice<stack_symbol_type, stack_type> slice (yystack_, yylen);
+ YYLLOC_DEFAULT (yylhs.location, slice, yylen);
yyerror_range[1].location = yylhs.location;
}
switch (yyn)
{
case 2:
-#line 114 "agent_parser.yy"
+#line 115 "agent_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.NO_KEYWORDS; }
-#line 691 "agent_parser.cc"
+#line 683 "agent_parser.cc" // lalr1.cc:907
break;
case 4:
-#line 115 "agent_parser.yy"
+#line 116 "agent_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.CONFIG; }
-#line 697 "agent_parser.cc"
+#line 689 "agent_parser.cc" // lalr1.cc:907
break;
case 6:
-#line 116 "agent_parser.yy"
+#line 117 "agent_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.AGENT; }
-#line 703 "agent_parser.cc"
+#line 695 "agent_parser.cc" // lalr1.cc:907
break;
case 8:
-#line 124 "agent_parser.yy"
+#line 125 "agent_parser.yy" // lalr1.cc:907
{
// Parse the Control-agent map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 713 "agent_parser.cc"
+#line 705 "agent_parser.cc" // lalr1.cc:907
break;
case 9:
-#line 128 "agent_parser.yy"
+#line 129 "agent_parser.yy" // lalr1.cc:907
{
// parsing completed
}
-#line 721 "agent_parser.cc"
+#line 713 "agent_parser.cc" // lalr1.cc:907
break;
case 10:
-#line 135 "agent_parser.yy"
+#line 136 "agent_parser.yy" // lalr1.cc:907
{
// Push back the JSON value on the stack
- ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
}
-#line 730 "agent_parser.cc"
+#line 722 "agent_parser.cc" // lalr1.cc:907
break;
case 11:
-#line 141 "agent_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
-#line 736 "agent_parser.cc"
+#line 142 "agent_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
+#line 728 "agent_parser.cc" // lalr1.cc:907
break;
case 12:
-#line 142 "agent_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 742 "agent_parser.cc"
+#line 143 "agent_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
+#line 734 "agent_parser.cc" // lalr1.cc:907
break;
case 13:
-#line 143 "agent_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 748 "agent_parser.cc"
+#line 144 "agent_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
+#line 740 "agent_parser.cc" // lalr1.cc:907
break;
case 14:
-#line 144 "agent_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 754 "agent_parser.cc"
+#line 145 "agent_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
+#line 746 "agent_parser.cc" // lalr1.cc:907
break;
case 15:
-#line 145 "agent_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 760 "agent_parser.cc"
+#line 146 "agent_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
+#line 752 "agent_parser.cc" // lalr1.cc:907
break;
case 16:
-#line 146 "agent_parser.yy"
- { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 766 "agent_parser.cc"
+#line 147 "agent_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 758 "agent_parser.cc" // lalr1.cc:907
break;
case 17:
-#line 147 "agent_parser.yy"
- { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 772 "agent_parser.cc"
+#line 148 "agent_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 764 "agent_parser.cc" // lalr1.cc:907
break;
case 18:
-#line 151 "agent_parser.yy"
+#line 152 "agent_parser.yy" // lalr1.cc:907
{
// 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 783 "agent_parser.cc"
+#line 775 "agent_parser.cc" // lalr1.cc:907
break;
case 19:
-#line 156 "agent_parser.yy"
+#line 157 "agent_parser.yy" // lalr1.cc:907
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// for it.
}
-#line 793 "agent_parser.cc"
+#line 785 "agent_parser.cc" // lalr1.cc:907
break;
case 20:
-#line 162 "agent_parser.yy"
- { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 799 "agent_parser.cc"
+#line 163 "agent_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 791 "agent_parser.cc" // lalr1.cc:907
break;
case 23:
-#line 176 "agent_parser.yy"
+#line 177 "agent_parser.yy" // lalr1.cc:907
{
// map containing a single entry
- ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
}
-#line 808 "agent_parser.cc"
+#line 800 "agent_parser.cc" // lalr1.cc:907
break;
case 24:
-#line 180 "agent_parser.yy"
+#line 181 "agent_parser.yy" // lalr1.cc:907
{
// 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 > ());
+ ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
}
-#line 818 "agent_parser.cc"
+#line 810 "agent_parser.cc" // lalr1.cc:907
break;
case 25:
-#line 187 "agent_parser.yy"
+#line 188 "agent_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
}
-#line 827 "agent_parser.cc"
+#line 819 "agent_parser.cc" // lalr1.cc:907
break;
case 26:
-#line 190 "agent_parser.yy"
+#line 191 "agent_parser.yy" // lalr1.cc:907
{
}
-#line 834 "agent_parser.cc"
+#line 826 "agent_parser.cc" // lalr1.cc:907
break;
case 29:
-#line 197 "agent_parser.yy"
+#line 198 "agent_parser.yy" // lalr1.cc:907
{
// List consisting of a single element.
- ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
}
-#line 843 "agent_parser.cc"
+#line 835 "agent_parser.cc" // lalr1.cc:907
break;
case 30:
-#line 201 "agent_parser.yy"
+#line 202 "agent_parser.yy" // lalr1.cc:907
{
// List ending with , and a value.
- ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
}
-#line 852 "agent_parser.cc"
+#line 844 "agent_parser.cc" // lalr1.cc:907
break;
case 31:
-#line 214 "agent_parser.yy"
+#line 215 "agent_parser.yy" // lalr1.cc:907
{
const std::string& where = ctx.contextName();
- const std::string& keyword = yystack_[1].value.as < std::string > ();
+ const std::string& keyword = yystack_[1].value.as< std::string > ();
error(yystack_[1].location,
"got unexpected keyword \"" + keyword + "\" in " + where + " map.");
}
-#line 863 "agent_parser.cc"
+#line 855 "agent_parser.cc" // lalr1.cc:907
break;
case 32:
-#line 223 "agent_parser.yy"
+#line 224 "agent_parser.yy" // lalr1.cc:907
{
// 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 874 "agent_parser.cc"
+#line 866 "agent_parser.cc" // lalr1.cc:907
break;
case 33:
-#line 228 "agent_parser.yy"
+#line 229 "agent_parser.yy" // lalr1.cc:907
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// for it.
}
-#line 884 "agent_parser.cc"
+#line 876 "agent_parser.cc" // lalr1.cc:907
break;
case 42:
-#line 249 "agent_parser.yy"
+#line 250 "agent_parser.yy" // lalr1.cc:907
{
// Let's create a MapElement that will represent it, add it to the
ctx.stack_.push_back(m);
ctx.enter(ctx.AGENT);
}
-#line 900 "agent_parser.cc"
+#line 892 "agent_parser.cc" // lalr1.cc:907
break;
case 43:
-#line 259 "agent_parser.yy"
+#line 260 "agent_parser.yy" // lalr1.cc:907
{
// Ok, we're done with parsing control-agent. Let's take the map
// off the stack.
ctx.stack_.pop_back();
ctx.leave();
}
-#line 911 "agent_parser.cc"
+#line 903 "agent_parser.cc" // lalr1.cc:907
break;
case 54:
-#line 282 "agent_parser.yy"
+#line 283 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 919 "agent_parser.cc"
+#line 911 "agent_parser.cc" // lalr1.cc:907
break;
case 55:
-#line 284 "agent_parser.yy"
+#line 285 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ 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 929 "agent_parser.cc"
+#line 921 "agent_parser.cc" // lalr1.cc:907
break;
case 56:
-#line 290 "agent_parser.yy"
+#line 291 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("http-port", prf);
}
-#line 938 "agent_parser.cc"
+#line 930 "agent_parser.cc" // lalr1.cc:907
break;
case 57:
-#line 295 "agent_parser.yy"
+#line 296 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 946 "agent_parser.cc"
+#line 938 "agent_parser.cc" // lalr1.cc:907
break;
case 58:
-#line 297 "agent_parser.yy"
+#line 298 "agent_parser.yy" // lalr1.cc:907
{
ElementPtr parent = ctx.stack_.back();
- ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
+ ElementPtr user_context = yystack_[0].value.as< ElementPtr > ();
ConstElementPtr old = parent->get("user-context");
// Handle already existing user context
parent->set("user-context", user_context);
ctx.leave();
}
-#line 973 "agent_parser.cc"
+#line 965 "agent_parser.cc" // lalr1.cc:907
break;
case 59:
-#line 320 "agent_parser.yy"
+#line 321 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 981 "agent_parser.cc"
+#line 973 "agent_parser.cc" // lalr1.cc:907
break;
case 60:
-#line 322 "agent_parser.yy"
+#line 323 "agent_parser.yy" // lalr1.cc:907
{
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)));
+ 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
parent->set("user-context", user_context);
ctx.leave();
}
-#line 1010 "agent_parser.cc"
+#line 1002 "agent_parser.cc" // lalr1.cc:907
break;
case 61:
-#line 348 "agent_parser.yy"
+#line 349 "agent_parser.yy" // lalr1.cc:907
{
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 1021 "agent_parser.cc"
+#line 1013 "agent_parser.cc" // lalr1.cc:907
break;
case 62:
-#line 353 "agent_parser.yy"
+#line 354 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1030 "agent_parser.cc"
+#line 1022 "agent_parser.cc" // lalr1.cc:907
break;
case 67:
-#line 366 "agent_parser.yy"
+#line 367 "agent_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1040 "agent_parser.cc"
+#line 1032 "agent_parser.cc" // lalr1.cc:907
break;
case 68:
-#line 370 "agent_parser.yy"
+#line 371 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
}
-#line 1048 "agent_parser.cc"
+#line 1040 "agent_parser.cc" // lalr1.cc:907
break;
case 74:
-#line 383 "agent_parser.yy"
+#line 384 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1056 "agent_parser.cc"
+#line 1048 "agent_parser.cc" // lalr1.cc:907
break;
case 75:
-#line 385 "agent_parser.yy"
+#line 386 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("library", lib);
ctx.leave();
}
-#line 1066 "agent_parser.cc"
+#line 1058 "agent_parser.cc" // lalr1.cc:907
break;
case 76:
-#line 391 "agent_parser.yy"
+#line 392 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1074 "agent_parser.cc"
+#line 1066 "agent_parser.cc" // lalr1.cc:907
break;
case 77:
-#line 393 "agent_parser.yy"
+#line 394 "agent_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1083 "agent_parser.cc"
+#line 1075 "agent_parser.cc" // lalr1.cc:907
break;
case 78:
-#line 401 "agent_parser.yy"
+#line 402 "agent_parser.yy" // lalr1.cc:907
{
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 1094 "agent_parser.cc"
+#line 1086 "agent_parser.cc" // lalr1.cc:907
break;
case 79:
-#line 406 "agent_parser.yy"
+#line 407 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1103 "agent_parser.cc"
+#line 1095 "agent_parser.cc" // lalr1.cc:907
break;
case 86:
-#line 427 "agent_parser.yy"
+#line 428 "agent_parser.yy" // lalr1.cc:907
{
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 1114 "agent_parser.cc"
+#line 1106 "agent_parser.cc" // lalr1.cc:907
break;
case 87:
-#line 432 "agent_parser.yy"
+#line 433 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1123 "agent_parser.cc"
+#line 1115 "agent_parser.cc" // lalr1.cc:907
break;
case 88:
-#line 438 "agent_parser.yy"
+#line 439 "agent_parser.yy" // lalr1.cc:907
{
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 1134 "agent_parser.cc"
+#line 1126 "agent_parser.cc" // lalr1.cc:907
break;
case 89:
-#line 443 "agent_parser.yy"
+#line 444 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1143 "agent_parser.cc"
+#line 1135 "agent_parser.cc" // lalr1.cc:907
break;
case 90:
-#line 449 "agent_parser.yy"
+#line 450 "agent_parser.yy" // lalr1.cc:907
{
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 1154 "agent_parser.cc"
+#line 1146 "agent_parser.cc" // lalr1.cc:907
break;
case 91:
-#line 454 "agent_parser.yy"
+#line 455 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1163 "agent_parser.cc"
+#line 1155 "agent_parser.cc" // lalr1.cc:907
break;
case 99:
-#line 473 "agent_parser.yy"
+#line 474 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1171 "agent_parser.cc"
+#line 1163 "agent_parser.cc" // lalr1.cc:907
break;
case 100:
-#line 475 "agent_parser.yy"
+#line 476 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr name(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("socket-name", name);
ctx.leave();
}
-#line 1181 "agent_parser.cc"
+#line 1173 "agent_parser.cc" // lalr1.cc:907
break;
case 101:
-#line 482 "agent_parser.yy"
+#line 483 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.SOCKET_TYPE);
}
-#line 1189 "agent_parser.cc"
+#line 1181 "agent_parser.cc" // lalr1.cc:907
break;
case 102:
-#line 484 "agent_parser.yy"
+#line 485 "agent_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("socket-type", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1198 "agent_parser.cc"
+#line 1190 "agent_parser.cc" // lalr1.cc:907
break;
case 103:
-#line 490 "agent_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); }
-#line 1204 "agent_parser.cc"
+#line 491 "agent_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); }
+#line 1196 "agent_parser.cc" // lalr1.cc:907
break;
case 104:
-#line 496 "agent_parser.yy"
+#line 497 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1212 "agent_parser.cc"
+#line 1204 "agent_parser.cc" // lalr1.cc:907
break;
case 105:
-#line 498 "agent_parser.yy"
+#line 499 "agent_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1221 "agent_parser.cc"
+#line 1213 "agent_parser.cc" // lalr1.cc:907
break;
case 106:
-#line 503 "agent_parser.yy"
+#line 504 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1229 "agent_parser.cc"
+#line 1221 "agent_parser.cc" // lalr1.cc:907
break;
case 107:
-#line 505 "agent_parser.yy"
+#line 506 "agent_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1238 "agent_parser.cc"
+#line 1230 "agent_parser.cc" // lalr1.cc:907
break;
case 108:
-#line 510 "agent_parser.yy"
+#line 511 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1246 "agent_parser.cc"
+#line 1238 "agent_parser.cc" // lalr1.cc:907
break;
case 109:
-#line 512 "agent_parser.yy"
+#line 513 "agent_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1255 "agent_parser.cc"
+#line 1247 "agent_parser.cc" // lalr1.cc:907
break;
case 110:
-#line 522 "agent_parser.yy"
+#line 523 "agent_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("Logging", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.LOGGING);
}
-#line 1266 "agent_parser.cc"
+#line 1258 "agent_parser.cc" // lalr1.cc:907
break;
case 111:
-#line 527 "agent_parser.yy"
+#line 528 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1275 "agent_parser.cc"
+#line 1267 "agent_parser.cc" // lalr1.cc:907
break;
case 115:
-#line 544 "agent_parser.yy"
+#line 545 "agent_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("loggers", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 1286 "agent_parser.cc"
+#line 1278 "agent_parser.cc" // lalr1.cc:907
break;
case 116:
-#line 549 "agent_parser.yy"
+#line 550 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1295 "agent_parser.cc"
+#line 1287 "agent_parser.cc" // lalr1.cc:907
break;
case 119:
-#line 561 "agent_parser.yy"
+#line 562 "agent_parser.yy" // lalr1.cc:907
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 1305 "agent_parser.cc"
+#line 1297 "agent_parser.cc" // lalr1.cc:907
break;
case 120:
-#line 565 "agent_parser.yy"
+#line 566 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
}
-#line 1313 "agent_parser.cc"
+#line 1305 "agent_parser.cc" // lalr1.cc:907
break;
case 130:
-#line 582 "agent_parser.yy"
+#line 583 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1321 "agent_parser.cc"
+#line 1313 "agent_parser.cc" // lalr1.cc:907
break;
case 131:
-#line 584 "agent_parser.yy"
+#line 585 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr name(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("name", name);
ctx.leave();
}
-#line 1331 "agent_parser.cc"
+#line 1323 "agent_parser.cc" // lalr1.cc:907
break;
case 132:
-#line 590 "agent_parser.yy"
+#line 591 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 1340 "agent_parser.cc"
+#line 1332 "agent_parser.cc" // lalr1.cc:907
break;
case 133:
-#line 595 "agent_parser.yy"
+#line 596 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1348 "agent_parser.cc"
+#line 1340 "agent_parser.cc" // lalr1.cc:907
break;
case 134:
-#line 597 "agent_parser.yy"
+#line 598 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 1358 "agent_parser.cc"
+#line 1350 "agent_parser.cc" // lalr1.cc:907
break;
case 135:
-#line 603 "agent_parser.yy"
+#line 604 "agent_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output_options", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 1369 "agent_parser.cc"
+#line 1361 "agent_parser.cc" // lalr1.cc:907
break;
case 136:
-#line 608 "agent_parser.yy"
+#line 609 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1378 "agent_parser.cc"
+#line 1370 "agent_parser.cc" // lalr1.cc:907
break;
case 139:
-#line 617 "agent_parser.yy"
+#line 618 "agent_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1388 "agent_parser.cc"
+#line 1380 "agent_parser.cc" // lalr1.cc:907
break;
case 140:
-#line 621 "agent_parser.yy"
+#line 622 "agent_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
}
-#line 1396 "agent_parser.cc"
+#line 1388 "agent_parser.cc" // lalr1.cc:907
break;
- case 147:
-#line 635 "agent_parser.yy"
+ case 148:
+#line 637 "agent_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORDS);
}
-#line 1404 "agent_parser.cc"
+#line 1396 "agent_parser.cc" // lalr1.cc:907
break;
- case 148:
-#line 637 "agent_parser.yy"
+ case 149:
+#line 639 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 1414 "agent_parser.cc"
+#line 1406 "agent_parser.cc" // lalr1.cc:907
break;
- case 149:
-#line 643 "agent_parser.yy"
+ case 150:
+#line 645 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush", flush);
}
-#line 1423 "agent_parser.cc"
+#line 1415 "agent_parser.cc" // lalr1.cc:907
break;
- case 150:
-#line 648 "agent_parser.yy"
+ case 151:
+#line 650 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxsize", maxsize);
}
-#line 1432 "agent_parser.cc"
+#line 1424 "agent_parser.cc" // lalr1.cc:907
break;
- case 151:
-#line 653 "agent_parser.yy"
+ case 152:
+#line 655 "agent_parser.yy" // lalr1.cc:907
{
- ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxver", maxver);
}
-#line 1441 "agent_parser.cc"
+#line 1433 "agent_parser.cc" // lalr1.cc:907
break;
+ case 153:
+#line 660 "agent_parser.yy" // lalr1.cc:907
+ {
+ ctx.enter(ctx.NO_KEYWORDS);
+}
+#line 1441 "agent_parser.cc" // lalr1.cc:907
+ break;
-#line 1445 "agent_parser.cc"
+ case 154:
+#line 662 "agent_parser.yy" // lalr1.cc:907
+ {
+ ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->set("pattern", sev);
+ ctx.leave();
+}
+#line 1451 "agent_parser.cc" // lalr1.cc:907
+ break;
+
+#line 1455 "agent_parser.cc" // lalr1.cc:907
default:
break;
}
#if YY_EXCEPTIONS
catch (const syntax_error& yyexc)
{
- YYCDEBUG << "Caught exception: " << yyexc.what() << '\n';
error (yyexc);
YYERROR;
}
}
goto yynewstate;
-
/*--------------------------------------.
| yyerrlab -- here on detecting error. |
`--------------------------------------*/
| yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/
yyerrorlab:
- /* Pacify compilers when the user code never invokes YYERROR and
- the label yyerrorlab therefore never appears in user code. */
- if (false)
- YYERROR;
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (false)
+ goto yyerrorlab;
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
yypop_ (yylen);
yylen = 0;
goto yyerrlab1;
-
/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR. |
`-------------------------------------------------------------*/
}
goto yynewstate;
-
- /*-------------------------------------.
- | yyacceptlab -- YYACCEPT comes here. |
- `-------------------------------------*/
+ // Accept.
yyacceptlab:
yyresult = 0;
goto yyreturn;
-
- /*-----------------------------------.
- | yyabortlab -- YYABORT comes here. |
- `-----------------------------------*/
+ // Abort.
yyabortlab:
yyresult = 1;
goto yyreturn;
-
- /*-----------------------------------------------------.
- | yyreturn -- parsing is finished, return the result. |
- `-----------------------------------------------------*/
yyreturn:
if (!yyla.empty ())
yy_destroy_ ("Cleanup: discarding lookahead", yyla);
}
- const short AgentParser::yypact_ninf_ = -133;
+ const signed char AgentParser::yypact_ninf_ = -115;
const signed char AgentParser::yytable_ninf_ = -1;
const short
AgentParser::yypact_[] =
{
- 71, -133, -133, -133, 7, 3, 2, 4, -133, -133,
- -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
- -133, -133, -133, -133, 3, -28, -8, 9, -133, 20,
- 29, 54, 49, 76, -133, -133, -133, -133, -133, 95,
- -133, 22, -133, -133, -133, -133, -133, -133, -133, 101,
- -133, -133, 103, -133, -133, -133, 69, -133, -133, -133,
- -133, -133, -133, -133, -133, -133, 3, 3, -133, 63,
- 104, 108, 109, 110, 111, -133, -8, -133, 112, 75,
- 114, 115, 113, 118, 120, 9, -133, -133, -133, 121,
- 122, 123, 3, 3, 3, -133, 91, -133, 124, 96,
- -133, 128, 129, -133, 3, 9, 116, -133, -133, -133,
- -133, -133, -133, -133, -2, 131, 132, -133, 70, 78,
- -133, -133, -133, -133, -133, -133, 82, -133, -133, -133,
- -133, -133, 130, 137, -133, -133, 53, -133, -133, 116,
- -133, 139, 140, 141, -2, -133, -5, -133, 131, 24,
- 132, -133, -133, 134, 142, 143, -133, -133, -133, -133,
- 84, -133, -133, -133, -133, -133, -133, 144, -133, -133,
- -133, -133, 86, -133, -133, -133, -133, -133, -133, 47,
- 47, 47, 147, 148, 17, -133, 149, 150, 105, 151,
- 24, -133, -133, -133, -133, -133, -133, 90, -133, -133,
- -133, 92, 93, 117, 3, -133, 119, 152, -133, 125,
- -133, 155, 157, 47, -133, -133, -133, -133, -133, -133,
- 156, -133, 133, 135, -133, -133, 100, -133, -133, -133,
- -133, 42, 156, -133, -133, 158, 160, 161, 94, -133,
- -133, -133, -133, -133, -133, 166, 102, 136, 145, 42,
- -133, 138, -133, -133, -133, -133, -133
+ 71, -115, -115, -115, 8, 2, -5, 3, -115, -115,
+ -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, -115, -115, -115, 2, -19, 12, 13, -115, 15,
+ 35, 48, 51, 74, -115, -115, -115, -115, -115, 75,
+ -115, 28, -115, -115, -115, -115, -115, -115, -115, 83,
+ -115, -115, 84, -115, -115, -115, 53, -115, -115, -115,
+ -115, -115, -115, -115, -115, -115, 2, 2, -115, 65,
+ 104, 109, 110, 111, 112, -115, 12, -115, 113, 76,
+ 114, 116, 115, 120, 121, 13, -115, -115, -115, 125,
+ 123, 124, 2, 2, 2, -115, 90, -115, 126, 92,
+ -115, 130, 131, -115, 2, 13, 117, -115, -115, -115,
+ -115, -115, -115, -115, -2, 132, 133, -115, 57, 70,
+ -115, -115, -115, -115, -115, -115, 73, -115, -115, -115,
+ -115, -115, 135, 134, -115, -115, 14, -115, -115, 117,
+ -115, 138, 140, 141, -2, -115, 9, -115, 132, 44,
+ 133, -115, -115, 139, 142, 143, -115, -115, -115, -115,
+ 82, -115, -115, -115, -115, -115, -115, 144, -115, -115,
+ -115, -115, 93, -115, -115, -115, -115, -115, -115, -1,
+ -1, -1, 147, 148, 6, -115, 149, 150, 118, 151,
+ 44, -115, -115, -115, -115, -115, -115, 94, -115, -115,
+ -115, 95, 96, 105, 2, -115, 122, 152, -115, 128,
+ -115, 154, 155, -1, -115, -115, -115, -115, -115, -115,
+ 153, -115, 129, 145, -115, -115, 103, -115, -115, -115,
+ -115, 60, 153, -115, -115, 158, 159, 161, -115, 97,
+ -115, -115, -115, -115, -115, -115, -115, 168, 136, 146,
+ 156, 169, 60, -115, 137, -115, -115, -115, 160, -115,
+ -115, -115
};
const unsigned char
95, 0, 0, 0, 0, 70, 0, 0, 132, 0,
122, 0, 0, 0, 87, 89, 91, 75, 77, 131,
0, 134, 0, 0, 93, 139, 0, 137, 100, 103,
- 102, 0, 0, 136, 147, 0, 0, 0, 0, 141,
- 143, 144, 145, 146, 138, 0, 0, 0, 0, 0,
- 140, 0, 149, 150, 151, 142, 148
+ 102, 0, 0, 136, 148, 0, 0, 0, 153, 0,
+ 141, 143, 144, 145, 146, 147, 138, 0, 0, 0,
+ 0, 0, 0, 140, 0, 150, 151, 152, 0, 142,
+ 149, 154
};
- const short
+ const signed char
AgentParser::yypgoto_[] =
{
- -133, -133, -133, -133, -133, -133, -133, -133, -24, 37,
- -133, -133, -133, -133, -133, -133, -133, -133, -23, -133,
- -133, -133, 97, -133, -133, 66, 87, -133, -133, -133,
- -22, -133, -21, -133, -133, -133, -133, -133, 27, -133,
- -133, -7, -133, -133, -133, -133, -133, -133, -133, 32,
- -133, -133, -133, -133, -133, -133, -132, -32, -133, -133,
- -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
- -133, -133, 43, -105, -133, -133, 33, -133, -133, -6,
- -133, -133, -133, -133, -133, -133, -133, -133, -47, -133,
- -133, -63, -133, -133, -133, -133, -133
+ -115, -115, -115, -115, -115, -115, -115, -115, -24, 40,
+ -115, -115, -115, -115, -115, -115, -115, -115, -23, -115,
+ -115, -115, 80, -115, -115, 69, 91, -115, -115, -115,
+ -22, -115, -21, -115, -115, -115, -115, -115, 27, -115,
+ -115, -7, -115, -115, -115, -115, -115, -115, -115, 34,
+ -115, -115, -115, -115, -115, -115, -114, -31, -115, -115,
+ -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+ -115, -115, 45, -105, -115, -115, 33, -115, -115, -4,
+ -115, -115, -115, -115, -115, -115, -115, -115, -47, -115,
+ -115, -65, -115, -115, -115, -115, -115, -115, -115
};
const short
200, 212, 230, 44, 72, 45, 73, 46, 74, 47,
71, 119, 120, 64, 84, 136, 137, 149, 172, 173,
174, 186, 175, 176, 189, 177, 187, 226, 227, 231,
- 238, 239, 240, 245, 241, 242, 243
+ 239, 240, 241, 247, 242, 243, 244, 245, 251
};
const unsigned short
AgentParser::yytable_[] =
{
- 28, 121, 34, 40, 55, 60, 61, 8, 9, 20,
- 10, 22, 11, 31, 122, 123, 124, 35, 157, 158,
- 48, 49, 50, 51, 52, 76, 65, 36, 37, 38,
- 77, 53, 66, 39, 121, 54, 39, 50, 51, 39,
- 157, 158, 87, 88, 12, 13, 14, 15, 201, 202,
- 39, 165, 166, 40, 167, 168, 150, 68, 67, 151,
- 50, 51, 55, 60, 61, 39, 192, 193, 107, 108,
- 109, 234, 85, 85, 235, 236, 237, 86, 138, 69,
- 117, 139, 55, 60, 61, 144, 140, 184, 39, 190,
- 145, 125, 185, 213, 191, 213, 213, 249, 214, 75,
- 215, 216, 250, 232, 89, 79, 233, 82, 90, 1,
- 2, 3, 91, 92, 93, 94, 96, 97, 98, 99,
- 100, 125, 101, 159, 102, 104, 169, 170, 171, 105,
- 106, 10, 110, 115, 116, 111, 147, 113, 131, 135,
- 148, 179, 54, 153, 154, 155, 252, 208, 188, 180,
- 181, 203, 204, 206, 207, 209, 229, 220, 217, 222,
- 219, 223, 246, 225, 247, 248, 221, 169, 170, 171,
- 251, 118, 103, 95, 228, 164, 156, 205, 253, 256,
- 218, 224, 152, 178, 210, 244, 255, 254
+ 28, 121, 20, 40, 55, 60, 61, 9, 8, 10,
+ 22, 11, 50, 51, 122, 123, 124, 150, 192, 193,
+ 151, 65, 34, 31, 48, 49, 50, 51, 52, 157,
+ 158, 76, 157, 158, 121, 53, 77, 35, 66, 54,
+ 39, 39, 87, 88, 12, 13, 14, 15, 36, 37,
+ 38, 39, 67, 40, 39, 39, 85, 50, 51, 68,
+ 85, 86, 55, 60, 61, 138, 201, 202, 107, 108,
+ 109, 165, 166, 139, 167, 168, 144, 69, 140, 75,
+ 117, 145, 55, 60, 61, 184, 39, 79, 82, 234,
+ 185, 125, 235, 236, 237, 238, 190, 213, 213, 213,
+ 252, 191, 214, 215, 216, 253, 232, 89, 90, 233,
+ 1, 2, 3, 91, 92, 93, 94, 96, 98, 97,
+ 99, 125, 100, 159, 101, 102, 169, 170, 171, 104,
+ 105, 106, 110, 10, 113, 115, 116, 148, 111, 131,
+ 135, 147, 153, 54, 154, 155, 179, 217, 188, 180,
+ 181, 203, 204, 206, 207, 209, 95, 220, 222, 223,
+ 225, 208, 248, 249, 219, 250, 229, 169, 170, 171,
+ 221, 228, 254, 258, 118, 164, 103, 205, 156, 260,
+ 218, 255, 224, 178, 152, 246, 210, 259, 0, 256,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 257,
+ 0, 0, 261
};
- const unsigned char
+ const short
AgentParser::yycheck_[] =
{
- 24, 106, 10, 26, 27, 27, 27, 0, 5, 7,
- 7, 7, 9, 41, 16, 17, 18, 25, 23, 24,
- 11, 12, 13, 14, 15, 3, 6, 35, 36, 37,
- 8, 22, 3, 41, 139, 26, 41, 13, 14, 41,
- 23, 24, 66, 67, 41, 42, 43, 44, 180, 181,
- 41, 27, 28, 76, 30, 31, 3, 8, 4, 6,
- 13, 14, 85, 85, 85, 41, 19, 20, 92, 93,
- 94, 29, 3, 3, 32, 33, 34, 8, 8, 3,
- 104, 3, 105, 105, 105, 3, 8, 3, 41, 3,
- 8, 114, 8, 3, 8, 3, 3, 3, 8, 4,
- 8, 8, 8, 3, 41, 4, 6, 4, 4, 38,
- 39, 40, 4, 4, 4, 4, 4, 42, 4, 4,
- 7, 144, 4, 146, 4, 4, 149, 149, 149, 7,
- 7, 7, 41, 5, 5, 98, 6, 41, 7, 7,
- 3, 7, 26, 4, 4, 4, 44, 42, 4, 7,
- 7, 4, 4, 4, 4, 4, 21, 5, 41, 4,
- 41, 4, 4, 7, 4, 4, 41, 190, 190, 190,
- 4, 105, 85, 76, 41, 148, 144, 184, 42, 41,
- 204, 213, 139, 150, 190, 232, 249, 42
+ 24, 106, 7, 26, 27, 27, 27, 5, 0, 7,
+ 7, 9, 13, 14, 16, 17, 18, 3, 19, 20,
+ 6, 6, 10, 42, 11, 12, 13, 14, 15, 23,
+ 24, 3, 23, 24, 139, 22, 8, 25, 3, 26,
+ 42, 42, 66, 67, 42, 43, 44, 45, 36, 37,
+ 38, 42, 4, 76, 42, 42, 3, 13, 14, 8,
+ 3, 8, 85, 85, 85, 8, 180, 181, 92, 93,
+ 94, 27, 28, 3, 30, 31, 3, 3, 8, 4,
+ 104, 8, 105, 105, 105, 3, 42, 4, 4, 29,
+ 8, 114, 32, 33, 34, 35, 3, 3, 3, 3,
+ 3, 8, 8, 8, 8, 8, 3, 42, 4, 6,
+ 39, 40, 41, 4, 4, 4, 4, 4, 4, 43,
+ 4, 144, 7, 146, 4, 4, 149, 149, 149, 4,
+ 7, 7, 42, 7, 42, 5, 5, 3, 98, 7,
+ 7, 6, 4, 26, 4, 4, 7, 42, 4, 7,
+ 7, 4, 4, 4, 4, 4, 76, 5, 4, 4,
+ 7, 43, 4, 4, 42, 4, 21, 190, 190, 190,
+ 42, 42, 4, 4, 105, 148, 85, 184, 144, 42,
+ 204, 45, 213, 150, 139, 232, 190, 252, -1, 43,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
+ -1, -1, 42
};
const unsigned char
AgentParser::yystos_[] =
{
- 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, 26, 63, 70, 71, 72, 74,
- 75, 77, 79, 91, 118, 6, 3, 4, 8, 3,
- 69, 115, 109, 111, 113, 4, 3, 8, 73, 4,
- 76, 78, 4, 80, 119, 3, 8, 53, 53, 41,
- 4, 4, 4, 4, 4, 67, 4, 42, 4, 4,
- 7, 4, 4, 71, 4, 7, 7, 53, 53, 53,
- 41, 54, 56, 41, 92, 5, 5, 53, 70, 116,
- 117, 118, 16, 17, 18, 63, 93, 94, 95, 97,
- 99, 7, 81, 82, 83, 7, 120, 121, 8, 3,
- 8, 96, 98, 100, 3, 8, 84, 6, 3, 122,
- 3, 6, 117, 4, 4, 4, 94, 23, 24, 63,
- 85, 86, 87, 89, 83, 27, 28, 30, 31, 63,
- 75, 77, 123, 124, 125, 127, 128, 130, 121, 7,
- 7, 7, 88, 90, 3, 8, 126, 131, 4, 129,
- 3, 8, 19, 20, 63, 75, 77, 101, 102, 103,
- 105, 101, 101, 4, 4, 86, 4, 4, 42, 4,
- 124, 104, 106, 3, 8, 8, 8, 41, 53, 41,
- 5, 41, 4, 4, 102, 7, 132, 133, 41, 21,
- 107, 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
+ 0, 39, 40, 41, 47, 48, 49, 50, 0, 5,
+ 7, 9, 42, 43, 44, 45, 53, 54, 55, 60,
+ 7, 65, 7, 51, 61, 56, 66, 52, 54, 62,
+ 63, 42, 58, 59, 10, 25, 36, 37, 38, 42,
+ 64, 67, 68, 69, 109, 111, 113, 115, 11, 12,
+ 13, 14, 15, 22, 26, 64, 71, 72, 73, 75,
+ 76, 78, 80, 92, 119, 6, 3, 4, 8, 3,
+ 70, 116, 110, 112, 114, 4, 3, 8, 74, 4,
+ 77, 79, 4, 81, 120, 3, 8, 54, 54, 42,
+ 4, 4, 4, 4, 4, 68, 4, 43, 4, 4,
+ 7, 4, 4, 72, 4, 7, 7, 54, 54, 54,
+ 42, 55, 57, 42, 93, 5, 5, 54, 71, 117,
+ 118, 119, 16, 17, 18, 64, 94, 95, 96, 98,
+ 100, 7, 82, 83, 84, 7, 121, 122, 8, 3,
+ 8, 97, 99, 101, 3, 8, 85, 6, 3, 123,
+ 3, 6, 118, 4, 4, 4, 95, 23, 24, 64,
+ 86, 87, 88, 90, 84, 27, 28, 30, 31, 64,
+ 76, 78, 124, 125, 126, 128, 129, 131, 122, 7,
+ 7, 7, 89, 91, 3, 8, 127, 132, 4, 130,
+ 3, 8, 19, 20, 64, 76, 78, 102, 103, 104,
+ 106, 102, 102, 4, 4, 87, 4, 4, 43, 4,
+ 125, 105, 107, 3, 8, 8, 8, 42, 54, 42,
+ 5, 42, 4, 4, 103, 7, 133, 134, 42, 21,
+ 108, 135, 3, 6, 29, 32, 33, 34, 35, 136,
+ 137, 138, 140, 141, 142, 143, 134, 139, 4, 4,
+ 4, 144, 3, 8, 4, 45, 43, 43, 4, 137,
+ 42, 42
};
const unsigned char
AgentParser::yyr1_[] =
{
- 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, 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
+ 0, 46, 48, 47, 49, 47, 50, 47, 52, 51,
+ 53, 54, 54, 54, 54, 54, 54, 54, 56, 55,
+ 57, 58, 58, 59, 59, 61, 60, 62, 62, 63,
+ 63, 64, 66, 65, 67, 67, 68, 68, 68, 68,
+ 68, 68, 70, 69, 71, 71, 72, 72, 72, 72,
+ 72, 72, 72, 72, 74, 73, 75, 77, 76, 79,
+ 78, 81, 80, 82, 82, 83, 83, 85, 84, 86,
+ 86, 86, 87, 87, 89, 88, 91, 90, 93, 92,
+ 94, 94, 95, 95, 95, 95, 97, 96, 99, 98,
+ 101, 100, 102, 102, 103, 103, 103, 103, 103, 105,
+ 104, 107, 106, 108, 110, 109, 112, 111, 114, 113,
+ 116, 115, 117, 117, 118, 120, 119, 121, 121, 123,
+ 122, 124, 124, 125, 125, 125, 125, 125, 125, 125,
+ 127, 126, 128, 130, 129, 132, 131, 133, 133, 135,
+ 134, 136, 136, 137, 137, 137, 137, 137, 139, 138,
+ 140, 141, 142, 144, 143
};
const unsigned char
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
+ 4, 1, 3, 1, 1, 1, 1, 1, 0, 4,
+ 3, 3, 3, 0, 4
};
"\"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",
+ "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"",
+ "\"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_value",
"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
+ "$@32", "flush", "maxsize", "maxver", "pattern", "$@33", YY_NULLPTR
};
#if AGENT_DEBUG
const unsigned short
AgentParser::yyrline_[] =
{
- 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, 279, 282, 282, 290, 295, 295, 320,
- 320, 348, 348, 358, 359, 362, 363, 366, 366, 374,
- 375, 376, 379, 380, 383, 383, 391, 391, 401, 401,
- 414, 415, 420, 421, 422, 423, 427, 427, 438, 438,
- 449, 449, 460, 461, 465, 466, 467, 468, 469, 473,
- 473, 482, 482, 490, 496, 496, 503, 503, 510, 510,
- 522, 522, 535, 536, 540, 544, 544, 556, 557, 561,
- 561, 569, 570, 573, 574, 575, 576, 577, 578, 579,
- 582, 582, 590, 595, 595, 603, 603, 613, 614, 617,
- 617, 625, 626, 629, 630, 631, 632, 635, 635, 643,
- 648, 653
+ 0, 115, 115, 115, 116, 116, 117, 117, 125, 125,
+ 136, 142, 143, 144, 145, 146, 147, 148, 152, 152,
+ 163, 168, 169, 177, 181, 188, 188, 194, 195, 198,
+ 202, 215, 224, 224, 236, 237, 241, 242, 243, 244,
+ 245, 246, 250, 250, 267, 268, 273, 274, 275, 276,
+ 277, 278, 279, 280, 283, 283, 291, 296, 296, 321,
+ 321, 349, 349, 359, 360, 363, 364, 367, 367, 375,
+ 376, 377, 380, 381, 384, 384, 392, 392, 402, 402,
+ 415, 416, 421, 422, 423, 424, 428, 428, 439, 439,
+ 450, 450, 461, 462, 466, 467, 468, 469, 470, 474,
+ 474, 483, 483, 491, 497, 497, 504, 504, 511, 511,
+ 523, 523, 536, 537, 541, 545, 545, 557, 558, 562,
+ 562, 570, 571, 574, 575, 576, 577, 578, 579, 580,
+ 583, 583, 591, 596, 596, 604, 604, 614, 615, 618,
+ 618, 626, 627, 630, 631, 632, 633, 634, 637, 637,
+ 645, 650, 655, 660, 660
};
// Print the state stack on the debug stream.
#endif // AGENT_DEBUG
-#line 14 "agent_parser.yy"
+#line 14 "agent_parser.yy" // lalr1.cc:1218
} } // isc::agent
-#line 2027 "agent_parser.cc"
-
-#line 658 "agent_parser.yy"
+#line 2031 "agent_parser.cc" // lalr1.cc:1218
+#line 668 "agent_parser.yy" // lalr1.cc:1219
void
-// A Bison parser, made by GNU Bison 3.4.1.
+// A Bison parser, made by GNU Bison 3.2.1.
// Skeleton interface for Bison LALR(1) parsers in C++
-// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
#ifndef YY_AGENT_AGENT_PARSER_H_INCLUDED
# define YY_AGENT_AGENT_PARSER_H_INCLUDED
// // "%code requires" blocks.
-#line 17 "agent_parser.yy"
+#line 17 "agent_parser.yy" // lalr1.cc:404
#include <string>
#include <cc/data.h>
using namespace isc::data;
using namespace std;
-#line 59 "agent_parser.h"
+#line 59 "agent_parser.h" // lalr1.cc:404
# include <cassert>
# include <cstdlib> // std::abort
# include <string>
# include <vector>
-#if defined __cplusplus
-# define YY_CPLUSPLUS __cplusplus
-#else
-# define YY_CPLUSPLUS 199711L
-#endif
-
// Support move semantics when possible.
-#if 201103L <= YY_CPLUSPLUS
+#if defined __cplusplus && 201103L <= __cplusplus
# define YY_MOVE std::move
# define YY_MOVE_OR_COPY move
# define YY_MOVE_REF(Type) Type&&
# define YY_RVREF(Type) const Type&
# define YY_COPY(Type) const Type&
#endif
-
-// Support noexcept when possible.
-#if 201103L <= YY_CPLUSPLUS
-# define YY_NOEXCEPT noexcept
-# define YY_NOTHROW
-#else
-# define YY_NOEXCEPT
-# define YY_NOTHROW throw ()
-#endif
-
-// Support constexpr when possible.
-#if 201703 <= YY_CPLUSPLUS
-# define YY_CONSTEXPR constexpr
-#else
-# define YY_CONSTEXPR
-#endif
# include "location.hh"
#include <typeinfo>
#ifndef YYASSERT
# endif /* ! defined YYDEBUG */
#endif /* ! defined AGENT_DEBUG */
-#line 14 "agent_parser.yy"
+#line 14 "agent_parser.yy" // lalr1.cc:404
namespace isc { namespace agent {
-#line 183 "agent_parser.h"
+#line 161 "agent_parser.h" // lalr1.cc:404
+
+ /// A stack with random access from its top.
+ template <typename T, typename S = std::vector<T> >
+ class stack
+ {
+ public:
+ // Hide our reversed order.
+ typedef typename S::reverse_iterator iterator;
+ typedef typename S::const_reverse_iterator const_iterator;
+ typedef typename S::size_type size_type;
+ stack (size_type n = 200)
+ : seq_ (n)
+ {}
+
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ T&
+ operator[] (size_type i)
+ {
+ return seq_[size () - 1 - i];
+ }
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ T&
+ operator[] (int i)
+ {
+ return operator[] (size_type (i));
+ }
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ const T&
+ operator[] (size_type i) const
+ {
+ return seq_[size () - 1 - i];
+ }
- /// A Bison parser.
- class AgentParser
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ const T&
+ operator[] (int i) const
+ {
+ return operator[] (size_type (i));
+ }
+
+ /// Steal the contents of \a t.
+ ///
+ /// Close to move-semantics.
+ void
+ push (YY_MOVE_REF (T) t)
+ {
+ seq_.push_back (T ());
+ operator[](0).move (t);
+ }
+
+ void
+ pop (int n = 1)
+ {
+ for (; 0 < n; --n)
+ seq_.pop_back ();
+ }
+
+ void
+ clear ()
+ {
+ seq_.clear ();
+ }
+
+ size_type
+ size () const
+ {
+ return seq_.size ();
+ }
+
+ const_iterator
+ begin () const
+ {
+ return seq_.rbegin ();
+ }
+
+ const_iterator
+ end () const
+ {
+ return seq_.rend ();
+ }
+
+ private:
+ stack (const stack&);
+ stack& operator= (const stack&);
+ /// The wrapped container.
+ S seq_;
+ };
+
+ /// Present a slice of the top of a stack.
+ template <typename T, typename S = stack<T> >
+ class slice
{
public:
-#ifndef AGENT_STYPE
- /// A buffer to store and retrieve objects.
+ slice (const S& stack, int range)
+ : stack_ (stack)
+ , range_ (range)
+ {}
+
+ const T&
+ operator[] (int i) const
+ {
+ return stack_[range_ - i];
+ }
+
+ private:
+ const S& stack_;
+ int range_;
+ };
+
+
+
+ /// A char[S] buffer to store and retrieve objects.
///
/// Sort of a variant, but does not keep track of the nature
/// of the stored data, since that knowledge is available
- /// via the current parser state.
- class semantic_type
+ /// via the current state.
+ template <size_t S>
+ struct variant
{
- public:
/// Type of *this.
- typedef semantic_type self_type;
+ typedef variant<S> self_type;
/// Empty construction.
- semantic_type () YY_NOEXCEPT
+ variant ()
: yybuffer_ ()
, yytypeid_ (YY_NULLPTR)
{}
/// Construct and fill.
template <typename T>
- semantic_type (YY_RVREF (T) t)
+ variant (YY_RVREF (T) t)
: yytypeid_ (&typeid (T))
{
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
new (yyas_<T> ()) T (YY_MOVE (t));
}
/// Destruction, allowed only if empty.
- ~semantic_type () YY_NOEXCEPT
+ ~variant ()
{
YYASSERT (!yytypeid_);
}
-# if 201103L <= YY_CPLUSPLUS
- /// Instantiate a \a T in here from \a t.
- template <typename T, typename... U>
- T&
- emplace (U&&... u)
- {
- YYASSERT (!yytypeid_);
- YYASSERT (sizeof (T) <= size);
- yytypeid_ = & typeid (T);
- return *new (yyas_<T> ()) T (std::forward <U>(u)...);
- }
-# else
/// Instantiate an empty \a T in here.
template <typename T>
T&
emplace ()
{
YYASSERT (!yytypeid_);
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
yytypeid_ = & typeid (T);
return *new (yyas_<T> ()) T ();
}
+# if defined __cplusplus && 201103L <= __cplusplus
+ /// Instantiate a \a T in here from \a t.
+ template <typename T, typename U>
+ T&
+ emplace (U&& u)
+ {
+ YYASSERT (!yytypeid_);
+ YYASSERT (sizeof (T) <= S);
+ yytypeid_ = & typeid (T);
+ return *new (yyas_<T> ()) T (std::forward <U>(u));
+ }
+# else
/// Instantiate a \a T in here from \a t.
template <typename T>
T&
emplace (const T& t)
{
YYASSERT (!yytypeid_);
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
yytypeid_ = & typeid (T);
return *new (yyas_<T> ()) T (t);
}
/// Accessor to a built \a T.
template <typename T>
T&
- as () YY_NOEXCEPT
+ as ()
{
YYASSERT (yytypeid_);
YYASSERT (*yytypeid_ == typeid (T));
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
return *yyas_<T> ();
}
/// Const accessor to a built \a T (for %printer).
template <typename T>
const T&
- as () const YY_NOEXCEPT
+ as () const
{
YYASSERT (yytypeid_);
YYASSERT (*yytypeid_ == typeid (T));
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
return *yyas_<T> ();
}
- /// Swap the content with \a that, of same type.
+ /// Swap the content with \a other, of same type.
///
/// Both variants must be built beforehand, because swapping the actual
/// data requires reading it (with as()), and this is not possible on
/// unconstructed variants: it would require some dynamic testing, which
/// should not be the variant's responsibility.
/// Swapping between built and (possibly) non-built is done with
- /// self_type::move ().
+ /// variant::move ().
template <typename T>
void
- swap (self_type& that) YY_NOEXCEPT
+ swap (self_type& other)
{
YYASSERT (yytypeid_);
- YYASSERT (*yytypeid_ == *that.yytypeid_);
- std::swap (as<T> (), that.as<T> ());
+ YYASSERT (*yytypeid_ == *other.yytypeid_);
+ std::swap (as<T> (), other.as<T> ());
}
- /// Move the content of \a that to this.
+ /// Move the content of \a other to this.
///
- /// Destroys \a that.
+ /// Destroys \a other.
template <typename T>
void
- move (self_type& that)
+ move (self_type& other)
{
-# if 201103L <= YY_CPLUSPLUS
- emplace<T> (std::move (that.as<T> ()));
+# if defined __cplusplus && 201103L <= __cplusplus
+ emplace<T> (std::move (other.as<T> ()));
# else
emplace<T> ();
- swap<T> (that);
+ swap<T> (other);
# endif
- that.destroy<T> ();
+ other.destroy<T> ();
}
-# if 201103L <= YY_CPLUSPLUS
- /// Move the content of \a that to this.
+# if defined __cplusplus && 201103L <= __cplusplus
+ /// Move the content of \a other to this.
template <typename T>
void
- move (self_type&& that)
+ move (self_type&& other)
{
- emplace<T> (std::move (that.as<T> ()));
- that.destroy<T> ();
+ emplace<T> (std::move (other.as<T> ()));
+ other.destroy<T> ();
}
#endif
- /// Copy the content of \a that to this.
+ /// Copy the content of \a other to this.
template <typename T>
void
- copy (const self_type& that)
+ copy (const self_type& other)
{
- emplace<T> (that.as<T> ());
+ emplace<T> (other.as<T> ());
}
/// Destroy the stored \a T.
private:
/// Prohibit blind copies.
self_type& operator= (const self_type&);
- semantic_type (const self_type&);
+ variant (const self_type&);
/// Accessor to raw memory as \a T.
template <typename T>
T*
- yyas_ () YY_NOEXCEPT
+ yyas_ ()
{
void *yyp = yybuffer_.yyraw;
return static_cast<T*> (yyp);
/// Const accessor to raw memory as \a T.
template <typename T>
const T*
- yyas_ () const YY_NOEXCEPT
+ yyas_ () const
{
const void *yyp = yybuffer_.yyraw;
return static_cast<const T*> (yyp);
}
+ union
+ {
+ /// Strongest alignment constraints.
+ long double yyalign_me;
+ /// A buffer large enough to store any of the semantic values.
+ char yyraw[S];
+ } yybuffer_;
+
+ /// Whether the content is built: if defined, the name of the stored type.
+ const std::type_info *yytypeid_;
+ };
+
+
+ /// A Bison parser.
+ class AgentParser
+ {
+ public:
+#ifndef AGENT_STYPE
/// An auxiliary type to compute the largest semantic type.
union union_type
{
// "constant string"
char dummy5[sizeof (std::string)];
- };
-
- /// The size of the largest semantic type.
- enum { size = sizeof (union_type) };
-
- /// A buffer to store semantic values.
- union
- {
- /// Strongest alignment constraints.
- long double yyalign_me;
- /// A buffer large enough to store any of the semantic values.
- char yyraw[size];
- } yybuffer_;
-
- /// Whether the content is built: if defined, the name of the stored type.
- const std::type_info *yytypeid_;
- };
+};
+ /// Symbol semantic values.
+ typedef variant<sizeof (union_type)> semantic_type;
#else
typedef AGENT_STYPE semantic_type;
#endif
/// Syntax errors thrown from user actions.
struct syntax_error : std::runtime_error
{
- syntax_error (const location_type& l, const std::string& m)
- : std::runtime_error (m)
- , location (l)
- {}
-
- syntax_error (const syntax_error& s)
- : std::runtime_error (s.what ())
- , location (s.location)
- {}
-
- ~syntax_error () YY_NOEXCEPT YY_NOTHROW;
-
+ syntax_error (const location_type& l, const std::string& m);
location_type location;
};
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
+ TOKEN_PATTERN = 290,
+ TOKEN_DHCP4 = 291,
+ TOKEN_DHCP6 = 292,
+ TOKEN_DHCPDDNS = 293,
+ TOKEN_START_JSON = 294,
+ TOKEN_START_AGENT = 295,
+ TOKEN_START_SUB_AGENT = 296,
+ TOKEN_STRING = 297,
+ TOKEN_INTEGER = 298,
+ TOKEN_FLOAT = 299,
+ TOKEN_BOOLEAN = 300
};
};
typedef Base super_type;
/// Default constructor.
- basic_symbol ()
- : value ()
- , location ()
- {}
-
-#if 201103L <= YY_CPLUSPLUS
- /// Move constructor.
- basic_symbol (basic_symbol&& that);
-#endif
+ basic_symbol ();
+
+ /// Move or copy constructor.
+ basic_symbol (YY_RVREF (basic_symbol) other);
- /// Copy constructor.
- basic_symbol (const basic_symbol& that);
/// Constructor for valueless symbols, and symbols from each type.
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, location_type&& l)
- : Base (t)
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const location_type& l)
- : Base (t)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, double&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const double& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
+ basic_symbol (typename Base::kind_type t, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (ElementPtr) v, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (bool) v, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (double) v, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (int64_t) v, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (std::string) v, YY_RVREF (location_type) l);
+
/// Destroy the symbol.
- ~basic_symbol ()
- {
- clear ();
- }
+ ~basic_symbol ();
/// Destroy contents, and record that is empty.
- void clear ()
- {
- // User destructor.
- symbol_number_type yytype = this->type_get ();
- basic_symbol<Base>& yysym = *this;
- (void) yysym;
- switch (yytype)
- {
- default:
- break;
- }
-
- // Type destructor.
-switch (yytype)
- {
- case 53: // value
- case 56: // map_value
- case 107: // socket_type_value
- value.template destroy< ElementPtr > ();
- break;
-
- case 44: // "boolean"
- value.template destroy< bool > ();
- break;
-
- case 43: // "floating point"
- value.template destroy< double > ();
- break;
-
- case 42: // "integer"
- value.template destroy< int64_t > ();
- break;
-
- case 41: // "constant string"
- value.template destroy< std::string > ();
- break;
-
- default:
- break;
- }
-
- Base::clear ();
- }
+ void clear ();
/// Whether empty.
- bool empty () const YY_NOEXCEPT;
+ bool empty () const;
/// Destructive move, \a s is emptied into this.
void move (basic_symbol& s);
location_type location;
private:
-#if YY_CPLUSPLUS < 201103L
+#if !defined __cplusplus || __cplusplus < 201103L
/// Assignment operator.
- basic_symbol& operator= (const basic_symbol& that);
+ basic_symbol& operator= (const basic_symbol& other);
#endif
};
/// Default constructor.
by_type ();
-#if 201103L <= YY_CPLUSPLUS
- /// Move constructor.
- by_type (by_type&& that);
-#endif
-
/// Copy constructor.
- by_type (const by_type& that);
+ by_type (const by_type& other);
/// The symbol type as needed by the constructor.
typedef token_type kind_type;
/// The (internal) type number (corresponding to \a type).
/// \a empty when empty.
- symbol_number_type type_get () const YY_NOEXCEPT;
+ symbol_number_type type_get () const;
/// The token.
- token_type token () const YY_NOEXCEPT;
+ token_type token () const;
/// The symbol type.
/// \a empty_symbol when empty.
};
/// "External" symbols: returned by the scanner.
- struct symbol_type : basic_symbol<by_type>
- {
- /// Superclass.
- typedef basic_symbol<by_type> super_type;
-
- /// Empty symbol.
- symbol_type () {}
-
- /// Constructor for valueless symbols, and symbols from each type.
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, location_type l)
- : super_type(token_type (tok), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_HTTP_HOST || tok == token::TOKEN_HTTP_PORT || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_CONTROL_SOCKETS || tok == token::TOKEN_DHCP4_SERVER || tok == token::TOKEN_DHCP6_SERVER || tok == token::TOKEN_D2_SERVER || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_UNIX || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_NAME || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_START_JSON || tok == token::TOKEN_START_AGENT || tok == token::TOKEN_START_SUB_AGENT);
- }
-#else
- symbol_type (int tok, const location_type& l)
- : super_type(token_type (tok), l)
- {
- YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_HTTP_HOST || tok == token::TOKEN_HTTP_PORT || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_CONTROL_SOCKETS || tok == token::TOKEN_DHCP4_SERVER || tok == token::TOKEN_DHCP6_SERVER || tok == token::TOKEN_D2_SERVER || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_UNIX || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_NAME || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_START_JSON || tok == token::TOKEN_START_AGENT || tok == token::TOKEN_START_SUB_AGENT);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, bool v, location_type l)
- : super_type(token_type (tok), std::move (v), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_BOOLEAN);
- }
-#else
- symbol_type (int tok, const bool& v, const location_type& l)
- : super_type(token_type (tok), v, l)
- {
- YYASSERT (tok == token::TOKEN_BOOLEAN);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, double v, location_type l)
- : super_type(token_type (tok), std::move (v), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_FLOAT);
- }
-#else
- symbol_type (int tok, const double& v, const location_type& l)
- : super_type(token_type (tok), v, l)
- {
- YYASSERT (tok == token::TOKEN_FLOAT);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, int64_t v, location_type l)
- : super_type(token_type (tok), std::move (v), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_INTEGER);
- }
-#else
- symbol_type (int tok, const int64_t& v, const location_type& l)
- : super_type(token_type (tok), v, l)
- {
- YYASSERT (tok == token::TOKEN_INTEGER);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, std::string v, location_type l)
- : super_type(token_type (tok), std::move (v), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_STRING);
- }
-#else
- symbol_type (int tok, const std::string& v, const location_type& l)
- : super_type(token_type (tok), v, l)
- {
- YYASSERT (tok == token::TOKEN_STRING);
- }
-#endif
- };
+ typedef basic_symbol<by_type> symbol_type;
/// Build a parser object.
AgentParser (isc::agent::ParserContext& ctx_yyarg);
/// Report a syntax error.
void error (const syntax_error& err);
- // Implementation of make_symbol for each symbol type.
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_END (location_type l)
- {
- return symbol_type (token::TOKEN_END, std::move (l));
- }
-#else
- static
- symbol_type
- make_END (const location_type& l)
- {
- return symbol_type (token::TOKEN_END, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_COMMA (location_type l)
- {
- return symbol_type (token::TOKEN_COMMA, std::move (l));
- }
-#else
- static
- symbol_type
- make_COMMA (const location_type& l)
- {
- return symbol_type (token::TOKEN_COMMA, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_COLON (location_type l)
- {
- return symbol_type (token::TOKEN_COLON, std::move (l));
- }
-#else
- static
- symbol_type
- make_COLON (const location_type& l)
- {
- return symbol_type (token::TOKEN_COLON, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LSQUARE_BRACKET (location_type l)
- {
- return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
- }
-#else
- static
- symbol_type
- make_LSQUARE_BRACKET (const location_type& l)
- {
- return symbol_type (token::TOKEN_LSQUARE_BRACKET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RSQUARE_BRACKET (location_type l)
- {
- return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
- }
-#else
- static
- symbol_type
- make_RSQUARE_BRACKET (const location_type& l)
- {
- return symbol_type (token::TOKEN_RSQUARE_BRACKET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LCURLY_BRACKET (location_type l)
- {
- return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
- }
-#else
- static
- symbol_type
- make_LCURLY_BRACKET (const location_type& l)
- {
- return symbol_type (token::TOKEN_LCURLY_BRACKET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RCURLY_BRACKET (location_type l)
- {
- return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
- }
-#else
- static
- symbol_type
- make_RCURLY_BRACKET (const location_type& l)
- {
- return symbol_type (token::TOKEN_RCURLY_BRACKET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_NULL_TYPE (location_type l)
- {
- return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
- }
-#else
- static
- symbol_type
- make_NULL_TYPE (const location_type& l)
- {
- return symbol_type (token::TOKEN_NULL_TYPE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONTROL_AGENT (location_type l)
- {
- return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONTROL_AGENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONTROL_AGENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HTTP_HOST (location_type l)
- {
- return symbol_type (token::TOKEN_HTTP_HOST, std::move (l));
- }
-#else
- static
- symbol_type
- make_HTTP_HOST (const location_type& l)
- {
- return symbol_type (token::TOKEN_HTTP_HOST, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HTTP_PORT (location_type l)
- {
- return symbol_type (token::TOKEN_HTTP_PORT, std::move (l));
- }
-#else
- static
- symbol_type
- make_HTTP_PORT (const location_type& l)
- {
- return symbol_type (token::TOKEN_HTTP_PORT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_USER_CONTEXT (location_type l)
- {
- return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
- }
-#else
- static
- symbol_type
- make_USER_CONTEXT (const location_type& l)
- {
- return symbol_type (token::TOKEN_USER_CONTEXT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_COMMENT (location_type l)
- {
- return symbol_type (token::TOKEN_COMMENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_COMMENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_COMMENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONTROL_SOCKETS (location_type l)
- {
- return symbol_type (token::TOKEN_CONTROL_SOCKETS, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONTROL_SOCKETS (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONTROL_SOCKETS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP4_SERVER (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP4_SERVER, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP4_SERVER (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP4_SERVER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP6_SERVER (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP6_SERVER, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP6_SERVER (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP6_SERVER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_D2_SERVER (location_type l)
- {
- return symbol_type (token::TOKEN_D2_SERVER, std::move (l));
- }
-#else
- static
- symbol_type
- make_D2_SERVER (const location_type& l)
- {
- return symbol_type (token::TOKEN_D2_SERVER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SOCKET_NAME (location_type l)
- {
- return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
- }
-#else
- static
- symbol_type
- make_SOCKET_NAME (const location_type& l)
- {
- return symbol_type (token::TOKEN_SOCKET_NAME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SOCKET_TYPE (location_type l)
- {
- return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
- }
-#else
- static
- symbol_type
- make_SOCKET_TYPE (const location_type& l)
- {
- return symbol_type (token::TOKEN_SOCKET_TYPE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_UNIX (location_type l)
- {
- return symbol_type (token::TOKEN_UNIX, std::move (l));
- }
-#else
- static
- symbol_type
- make_UNIX (const location_type& l)
- {
- return symbol_type (token::TOKEN_UNIX, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOOKS_LIBRARIES (location_type l)
- {
- return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOOKS_LIBRARIES (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LIBRARY (location_type l)
- {
- return symbol_type (token::TOKEN_LIBRARY, std::move (l));
- }
-#else
- static
- symbol_type
- make_LIBRARY (const location_type& l)
- {
- return symbol_type (token::TOKEN_LIBRARY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PARAMETERS (location_type l)
- {
- return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
- }
-#else
- static
- symbol_type
- make_PARAMETERS (const location_type& l)
- {
- return symbol_type (token::TOKEN_PARAMETERS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LOGGING (location_type l)
- {
- return symbol_type (token::TOKEN_LOGGING, std::move (l));
- }
-#else
- static
- symbol_type
- make_LOGGING (const location_type& l)
- {
- return symbol_type (token::TOKEN_LOGGING, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LOGGERS (location_type l)
- {
- return symbol_type (token::TOKEN_LOGGERS, std::move (l));
- }
-#else
- static
- symbol_type
- make_LOGGERS (const location_type& l)
- {
- return symbol_type (token::TOKEN_LOGGERS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_NAME (location_type l)
- {
- return symbol_type (token::TOKEN_NAME, std::move (l));
- }
-#else
- static
- symbol_type
- make_NAME (const location_type& l)
- {
- return symbol_type (token::TOKEN_NAME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_OUTPUT_OPTIONS (location_type l)
- {
- return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
- }
-#else
- static
- symbol_type
- make_OUTPUT_OPTIONS (const location_type& l)
- {
- return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_OUTPUT (location_type l)
- {
- return symbol_type (token::TOKEN_OUTPUT, std::move (l));
- }
-#else
- static
- symbol_type
- make_OUTPUT (const location_type& l)
- {
- return symbol_type (token::TOKEN_OUTPUT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DEBUGLEVEL (location_type l)
- {
- return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
- }
-#else
- static
- symbol_type
- make_DEBUGLEVEL (const location_type& l)
- {
- return symbol_type (token::TOKEN_DEBUGLEVEL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SEVERITY (location_type l)
- {
- return symbol_type (token::TOKEN_SEVERITY, std::move (l));
- }
-#else
- static
- symbol_type
- make_SEVERITY (const location_type& l)
- {
- return symbol_type (token::TOKEN_SEVERITY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_FLUSH (location_type l)
- {
- return symbol_type (token::TOKEN_FLUSH, std::move (l));
- }
-#else
- static
- symbol_type
- make_FLUSH (const location_type& l)
- {
- return symbol_type (token::TOKEN_FLUSH, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAXSIZE (location_type l)
- {
- return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAXSIZE (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAXSIZE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAXVER (location_type l)
- {
- return symbol_type (token::TOKEN_MAXVER, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAXVER (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAXVER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP4 (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP4, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP4 (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP4, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP6 (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP6, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP6 (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP6, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCPDDNS (location_type l)
- {
- return symbol_type (token::TOKEN_DHCPDDNS, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCPDDNS (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCPDDNS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_START_JSON (location_type l)
- {
- return symbol_type (token::TOKEN_START_JSON, std::move (l));
- }
-#else
- static
- symbol_type
- make_START_JSON (const location_type& l)
- {
- return symbol_type (token::TOKEN_START_JSON, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_START_AGENT (location_type l)
- {
- return symbol_type (token::TOKEN_START_AGENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_START_AGENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_START_AGENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_START_SUB_AGENT (location_type l)
- {
- return symbol_type (token::TOKEN_START_SUB_AGENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_START_SUB_AGENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_START_SUB_AGENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_STRING (std::string v, location_type l)
- {
- return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
- }
-#else
- static
- symbol_type
- make_STRING (const std::string& v, const location_type& l)
- {
- return symbol_type (token::TOKEN_STRING, v, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_INTEGER (int64_t v, location_type l)
- {
- return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
- }
-#else
- static
- symbol_type
- make_INTEGER (const int64_t& v, const location_type& l)
- {
- return symbol_type (token::TOKEN_INTEGER, v, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_FLOAT (double v, location_type l)
- {
- return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
- }
-#else
- static
- symbol_type
- make_FLOAT (const double& v, const location_type& l)
- {
- return symbol_type (token::TOKEN_FLOAT, v, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_BOOLEAN (bool v, location_type l)
- {
- return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
- }
-#else
- static
- symbol_type
- make_BOOLEAN (const bool& v, const location_type& l)
- {
- return symbol_type (token::TOKEN_BOOLEAN, v, l);
- }
-#endif
+ // Symbol constructors declarations.
+ static
+ symbol_type
+ make_END (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_COMMA (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_COLON (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LSQUARE_BRACKET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RSQUARE_BRACKET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LCURLY_BRACKET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RCURLY_BRACKET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_NULL_TYPE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONTROL_AGENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HTTP_HOST (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HTTP_PORT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_USER_CONTEXT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_COMMENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONTROL_SOCKETS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP4_SERVER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP6_SERVER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_D2_SERVER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SOCKET_NAME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SOCKET_TYPE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_UNIX (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOOKS_LIBRARIES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LIBRARY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PARAMETERS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LOGGING (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LOGGERS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_NAME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OUTPUT_OPTIONS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OUTPUT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DEBUGLEVEL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SEVERITY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_FLUSH (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAXSIZE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAXVER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PATTERN (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP4 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP6 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCPDDNS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_START_JSON (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_START_AGENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_START_SUB_AGENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l);
+
private:
/// \param yyvalue the value to check
static bool yy_table_value_is_error_ (int yyvalue);
- static const short yypact_ninf_;
+ static const signed char yypact_ninf_;
static const signed char yytable_ninf_;
/// Convert a scanner token number \a t to a symbol number.
static const unsigned char yydefact_[];
// YYPGOTO[NTERM-NUM].
- static const short yypgoto_[];
+ static const signed char yypgoto_[];
// YYDEFGOTO[NTERM-NUM].
static const short yydefgoto_[];
// number is the opposite. If YYTABLE_NINF, syntax error.
static const unsigned short yytable_[];
- static const unsigned char yycheck_[];
+ static const short yycheck_[];
// YYSTOS[STATE-NUM] -- The (internal number of the) accessing
// symbol of state STATE-NUM.
struct by_state
{
/// Default constructor.
- by_state () YY_NOEXCEPT;
+ by_state ();
/// The symbol type as needed by the constructor.
typedef state_type kind_type;
/// Constructor.
- by_state (kind_type s) YY_NOEXCEPT;
+ by_state (kind_type s);
/// Copy constructor.
- by_state (const by_state& that) YY_NOEXCEPT;
+ by_state (const by_state& other);
/// Record that this symbol is empty.
- void clear () YY_NOEXCEPT;
+ void clear ();
/// Steal the symbol type from \a that.
void move (by_state& that);
/// The (internal) type number (corresponding to \a state).
/// \a empty_symbol when empty.
- symbol_number_type type_get () const YY_NOEXCEPT;
+ symbol_number_type type_get () const;
/// The state number used to denote an empty symbol.
enum { empty_state = -1 };
stack_symbol_type (YY_RVREF (stack_symbol_type) that);
/// Steal the contents from \a sym to build this.
stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
-#if YY_CPLUSPLUS < 201103L
+#if !defined __cplusplus || __cplusplus < 201103L
/// Assignment, needed by push_back by some old implementations.
/// Moves the contents of that.
stack_symbol_type& operator= (stack_symbol_type& that);
#endif
};
- /// A stack with random access from its top.
- template <typename T, typename S = std::vector<T> >
- class stack
- {
- public:
- // Hide our reversed order.
- typedef typename S::reverse_iterator iterator;
- typedef typename S::const_reverse_iterator const_iterator;
- typedef typename S::size_type size_type;
-
- stack (size_type n = 200)
- : seq_ (n)
- {}
-
- /// Random access.
- ///
- /// Index 0 returns the topmost element.
- T&
- operator[] (size_type i)
- {
- return seq_[size () - 1 - i];
- }
-
- /// Random access.
- ///
- /// Index 0 returns the topmost element.
- T&
- operator[] (int i)
- {
- return operator[] (size_type (i));
- }
-
- /// Random access.
- ///
- /// Index 0 returns the topmost element.
- const T&
- operator[] (size_type i) const
- {
- return seq_[size () - 1 - i];
- }
-
- /// Random access.
- ///
- /// Index 0 returns the topmost element.
- const T&
- operator[] (int i) const
- {
- return operator[] (size_type (i));
- }
-
- /// Steal the contents of \a t.
- ///
- /// Close to move-semantics.
- void
- push (YY_MOVE_REF (T) t)
- {
- seq_.push_back (T ());
- operator[] (0).move (t);
- }
-
- /// Pop elements from the stack.
- void
- pop (int n = 1) YY_NOEXCEPT
- {
- for (; 0 < n; --n)
- seq_.pop_back ();
- }
-
- /// Pop all elements from the stack.
- void
- clear () YY_NOEXCEPT
- {
- seq_.clear ();
- }
-
- /// Number of elements on the stack.
- size_type
- size () const YY_NOEXCEPT
- {
- return seq_.size ();
- }
-
- /// Iterator on top of the stack (going downwards).
- const_iterator
- begin () const YY_NOEXCEPT
- {
- return seq_.rbegin ();
- }
-
- /// Bottom of the stack.
- const_iterator
- end () const YY_NOEXCEPT
- {
- return seq_.rend ();
- }
-
- /// Present a slice of the top of a stack.
- class slice
- {
- public:
- slice (const stack& stack, int range)
- : stack_ (stack)
- , range_ (range)
- {}
-
- const T&
- operator[] (int i) const
- {
- return stack_[range_ - i];
- }
-
- private:
- const stack& stack_;
- int range_;
- };
-
- private:
- stack (const stack&);
- stack& operator= (const stack&);
- /// The wrapped container.
- S seq_;
- };
-
-
/// Stack type.
typedef stack<stack_symbol_type> stack_type;
enum
{
yyeof_ = 0,
- yylast_ = 187, ///< Last index in yytable_.
- yynnts_ = 97, ///< Number of nonterminal symbols.
+ yylast_ = 202, ///< Last index in yytable_.
+ yynnts_ = 99, ///< Number of nonterminal symbols.
yyfinal_ = 8, ///< Termination state number.
yyterror_ = 1,
yyerrcode_ = 256,
- yyntokens_ = 45 ///< Number of tokens.
+ yyntokens_ = 46 ///< Number of tokens.
};
isc::agent::ParserContext& ctx;
};
+ // Symbol number corresponding to token number t.
inline
AgentParser::token_number_type
AgentParser::yytranslate_ (token_type t)
{
- // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
- // TOKEN-NUM as returned by yylex.
static
const token_number_type
translate_table[] =
{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45
};
- const unsigned user_token_number_max_ = 299;
+ const unsigned user_token_number_max_ = 300;
const token_number_type undef_token_ = 2;
if (static_cast<int> (t) <= yyeof_)
return undef_token_;
}
+ inline
+ AgentParser::syntax_error::syntax_error (const location_type& l, const std::string& m)
+ : std::runtime_error (m)
+ , location (l)
+ {}
+
// basic_symbol.
-#if 201103L <= YY_CPLUSPLUS
template <typename Base>
- AgentParser::basic_symbol<Base>::basic_symbol (basic_symbol&& that)
- : Base (std::move (that))
+ AgentParser::basic_symbol<Base>::basic_symbol ()
+ : value ()
+ , location ()
+ {}
+
+ template <typename Base>
+ AgentParser::basic_symbol<Base>::basic_symbol (YY_RVREF (basic_symbol) other)
+ : Base (YY_MOVE (other))
, value ()
- , location (std::move (that.location))
+ , location (YY_MOVE (other.location))
{
- switch (this->type_get ())
+ switch (other.type_get ())
{
- case 53: // value
- case 56: // map_value
- case 107: // socket_type_value
- value.move< ElementPtr > (std::move (that.value));
+ case 54: // value
+ case 57: // map_value
+ case 108: // socket_type_value
+ value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (other.value));
break;
- case 44: // "boolean"
- value.move< bool > (std::move (that.value));
+ case 45: // "boolean"
+ value.YY_MOVE_OR_COPY< bool > (YY_MOVE (other.value));
break;
- case 43: // "floating point"
- value.move< double > (std::move (that.value));
+ case 44: // "floating point"
+ value.YY_MOVE_OR_COPY< double > (YY_MOVE (other.value));
break;
- case 42: // "integer"
- value.move< int64_t > (std::move (that.value));
+ case 43: // "integer"
+ value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (other.value));
break;
- case 41: // "constant string"
- value.move< std::string > (std::move (that.value));
+ case 42: // "constant string"
+ value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (other.value));
break;
default:
}
}
-#endif
+
+ // Implementation of basic_symbol constructor for each type.
template <typename Base>
- AgentParser::basic_symbol<Base>::basic_symbol (const basic_symbol& that)
- : Base (that)
- , value ()
- , location (that.location)
+ AgentParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (location_type) l)
+ : Base (t)
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ AgentParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (ElementPtr) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ AgentParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (bool) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ AgentParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (double) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ AgentParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (int64_t) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ AgentParser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (std::string) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+
+
+ template <typename Base>
+ AgentParser::basic_symbol<Base>::~basic_symbol ()
{
- switch (this->type_get ())
+ clear ();
+ }
+
+ template <typename Base>
+ void
+ AgentParser::basic_symbol<Base>::clear ()
+ {
+ // User destructor.
+ symbol_number_type yytype = this->type_get ();
+ basic_symbol<Base>& yysym = *this;
+ (void) yysym;
+ switch (yytype)
{
- case 53: // value
- case 56: // map_value
- case 107: // socket_type_value
- value.copy< ElementPtr > (YY_MOVE (that.value));
+ default:
+ break;
+ }
+
+ // Type destructor.
+ switch (yytype)
+ {
+ case 54: // value
+ case 57: // map_value
+ case 108: // socket_type_value
+ value.template destroy< ElementPtr > ();
break;
- case 44: // "boolean"
- value.copy< bool > (YY_MOVE (that.value));
+ case 45: // "boolean"
+ value.template destroy< bool > ();
break;
- case 43: // "floating point"
- value.copy< double > (YY_MOVE (that.value));
+ case 44: // "floating point"
+ value.template destroy< double > ();
break;
- case 42: // "integer"
- value.copy< int64_t > (YY_MOVE (that.value));
+ case 43: // "integer"
+ value.template destroy< int64_t > ();
break;
- case 41: // "constant string"
- value.copy< std::string > (YY_MOVE (that.value));
+ case 42: // "constant string"
+ value.template destroy< std::string > ();
break;
default:
break;
}
+ Base::clear ();
}
-
-
template <typename Base>
bool
- AgentParser::basic_symbol<Base>::empty () const YY_NOEXCEPT
+ AgentParser::basic_symbol<Base>::empty () const
{
return Base::type_get () == empty_symbol;
}
super_type::move (s);
switch (this->type_get ())
{
- case 53: // value
- case 56: // map_value
- case 107: // socket_type_value
+ case 54: // value
+ case 57: // map_value
+ case 108: // socket_type_value
value.move< ElementPtr > (YY_MOVE (s.value));
break;
- case 44: // "boolean"
+ case 45: // "boolean"
value.move< bool > (YY_MOVE (s.value));
break;
- case 43: // "floating point"
+ case 44: // "floating point"
value.move< double > (YY_MOVE (s.value));
break;
- case 42: // "integer"
+ case 43: // "integer"
value.move< int64_t > (YY_MOVE (s.value));
break;
- case 41: // "constant string"
+ case 42: // "constant string"
value.move< std::string > (YY_MOVE (s.value));
break;
: type (empty_symbol)
{}
-#if 201103L <= YY_CPLUSPLUS
- inline
- AgentParser::by_type::by_type (by_type&& that)
- : type (that.type)
- {
- that.clear ();
- }
-#endif
-
inline
- AgentParser::by_type::by_type (const by_type& that)
- : type (that.type)
+ AgentParser::by_type::by_type (const by_type& other)
+ : type (other.type)
{}
inline
inline
int
- AgentParser::by_type::type_get () const YY_NOEXCEPT
+ AgentParser::by_type::type_get () const
{
return type;
}
inline
AgentParser::token_type
- AgentParser::by_type::token () const YY_NOEXCEPT
+ AgentParser::by_type::token () const
{
// YYTOKNUM[NUM] -- (External) token number corresponding to the
// (internal) symbol number NUM (which must be that of a token). */
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299
+ 295, 296, 297, 298, 299, 300
};
- return token_type (yytoken_number_[type]);
+ return static_cast<token_type> (yytoken_number_[type]);
}
-#line 14 "agent_parser.yy"
-} } // isc::agent
-#line 2037 "agent_parser.h"
+ // Implementation of make_symbol for each symbol type.
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_END (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_END, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_COMMA (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_COMMA, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_COLON (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_COLON, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_LSQUARE_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LSQUARE_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_RSQUARE_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RSQUARE_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_LCURLY_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LCURLY_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_RCURLY_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RCURLY_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_NULL_TYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NULL_TYPE, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_CONTROL_AGENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONTROL_AGENT, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_HTTP_HOST (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HTTP_HOST, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_HTTP_PORT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HTTP_PORT, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_USER_CONTEXT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_USER_CONTEXT, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_COMMENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_COMMENT, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_CONTROL_SOCKETS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONTROL_SOCKETS, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_DHCP4_SERVER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP4_SERVER, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_DHCP6_SERVER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP6_SERVER, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_D2_SERVER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_D2_SERVER, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_SOCKET_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SOCKET_NAME, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_SOCKET_TYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SOCKET_TYPE, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_UNIX (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_UNIX, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_HOOKS_LIBRARIES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOOKS_LIBRARIES, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_LIBRARY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LIBRARY, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_PARAMETERS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PARAMETERS, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_LOGGING (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LOGGING, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_LOGGERS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LOGGERS, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NAME, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_OUTPUT_OPTIONS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OUTPUT_OPTIONS, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_OUTPUT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OUTPUT, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_DEBUGLEVEL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DEBUGLEVEL, YY_MOVE (l));
+ }
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_SEVERITY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SEVERITY, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_FLUSH (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_FLUSH, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_MAXSIZE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAXSIZE, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_MAXVER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAXVER, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_PATTERN (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PATTERN, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_DHCP4 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP4, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_DHCP6 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP6, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_DHCPDDNS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCPDDNS, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_START_JSON (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_START_JSON, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_START_AGENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_START_AGENT, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_START_SUB_AGENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_START_SUB_AGENT, YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_STRING, YY_MOVE (v), YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_INTEGER, YY_MOVE (v), YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_FLOAT, YY_MOVE (v), YY_MOVE (l));
+ }
+
+ inline
+ AgentParser::symbol_type
+ AgentParser::make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_BOOLEAN, YY_MOVE (v), YY_MOVE (l));
+ }
+
+
+#line 14 "agent_parser.yy" // lalr1.cc:404
+} } // isc::agent
+#line 1699 "agent_parser.h" // lalr1.cc:404