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