Commit c8092cb2 authored by Lev Walkin's avatar Lev Walkin

ContainedSubtype parsing

parent 843a2460
...@@ -31,7 +31,6 @@ typedef enum asn1p_expr_type { ...@@ -31,7 +31,6 @@ typedef enum asn1p_expr_type {
A1TC_REFERENCE, /* Reference to the type defined elsewhere */ A1TC_REFERENCE, /* Reference to the type defined elsewhere */
A1TC_EXPORTVAR, /* We're exporting this definition */ A1TC_EXPORTVAR, /* We're exporting this definition */
A1TC_UNIVERVAL, /* A value of an ENUMERATED, INTEGER or BS */ A1TC_UNIVERVAL, /* A value of an ENUMERATED, INTEGER or BS */
A1TC_BOOLBITPOS, /* A bit position in a BIT STRING */
A1TC_BITVECTOR, /* A plain collection of bits */ A1TC_BITVECTOR, /* A plain collection of bits */
A1TC_OPAQUE, /* Opaque data encoded as a bitvector */ A1TC_OPAQUE, /* Opaque data encoded as a bitvector */
A1TC_EXTENSIBLE, /* An extension marker "..." */ A1TC_EXTENSIBLE, /* An extension marker "..." */
...@@ -122,7 +121,7 @@ typedef struct asn1p_expr_s { ...@@ -122,7 +121,7 @@ typedef struct asn1p_expr_s {
asn1p_expr_type_e expr_type; asn1p_expr_type_e expr_type;
/* /*
* Referenced type, if defined elsewhere. * Referenced type, defined elsewhere.
* (If expr_type == A1TC_REFERENCE) * (If expr_type == A1TC_REFERENCE)
*/ */
asn1p_ref_t *reference; asn1p_ref_t *reference;
......
...@@ -204,7 +204,7 @@ typedef union { ...@@ -204,7 +204,7 @@ typedef union {
#define YYFINAL 415 #define YYFINAL 417
#define YYFLAG -32768 #define YYFLAG -32768
#define YYNTBASE 116 #define YYNTBASE 116
...@@ -258,26 +258,26 @@ static const short yyprhs[] = { 0, ...@@ -258,26 +258,26 @@ static const short yyprhs[] = { 0,
107, 111, 113, 117, 119, 123, 127, 130, 132, 136, 107, 111, 113, 117, 119, 123, 127, 130, 132, 136,
138, 142, 144, 151, 153, 155, 156, 158, 160, 164, 138, 142, 144, 151, 153, 155, 156, 158, 160, 164,
166, 168, 173, 177, 181, 188, 190, 194, 196, 200, 166, 168, 173, 177, 181, 188, 190, 194, 196, 200,
204, 206, 210, 212, 214, 215, 217, 219, 223, 227, 204, 208, 210, 214, 216, 218, 219, 221, 223, 227,
231, 233, 235, 239, 242, 244, 250, 251, 253, 255, 231, 235, 237, 239, 243, 246, 248, 254, 255, 257,
259, 262, 267, 272, 273, 275, 276, 283, 285, 288, 259, 263, 266, 271, 276, 277, 279, 280, 287, 289,
290, 292, 294, 298, 302, 306, 308, 310, 315, 320, 292, 294, 296, 298, 302, 306, 310, 312, 314, 319,
325, 332, 339, 341, 346, 351, 353, 357, 359, 363, 324, 329, 336, 343, 345, 350, 355, 357, 361, 363,
367, 371, 373, 377, 379, 383, 385, 387, 389, 391, 367, 371, 375, 377, 381, 383, 387, 389, 391, 393,
396, 400, 401, 405, 407, 409, 411, 413, 415, 417, 395, 400, 404, 405, 409, 411, 413, 415, 417, 419,
419, 421, 423, 427, 429, 432, 434, 436, 438, 440, 421, 423, 425, 427, 431, 433, 436, 438, 440, 442,
443, 446, 448, 450, 453, 456, 458, 460, 462, 464, 444, 447, 450, 452, 454, 457, 460, 462, 464, 466,
467, 469, 472, 474, 476, 478, 480, 482, 484, 486, 468, 471, 473, 476, 478, 480, 482, 484, 486, 488,
488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508,
508, 510, 511, 513, 515, 520, 524, 529, 531, 535, 510, 512, 514, 515, 517, 519, 524, 528, 533, 535,
541, 543, 547, 551, 555, 560, 564, 566, 570, 574, 539, 545, 547, 551, 555, 559, 564, 568, 570, 574,
578, 582, 584, 586, 588, 591, 594, 598, 600, 602, 578, 582, 586, 588, 590, 592, 595, 598, 602, 604,
604, 606, 608, 610, 612, 618, 620, 624, 626, 630, 606, 608, 610, 612, 614, 616, 618, 624, 626, 630,
631, 633, 635, 637, 639, 641, 643, 647, 652, 654, 632, 636, 637, 639, 641, 643, 645, 647, 649, 653,
658, 661, 665, 667, 671, 672, 674, 676, 679, 682, 658, 660, 664, 667, 671, 673, 677, 678, 680, 682,
686, 688, 692, 694, 699, 704, 706, 708, 710, 712, 685, 688, 692, 694, 698, 700, 705, 710, 712, 714,
713, 715, 718, 723, 724, 726, 728, 730, 731, 733, 716, 718, 719, 721, 724, 729, 730, 732, 734, 736,
735, 737, 739, 741, 742, 744 737, 739, 741, 743, 745, 747, 748, 750
}; };
static const short yyrhs[] = { 117, static const short yyrhs[] = { 117,
...@@ -300,62 +300,63 @@ static const short yyrhs[] = { 117, ...@@ -300,62 +300,63 @@ static const short yyrhs[] = { 117,
108, 142, 0, 102, 0, 186, 0, 213, 3, 208, 108, 142, 0, 102, 0, 186, 0, 213, 3, 208,
87, 0, 213, 3, 163, 0, 213, 3, 153, 0, 87, 0, 213, 3, 163, 0, 213, 3, 153, 0,
213, 103, 144, 104, 3, 163, 0, 145, 0, 144, 213, 103, 144, 104, 3, 163, 0, 145, 0, 144,
108, 145, 0, 213, 0, 213, 109, 216, 0, 175, 108, 145, 0, 213, 0, 213, 109, 216, 0, 213,
109, 216, 0, 147, 0, 146, 108, 147, 0, 163, 109, 213, 0, 175, 109, 216, 0, 147, 0, 146,
0, 216, 0, 0, 149, 0, 150, 0, 149, 108, 108, 147, 0, 163, 0, 216, 0, 0, 149, 0,
150, 0, 216, 163, 202, 0, 30, 68, 163, 0, 150, 0, 149, 108, 150, 0, 216, 163, 202, 0,
162, 0, 152, 0, 151, 108, 152, 0, 216, 163, 30, 68, 163, 0, 162, 0, 152, 0, 151, 108,
0, 162, 0, 28, 103, 155, 104, 157, 0, 0, 152, 0, 216, 163, 0, 162, 0, 28, 103, 155,
88, 0, 156, 0, 155, 108, 156, 0, 168, 202, 104, 157, 0, 0, 88, 0, 156, 0, 155, 108,
0, 168, 163, 154, 202, 0, 168, 168, 154, 202, 156, 0, 168, 202, 0, 168, 163, 154, 202, 0,
0, 0, 158, 0, 0, 95, 82, 103, 159, 160, 168, 168, 154, 202, 0, 0, 158, 0, 0, 95,
104, 0, 161, 0, 160, 161, 0, 4, 0, 168, 82, 103, 159, 160, 104, 0, 161, 0, 160, 161,
0, 102, 0, 102, 110, 173, 0, 102, 110, 207, 0, 4, 0, 168, 0, 102, 0, 102, 110, 173,
0, 208, 164, 182, 0, 177, 0, 178, 0, 27, 0, 102, 110, 207, 0, 208, 164, 182, 0, 177,
103, 151, 104, 0, 78, 103, 148, 104, 0, 79, 0, 178, 0, 27, 103, 151, 104, 0, 78, 103,
103, 148, 104, 0, 78, 182, 68, 215, 208, 164, 148, 104, 0, 79, 103, 148, 104, 0, 78, 182,
0, 79, 182, 68, 215, 208, 164, 0, 18, 0, 68, 215, 208, 164, 0, 79, 182, 68, 215, 208,
18, 35, 25, 216, 0, 213, 103, 146, 104, 0, 164, 0, 18, 0, 18, 35, 25, 216, 0, 213,
165, 0, 56, 68, 165, 0, 11, 0, 11, 111, 103, 146, 104, 0, 165, 0, 56, 68, 165, 0,
213, 0, 214, 111, 213, 0, 11, 111, 216, 0, 11, 0, 11, 111, 213, 0, 214, 111, 213, 0,
214, 0, 214, 111, 166, 0, 167, 0, 166, 111, 11, 111, 216, 0, 214, 0, 214, 111, 166, 0,
167, 0, 169, 0, 169, 0, 13, 0, 14, 0, 167, 0, 166, 111, 167, 0, 169, 0, 169, 0,
216, 139, 3, 171, 0, 216, 109, 171, 0, 0, 13, 0, 14, 0, 216, 139, 3, 171, 0, 216,
103, 172, 174, 0, 63, 0, 45, 0, 86, 0, 109, 171, 0, 0, 103, 172, 174, 0, 63, 0,
5, 0, 7, 0, 6, 0, 207, 0, 173, 0, 45, 0, 86, 0, 5, 0, 7, 0, 6, 0,
216, 0, 213, 111, 216, 0, 4, 0, 174, 4, 207, 0, 173, 0, 216, 0, 213, 111, 216, 0,
0, 24, 0, 63, 0, 76, 0, 176, 0, 67, 4, 0, 174, 4, 0, 24, 0, 63, 0, 76,
81, 0, 65, 51, 0, 77, 0, 44, 0, 36, 0, 176, 0, 67, 81, 0, 65, 51, 0, 77,
71, 0, 26, 81, 0, 91, 0, 47, 0, 58, 0, 44, 0, 36, 71, 0, 26, 81, 0, 91,
0, 40, 0, 22, 81, 0, 175, 0, 176, 204, 0, 47, 0, 58, 0, 40, 0, 22, 81, 0,
0, 23, 0, 48, 0, 49, 0, 50, 0, 59, 175, 0, 176, 204, 0, 23, 0, 48, 0, 49,
0, 64, 0, 74, 0, 83, 0, 85, 0, 90, 0, 50, 0, 59, 0, 64, 0, 74, 0, 83,
0, 92, 0, 93, 0, 94, 0, 66, 0, 99, 0, 85, 0, 90, 0, 92, 0, 93, 0, 94,
0, 100, 0, 97, 0, 98, 0, 96, 0, 0, 0, 66, 0, 99, 0, 100, 0, 97, 0, 98,
183, 0, 184, 0, 80, 105, 185, 106, 0, 105, 0, 96, 0, 0, 183, 0, 184, 0, 80, 105,
185, 106, 0, 184, 105, 185, 106, 0, 186, 0, 185, 106, 0, 105, 185, 106, 0, 184, 105, 185,
186, 108, 102, 0, 186, 108, 102, 108, 186, 0, 106, 0, 186, 0, 186, 108, 102, 0, 186, 108,
187, 0, 186, 179, 187, 0, 186, 180, 187, 0, 102, 108, 186, 0, 187, 0, 186, 179, 187, 0,
187, 181, 187, 0, 189, 105, 185, 106, 0, 105, 186, 180, 187, 0, 187, 181, 187, 0, 189, 105,
185, 106, 0, 190, 0, 190, 188, 190, 0, 61, 185, 106, 0, 105, 185, 106, 0, 190, 0, 190,
188, 190, 0, 190, 188, 60, 0, 61, 188, 60, 188, 190, 0, 61, 188, 190, 0, 190, 188, 60,
0, 196, 0, 191, 0, 101, 0, 101, 112, 0, 0, 61, 188, 60, 0, 196, 0, 191, 0, 101,
112, 101, 0, 112, 101, 112, 0, 80, 0, 46, 0, 101, 112, 0, 112, 101, 0, 112, 101, 112,
0, 207, 0, 216, 0, 6, 0, 45, 0, 86, 0, 80, 0, 46, 0, 45, 0, 86, 0, 207,
0, 95, 30, 103, 192, 104, 0, 193, 0, 192, 0, 6, 0, 216, 0, 213, 0, 95, 30, 103,
108, 193, 0, 102, 0, 216, 182, 194, 0, 0, 192, 104, 0, 193, 0, 192, 108, 193, 0, 102,
195, 0, 73, 0, 15, 0, 69, 0, 197, 0, 0, 216, 182, 194, 0, 0, 195, 0, 73, 0,
198, 0, 103, 213, 104, 0, 197, 103, 199, 104, 15, 0, 69, 0, 197, 0, 198, 0, 103, 213,
0, 200, 0, 199, 108, 200, 0, 113, 201, 0, 104, 0, 197, 103, 199, 104, 0, 200, 0, 199,
113, 111, 201, 0, 216, 0, 201, 111, 216, 0, 108, 200, 0, 113, 201, 0, 113, 111, 201, 0,
0, 203, 0, 69, 0, 33, 171, 0, 103, 104, 216, 0, 201, 111, 216, 0, 0, 203, 0, 69,
0, 103, 205, 104, 0, 206, 0, 205, 108, 206, 0, 33, 171, 0, 103, 104, 0, 103, 205, 104,
0, 216, 0, 216, 105, 207, 106, 0, 216, 105, 0, 206, 0, 205, 108, 206, 0, 216, 0, 216,
173, 106, 0, 207, 0, 102, 0, 9, 0, 10, 105, 207, 106, 0, 216, 105, 173, 106, 0, 207,
0, 0, 209, 0, 210, 212, 0, 114, 211, 9, 0, 102, 0, 9, 0, 10, 0, 0, 209, 0,
115, 0, 0, 89, 0, 19, 0, 75, 0, 0, 210, 212, 0, 114, 211, 9, 115, 0, 0, 89,
52, 0, 41, 0, 11, 0, 12, 0, 12, 0, 0, 19, 0, 75, 0, 0, 52, 0, 41, 0,
0, 216, 0, 8, 0 11, 0, 12, 0, 12, 0, 0, 216, 0, 8,
0
}; };
#endif #endif
...@@ -369,26 +370,26 @@ static const short yyrline[] = { 0, ...@@ -369,26 +370,26 @@ static const short yyrline[] = { 0,
609, 615, 622, 628, 636, 640, 643, 650, 656, 662, 609, 615, 622, 628, 636, 640, 643, 650, 656, 662,
669, 675, 684, 694, 702, 710, 712, 722, 725, 729, 669, 675, 684, 694, 702, 710, 712, 722, 725, 729,
732, 744, 756, 762, 778, 787, 797, 807, 812, 819, 732, 744, 756, 762, 778, 787, 797, 807, 812, 819,
829, 835, 841, 845, 857, 859, 861, 867, 873, 880, 826, 836, 842, 848, 852, 875, 877, 879, 885, 891,
887, 892, 898, 904, 910, 915, 925, 927, 930, 938, 898, 905, 910, 916, 922, 928, 933, 943, 945, 948,
944, 953, 959, 976, 978, 983, 987, 992, 997, 1003, 956, 962, 971, 977, 994, 996, 1001, 1005, 1010, 1015,
1007, 1018, 1027, 1036, 1047, 1069, 1073, 1079, 1085, 1091, 1021, 1025, 1036, 1045, 1054, 1065, 1087, 1091, 1097, 1103,
1097, 1107, 1117, 1123, 1137, 1161, 1168, 1182, 1191, 1201, 1109, 1115, 1125, 1135, 1141, 1155, 1179, 1186, 1200, 1209,
1211, 1221, 1229, 1250, 1259, 1268, 1269, 1271, 1278, 1290, 1219, 1229, 1239, 1247, 1268, 1277, 1286, 1287, 1289, 1296,
1300, 1308, 1308, 1313, 1318, 1323, 1328, 1332, 1336, 1340, 1308, 1318, 1326, 1326, 1331, 1336, 1341, 1346, 1350, 1354,
1343, 1348, 1360, 1376, 1387, 1401, 1403, 1404, 1405, 1406, 1358, 1361, 1366, 1378, 1394, 1405, 1419, 1421, 1422, 1423,
1407, 1408, 1409, 1410, 1411, 1412, 1413, 1419, 1421, 1422, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1437, 1439,
1425, 1432, 1444, 1446, 1450, 1454, 1455, 1456, 1457, 1458, 1440, 1443, 1450, 1462, 1464, 1468, 1472, 1473, 1474, 1475,
1462, 1463, 1464, 1465, 1469, 1470, 1477, 1477, 1478, 1478, 1476, 1480, 1481, 1482, 1483, 1487, 1488, 1495, 1495, 1496,
1479, 1481, 1483, 1488, 1492, 1501, 1505, 1510, 1514, 1520, 1496, 1497, 1499, 1501, 1506, 1510, 1519, 1523, 1528, 1532,
1530, 1534, 1537, 1540, 1545, 1554, 1562, 1568, 1575, 1583, 1538, 1548, 1552, 1555, 1558, 1563, 1572, 1580, 1586, 1593,
1591, 1600, 1603, 1608, 1610, 1611, 1612, 1615, 1619, 1624, 1601, 1609, 1618, 1621, 1626, 1628, 1629, 1630, 1633, 1637,
1628, 1639, 1643, 1648, 1655, 1661, 1665, 1670, 1676, 1688, 1642, 1648, 1653, 1656, 1660, 1671, 1684, 1690, 1694, 1699,
1690, 1693, 1697, 1700, 1705, 1709, 1717, 1732, 1738, 1745, 1705, 1717, 1719, 1722, 1726, 1729, 1734, 1738, 1746, 1761,
1758, 1770, 1785, 1789, 1806, 1811, 1814, 1819, 1841, 1846, 1767, 1774, 1787, 1799, 1814, 1818, 1835, 1840, 1843, 1848,
1851, 1857, 1863, 1871, 1879, 1887, 1894, 1904, 1909, 1939, 1870, 1875, 1880, 1886, 1892, 1900, 1908, 1916, 1923, 1933,
1941, 1944, 1951, 1957, 1959, 1960, 1961, 1964, 1966, 1967, 1938, 1968, 1970, 1973, 1980, 1986, 1988, 1989, 1990, 1993,
1970, 1975, 1982, 1989, 1991, 1995 1995, 1996, 1999, 2004, 2011, 2018, 2020, 2024
}; };
#endif #endif
...@@ -448,26 +449,26 @@ static const short yyr1[] = { 0, ...@@ -448,26 +449,26 @@ static const short yyr1[] = { 0,
133, 134, 134, 134, 135, 135, 135, 136, 136, 137, 133, 134, 134, 134, 135, 135, 135, 136, 136, 137,
137, 137, 138, 139, 139, 140, 140, 141, 141, 142, 137, 137, 138, 139, 139, 140, 140, 141, 141, 142,
142, 143, 143, 143, 143, 144, 144, 145, 145, 145, 142, 143, 143, 143, 143, 144, 144, 145, 145, 145,
146, 146, 147, 147, 148, 148, 149, 149, 150, 150, 145, 146, 146, 147, 147, 148, 148, 149, 149, 150,
150, 151, 151, 152, 152, 153, 154, 154, 155, 155, 150, 150, 151, 151, 152, 152, 153, 154, 154, 155,
156, 156, 156, 157, 157, 159, 158, 160, 160, 161, 155, 156, 156, 156, 157, 157, 159, 158, 160, 160,
161, 162, 162, 162, 163, 164, 164, 164, 164, 164, 161, 161, 162, 162, 162, 163, 164, 164, 164, 164,
164, 164, 164, 164, 164, 164, 164, 165, 165, 165, 164, 164, 164, 164, 164, 164, 164, 164, 165, 165,
165, 165, 165, 166, 166, 167, 168, 169, 169, 170, 165, 165, 165, 165, 166, 166, 167, 168, 169, 169,
171, 172, 171, 171, 171, 171, 171, 171, 171, 171, 170, 171, 172, 171, 171, 171, 171, 171, 171, 171,
171, 173, 173, 174, 174, 175, 175, 175, 175, 175, 171, 171, 173, 173, 174, 174, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 176, 176, 176, 175, 175, 175, 175, 175, 175, 175, 175, 176, 176,
177, 177, 178, 178, 178, 178, 178, 178, 178, 178, 176, 177, 177, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 179, 179, 180, 180, 178, 178, 178, 178, 178, 178, 178, 179, 179, 180,
181, 182, 182, 183, 183, 184, 184, 185, 185, 185, 180, 181, 182, 182, 183, 183, 184, 184, 185, 185,
186, 186, 186, 186, 187, 187, 187, 187, 187, 187, 185, 186, 186, 186, 186, 187, 187, 187, 187, 187,
187, 187, 187, 188, 188, 188, 188, 189, 189, 190, 187, 187, 187, 187, 188, 188, 188, 188, 189, 189,
190, 190, 190, 190, 191, 192, 192, 193, 193, 194, 190, 190, 190, 190, 190, 190, 191, 192, 192, 193,
194, 195, 195, 195, 196, 196, 197, 198, 199, 199, 193, 194, 194, 195, 195, 195, 196, 196, 197, 198,
200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 199, 199, 200, 200, 201, 201, 202, 202, 203, 203,
205, 205, 206, 206, 206, 206, 206, 207, 207, 208, 204, 204, 205, 205, 206, 206, 206, 206, 206, 207,
208, 209, 210, 211, 211, 211, 211, 212, 212, 212, 207, 208, 208, 209, 210, 211, 211, 211, 211, 212,
213, 213, 214, 215, 215, 216 212, 212, 213, 213, 214, 215, 215, 216
}; };
static const short yyr2[] = { 0, static const short yyr2[] = { 0,
...@@ -478,280 +479,290 @@ static const short yyr2[] = { 0, ...@@ -478,280 +479,290 @@ static const short yyr2[] = { 0,
3, 1, 3, 1, 3, 3, 2, 1, 3, 1, 3, 1, 3, 1, 3, 3, 2, 1, 3, 1,
3, 1, 6, 1, 1, 0, 1, 1, 3, 1, 3, 1, 6, 1, 1, 0, 1, 1, 3, 1,
1, 4, 3, 3, 6, 1, 3, 1, 3, 3, 1, 4, 3, 3, 6, 1, 3, 1, 3, 3,
1, 3, 1, 1, 0, 1, 1, 3, 3, 3, 3, 1, 3, 1, 1, 0, 1, 1, 3, 3,
1, 1, 3, 2, 1, 5, 0, 1, 1, 3, 3, 1, 1, 3, 2, 1, 5, 0, 1, 1,
2, 4, 4, 0, 1, 0, 6, 1, 2, 1, 3, 2, 4, 4, 0, 1, 0, 6, 1, 2,
1, 1, 3, 3, 3, 1, 1, 4, 4, 4, 1, 1, 1, 3, 3, 3, 1, 1, 4, 4,
6, 6, 1, 4, 4, 1, 3, 1, 3, 3, 4, 6, 6, 1, 4, 4, 1, 3, 1, 3,
3, 1, 3, 1, 3, 1, 1, 1, 1, 4, 3, 3, 1, 3, 1, 3, 1, 1, 1, 1,
3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 4, 3, 0, 3, 1, 1, 1, 1, 1, 1,
1, 1, 3, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 3, 1, 2, 1, 1, 1, 1,
2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1,
1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 1, 1, 4, 3, 4, 1, 3, 5, 1, 1, 0, 1, 1, 4, 3, 4, 1, 3,
1, 3, 3, 3, 4, 3, 1, 3, 3, 3, 5, 1, 3, 3, 3, 4, 3, 1, 3, 3,
3, 1, 1, 1, 2, 2, 3, 1, 1, 1, 3, 3, 1, 1, 1, 2, 2, 3, 1, 1,
1, 1, 1, 1, 5, 1, 3, 1, 3, 0, 1, 1, 1, 1, 1, 1, 5, 1, 3, 1,
1, 1, 1, 1, 1, 1, 3, 4, 1, 3, 3, 0, 1, 1, 1, 1, 1, 1, 3, 4,
2, 3, 1, 3, 0, 1, 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, 0, 1, 1, 2,
1, 3, 1, 4, 4, 1, 1, 1, 1, 0, 2, 3, 1, 3, 1, 4, 4, 1, 1, 1,
1, 2, 4, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 2, 4, 0, 1, 1, 1, 0,
1, 1, 1, 0, 1, 1 1, 1, 1, 1, 1, 0, 1, 1
}; };
static const short yydefact[] = { 0, static const short yydefact[] = { 0,
261, 262, 1, 2, 5, 3, 0, 0, 6, 266, 263, 264, 1, 2, 5, 3, 0, 0, 6, 268,
13, 8, 0, 9, 11, 14, 7, 10, 0, 0, 13, 8, 0, 9, 11, 14, 7, 10, 0, 0,
0, 0, 0, 0, 0, 15, 16, 0, 22, 20, 0, 0, 0, 0, 0, 15, 16, 0, 22, 20,
18, 21, 19, 0, 17, 12, 23, 163, 0, 0, 18, 21, 19, 0, 17, 12, 23, 164, 0, 0,
164, 165, 166, 0, 167, 168, 176, 169, 170, 171, 165, 166, 167, 0, 168, 169, 177, 170, 171, 172,
172, 173, 174, 175, 0, 24, 25, 27, 28, 31, 173, 174, 175, 176, 0, 24, 25, 27, 28, 31,
29, 30, 34, 0, 0, 32, 0, 47, 0, 48, 29, 30, 34, 0, 0, 32, 0, 47, 0, 48,
50, 52, 36, 0, 37, 0, 40, 42, 44, 4, 50, 52, 36, 0, 37, 0, 40, 42, 44, 4,
26, 250, 118, 263, 0, 146, 0, 0, 159, 153, 26, 252, 119, 265, 0, 147, 0, 0, 160, 154,
157, 158, 147, 0, 0, 148, 152, 156, 0, 0, 158, 159, 148, 0, 0, 149, 153, 157, 0, 0,
54, 55, 149, 122, 0, 33, 46, 45, 0, 0, 54, 55, 150, 123, 0, 33, 46, 45, 0, 0,
35, 38, 0, 0, 0, 0, 254, 64, 63, 0, 35, 38, 0, 0, 0, 0, 256, 64, 63, 0,
251, 258, 0, 160, 155, 154, 151, 150, 0, 66, 253, 260, 0, 161, 156, 155, 152, 151, 0, 66,
0, 68, 0, 0, 0, 49, 51, 5, 41, 43, 0, 68, 0, 0, 0, 49, 51, 5, 41, 43,
0, 256, 257, 255, 0, 118, 263, 113, 0, 0, 0, 258, 259, 257, 0, 119, 265, 114, 0, 0,
182, 182, 62, 182, 116, 161, 149, 106, 107, 0, 183, 183, 62, 183, 117, 162, 150, 107, 108, 0,
260, 259, 252, 119, 121, 0, 0, 0, 0, 56, 262, 261, 254, 120, 122, 0, 0, 0, 0, 56,
128, 129, 123, 124, 126, 120, 137, 139, 138, 248, 129, 130, 124, 125, 127, 121, 138, 140, 139, 250,
249, 135, 134, 136, 132, 130, 141, 140, 0, 142, 251, 136, 135, 137, 133, 131, 142, 141, 0, 143,
39, 0, 89, 250, 127, 0, 0, 0, 0, 0, 39, 0, 90, 252, 128, 0, 0, 0, 0, 0,
75, 0, 0, 183, 184, 75, 0, 105, 0, 162, 76, 0, 0, 184, 185, 76, 0, 106, 0, 163,
250, 250, 67, 70, 69, 212, 213, 209, 0, 208, 252, 252, 67, 71, 70, 69, 214, 211, 210, 0,
214, 0, 60, 0, 0, 0, 57, 58, 61, 191, 209, 212, 0, 60, 0, 0, 0, 57, 58, 61,
0, 197, 203, 202, 225, 226, 210, 211, 0, 0, 192, 0, 198, 204, 203, 227, 228, 213, 216, 215,
0, 0, 94, 0, 0, 237, 87, 87, 91, 236, 0, 0, 0, 0, 95, 0, 0, 239, 88, 88,
0, 253, 0, 102, 0, 82, 85, 250, 117, 0, 92, 238, 0, 255, 0, 103, 0, 83, 86, 252,
0, 0, 76, 77, 81, 250, 0, 188, 264, 0, 118, 0, 0, 0, 77, 78, 82, 252, 0, 189,
0, 264, 247, 239, 0, 241, 246, 243, 0, 71, 266, 0, 0, 266, 249, 241, 0, 243, 248, 245,
73, 74, 65, 204, 0, 0, 0, 0, 0, 53, 0, 72, 74, 75, 65, 205, 0, 0, 0, 0,
0, 179, 180, 177, 178, 0, 0, 181, 0, 0, 0, 53, 0, 180, 181, 178, 179, 0, 0, 182,
0, 0, 125, 144, 133, 143, 131, 0, 86, 95, 0, 0, 0, 0, 126, 145, 134, 144, 132, 0,
90, 238, 88, 235, 235, 114, 0, 108, 0, 84, 87, 96, 91, 240, 89, 237, 237, 115, 0, 109,
0, 250, 109, 0, 235, 186, 0, 250, 265, 0, 0, 85, 0, 252, 110, 0, 237, 187, 0, 252,
110, 250, 240, 0, 0, 115, 250, 205, 206, 201, 267, 0, 111, 252, 242, 0, 0, 116, 252, 206,
199, 0, 227, 196, 59, 192, 193, 194, 0, 200, 207, 202, 200, 0, 229, 197, 59, 193, 194, 195,
198, 0, 0, 229, 145, 0, 92, 93, 103, 104, 0, 201, 199, 0, 0, 231, 146, 0, 93, 94,
142, 83, 185, 80, 78, 79, 189, 0, 187, 0, 104, 105, 143, 84, 186, 81, 79, 80, 190, 0,
242, 0, 0, 72, 207, 218, 0, 216, 182, 195, 188, 0, 244, 0, 0, 73, 208, 220, 0, 218,
0, 231, 233, 228, 0, 96, 0, 111, 112, 245, 183, 196, 0, 233, 235, 230, 0, 97, 0, 112,
244, 215, 0, 220, 232, 0, 230, 0, 190, 217, 113, 247, 246, 217, 0, 222, 234, 0, 232, 0,
223, 224, 222, 219, 221, 234, 100, 0, 98, 101, 191, 219, 225, 226, 224, 221, 223, 236, 101, 0,
97, 99, 0, 0, 0 99, 102, 98, 100, 0, 0, 0
}; };
static const short yydefgoto[] = { 413, static const short yydefgoto[] = { 415,
3, 4, 8, 9, 13, 14, 25, 26, 27, 55, 3, 4, 8, 9, 13, 14, 25, 26, 27, 55,
56, 57, 106, 58, 74, 75, 76, 77, 59, 69, 56, 57, 106, 58, 74, 75, 76, 77, 59, 69,
70, 60, 100, 226, 227, 228, 61, 129, 130, 279, 70, 60, 100, 227, 228, 229, 61, 129, 130, 281,
280, 262, 263, 264, 255, 256, 118, 314, 192, 193, 282, 264, 265, 266, 257, 258, 118, 316, 192, 193,
309, 310, 398, 408, 409, 265, 281, 154, 155, 173, 311, 312, 400, 410, 411, 267, 283, 154, 155, 173,
174, 194, 195, 62, 186, 240, 187, 305, 156, 103, 174, 194, 195, 62, 186, 242, 187, 307, 156, 103,
158, 159, 296, 297, 299, 203, 204, 205, 267, 268, 158, 159, 298, 299, 301, 203, 204, 205, 269, 270,
230, 286, 231, 232, 233, 377, 378, 404, 405, 234, 231, 288, 232, 233, 234, 379, 380, 406, 407, 235,
235, 236, 353, 354, 382, 249, 250, 210, 275, 276, 236, 237, 355, 356, 384, 251, 252, 210, 277, 278,
237, 251, 121, 122, 145, 163, 189, 104, 328, 238 238, 253, 121, 122, 145, 163, 239, 104, 330, 240
}; };
static const short yypact[] = { 120, static const short yypact[] = { 148,
-32768,-32768, 120,-32768, -64,-32768, 38, -5,-32768,-32768, -32768,-32768, 148,-32768, -58,-32768, 45, 43,-32768,-32768,
-32768,-32768, 55,-32768, -25, 165,-32768,-32768, 90, 49, -32768,-32768, 53,-32768, -13, 144,-32768,-32768, 97, 68,
60, 73, 74, 82, 136, 165,-32768, 54,-32768,-32768, 59, 83, 84, 95, 189, 144,-32768, 89,-32768,-32768,
-32768,-32768,-32768, 151,-32768,-32768, 314,-32768, 177, 23, -32768,-32768,-32768, 180,-32768,-32768, 367,-32768, 191, 35,
-32768,-32768,-32768, 159,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768, 201,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, 187, 314,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 167, 367,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 256, 528,-32768, 114,-32768, 76,-32768, -32768,-32768,-32768, 257, 581,-32768, 108,-32768, 69,-32768,
133,-32768,-32768, 42,-32768, -20,-32768, 147,-32768,-32768, 114,-32768,-32768, 16,-32768, -23,-32768, 122,-32768,-32768,
-32768, -3, 144,-32768, 183,-32768, 185, 198,-32768,-32768, -32768, -10, 133,-32768, 160,-32768, 165, 181,-32768,-32768,
-32768,-32768,-32768, 232, 212,-32768,-32768,-32768, 545, 292, -32768,-32768,-32768, 214, 190,-32768,-32768,-32768, 598, 271,
-32768,-32768,-32768, 186, 295,-32768,-32768,-32768, 101, 195, -32768,-32768,-32768, 171, 277,-32768,-32768,-32768, 231, 183,
-32768,-32768, 120, 101, 197, 199, 3,-32768,-32768, 391, -32768,-32768, 148, 231, 194, 182, 1,-32768,-32768, 444,
-32768, 113, 101,-32768,-32768,-32768,-32768,-32768, 78,-32768, -32768, 28, 231,-32768,-32768,-32768,-32768,-32768, 82,-32768,
200, 202, 210, 263, 279,-32768,-32768, -64,-32768,-32768, 185, 186, 196, 350, 163,-32768,-32768, -58,-32768,-32768,
182,-32768,-32768,-32768, 306, -22, 213, 283, 226, 266, 170,-32768,-32768,-32768, 291, -8, 199, 275, 208, 245,
-12, -8,-32768, -32,-32768,-32768, 228,-32768,-32768, 233, -17, 75,-32768, -55,-32768,-32768, 213,-32768,-32768, 215,
-32768,-32768,-32768,-32768,-32768, 340, 545, 336, 336, 95, -32768,-32768,-32768,-32768,-32768, 314, 598, 313, 231, 297,
-32768,-32768, 235,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 212,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 238, 239, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 216, 217,
-32768, 103,-32768, 29,-32768, 236, 325, 36, 237, 248, -32768, 127,-32768, 27,-32768, 220, 303, 7, 221, 226,
6, 142, 286,-32768, 250, 6, 289,-32768, 51,-32768, 51, 102, 268,-32768, 233, 51, 273,-32768, 48,-32768,
5, 244,-32768,-32768,-32768,-32768,-32768,-32768, 57,-32768, 6, 225,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -12,
-32768, 330,-32768, 120, 142, 257, 258,-32768, 241, 271, -32768,-32768, 315,-32768, 148, 102, 240, 238,-32768, 272,
265, 57,-32768,-32768, 269,-32768,-32768,-32768, 182, 371, 253, 251, -12,-32768,-32768, 254,-32768,-32768,-32768,-32768,
336, 279, 281, 182, 279,-32768, 291, 291,-32768,-32768, 170, 355, 313, 163, 270, 170, 163,-32768, 279, 279,
468,-32768, 336, 267, 108,-32768,-32768, 244,-32768, 142, -32768,-32768, 521,-32768, 313, 263, 153,-32768,-32768, 225,
313, 280, 275,-32768,-32768, 244, 284, 173, 336, 142, -32768, 102, 306, 276, 274,-32768,-32768, 225, 278, 130,
287, 336,-32768,-32768, 110,-32768,-32768, 282, 116,-32768, 313, 102, 281, 313,-32768,-32768, 154,-32768,-32768, 282,
-32768,-32768,-32768, 273, 293, 170, 290, 288, 294,-32768, 155,-32768,-32768,-32768,-32768, 269, 285, 210, 286, 289,
95,-32768,-32768,-32768,-32768, 142, 142,-32768, 142, 142, 288,-32768, 297,-32768,-32768,-32768,-32768, 102, 102,-32768,
234, 285,-32768,-32768, 392,-32768,-32768, 319,-32768,-32768, 102, 102, 280, 283,-32768,-32768, 391,-32768,-32768, 316,
-32768,-32768,-32768, -17, -17,-32768, 296,-32768, 36,-32768, -32768,-32768,-32768,-32768,-32768, 9, 9,-32768, 343,-32768,
299, 244,-32768, 6, -17,-32768, 308, 244,-32768, 305, 7,-32768, 298, 225,-32768, 51, 9,-32768, 295, 225,
-32768, 244,-32768, 61, 296,-32768, 5,-32768, 300,-32768, -32768, 300,-32768, 225,-32768, 56, 343,-32768, 6,-32768,
-32768, 43,-32768,-32768,-32768,-32768,-32768,-32768, 310,-32768, 296,-32768,-32768, 30,-32768,-32768,-32768,-32768,-32768,-32768,
-32768, 11, 123,-32768,-32768, 316,-32768,-32768,-32768,-32768, 301,-32768,-32768, 11, 168,-32768,-32768, 307,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768, 312, 468,-32768, 468, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 304, 521,
-32768, 315, 317,-32768,-32768,-32768, 125,-32768, -32,-32768, -32768, 521,-32768, 305, 308,-32768,-32768,-32768, 169,-32768,
336, 311,-32768,-32768, 285,-32768, 142,-32768,-32768,-32768, -55,-32768, 313, 302,-32768,-32768, 283,-32768, 102,-32768,
-32768,-32768, 43, 17, 311, 336,-32768, 160, 241,-32768, -32768,-32768,-32768,-32768, 30, 24, 302, 313,-32768, 125,
-32768,-32768,-32768,-32768,-32768,-32768,-32768, 14,-32768,-32768, 272,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 22,
-32768,-32768, 395, 424,-32768 -32768,-32768,-32768,-32768, 418, 419,-32768
}; };
static const short yypgoto[] = {-32768, static const short yypgoto[] = {-32768,
-32768, 422, 298,-32768,-32768, 413,-32768,-32768, 402,-32768, -32768, 417, 284,-32768,-32768, 410,-32768,-32768, 398,-32768,
-32768, 373,-32768,-32768,-32768, 356,-32768, 318,-32768,-32768, -32768, 369,-32768,-32768,-32768, 353,-32768, 318,-32768,-32768,
324,-32768, 369,-32768,-32768, 146,-32768,-32768, 276,-32768, 319,-32768, 364,-32768,-32768, 137,-32768,-32768, 267,-32768,
105, 240,-32768, 121,-32768, 129,-32768, 196,-32768, 207, 96, 230,-32768, 111,-32768, 117,-32768, 192,-32768, 193,
-32768,-32768,-32768,-32768, 44, -183, -65, -129, -53,-32768, -32768,-32768,-32768,-32768, 33, -185, -79, -300, -53,-32768,
214, -185, -114,-32768, -160,-32768, -252,-32768, -41, -117, 203, -186, -124,-32768, -165,-32768, -246,-32768, -48, -119,
-32768, 18,-32768,-32768,-32768, -147,-32768,-32768, -204, -168, -32768, 18,-32768,-32768,-32768, -147,-32768,-32768, -178, -166,
-36, 227,-32768, -207,-32768,-32768, 67,-32768,-32768,-32768, -200, 207,-32768, -259,-32768,-32768, 50,-32768,-32768,-32768,
-32768,-32768,-32768, 77, 80, -238,-32768,-32768,-32768, 130, -32768,-32768,-32768, 60, 63, -295,-32768,-32768,-32768, 112,
-125, -74,-32768,-32768,-32768,-32768, 1,-32768, 191, -7 -126, -80,-32768,-32768,-32768,-32768, 31,-32768, 175, -7
}; };
#define YYLAST 636 #define YYLAST 689
static const short yytable[] = { 15, static const short yytable[] = { 15,
5, 229, 157, 5, 207, 15, 208, 120, 248, 188, 157, 120, 119, 230, 207, 15, 208, 250, 188, 175,
101, 101, 10, 10, 257, 245, 119, 407, 10, 175, 101, 101, 259, 10, 10, 102, 102, 116, 10, 142,
289, 142, 102, 102, 116, 113, 171, 172, 16, 65, 359, 360, 113, 10, 200, 409, 1, 2, 343, 65,
10, 401, 72, 1, 2, 261, 79, 64, 7, 67, 5, 368, 72, 5, 171, 172, 79, 10, 403, 171,
71, 171, 172, 10, 78, 10, 11, 200, 65, 10, 172, 247, 10, 353, 7, 1, 2, 291, 65, 202,
10, 246, 1, 2, 63, 321, 64, 131, 10, 180, 131, 67, 10, 11, 63, 10, 180, 181, 10, 247,
181, 245, 10, 11, 359, 330, 79, 200, 10, 180, 10, 11, 200, 10, 180, 181, 79, 64, 161, 390,
181, 200, 202, 63, 78, 357, 358, 143, 341, 19, 71, 391, 361, 63, 78, 143, 16, 248, 309, 162,
-261, 307, 372, 277, 312, 402, 366, 114, 123, 403, 263, 314, 279, 323, 114, 201, 64, 202, 286, 144,
201, 144, 202, 351, 206, 349, 202, 246, 28, 132, 374, 19, 404, 332, -263, 248, 405, 348, 349, 287,
216, 72, 10, 180, 181, 29, 79, 254, 10, 71, 350, 72, 123, 117, 78, 28, 79, 217, 256, 10,
117, 1, 2, 138, 78, 165, 188, 411, 117, 188, 180, 181, 1, 2, 249, 165, 175, 188, 131, 117,
160, 381, 229, 164, 175, 131, 32, 190, 247, 68, 188, 383, 111, 351, 29, 413, 230, 190, 409, 132,
1, 2, -235, 157, 176, 257, -235, 254, 34, 217, -237, 378, 285, 157, -237, 259, 32, 171, 172, 71,
218, 12, 117, 30, 376, 259, 283, 216, 111, 10, 117, 68, 30, 138, 78, 261, 218, 219, 12, 275,
180, 181, 273, 161, 274, 219, 31, 284, 17, 36, 160, 276, 256, 164, 200, 20, 17, 275, 1, 2,
214, 215, 273, 407, 162, 33, 10, 132, 285, 1, 214, 216, 220, 21, 176, 189, 31, 177, 178, 179,
2, 37, 171, 172, 220, 216, 20, 10, 180, 181, 10, 180, 181, 1, 2, 108, 109, 206, 33, 202,
221, 166, 108, 109, 21, 167, 217, 218, 66, 222, 322, 221, 171, 172, 22, 166, 23, 222, 327, 167,
258, 360, 320, 266, 171, 172, 223, 224, 266, 225, 260, 34, 362, 268, 36, 24, 223, 132, 268, 215,
325, 278, 219, 282, 73, 22, 243, 23, 277, 373, 37, 280, 66, 284, 225, 80, 226, 182, 10, 279,
244, 318, 410, 333, 217, 319, 24, 334, 399, 336, 375, 1, 2, 412, 107, 217, 110, 10, 180, 181,
107, 220, 410, 337, 288, 80, 384, 221, 392, 340, 1, 2, 401, 412, 115, 183, 294, 295, 296, 297,
385, 394, 393, 306, 190, 110, 222, 190, 388, 216, 245, 83, 84, 396, 246, 308, 190, 329, 10, 190,
389, 10, 180, 181, 224, 316, 225, 83, 84, 115, 124, 1, 2, 123, 366, 125, 73, 318, 184, 370,
157, 160, 157, 368, 123, 221, 364, 370, 82, 346, 157, 126, 157, 372, 218, 290, 320, 335, 338, 82,
347, 329, 348, 124, 329, 125, 83, 84, 126, 292, 321, 336, 339, 331, 127, 185, 331, 83, 84, 342,
293, 294, 295, 1, 2, 171, 172, 85, 217, 86, 128, 386, 394, 133, 189, 387, 395, 189, 85, 135,
327, 87, 127, 177, 178, 179, 10, 180, 181, 1, 86, 134, 87, 160, 141, 217, 137, 10, 180, 181,
2, 88, 128, 350, 133, 89, 134, 135, 137, 90, 1, 2, 88, 168, 169, 222, 89, 140, 170, 196,
140, 141, 91, 10, 180, 181, 1, 2, 168, 361, 90, -264, 217, 91, 10, 180, 181, 1, 2, 197,
169, 258, 170, 92, 196, -262, 266, 197, 93, 221, 198, 363, 199, 260, 92, 209, 212, 211, 268, 93,
94, 10, 95, 182, 1, 2, 278, 361, 198, 282, 10, 94, 241, 95, 218, 244, 243, 255, 280, 363,
209, 96, 97, 199, 379, 211, 38, 292, 293, 294, 262, 284, 96, 97, 254, 271, 381, 272, 117, 352,
295, 183, 212, 10, 383, 239, 98, 242, 241, 253, 274, 218, 219, 292, 289, 293, 385, 98, 300, 189,
252, 39, 260, 269, 270, 40, 272, 117, 99, 287, 10, 180, 181, 1, 2, 302, 304, 220, 306, 99,
290, 41, 42, 43, 184, 291, 298, 44, 160, 300, 1, 2, 171, 172, 310, 222, 315, 189, 294, 295,
160, 302, 45, 383, 304, 308, 317, 46, 313, 47, 296, 297, 319, 324, 10, 385, 221, 1, 2, 325,
322, 185, 324, 323, 338, 379, 335, 48, 406, 326, 340, 326, 222, 328, 333, 341, 337, 381, 344, 38,
331, 343, 342, 339, 414, 355, 49, 352, 50, 344, 408, 223, 345, 346, 357, 354, 369, 358, 224, 225,
356, 146, 147, 51, 363, 52, 53, 54, 148, 367, 160, 226, 160, 365, 39, 371, 382, 377, 40, 388,
369, 375, 85, 38, 86, 380, 87, 149, 386, 387, 392, 389, 398, 393, 41, 42, 43, 416, 417, 6,
390, 396, 391, 415, 6, 18, 88, 35, 81, 112, 44, 191, 18, 35, 81, 45, 112, 136, 105, 347,
89, 139, 136, 105, 90, 191, 345, 91, 41, 42, 46, 139, 47, 213, 376, 273, 367, 364, 313, 303,
43, 374, 213, 315, 365, 271, 150, 362, 92, 45, 48, 317, 414, 305, 402, 397, 399, 373, 334, 49,
311, 412, 303, 93, 46, 94, 47, 95, 301, 400, 0, 50, 0, 0, 146, 147, 51, 0, 52, 53,
395, 397, 332, 371, 48, 0, 96, 97, 151, 152, 54, 148, 0, 0, 0, 85, 38, 86, 0, 87,
0, 0, 0, 49, 0, 50, 0, 153, 146, 147, 149, 0, 0, 0, 0, 0, 0, 0, 0, 88,
51, 98, 52, 53, 54, 148, 0, 0, 0, 85, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0,
38, 86, 0, 87, 149, 0, 0, 0, 0, 0, 91, 41, 42, 43, 0, 0, 0, 0, 0, 150,
0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 92, 45, 0, 0, 0, 93, 46, 94, 47,
0, 90, 0, 0, 91, 41, 42, 43, 0, 0, 95, 0, 0, 0, 0, 0, 0, 48, 0, 96,
0, 0, 0, 150, 0, 92, 45, 0, 0, 0, 97, 151, 152, 0, 0, 0, 49, 0, 50, 0,
93, 46, 94, 47, 95, 0, 0, 0, 83, 84, 153, 146, 147, 51, 98, 52, 53, 54, 148, 0,
0, 48, 0, 96, 97, 151, 152, 0, 0, 85, 0, 0, 85, 38, 86, 0, 87, 149, 0, 0,
49, 86, 50, 87, 0, 1, 2, 51, 98, 52, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0,
53, 54, 0, 88, 0, 0, 85, 89, 86, 0, 89, 0, 0, 0, 90, 0, 0, 91, 41, 42,
87, 90, 0, 0, 91, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 150, 0, 92, 45,
88, 0, 0, 0, 89, 92, 0, 0, 90, 0, 0, 0, 0, 93, 46, 94, 47, 95, 0, 0,
93, 91, 94, 0, 95, 0, 0, 0, 0, 0, 0, 83, 84, 0, 48, 0, 96, 97, 151, 152,
0, 0, 92, 96, 97, 0, 0, 93, 0, 94, 0, 0, 85, 49, 86, 50, 87, 0, 1, 2,
0, 95, 0, 0, 0, 0, 0, 0, 98, 0, 51, 98, 52, 53, 54, 0, 88, 0, 0, 85,
96, 97, 0, 0, 0, 0, 0, 0, 0, 0, 89, 86, 0, 87, 90, 0, 0, 91, 0, 0,
0, 0, 0, 0, 0, 98 0, 0, 0, 88, 0, 0, 0, 89, 92, 0,
0, 90, 0, 93, 91, 94, 0, 95, 0, 0,
0, 0, 0, 0, 0, 92, 96, 97, 0, 0,
93, 0, 94, 0, 95, 0, 0, 0, 0, 0,
0, 98, 0, 96, 97, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 98
}; };
static const short yycheck[] = { 7, static const short yycheck[] = { 7,
0, 170, 120, 3, 152, 13, 154, 82, 194, 135, 120, 82, 82, 170, 152, 13, 154, 194, 135, 134,
64, 65, 8, 8, 198, 33, 82, 4, 8, 134, 64, 65, 198, 8, 8, 64, 65, 28, 8, 19,
225, 19, 64, 65, 28, 46, 13, 14, 34, 37, 316, 317, 46, 8, 80, 4, 11, 12, 288, 37,
8, 15, 40, 11, 12, 30, 44, 37, 103, 17, 0, 327, 40, 3, 13, 14, 44, 8, 15, 13,
40, 13, 14, 8, 44, 8, 9, 80, 56, 8, 14, 33, 8, 303, 103, 11, 12, 226, 56, 105,
8, 69, 11, 12, 37, 260, 56, 99, 8, 9, 99, 17, 8, 9, 37, 8, 9, 10, 8, 33,
10, 33, 8, 9, 317, 270, 74, 80, 8, 9, 8, 9, 80, 8, 9, 10, 74, 37, 41, 370,
10, 80, 105, 56, 74, 314, 315, 75, 286, 105, 40, 372, 319, 56, 44, 75, 34, 69, 244, 52,
103, 242, 335, 209, 245, 69, 325, 108, 111, 73, 30, 247, 209, 262, 108, 103, 56, 105, 101, 89,
103, 89, 105, 301, 103, 300, 105, 69, 9, 99, 337, 105, 69, 272, 103, 69, 73, 298, 299, 112,
6, 109, 8, 9, 10, 57, 114, 102, 8, 109, 301, 109, 111, 114, 74, 9, 114, 6, 102, 8,
114, 11, 12, 113, 114, 123, 242, 104, 114, 245, 9, 10, 11, 12, 194, 123, 241, 244, 167, 114,
120, 111, 291, 123, 239, 167, 53, 135, 194, 107, 247, 111, 107, 302, 57, 104, 293, 135, 4, 99,
11, 12, 104, 251, 134, 319, 108, 102, 3, 45, 104, 102, 212, 253, 108, 321, 53, 13, 14, 109,
46, 104, 114, 84, 102, 199, 212, 6, 107, 8, 114, 107, 84, 113, 114, 199, 45, 46, 104, 102,
9, 10, 102, 41, 104, 61, 84, 101, 104, 106, 120, 104, 102, 123, 80, 12, 104, 102, 11, 12,
168, 169, 102, 4, 52, 84, 8, 167, 112, 11, 168, 169, 61, 20, 134, 135, 84, 5, 6, 7,
12, 21, 13, 14, 80, 6, 12, 8, 9, 10, 8, 9, 10, 11, 12, 107, 108, 103, 84, 105,
86, 104, 107, 108, 20, 108, 45, 46, 12, 95, 260, 80, 13, 14, 41, 104, 43, 86, 268, 108,
198, 317, 258, 201, 13, 14, 102, 103, 206, 105, 198, 3, 319, 201, 106, 52, 95, 167, 206, 169,
266, 209, 61, 211, 46, 41, 104, 43, 334, 335, 21, 209, 12, 211, 103, 39, 105, 45, 8, 336,
108, 104, 398, 104, 45, 108, 52, 108, 387, 104, 337, 11, 12, 400, 107, 6, 103, 8, 9, 10,
107, 80, 408, 108, 224, 39, 104, 86, 104, 60, 11, 12, 389, 410, 103, 63, 97, 98, 99, 100,
108, 379, 108, 241, 242, 103, 95, 245, 368, 6, 104, 11, 12, 381, 108, 243, 244, 108, 8, 247,
370, 8, 9, 10, 103, 253, 105, 11, 12, 103, 81, 11, 12, 111, 324, 81, 46, 255, 86, 330,
368, 251, 370, 328, 111, 86, 322, 332, 3, 296, 370, 71, 372, 334, 45, 225, 104, 104, 104, 3,
297, 269, 299, 81, 272, 81, 11, 12, 71, 97, 108, 108, 108, 271, 51, 103, 274, 11, 12, 60,
98, 99, 100, 11, 12, 13, 14, 22, 45, 24, 81, 104, 104, 3, 244, 108, 108, 247, 22, 3,
108, 26, 51, 5, 6, 7, 8, 9, 10, 11, 24, 111, 26, 253, 103, 6, 104, 8, 9, 10,
12, 36, 81, 60, 3, 40, 111, 3, 104, 44, 11, 12, 36, 109, 109, 86, 40, 104, 103, 9,
104, 103, 47, 8, 9, 10, 11, 12, 109, 317, 44, 103, 6, 47, 8, 9, 10, 11, 12, 35,
109, 319, 103, 58, 9, 103, 324, 35, 63, 86, 103, 319, 68, 321, 58, 103, 3, 103, 326, 63,
65, 8, 67, 45, 11, 12, 334, 335, 103, 337, 8, 65, 111, 67, 45, 109, 111, 25, 336, 337,
103, 76, 77, 68, 342, 103, 23, 97, 98, 99, 105, 339, 76, 77, 115, 68, 344, 105, 114, 60,
100, 63, 3, 8, 352, 111, 91, 109, 111, 25, 68, 45, 46, 104, 30, 108, 354, 91, 96, 319,
115, 38, 105, 68, 105, 42, 68, 114, 103, 30, 8, 9, 10, 11, 12, 105, 103, 61, 4, 103,
104, 48, 49, 50, 86, 108, 96, 54, 368, 105, 11, 12, 13, 14, 95, 86, 88, 337, 97, 98,
370, 103, 59, 381, 4, 95, 110, 64, 88, 66, 99, 100, 110, 68, 8, 383, 80, 11, 12, 104,
68, 103, 108, 104, 112, 393, 105, 74, 396, 106, 112, 108, 86, 106, 104, 101, 105, 395, 103, 23,
104, 104, 103, 101, 0, 4, 83, 113, 85, 106, 398, 95, 104, 106, 4, 113, 102, 82, 102, 103,
82, 11, 12, 90, 106, 92, 93, 94, 18, 102, 370, 105, 372, 106, 38, 106, 106, 112, 42, 103,
106, 112, 22, 23, 24, 106, 26, 27, 103, 108, 106, 108, 111, 106, 48, 49, 50, 0, 0, 3,
106, 111, 106, 0, 3, 13, 36, 26, 56, 74, 54, 138, 13, 26, 56, 59, 74, 109, 65, 293,
40, 114, 109, 65, 44, 138, 291, 47, 48, 49, 64, 114, 66, 167, 339, 206, 326, 321, 246, 233,
50, 337, 167, 248, 324, 206, 56, 319, 58, 59, 74, 250, 410, 241, 395, 383, 387, 336, 274, 83,
244, 408, 239, 63, 64, 65, 66, 67, 232, 393, -1, 85, -1, -1, 11, 12, 90, -1, 92, 93,
381, 385, 272, 334, 74, -1, 76, 77, 78, 79, 94, 18, -1, -1, -1, 22, 23, 24, -1, 26,
-1, -1, -1, 83, -1, 85, -1, 87, 11, 12, 27, -1, -1, -1, -1, -1, -1, -1, -1, 36,
90, 91, 92, 93, 94, 18, -1, -1, -1, 22, -1, -1, -1, 40, -1, -1, -1, 44, -1, -1,
23, 24, -1, 26, 27, -1, -1, -1, -1, -1, 47, 48, 49, 50, -1, -1, -1, -1, -1, 56,
-1, -1, -1, 36, -1, -1, -1, 40, -1, -1, -1, 58, 59, -1, -1, -1, 63, 64, 65, 66,
-1, 44, -1, -1, 47, 48, 49, 50, -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, -1, 76,
-1, -1, -1, 56, -1, 58, 59, -1, -1, -1, 77, 78, 79, -1, -1, -1, 83, -1, 85, -1,
63, 64, 65, 66, 67, -1, -1, -1, 11, 12, 87, 11, 12, 90, 91, 92, 93, 94, 18, -1,
-1, 74, -1, 76, 77, 78, 79, -1, -1, 22, -1, -1, 22, 23, 24, -1, 26, 27, -1, -1,
83, 24, 85, 26, -1, 11, 12, 90, 91, 92, -1, -1, -1, -1, -1, -1, 36, -1, -1, -1,
93, 94, -1, 36, -1, -1, 22, 40, 24, -1, 40, -1, -1, -1, 44, -1, -1, 47, 48, 49,
26, 44, -1, -1, 47, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, 56, -1, 58, 59,
36, -1, -1, -1, 40, 58, -1, -1, 44, -1, -1, -1, -1, 63, 64, 65, 66, 67, -1, -1,
63, 47, 65, -1, 67, -1, -1, -1, -1, -1, -1, 11, 12, -1, 74, -1, 76, 77, 78, 79,
-1, -1, 58, 76, 77, -1, -1, 63, -1, 65, -1, -1, 22, 83, 24, 85, 26, -1, 11, 12,
-1, 67, -1, -1, -1, -1, -1, -1, 91, -1, 90, 91, 92, 93, 94, -1, 36, -1, -1, 22,
76, 77, -1, -1, -1, -1, -1, -1, -1, -1, 40, 24, -1, 26, 44, -1, -1, 47, -1, -1,
-1, -1, -1, -1, -1, 91 -1, -1, -1, 36, -1, -1, -1, 40, 58, -1,
-1, 44, -1, 63, 47, 65, -1, 67, -1, -1,
-1, -1, -1, -1, -1, 58, 76, 77, -1, -1,
63, -1, 65, -1, 67, -1, -1, -1, -1, -1,
-1, 91, -1, 76, 77, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 91
}; };
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/share/bison.simple" #line 3 "/usr/share/bison.simple"
...@@ -1854,6 +1865,16 @@ case 69: ...@@ -1854,6 +1865,16 @@ case 69:
break;} break;}
case 70: case 70:
#line 819 "asn1p_y.y" #line 819 "asn1p_y.y"
{
int ret;
yyval.a_parg.governor = asn1p_ref_new(yylineno);
ret = asn1p_ref_add_component(yyval.a_parg.governor, yyvsp[-2].tv_str, 0);
checkmem(ret == 0);
yyval.a_parg.argument = yyvsp[0].tv_str;
;
break;}
case 71:
#line 826 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_parg.governor = asn1p_ref_new(yylineno); yyval.a_parg.governor = asn1p_ref_new(yylineno);
...@@ -1863,29 +1884,29 @@ case 70: ...@@ -1863,29 +1884,29 @@ case 70:
yyval.a_parg.argument = yyvsp[0].tv_str; yyval.a_parg.argument = yyvsp[0].tv_str;
; ;
break;} break;}
case 71: case 72:
#line 830 "asn1p_y.y" #line 837 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 72: case 73:
#line 835 "asn1p_y.y" #line 842 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-2].a_expr; yyval.a_expr = yyvsp[-2].a_expr;
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 73: case 74:
#line 842 "asn1p_y.y" #line 849 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr = yyvsp[0].a_expr;
; ;
break;} break;}
case 74: case 75:
#line 845 "asn1p_y.y" #line 852 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -1894,31 +1915,31 @@ case 74: ...@@ -1894,31 +1915,31 @@ case 74:
yyval.a_expr->meta_type = AMT_VALUE; yyval.a_expr->meta_type = AMT_VALUE;
; ;
break;} break;}
case 75: case 76:
#line 858 "asn1p_y.y" #line 876 "asn1p_y.y"
{ yyval.a_expr = asn1p_expr_new(yylineno); ; { yyval.a_expr = asn1p_expr_new(yylineno); ;
break;} break;}
case 76: case 77:
#line 859 "asn1p_y.y" #line 877 "asn1p_y.y"
{ yyval.a_expr = yyvsp[0].a_expr; ; { yyval.a_expr = yyvsp[0].a_expr; ;
break;} break;}
case 77: case 78:
#line 862 "asn1p_y.y" #line 880 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 78: case 79:
#line 867 "asn1p_y.y" #line 885 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-2].a_expr; yyval.a_expr = yyvsp[-2].a_expr;
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 79: case 80:
#line 874 "asn1p_y.y" #line 892 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->Identifier == 0); assert(yyval.a_expr->Identifier == 0);
...@@ -1926,8 +1947,8 @@ case 79: ...@@ -1926,8 +1947,8 @@ case 79:
yyval.a_expr->marker = yyvsp[0].a_marker; yyval.a_expr->marker = yyvsp[0].a_marker;
; ;
break;} break;}
case 80: case 81:
#line 880 "asn1p_y.y" #line 898 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -1936,43 +1957,43 @@ case 80: ...@@ -1936,43 +1957,43 @@ case 80:
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 81: case 82:
#line 887 "asn1p_y.y" #line 905 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr = yyvsp[0].a_expr;
; ;
break;} break;}
case 82: case 83:
#line 893 "asn1p_y.y" #line 911 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 83: case 84:
#line 898 "asn1p_y.y" #line 916 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-2].a_expr; yyval.a_expr = yyvsp[-2].a_expr;
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 84: case 85:
#line 905 "asn1p_y.y" #line 923 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr = yyvsp[0].a_expr;
assert(yyval.a_expr->Identifier == 0); assert(yyval.a_expr->Identifier == 0);
yyval.a_expr->Identifier = yyvsp[-1].tv_str; yyval.a_expr->Identifier = yyvsp[-1].tv_str;
; ;
break;} break;}
case 85: case 86:
#line 910 "asn1p_y.y" #line 928 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr = yyvsp[0].a_expr;
; ;
break;} break;}
case 86: case 87:
#line 916 "asn1p_y.y" #line 934 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-2].a_expr; yyval.a_expr = yyvsp[-2].a_expr;
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -1981,16 +2002,16 @@ case 86: ...@@ -1981,16 +2002,16 @@ case 86:
assert(yyval.a_expr->meta_type == AMT_OBJECT); assert(yyval.a_expr->meta_type == AMT_OBJECT);
; ;
break;} break;}
case 87: case 88:
#line 926 "asn1p_y.y" #line 944 "asn1p_y.y"
{ yyval.a_int = 0; ; { yyval.a_int = 0; ;
break;} break;}
case 88: case 89:
#line 927 "asn1p_y.y" #line 945 "asn1p_y.y"
{ yyval.a_int = 1; ; { yyval.a_int = 1; ;
break;} break;}
case 89: case 90:
#line 931 "asn1p_y.y" #line 949 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -1999,15 +2020,15 @@ case 89: ...@@ -1999,15 +2020,15 @@ case 89:
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 90: case 91:
#line 938 "asn1p_y.y" #line 956 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-2].a_expr; yyval.a_expr = yyvsp[-2].a_expr;
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 91: case 92:
#line 945 "asn1p_y.y" #line 963 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2017,8 +2038,8 @@ case 91: ...@@ -2017,8 +2038,8 @@ case 91:
yyval.a_expr->marker = yyvsp[0].a_marker; yyval.a_expr->marker = yyvsp[0].a_marker;
; ;
break;} break;}
case 92: case 93:
#line 953 "asn1p_y.y" #line 971 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-2].a_expr; yyval.a_expr = yyvsp[-2].a_expr;
yyval.a_expr->Identifier = yyvsp[-3].a_refcomp.name; yyval.a_expr->Identifier = yyvsp[-3].a_refcomp.name;
...@@ -2026,8 +2047,8 @@ case 92: ...@@ -2026,8 +2047,8 @@ case 92:
yyval.a_expr->unique = yyvsp[-1].a_int; yyval.a_expr->unique = yyvsp[-1].a_int;
; ;
break;} break;}
case 93: case 94:
#line 959 "asn1p_y.y" #line 977 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
...@@ -2044,48 +2065,48 @@ case 93: ...@@ -2044,48 +2065,48 @@ case 93:
yyval.a_expr->unique = yyvsp[-1].a_int; yyval.a_expr->unique = yyvsp[-1].a_int;
; ;
break;} break;}
case 94: case 95:
#line 977 "asn1p_y.y" #line 995 "asn1p_y.y"
{ yyval.a_wsynt = 0; ; { yyval.a_wsynt = 0; ;
break;} break;}
case 95: case 96:
#line 978 "asn1p_y.y" #line 996 "asn1p_y.y"
{ {
yyval.a_wsynt = yyvsp[0].a_wsynt; yyval.a_wsynt = yyvsp[0].a_wsynt;
; ;
break;} break;}
case 96: case 97:
#line 985 "asn1p_y.y" #line 1003 "asn1p_y.y"
{ asn1p_lexer_hack_enable_with_syntax(); ; { asn1p_lexer_hack_enable_with_syntax(); ;
break;} break;}
case 97: case 98:
#line 987 "asn1p_y.y" #line 1005 "asn1p_y.y"
{ {
yyval.a_wsynt = yyvsp[-1].a_wsynt; yyval.a_wsynt = yyvsp[-1].a_wsynt;
; ;
break;} break;}
case 98: case 99:
#line 993 "asn1p_y.y" #line 1011 "asn1p_y.y"
{ {
yyval.a_wsynt = asn1p_wsyntx_new(); yyval.a_wsynt = asn1p_wsyntx_new();
TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
; ;
break;} break;}
case 99: case 100:
#line 997 "asn1p_y.y" #line 1015 "asn1p_y.y"
{ {
yyval.a_wsynt = yyvsp[-1].a_wsynt; yyval.a_wsynt = yyvsp[-1].a_wsynt;
TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
; ;
break;} break;}
case 100: case 101:
#line 1004 "asn1p_y.y" #line 1022 "asn1p_y.y"
{ {
yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
; ;
break;} break;}
case 101: case 102:
#line 1007 "asn1p_y.y" #line 1025 "asn1p_y.y"
{ {
asn1p_ref_t *ref; asn1p_ref_t *ref;
int ret; int ret;
...@@ -2096,8 +2117,8 @@ case 101: ...@@ -2096,8 +2117,8 @@ case 101:
yyval.a_wchunk = asn1p_wsyntx_chunk_fromref(ref, 0); yyval.a_wchunk = asn1p_wsyntx_chunk_fromref(ref, 0);
; ;
break;} break;}
case 102: case 103:
#line 1019 "asn1p_y.y" #line 1037 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2107,8 +2128,8 @@ case 102: ...@@ -2107,8 +2128,8 @@ case 102:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 103: case 104:
#line 1027 "asn1p_y.y" #line 1045 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2119,8 +2140,8 @@ case 103: ...@@ -2119,8 +2140,8 @@ case 103:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 104: case 105:
#line 1036 "asn1p_y.y" #line 1054 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2131,8 +2152,8 @@ case 104: ...@@ -2131,8 +2152,8 @@ case 104:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 105: case 106:
#line 1048 "asn1p_y.y" #line 1066 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr = yyvsp[-1].a_expr;
yyval.a_expr->tag = yyvsp[-2].a_tag; yyval.a_expr->tag = yyvsp[-2].a_tag;
...@@ -2153,14 +2174,14 @@ case 105: ...@@ -2153,14 +2174,14 @@ case 105:
} }
; ;
break;} break;}
case 106: case 107:
#line 1070 "asn1p_y.y" #line 1088 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr = yyvsp[0].a_expr;
; ;
break;} break;}
case 107: case 108:
#line 1073 "asn1p_y.y" #line 1091 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2168,8 +2189,8 @@ case 107: ...@@ -2168,8 +2189,8 @@ case 107:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 108: case 109:
#line 1079 "asn1p_y.y" #line 1097 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == A1TC_INVALID); assert(yyval.a_expr->expr_type == A1TC_INVALID);
...@@ -2177,8 +2198,8 @@ case 108: ...@@ -2177,8 +2198,8 @@ case 108:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 109: case 110:
#line 1085 "asn1p_y.y" #line 1103 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == A1TC_INVALID); assert(yyval.a_expr->expr_type == A1TC_INVALID);
...@@ -2186,8 +2207,8 @@ case 109: ...@@ -2186,8 +2207,8 @@ case 109:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 110: case 111:
#line 1091 "asn1p_y.y" #line 1109 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == A1TC_INVALID); assert(yyval.a_expr->expr_type == A1TC_INVALID);
...@@ -2195,8 +2216,8 @@ case 110: ...@@ -2195,8 +2216,8 @@ case 110:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 111: case 112:
#line 1097 "asn1p_y.y" #line 1115 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2208,8 +2229,8 @@ case 111: ...@@ -2208,8 +2229,8 @@ case 111:
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 112: case 113:
#line 1107 "asn1p_y.y" #line 1125 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2221,8 +2242,8 @@ case 112: ...@@ -2221,8 +2242,8 @@ case 112:
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 113: case 114:
#line 1117 "asn1p_y.y" #line 1135 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2230,8 +2251,8 @@ case 113: ...@@ -2230,8 +2251,8 @@ case 113:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 114: case 115:
#line 1123 "asn1p_y.y" #line 1141 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
...@@ -2244,8 +2265,8 @@ case 114: ...@@ -2244,8 +2265,8 @@ case 114:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 115: case 116:
#line 1137 "asn1p_y.y" #line 1155 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr = yyvsp[-1].a_expr;
...@@ -2261,8 +2282,8 @@ case 115: ...@@ -2261,8 +2282,8 @@ case 115:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 116: case 117:
#line 1161 "asn1p_y.y" #line 1179 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2271,8 +2292,8 @@ case 116: ...@@ -2271,8 +2292,8 @@ case 116:
yyval.a_expr->meta_type = AMT_TYPEREF; yyval.a_expr->meta_type = AMT_TYPEREF;
; ;
break;} break;}
case 117: case 118:
#line 1168 "asn1p_y.y" #line 1186 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2281,8 +2302,8 @@ case 117: ...@@ -2281,8 +2302,8 @@ case 117:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 118: case 119:
#line 1183 "asn1p_y.y" #line 1201 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_ref = asn1p_ref_new(yylineno); yyval.a_ref = asn1p_ref_new(yylineno);
...@@ -2292,8 +2313,8 @@ case 118: ...@@ -2292,8 +2313,8 @@ case 118:
free(yyvsp[0].tv_str); free(yyvsp[0].tv_str);
; ;
break;} break;}
case 119: case 120:
#line 1191 "asn1p_y.y" #line 1209 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_ref = asn1p_ref_new(yylineno); yyval.a_ref = asn1p_ref_new(yylineno);
...@@ -2305,8 +2326,8 @@ case 119: ...@@ -2305,8 +2326,8 @@ case 119:
free(yyvsp[-2].tv_str); free(yyvsp[-2].tv_str);
; ;
break;} break;}
case 120: case 121:
#line 1201 "asn1p_y.y" #line 1219 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_ref = asn1p_ref_new(yylineno); yyval.a_ref = asn1p_ref_new(yylineno);
...@@ -2318,8 +2339,8 @@ case 120: ...@@ -2318,8 +2339,8 @@ case 120:
free(yyvsp[-2].tv_str); free(yyvsp[-2].tv_str);
; ;
break;} break;}
case 121: case 122:
#line 1211 "asn1p_y.y" #line 1229 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_ref = asn1p_ref_new(yylineno); yyval.a_ref = asn1p_ref_new(yylineno);
...@@ -2331,8 +2352,8 @@ case 121: ...@@ -2331,8 +2352,8 @@ case 121:
free(yyvsp[-2].tv_str); free(yyvsp[-2].tv_str);
; ;
break;} break;}
case 122: case 123:
#line 1221 "asn1p_y.y" #line 1239 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_ref = asn1p_ref_new(yylineno); yyval.a_ref = asn1p_ref_new(yylineno);
...@@ -2342,8 +2363,8 @@ case 122: ...@@ -2342,8 +2363,8 @@ case 122:
checkmem(ret == 0); checkmem(ret == 0);
; ;
break;} break;}
case 123: case 124:
#line 1229 "asn1p_y.y" #line 1247 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_ref = yyvsp[0].a_ref; yyval.a_ref = yyvsp[0].a_ref;
...@@ -2364,8 +2385,8 @@ case 123: ...@@ -2364,8 +2385,8 @@ case 123:
} }
; ;
break;} break;}
case 124: case 125:
#line 1251 "asn1p_y.y" #line 1269 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_ref = asn1p_ref_new(yylineno); yyval.a_ref = asn1p_ref_new(yylineno);
...@@ -2375,8 +2396,8 @@ case 124: ...@@ -2375,8 +2396,8 @@ case 124:
checkmem(ret == 0); checkmem(ret == 0);
; ;
break;} break;}
case 125: case 126:
#line 1259 "asn1p_y.y" #line 1277 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_ref = yyvsp[-2].a_ref; yyval.a_ref = yyvsp[-2].a_ref;
...@@ -2385,22 +2406,22 @@ case 125: ...@@ -2385,22 +2406,22 @@ case 125:
checkmem(ret == 0); checkmem(ret == 0);
; ;
break;} break;}
case 128: case 129:
#line 1273 "asn1p_y.y" #line 1291 "asn1p_y.y"
{ {
yyval.a_refcomp.lex_type = RLT_AmpUppercase; yyval.a_refcomp.lex_type = RLT_AmpUppercase;
yyval.a_refcomp.name = yyvsp[0].tv_str; yyval.a_refcomp.name = yyvsp[0].tv_str;
; ;
break;} break;}
case 129: case 130:
#line 1278 "asn1p_y.y" #line 1296 "asn1p_y.y"
{ {
yyval.a_refcomp.lex_type = RLT_Amplowercase; yyval.a_refcomp.lex_type = RLT_Amplowercase;
yyval.a_refcomp.name = yyvsp[0].tv_str; yyval.a_refcomp.name = yyvsp[0].tv_str;
; ;
break;} break;}
case 130: case 131:
#line 1291 "asn1p_y.y" #line 1309 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-2].a_expr; yyval.a_expr = yyvsp[-2].a_expr;
assert(yyval.a_expr->Identifier == NULL); assert(yyval.a_expr->Identifier == NULL);
...@@ -2409,8 +2430,8 @@ case 130: ...@@ -2409,8 +2430,8 @@ case 130:
yyval.a_expr->value = yyvsp[0].a_value; yyval.a_expr->value = yyvsp[0].a_value;
; ;
break;} break;}
case 131: case 132:
#line 1301 "asn1p_y.y" #line 1319 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_fromint(0); yyval.a_value = asn1p_value_fromint(0);
checkmem(yyval.a_value); checkmem(yyval.a_value);
...@@ -2419,77 +2440,77 @@ case 131: ...@@ -2419,77 +2440,77 @@ case 131:
yyval.a_value->value.choice_identifier.value = yyvsp[0].a_value; yyval.a_value->value.choice_identifier.value = yyvsp[0].a_value;
; ;
break;} break;}
case 132: case 133:
#line 1308 "asn1p_y.y" #line 1326 "asn1p_y.y"
{ asn1p_lexer_hack_push_opaque_state(); ; { asn1p_lexer_hack_push_opaque_state(); ;
break;} break;}
case 133: case 134:
#line 1308 "asn1p_y.y" #line 1326 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
checkmem(yyval.a_value); checkmem(yyval.a_value);
yyval.a_value->type = ATV_UNPARSED; yyval.a_value->type = ATV_UNPARSED;
; ;
break;} break;}
case 134: case 135:
#line 1313 "asn1p_y.y" #line 1331 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_fromint(0); yyval.a_value = asn1p_value_fromint(0);
checkmem(yyval.a_value); checkmem(yyval.a_value);
yyval.a_value->type = ATV_NULL; yyval.a_value->type = ATV_NULL;
; ;
break;} break;}
case 135: case 136:
#line 1318 "asn1p_y.y" #line 1336 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_fromint(0); yyval.a_value = asn1p_value_fromint(0);
checkmem(yyval.a_value); checkmem(yyval.a_value);
yyval.a_value->type = ATV_FALSE; yyval.a_value->type = ATV_FALSE;
; ;
break;} break;}
case 136: case 137:
#line 1323 "asn1p_y.y" #line 1341 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_fromint(0); yyval.a_value = asn1p_value_fromint(0);
checkmem(yyval.a_value); checkmem(yyval.a_value);
yyval.a_value->type = ATV_TRUE; yyval.a_value->type = ATV_TRUE;
; ;
break;} break;}
case 137: case 138:
#line 1328 "asn1p_y.y" #line 1346 "asn1p_y.y"
{ {
yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B'); yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B');
checkmem(yyval.a_value); checkmem(yyval.a_value);
; ;
break;} break;}
case 138: case 139:
#line 1332 "asn1p_y.y" #line 1350 "asn1p_y.y"
{ {
yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H'); yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H');
checkmem(yyval.a_value); checkmem(yyval.a_value);
; ;
break;} break;}
case 139: case 140:
#line 1336 "asn1p_y.y" #line 1354 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
checkmem(yyval.a_value); checkmem(yyval.a_value);
; ;
break;} break;}
case 140: case 141:
#line 1340 "asn1p_y.y" #line 1358 "asn1p_y.y"
{ {
yyval.a_value = yyvsp[0].a_value; yyval.a_value = yyvsp[0].a_value;
; ;
break;} break;}
case 141: case 142:
#line 1343 "asn1p_y.y" #line 1361 "asn1p_y.y"
{ {
yyval.a_value = yyvsp[0].a_value; yyval.a_value = yyvsp[0].a_value;
; ;
break;} break;}
case 142: case 143:
#line 1349 "asn1p_y.y" #line 1367 "asn1p_y.y"
{ {
asn1p_ref_t *ref; asn1p_ref_t *ref;
int ret; int ret;
...@@ -2502,8 +2523,8 @@ case 142: ...@@ -2502,8 +2523,8 @@ case 142:
free(yyvsp[0].tv_str); free(yyvsp[0].tv_str);
; ;
break;} break;}
case 143: case 144:
#line 1360 "asn1p_y.y" #line 1378 "asn1p_y.y"
{ {
asn1p_ref_t *ref; asn1p_ref_t *ref;
int ret; int ret;
...@@ -2519,8 +2540,8 @@ case 143: ...@@ -2519,8 +2540,8 @@ case 143:
free(yyvsp[0].tv_str); free(yyvsp[0].tv_str);
; ;
break;} break;}
case 144: case 145:
#line 1377 "asn1p_y.y" #line 1395 "asn1p_y.y"
{ {
yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 2; yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 2;
yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1); yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1);
...@@ -2532,8 +2553,8 @@ case 144: ...@@ -2532,8 +2553,8 @@ case 144:
free(yyvsp[0].tv_opaque.buf); free(yyvsp[0].tv_opaque.buf);
; ;
break;} break;}
case 145: case 146:
#line 1387 "asn1p_y.y" #line 1405 "asn1p_y.y"
{ {
int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len; int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len;
char *p = malloc(newsize + 1); char *p = malloc(newsize + 1);
...@@ -2547,68 +2568,68 @@ case 145: ...@@ -2547,68 +2568,68 @@ case 145:
yyval.tv_opaque.len = newsize; yyval.tv_opaque.len = newsize;
; ;
break;} break;}
case 146: case 147:
#line 1402 "asn1p_y.y" #line 1420 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_BOOLEAN; ; { yyval.a_type = ASN_BASIC_BOOLEAN; ;
break;} break;}
case 147: case 148:
#line 1403 "asn1p_y.y" #line 1421 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_NULL; ; { yyval.a_type = ASN_BASIC_NULL; ;
break;} break;}
case 148: case 149:
#line 1404 "asn1p_y.y" #line 1422 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_REAL; ; { yyval.a_type = ASN_BASIC_REAL; ;
break;} break;}
case 149: case 150:
#line 1405 "asn1p_y.y" #line 1423 "asn1p_y.y"
{ yyval.a_type = yyvsp[0].a_type; ; { yyval.a_type = yyvsp[0].a_type; ;
break;} break;}
case 150: case 151:
#line 1406 "asn1p_y.y" #line 1424 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_OCTET_STRING; ; { yyval.a_type = ASN_BASIC_OCTET_STRING; ;
break;} break;}
case 151: case 152:
#line 1407 "asn1p_y.y" #line 1425 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ; { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ;
break;} break;}
case 152: case 153:
#line 1408 "asn1p_y.y" #line 1426 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_RELATIVE_OID; ; { yyval.a_type = ASN_BASIC_RELATIVE_OID; ;
break;} break;}
case 153: case 154:
#line 1409 "asn1p_y.y" #line 1427 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_EXTERNAL; ; { yyval.a_type = ASN_BASIC_EXTERNAL; ;
break;} break;}
case 154: case 155:
#line 1410 "asn1p_y.y" #line 1428 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ; { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ;
break;} break;}
case 155: case 156:
#line 1411 "asn1p_y.y" #line 1429 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_CHARACTER_STRING; ; { yyval.a_type = ASN_BASIC_CHARACTER_STRING; ;
break;} break;}
case 156: case 157:
#line 1412 "asn1p_y.y" #line 1430 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_UTCTime; ; { yyval.a_type = ASN_BASIC_UTCTime; ;
break;} break;}
case 157: case 158:
#line 1413 "asn1p_y.y" #line 1431 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_GeneralizedTime; ; { yyval.a_type = ASN_BASIC_GeneralizedTime; ;
break;} break;}
case 158: case 159:
#line 1420 "asn1p_y.y" #line 1438 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_INTEGER; ; { yyval.a_type = ASN_BASIC_INTEGER; ;
break;} break;}
case 159: case 160:
#line 1421 "asn1p_y.y" #line 1439 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_ENUMERATED; ; { yyval.a_type = ASN_BASIC_ENUMERATED; ;
break;} break;}
case 160: case 161:
#line 1422 "asn1p_y.y" #line 1440 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_BIT_STRING; ; { yyval.a_type = ASN_BASIC_BIT_STRING; ;
break;} break;}
case 161: case 162:
#line 1426 "asn1p_y.y" #line 1444 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -2616,8 +2637,8 @@ case 161: ...@@ -2616,8 +2637,8 @@ case 161:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 162: case 163:
#line 1432 "asn1p_y.y" #line 1450 "asn1p_y.y"
{ {
if(yyvsp[0].a_expr) { if(yyvsp[0].a_expr) {
yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr = yyvsp[0].a_expr;
...@@ -2629,92 +2650,92 @@ case 162: ...@@ -2629,92 +2650,92 @@ case 162:
yyval.a_expr->meta_type = AMT_TYPE; yyval.a_expr->meta_type = AMT_TYPE;
; ;
break;} break;}
case 163: case 164:
#line 1445 "asn1p_y.y" #line 1463 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_BMPString; ; { yyval.a_type = ASN_STRING_BMPString; ;
break;} break;}
case 164: case 165:
#line 1446 "asn1p_y.y" #line 1464 "asn1p_y.y"
{ {
yyval.a_type = ASN_STRING_GeneralString; yyval.a_type = ASN_STRING_GeneralString;
fprintf(stderr, "WARNING: GeneralString is not fully supported\n"); fprintf(stderr, "WARNING: GeneralString is not fully supported\n");
; ;
break;} break;}
case 165: case 166:
#line 1450 "asn1p_y.y" #line 1468 "asn1p_y.y"
{ {
yyval.a_type = ASN_STRING_GraphicString; yyval.a_type = ASN_STRING_GraphicString;
fprintf(stderr, "WARNING: GraphicString is not fully supported\n"); fprintf(stderr, "WARNING: GraphicString is not fully supported\n");
; ;
break;} break;}
case 166: case 167:
#line 1454 "asn1p_y.y" #line 1472 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_IA5String; ; { yyval.a_type = ASN_STRING_IA5String; ;
break;} break;}
case 167: case 168:
#line 1455 "asn1p_y.y" #line 1473 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_ISO646String; ; { yyval.a_type = ASN_STRING_ISO646String; ;
break;} break;}
case 168: case 169:
#line 1456 "asn1p_y.y" #line 1474 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_NumericString; ; { yyval.a_type = ASN_STRING_NumericString; ;
break;} break;}
case 169: case 170:
#line 1457 "asn1p_y.y" #line 1475 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_PrintableString; ; { yyval.a_type = ASN_STRING_PrintableString; ;
break;} break;}
case 170: case 171:
#line 1458 "asn1p_y.y" #line 1476 "asn1p_y.y"
{ {
yyval.a_type = ASN_STRING_T61String; yyval.a_type = ASN_STRING_T61String;
fprintf(stderr, "WARNING: T61String is not fully supported\n"); fprintf(stderr, "WARNING: T61String is not fully supported\n");
; ;
break;} break;}
case 171: case 172:
#line 1462 "asn1p_y.y" #line 1480 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_TeletexString; ; { yyval.a_type = ASN_STRING_TeletexString; ;
break;} break;}
case 172: case 173:
#line 1463 "asn1p_y.y" #line 1481 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_UniversalString; ; { yyval.a_type = ASN_STRING_UniversalString; ;
break;} break;}
case 173: case 174:
#line 1464 "asn1p_y.y" #line 1482 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_UTF8String; ; { yyval.a_type = ASN_STRING_UTF8String; ;
break;} break;}
case 174: case 175:
#line 1465 "asn1p_y.y" #line 1483 "asn1p_y.y"
{ {
yyval.a_type = ASN_STRING_VideotexString; yyval.a_type = ASN_STRING_VideotexString;
fprintf(stderr, "WARNING: VideotexString is not fully supported\n"); fprintf(stderr, "WARNING: VideotexString is not fully supported\n");
; ;
break;} break;}
case 175: case 176:
#line 1469 "asn1p_y.y" #line 1487 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_VisibleString; ; { yyval.a_type = ASN_STRING_VisibleString; ;
break;} break;}
case 176: case 177:
#line 1470 "asn1p_y.y" #line 1488 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_ObjectDescriptor; ; { yyval.a_type = ASN_STRING_ObjectDescriptor; ;
break;} break;}
case 182: case 183:
#line 1482 "asn1p_y.y" #line 1500 "asn1p_y.y"
{ yyval.a_constr = 0; ; { yyval.a_constr = 0; ;
break;} break;}
case 183: case 184:
#line 1483 "asn1p_y.y" #line 1501 "asn1p_y.y"
{ {
yyval.a_constr = yyvsp[0].a_constr; yyval.a_constr = yyvsp[0].a_constr;
; ;
break;} break;}
case 184: case 185:
#line 1489 "asn1p_y.y" #line 1507 "asn1p_y.y"
{ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
; ;
break;} break;}
case 185: case 186:
#line 1492 "asn1p_y.y" #line 1510 "asn1p_y.y"
{ {
/* /*
* This is a special case, for compatibility purposes. * This is a special case, for compatibility purposes.
...@@ -2723,26 +2744,26 @@ case 185: ...@@ -2723,26 +2744,26 @@ case 185:
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_SIZE, yyvsp[-1].a_constr, 0); CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_SIZE, yyvsp[-1].a_constr, 0);
; ;
break;} break;}
case 186: case 187:
#line 1502 "asn1p_y.y" #line 1520 "asn1p_y.y"
{ {
yyval.a_constr = yyvsp[-1].a_constr; yyval.a_constr = yyvsp[-1].a_constr;
; ;
break;} break;}
case 187: case 188:
#line 1505 "asn1p_y.y" #line 1523 "asn1p_y.y"
{ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
; ;
break;} break;}
case 188: case 189:
#line 1511 "asn1p_y.y" #line 1529 "asn1p_y.y"
{ {
yyval.a_constr = yyvsp[0].a_constr; yyval.a_constr = yyvsp[0].a_constr;
; ;
break;} break;}
case 189: case 190:
#line 1514 "asn1p_y.y" #line 1532 "asn1p_y.y"
{ {
asn1p_constraint_t *ct; asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno); ct = asn1p_constraint_new(yylineno);
...@@ -2750,8 +2771,8 @@ case 189: ...@@ -2750,8 +2771,8 @@ case 189:
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
; ;
break;} break;}
case 190: case 191:
#line 1520 "asn1p_y.y" #line 1538 "asn1p_y.y"
{ {
asn1p_constraint_t *ct; asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno); ct = asn1p_constraint_new(yylineno);
...@@ -2761,32 +2782,32 @@ case 190: ...@@ -2761,32 +2782,32 @@ case 190:
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, ct, yyvsp[0].a_constr); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, ct, yyvsp[0].a_constr);
; ;
break;} break;}
case 191: case 192:
#line 1531 "asn1p_y.y" #line 1549 "asn1p_y.y"
{ {
yyval.a_constr = yyvsp[0].a_constr; yyval.a_constr = yyvsp[0].a_constr;
; ;
break;} break;}
case 192: case 193:
#line 1534 "asn1p_y.y" #line 1552 "asn1p_y.y"
{ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr);
; ;
break;} break;}
case 193: case 194:
#line 1537 "asn1p_y.y" #line 1555 "asn1p_y.y"
{ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr);
; ;
break;} break;}
case 194: case 195:
#line 1540 "asn1p_y.y" #line 1558 "asn1p_y.y"
{ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr);
; ;
break;} break;}
case 195: case 196:
#line 1546 "asn1p_y.y" #line 1564 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
...@@ -2796,8 +2817,8 @@ case 195: ...@@ -2796,8 +2817,8 @@ case 195:
checkmem(ret == 0); checkmem(ret == 0);
; ;
break;} break;}
case 196: case 197:
#line 1554 "asn1p_y.y" #line 1572 "asn1p_y.y"
{ {
int ret; int ret;
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
...@@ -2807,8 +2828,8 @@ case 196: ...@@ -2807,8 +2828,8 @@ case 196:
checkmem(ret == 0); checkmem(ret == 0);
; ;
break;} break;}
case 197: case 198:
#line 1562 "asn1p_y.y" #line 1580 "asn1p_y.y"
{ {
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr); checkmem(yyval.a_constr);
...@@ -2816,8 +2837,8 @@ case 197: ...@@ -2816,8 +2837,8 @@ case 197:
yyval.a_constr->value = yyvsp[0].a_value; yyval.a_constr->value = yyvsp[0].a_value;
; ;
break;} break;}
case 198: case 199:
#line 1568 "asn1p_y.y" #line 1586 "asn1p_y.y"
{ {
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr); checkmem(yyval.a_constr);
...@@ -2826,8 +2847,8 @@ case 198: ...@@ -2826,8 +2847,8 @@ case 198:
yyval.a_constr->range_stop = yyvsp[0].a_value; yyval.a_constr->range_stop = yyvsp[0].a_value;
; ;
break;} break;}
case 199: case 200:
#line 1575 "asn1p_y.y" #line 1593 "asn1p_y.y"
{ {
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr); checkmem(yyval.a_constr);
...@@ -2837,8 +2858,8 @@ case 199: ...@@ -2837,8 +2858,8 @@ case 199:
yyval.a_constr->range_start->type = ATV_MIN; yyval.a_constr->range_start->type = ATV_MIN;
; ;
break;} break;}
case 200: case 201:
#line 1583 "asn1p_y.y" #line 1601 "asn1p_y.y"
{ {
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr); checkmem(yyval.a_constr);
...@@ -2848,8 +2869,8 @@ case 200: ...@@ -2848,8 +2869,8 @@ case 200:
yyval.a_constr->range_stop->type = ATV_MAX; yyval.a_constr->range_stop->type = ATV_MAX;
; ;
break;} break;}
case 201: case 202:
#line 1591 "asn1p_y.y" #line 1609 "asn1p_y.y"
{ {
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr); checkmem(yyval.a_constr);
...@@ -2860,117 +2881,131 @@ case 201: ...@@ -2860,117 +2881,131 @@ case 201:
yyval.a_constr->range_stop->type = ATV_MAX; yyval.a_constr->range_stop->type = ATV_MAX;
; ;
break;} break;}
case 202: case 203:
#line 1600 "asn1p_y.y" #line 1618 "asn1p_y.y"
{ {
yyval.a_constr = yyvsp[0].a_constr; yyval.a_constr = yyvsp[0].a_constr;
; ;
break;} break;}
case 203: case 204:
#line 1603 "asn1p_y.y" #line 1621 "asn1p_y.y"
{ {
yyval.a_constr = yyvsp[0].a_constr; yyval.a_constr = yyvsp[0].a_constr;
; ;
break;} break;}
case 204:
#line 1609 "asn1p_y.y"
{ yyval.a_ctype = ACT_EL_RANGE; ;
break;}
case 205: case 205:
#line 1610 "asn1p_y.y" #line 1627 "asn1p_y.y"
{ yyval.a_ctype = ACT_EL_RLRANGE; ; { yyval.a_ctype = ACT_EL_RANGE; ;
break;} break;}
case 206: case 206:
#line 1611 "asn1p_y.y" #line 1628 "asn1p_y.y"
{ yyval.a_ctype = ACT_EL_LLRANGE; ; { yyval.a_ctype = ACT_EL_RLRANGE; ;
break;} break;}
case 207: case 207:
#line 1612 "asn1p_y.y" #line 1629 "asn1p_y.y"
{ yyval.a_ctype = ACT_EL_ULRANGE; ; { yyval.a_ctype = ACT_EL_LLRANGE; ;
break;} break;}
case 208: case 208:
#line 1616 "asn1p_y.y" #line 1630 "asn1p_y.y"
{ { yyval.a_ctype = ACT_EL_ULRANGE; ;
yyval.a_ctype = ACT_CT_SIZE;
;
break;} break;}
case 209: case 209:
#line 1619 "asn1p_y.y" #line 1634 "asn1p_y.y"
{ {
yyval.a_ctype = ACT_CT_FROM; yyval.a_ctype = ACT_CT_SIZE;
; ;
break;} break;}
case 210: case 210:
#line 1625 "asn1p_y.y" #line 1637 "asn1p_y.y"
{ {
yyval.a_value = yyvsp[0].a_value; yyval.a_ctype = ACT_CT_FROM;
; ;
break;} break;}
case 211: case 211:
#line 1628 "asn1p_y.y" #line 1643 "asn1p_y.y"
{ {
asn1p_ref_t *ref; yyval.a_value = asn1p_value_fromint(0);
int ret;
ref = asn1p_ref_new(yylineno);
checkmem(ref);
ret = asn1p_ref_add_component(ref, yyvsp[0].tv_str, RLT_lowercase);
checkmem(ret == 0);
yyval.a_value = asn1p_value_fromref(ref, 0);
checkmem(yyval.a_value); checkmem(yyval.a_value);
free(yyvsp[0].tv_str); yyval.a_value->type = ATV_FALSE;
; ;
break;} break;}
case 212: case 212:
#line 1639 "asn1p_y.y" #line 1648 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); yyval.a_value = asn1p_value_fromint(1);
checkmem(yyval.a_value); checkmem(yyval.a_value);
yyval.a_value->type = ATV_TRUE;
; ;
break;} break;}
case 213: case 213:
#line 1643 "asn1p_y.y" #line 1653 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_fromint(0); yyval.a_value = yyvsp[0].a_value;
checkmem(yyval.a_value);
yyval.a_value->type = ATV_FALSE;
; ;
break;} break;}
case 214: case 214:
#line 1648 "asn1p_y.y" #line 1656 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_fromint(1); yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
checkmem(yyval.a_value); checkmem(yyval.a_value);
yyval.a_value->type = ATV_TRUE;
; ;
break;} break;}
case 215: case 215:
#line 1656 "asn1p_y.y" #line 1660 "asn1p_y.y"
{ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0); asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
checkmem(ref);
ret = asn1p_ref_add_component(ref, yyvsp[0].tv_str, RLT_lowercase);
checkmem(ret == 0);
yyval.a_value = asn1p_value_fromref(ref, 0);
checkmem(yyval.a_value);
free(yyvsp[0].tv_str);
; ;
break;} break;}
case 216: case 216:
#line 1662 "asn1p_y.y" #line 1671 "asn1p_y.y"
{ {
yyval.a_constr = yyvsp[0].a_constr; asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
checkmem(ref);
ret = asn1p_ref_add_component(ref, yyvsp[0].tv_str, RLT_UNKNOWN);
checkmem(ret == 0);
yyval.a_value = asn1p_value_fromref(ref, 0);
checkmem(yyval.a_value);
free(yyvsp[0].tv_str);
; ;
break;} break;}
case 217: case 217:
#line 1665 "asn1p_y.y" #line 1685 "asn1p_y.y"
{ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr); CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
; ;
break;} break;}
case 218: case 218:
#line 1671 "asn1p_y.y" #line 1691 "asn1p_y.y"
{
yyval.a_constr = yyvsp[0].a_constr;
;
break;}
case 219:
#line 1694 "asn1p_y.y"
{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
;
break;}
case 220:
#line 1700 "asn1p_y.y"
{ {
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr); checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_EXT; yyval.a_constr->type = ACT_EL_EXT;
; ;
break;} break;}
case 219: case 221:
#line 1676 "asn1p_y.y" #line 1705 "asn1p_y.y"
{ {
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr); checkmem(yyval.a_constr);
...@@ -2979,46 +3014,46 @@ case 219: ...@@ -2979,46 +3014,46 @@ case 219:
yyval.a_constr->presence = yyvsp[0].a_pres; yyval.a_constr->presence = yyvsp[0].a_pres;
; ;
break;} break;}
case 220: case 222:
#line 1689 "asn1p_y.y" #line 1718 "asn1p_y.y"
{ yyval.a_pres = ACPRES_DEFAULT; ; { yyval.a_pres = ACPRES_DEFAULT; ;
break;} break;}
case 221: case 223:
#line 1690 "asn1p_y.y" #line 1719 "asn1p_y.y"
{ yyval.a_pres = yyvsp[0].a_pres; ; { yyval.a_pres = yyvsp[0].a_pres; ;
break;} break;}
case 222: case 224:
#line 1694 "asn1p_y.y" #line 1723 "asn1p_y.y"
{ {
yyval.a_pres = ACPRES_PRESENT; yyval.a_pres = ACPRES_PRESENT;
; ;
break;} break;}
case 223: case 225:
#line 1697 "asn1p_y.y" #line 1726 "asn1p_y.y"
{ {
yyval.a_pres = ACPRES_ABSENT; yyval.a_pres = ACPRES_ABSENT;
; ;
break;} break;}
case 224: case 226:
#line 1700 "asn1p_y.y" #line 1729 "asn1p_y.y"
{ {
yyval.a_pres = ACPRES_OPTIONAL; yyval.a_pres = ACPRES_OPTIONAL;
; ;
break;} break;}
case 225: case 227:
#line 1706 "asn1p_y.y" #line 1735 "asn1p_y.y"
{ {
yyval.a_constr = yyvsp[0].a_constr; yyval.a_constr = yyvsp[0].a_constr;
; ;
break;} break;}
case 226: case 228:
#line 1709 "asn1p_y.y" #line 1738 "asn1p_y.y"
{ {
yyval.a_constr = yyvsp[0].a_constr; yyval.a_constr = yyvsp[0].a_constr;
; ;
break;} break;}
case 227: case 229:
#line 1718 "asn1p_y.y" #line 1747 "asn1p_y.y"
{ {
asn1p_ref_t *ref = asn1p_ref_new(yylineno); asn1p_ref_t *ref = asn1p_ref_new(yylineno);
asn1p_constraint_t *ct; asn1p_constraint_t *ct;
...@@ -3032,14 +3067,14 @@ case 227: ...@@ -3032,14 +3067,14 @@ case 227:
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, ct, 0); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, ct, 0);
; ;
break;} break;}
case 228: case 230:
#line 1733 "asn1p_y.y" #line 1762 "asn1p_y.y"
{ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
; ;
break;} break;}
case 229: case 231:
#line 1739 "asn1p_y.y" #line 1768 "asn1p_y.y"
{ {
yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr); checkmem(yyval.a_constr);
...@@ -3047,8 +3082,8 @@ case 229: ...@@ -3047,8 +3082,8 @@ case 229:
yyval.a_constr->value = asn1p_value_fromref(yyvsp[0].a_ref, 0); yyval.a_constr->value = asn1p_value_fromref(yyvsp[0].a_ref, 0);
; ;
break;} break;}
case 230: case 232:
#line 1745 "asn1p_y.y" #line 1774 "asn1p_y.y"
{ {
asn1p_constraint_t *ct; asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno); ct = asn1p_constraint_new(yylineno);
...@@ -3058,8 +3093,8 @@ case 230: ...@@ -3058,8 +3093,8 @@ case 230:
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct); CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
; ;
break;} break;}
case 231: case 233:
#line 1759 "asn1p_y.y" #line 1788 "asn1p_y.y"
{ {
char *p = malloc(strlen(yyvsp[0].tv_str) + 2); char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
int ret; int ret;
...@@ -3072,8 +3107,8 @@ case 231: ...@@ -3072,8 +3107,8 @@ case 231:
free(yyvsp[0].tv_str); free(yyvsp[0].tv_str);
; ;
break;} break;}
case 232: case 234:
#line 1770 "asn1p_y.y" #line 1799 "asn1p_y.y"
{ {
char *p = malloc(strlen(yyvsp[0].tv_str) + 3); char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
int ret; int ret;
...@@ -3087,14 +3122,14 @@ case 232: ...@@ -3087,14 +3122,14 @@ case 232:
free(yyvsp[0].tv_str); free(yyvsp[0].tv_str);
; ;
break;} break;}
case 233: case 235:
#line 1786 "asn1p_y.y" #line 1815 "asn1p_y.y"
{ {
yyval.tv_str = yyvsp[0].tv_str; yyval.tv_str = yyvsp[0].tv_str;
; ;
break;} break;}
case 234: case 236:
#line 1789 "asn1p_y.y" #line 1818 "asn1p_y.y"
{ {
int l1 = strlen(yyvsp[-2].tv_str); int l1 = strlen(yyvsp[-2].tv_str);
int l3 = strlen(yyvsp[0].tv_str); int l3 = strlen(yyvsp[0].tv_str);
...@@ -3105,61 +3140,61 @@ case 234: ...@@ -3105,61 +3140,61 @@ case 234:
yyval.tv_str[l1 + 1 + l3] = '\0'; yyval.tv_str[l1 + 1 + l3] = '\0';
; ;
break;} break;}
case 235: case 237:
#line 1807 "asn1p_y.y" #line 1836 "asn1p_y.y"
{ {
yyval.a_marker.flags = EM_NOMARK; yyval.a_marker.flags = EM_NOMARK;
yyval.a_marker.default_value = 0; yyval.a_marker.default_value = 0;
; ;
break;} break;}
case 236: case 238:
#line 1811 "asn1p_y.y" #line 1840 "asn1p_y.y"
{ yyval.a_marker = yyvsp[0].a_marker; ; { yyval.a_marker = yyvsp[0].a_marker; ;
break;} break;}
case 237: case 239:
#line 1815 "asn1p_y.y" #line 1844 "asn1p_y.y"
{ {
yyval.a_marker.flags = EM_OPTIONAL; yyval.a_marker.flags = EM_OPTIONAL;
yyval.a_marker.default_value = 0; yyval.a_marker.default_value = 0;
; ;
break;} break;}
case 238: case 240:
#line 1819 "asn1p_y.y" #line 1848 "asn1p_y.y"
{ {
yyval.a_marker.flags = EM_DEFAULT; yyval.a_marker.flags = EM_DEFAULT;
yyval.a_marker.default_value = yyvsp[0].a_value; yyval.a_marker.default_value = yyvsp[0].a_value;
; ;
break;} break;}
case 239: case 241:
#line 1842 "asn1p_y.y" #line 1871 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
; ;
break;} break;}
case 240: case 242:
#line 1846 "asn1p_y.y" #line 1875 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr = yyvsp[-1].a_expr;
; ;
break;} break;}
case 241: case 243:
#line 1852 "asn1p_y.y" #line 1881 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 242: case 244:
#line 1857 "asn1p_y.y" #line 1886 "asn1p_y.y"
{ {
yyval.a_expr = yyvsp[-2].a_expr; yyval.a_expr = yyvsp[-2].a_expr;
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
; ;
break;} break;}
case 243: case 245:
#line 1864 "asn1p_y.y" #line 1893 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -3168,8 +3203,8 @@ case 243: ...@@ -3168,8 +3203,8 @@ case 243:
yyval.a_expr->Identifier = yyvsp[0].tv_str; yyval.a_expr->Identifier = yyvsp[0].tv_str;
; ;
break;} break;}
case 244: case 246:
#line 1871 "asn1p_y.y" #line 1900 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -3179,8 +3214,8 @@ case 244: ...@@ -3179,8 +3214,8 @@ case 244:
yyval.a_expr->value = yyvsp[-1].a_value; yyval.a_expr->value = yyvsp[-1].a_value;
; ;
break;} break;}
case 245: case 247:
#line 1879 "asn1p_y.y" #line 1908 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -3190,8 +3225,8 @@ case 245: ...@@ -3190,8 +3225,8 @@ case 245:
yyval.a_expr->value = yyvsp[-1].a_value; yyval.a_expr->value = yyvsp[-1].a_value;
; ;
break;} break;}
case 246: case 248:
#line 1887 "asn1p_y.y" #line 1916 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -3200,8 +3235,8 @@ case 246: ...@@ -3200,8 +3235,8 @@ case 246:
yyval.a_expr->value = yyvsp[0].a_value; yyval.a_expr->value = yyvsp[0].a_value;
; ;
break;} break;}
case 247: case 249:
#line 1894 "asn1p_y.y" #line 1923 "asn1p_y.y"
{ {
yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr); checkmem(yyval.a_expr);
...@@ -3211,103 +3246,103 @@ case 247: ...@@ -3211,103 +3246,103 @@ case 247:
yyval.a_expr->meta_type = AMT_VALUE; yyval.a_expr->meta_type = AMT_VALUE;
; ;
break;} break;}
case 248: case 250:
#line 1905 "asn1p_y.y" #line 1934 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value); checkmem(yyval.a_value);
; ;
break;} break;}
case 249: case 251:
#line 1909 "asn1p_y.y" #line 1938 "asn1p_y.y"
{ {
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value); checkmem(yyval.a_value);
; ;
break;} break;}
case 250: case 252:
#line 1940 "asn1p_y.y" #line 1969 "asn1p_y.y"
{ memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ; { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
break;} break;}
case 251: case 253:
#line 1941 "asn1p_y.y" #line 1970 "asn1p_y.y"
{ yyval.a_tag = yyvsp[0].a_tag; ; { yyval.a_tag = yyvsp[0].a_tag; ;
break;} break;}
case 252: case 254:
#line 1945 "asn1p_y.y" #line 1974 "asn1p_y.y"
{ {
yyval.a_tag = yyvsp[-1].a_tag; yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode; yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode;
; ;
break;} break;}
case 253: case 255:
#line 1952 "asn1p_y.y" #line 1981 "asn1p_y.y"
{ {
yyval.a_tag = yyvsp[-2].a_tag; yyval.a_tag = yyvsp[-2].a_tag;
yyval.a_tag.tag_value = yyvsp[-1].a_int; yyval.a_tag.tag_value = yyvsp[-1].a_int;
; ;
break;} break;}
case 254: case 256:
#line 1958 "asn1p_y.y" #line 1987 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ; { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ;
break;} break;}
case 255: case 257:
#line 1959 "asn1p_y.y" #line 1988 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_UNIVERSAL; ; { yyval.a_tag.tag_class = TC_UNIVERSAL; ;
break;} break;}
case 256: case 258:
#line 1960 "asn1p_y.y" #line 1989 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_APPLICATION; ; { yyval.a_tag.tag_class = TC_APPLICATION; ;
break;} break;}
case 257: case 259:
#line 1961 "asn1p_y.y" #line 1990 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_PRIVATE; ; { yyval.a_tag.tag_class = TC_PRIVATE; ;
break;} break;}
case 258: case 260:
#line 1965 "asn1p_y.y" #line 1994 "asn1p_y.y"
{ yyval.a_tag.tag_mode = TM_DEFAULT; ; { yyval.a_tag.tag_mode = TM_DEFAULT; ;
break;} break;}
case 259: case 261:
#line 1966 "asn1p_y.y" #line 1995 "asn1p_y.y"
{ yyval.a_tag.tag_mode = TM_IMPLICIT; ; { yyval.a_tag.tag_mode = TM_IMPLICIT; ;
break;} break;}
case 260: case 262:
#line 1967 "asn1p_y.y" #line 1996 "asn1p_y.y"
{ yyval.a_tag.tag_mode = TM_EXPLICIT; ; { yyval.a_tag.tag_mode = TM_EXPLICIT; ;
break;} break;}
case 261: case 263:
#line 1971 "asn1p_y.y" #line 2000 "asn1p_y.y"
{ {
checkmem(yyvsp[0].tv_str); checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str; yyval.tv_str = yyvsp[0].tv_str;
; ;
break;} break;}
case 262: case 264:
#line 1975 "asn1p_y.y" #line 2004 "asn1p_y.y"
{ {
checkmem(yyvsp[0].tv_str); checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str; yyval.tv_str = yyvsp[0].tv_str;
; ;
break;} break;}
case 263: case 265:
#line 1983 "asn1p_y.y" #line 2012 "asn1p_y.y"
{ {
checkmem(yyvsp[0].tv_str); checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str; yyval.tv_str = yyvsp[0].tv_str;
; ;
break;} break;}
case 264: case 266:
#line 1990 "asn1p_y.y" #line 2019 "asn1p_y.y"
{ yyval.tv_str = 0; ; { yyval.tv_str = 0; ;
break;} break;}
case 265: case 267:
#line 1991 "asn1p_y.y" #line 2020 "asn1p_y.y"
{ {
yyval.tv_str = yyvsp[0].tv_str; yyval.tv_str = yyvsp[0].tv_str;
; ;
break;} break;}
case 266: case 268:
#line 1996 "asn1p_y.y" #line 2025 "asn1p_y.y"
{ {
checkmem(yyvsp[0].tv_str); checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str; yyval.tv_str = yyvsp[0].tv_str;
...@@ -3535,7 +3570,7 @@ yyerrhandle: ...@@ -3535,7 +3570,7 @@ yyerrhandle:
} }
return 1; return 1;
} }
#line 2002 "asn1p_y.y" #line 2031 "asn1p_y.y"
......
...@@ -816,6 +816,13 @@ ParameterArgumentName: ...@@ -816,6 +816,13 @@ ParameterArgumentName:
checkmem(ret == 0); checkmem(ret == 0);
$$.argument = $3; $$.argument = $3;
} }
| TypeRefName ':' TypeRefName {
int ret;
$$.governor = asn1p_ref_new(yylineno);
ret = asn1p_ref_add_component($$.governor, $1, 0);
checkmem(ret == 0);
$$.argument = $3;
}
| BasicTypeId ':' Identifier { | BasicTypeId ':' Identifier {
int ret; int ret;
$$.governor = asn1p_ref_new(yylineno); $$.governor = asn1p_ref_new(yylineno);
...@@ -851,6 +858,17 @@ ActualParameter: ...@@ -851,6 +858,17 @@ ActualParameter:
} }
; ;
/*
| '{' ActualParameter '}' {
$$ = asn1p_expr_new(yylineno);
checkmem($$);
asn1p_expr_add($$, $2);
$$->expr_type = A1TC_PARAMETRIZED;
$$->meta_type = AMT_TYPE;
}
;
*/
/* /*
* A collection of constructed data type members. * A collection of constructed data type members.
*/ */
...@@ -1622,9 +1640,23 @@ ConstraintSpec: ...@@ -1622,9 +1640,23 @@ ConstraintSpec:
; ;
ConstraintValue: ConstraintValue:
SignedNumber { TOK_FALSE {
$$ = asn1p_value_fromint(0);
checkmem($$);
$$->type = ATV_FALSE;
}
| TOK_TRUE {
$$ = asn1p_value_fromint(1);
checkmem($$);
$$->type = ATV_TRUE;
}
| SignedNumber {
$$ = $1; $$ = $1;
} }
| TOK_cstring {
$$ = asn1p_value_frombuf($1.buf, $1.len, 0);
checkmem($$);
}
| Identifier { | Identifier {
asn1p_ref_t *ref; asn1p_ref_t *ref;
int ret; int ret;
...@@ -1636,19 +1668,16 @@ ConstraintValue: ...@@ -1636,19 +1668,16 @@ ConstraintValue:
checkmem($$); checkmem($$);
free($1); free($1);
} }
| TOK_cstring { | TypeRefName {
$$ = asn1p_value_frombuf($1.buf, $1.len, 0); asn1p_ref_t *ref;
checkmem($$); int ret;
} ref = asn1p_ref_new(yylineno);
| TOK_FALSE { checkmem(ref);
$$ = asn1p_value_fromint(0); ret = asn1p_ref_add_component(ref, $1, RLT_UNKNOWN);
checkmem($$); checkmem(ret == 0);
$$->type = ATV_FALSE; $$ = asn1p_value_fromref(ref, 0);
}
| TOK_TRUE {
$$ = asn1p_value_fromint(1);
checkmem($$); checkmem($$);
$$->type = ATV_TRUE; free($1);
} }
; ;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment