diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c index 95195962..11233678 100644 --- a/libasn1parser/asn1p_y.c +++ b/libasn1parser/asn1p_y.c @@ -523,16 +523,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 7 -#define YYLAST 834 +#define YYLAST 840 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 121 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 117 +#define YYNNTS 119 /* YYNRULES -- Number of rules. */ -#define YYNRULES 302 +#define YYNRULES 304 /* YYNRULES -- Number of states. */ -#define YYNSTATES 462 +#define YYNSTATES 464 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -608,26 +608,26 @@ static const unsigned short yyprhs[] = 499, 501, 504, 507, 509, 511, 514, 517, 519, 521, 523, 525, 527, 530, 532, 535, 537, 539, 541, 543, 545, 547, 549, 551, 553, 555, 557, 559, 561, 563, - 565, 567, 569, 571, 573, 574, 576, 578, 582, 584, - 589, 593, 598, 600, 602, 606, 612, 614, 618, 622, - 626, 630, 635, 639, 641, 643, 647, 651, 655, 659, - 661, 663, 665, 667, 669, 671, 673, 675, 677, 681, - 687, 689, 693, 695, 699, 700, 702, 704, 706, 708, - 710, 712, 714, 715, 721, 724, 726, 729, 732, 736, - 738, 740, 744, 749, 751, 755, 758, 762, 764, 768, - 769, 771, 773, 776, 779, 783, 785, 789, 791, 796, - 801, 803, 805, 807, 809, 811, 813, 814, 816, 819, - 824, 825, 827, 829, 831, 832, 834, 836, 838, 840, - 842, 843, 845 + 565, 567, 569, 571, 572, 574, 576, 580, 582, 587, + 591, 596, 598, 600, 604, 610, 612, 616, 618, 622, + 624, 628, 630, 634, 639, 643, 645, 647, 651, 655, + 659, 663, 665, 667, 669, 671, 673, 675, 677, 679, + 681, 685, 691, 693, 697, 699, 703, 704, 706, 708, + 710, 712, 714, 716, 718, 719, 725, 728, 730, 733, + 736, 740, 742, 744, 748, 753, 755, 759, 762, 766, + 768, 772, 773, 775, 777, 780, 783, 787, 789, 793, + 795, 800, 805, 807, 809, 811, 813, 815, 817, 818, + 820, 823, 828, 829, 831, 833, 835, 836, 838, 840, + 842, 844, 846, 847, 849 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const short yyrhs[] = { 122, 0, -1, 123, -1, 124, -1, 123, 124, -1, - -1, 234, 125, 126, 39, 130, 3, 26, 133, 44, + -1, 236, 125, 126, 39, 130, 3, 26, 133, 44, -1, -1, 127, -1, 108, 128, 109, -1, 108, 109, - -1, 129, -1, 128, 129, -1, 237, -1, 237, 110, + -1, 129, -1, 128, 129, -1, 239, -1, 239, 110, 10, 111, -1, 10, -1, -1, 131, -1, 132, -1, 131, 132, -1, 46, 89, -1, 57, 89, -1, 25, 89, -1, 48, 58, -1, 16, 62, -1, -1, 134, @@ -635,116 +635,117 @@ static const short yyrhs[] = 152, -1, 182, -1, 150, -1, -1, 43, 16, 137, -1, 192, -1, -1, 139, -1, 59, 140, 112, -1, 59, 51, -1, 142, -1, 140, 142, -1, -1, 127, - -1, 143, 51, 234, 141, -1, 144, -1, 143, 113, - 144, -1, 234, -1, 234, 108, 109, -1, 237, -1, + -1, 143, 51, 236, 141, -1, 144, -1, 143, 113, + 144, -1, 236, -1, 236, 108, 109, -1, 239, -1, -1, 146, -1, 47, 147, 112, -1, 47, 22, 112, -1, 47, 112, -1, 148, -1, 147, 113, 148, -1, - 234, -1, 234, 108, 109, -1, 237, -1, 108, 200, - 109, -1, 234, 151, 3, 149, -1, 191, -1, 176, - -1, 176, 108, 155, 109, -1, 234, 3, 172, -1, - 234, 3, 162, -1, 234, 108, 153, 109, 3, 172, - -1, 234, 108, 153, 109, 3, 162, -1, 154, -1, - 153, 113, 154, -1, 234, -1, 234, 114, 237, -1, - 234, 114, 234, -1, 189, 114, 237, -1, 189, 114, - 234, -1, 156, -1, 155, 113, 156, -1, 172, -1, - 185, -1, 237, -1, 149, -1, -1, 158, -1, 159, - -1, 158, 113, 159, -1, 237, 172, 222, -1, 172, - 222, -1, 35, 73, 172, -1, 171, -1, 161, -1, - 160, 113, 161, -1, 237, 172, -1, 171, -1, 172, + 236, -1, 236, 108, 109, -1, 239, -1, 108, 199, + 109, -1, 236, 151, 3, 149, -1, 191, -1, 176, + -1, 176, 108, 155, 109, -1, 236, 3, 172, -1, + 236, 3, 162, -1, 236, 108, 153, 109, 3, 172, + -1, 236, 108, 153, 109, 3, 162, -1, 154, -1, + 153, 113, 154, -1, 236, -1, 236, 114, 239, -1, + 236, 114, 236, -1, 189, 114, 239, -1, 189, 114, + 236, -1, 156, -1, 155, 113, 156, -1, 172, -1, + 185, -1, 239, -1, 149, -1, -1, 158, -1, 159, + -1, 158, 113, 159, -1, 239, 172, 224, -1, 172, + 224, -1, 35, 73, 172, -1, 171, -1, 161, -1, + 160, 113, 161, -1, 239, 172, -1, 171, -1, 172, -1, 33, 108, 164, 109, 166, -1, -1, 93, -1, - 165, -1, 164, 113, 165, -1, 17, 222, -1, 18, - 172, 163, 222, -1, 18, 180, 222, -1, 18, 181, - 222, -1, 17, 180, 222, -1, 17, 172, 222, -1, - 17, 181, 222, -1, -1, 167, -1, -1, 100, 87, + 165, -1, 164, 113, 165, -1, 17, 224, -1, 18, + 172, 163, 224, -1, 18, 180, 224, -1, 18, 181, + 224, -1, 17, 180, 224, -1, 17, 172, 224, -1, + 17, 181, 224, -1, -1, 167, -1, -1, 100, 87, 108, 168, 169, 109, -1, 170, -1, 169, 170, -1, 4, -1, 19, -1, 179, -1, 115, 169, 116, -1, - 107, -1, 107, 117, 186, -1, 107, 117, 227, -1, - 229, 174, 196, -1, -1, 173, 175, -1, 151, -1, + 107, -1, 107, 117, 186, -1, 107, 117, 229, -1, + 231, 174, 195, -1, -1, 173, 175, -1, 151, -1, 32, 108, 160, 109, -1, 83, 108, 157, 109, -1, - 84, 108, 157, 109, -1, 83, 196, 73, 236, 229, - 174, -1, 84, 196, 73, 236, 229, 174, -1, 23, - -1, 23, 40, 30, 237, -1, 61, 73, 176, -1, - 15, -1, 15, 118, 234, -1, 235, 118, 234, -1, - 15, 118, 237, -1, 235, -1, 235, 118, 177, -1, + 84, 108, 157, 109, -1, 83, 195, 73, 238, 231, + 174, -1, 84, 195, 73, 238, 231, 174, -1, 23, + -1, 23, 40, 30, 239, -1, 61, 73, 176, -1, + 15, -1, 15, 118, 236, -1, 237, 118, 236, -1, + 15, 118, 239, -1, 237, -1, 237, 118, 177, -1, 178, -1, 177, 118, 178, -1, 179, -1, 17, -1, 18, -1, 17, -1, 180, 118, 17, -1, 180, 118, - 18, -1, 16, -1, 237, 151, 3, 183, -1, 185, - -1, 186, -1, 237, 114, 183, -1, -1, 108, 184, + 18, -1, 16, -1, 239, 151, 3, 183, -1, 185, + -1, 186, -1, 239, 114, 183, -1, -1, 108, 184, 188, -1, 68, -1, 50, -1, 91, -1, 6, -1, - 8, -1, 187, -1, 227, -1, 237, -1, 234, 118, - 237, -1, 7, -1, 13, -1, 14, -1, 5, -1, + 8, -1, 187, -1, 229, -1, 239, -1, 236, 118, + 239, -1, 7, -1, 13, -1, 14, -1, 5, -1, 188, 5, -1, 29, -1, 68, -1, 81, -1, 190, -1, 72, 86, -1, 70, 56, -1, 82, -1, 49, -1, 41, 76, -1, 31, 86, -1, 96, -1, 52, -1, 192, -1, 63, -1, 45, -1, 27, 86, -1, - 189, -1, 190, 224, -1, 28, -1, 53, -1, 54, + 189, -1, 190, 226, -1, 28, -1, 53, -1, 54, -1, 55, -1, 64, -1, 69, -1, 79, -1, 88, -1, 90, -1, 95, -1, 97, -1, 98, -1, 99, -1, 71, -1, 104, -1, 105, -1, 102, -1, 103, - -1, 101, -1, -1, 197, -1, 198, -1, 110, 211, - 111, -1, 199, -1, 85, 110, 200, 111, -1, 110, - 200, 111, -1, 199, 110, 200, 111, -1, 107, -1, - 201, -1, 201, 113, 107, -1, 201, 113, 107, 113, - 201, -1, 202, -1, 22, 101, 202, -1, 201, 193, - 202, -1, 201, 194, 202, -1, 202, 195, 202, -1, - 203, 110, 200, 111, -1, 110, 200, 111, -1, 204, - -1, 205, -1, 204, 215, 204, -1, 66, 215, 204, - -1, 204, 215, 65, -1, 66, 215, 65, -1, 206, - -1, 85, -1, 51, -1, 50, -1, 91, -1, 228, - -1, 187, -1, 237, -1, 234, -1, 100, 34, 199, - -1, 100, 35, 108, 207, 109, -1, 208, -1, 207, - 113, 208, -1, 107, -1, 237, 196, 209, -1, -1, - 210, -1, 78, -1, 20, -1, 74, -1, 212, -1, - 216, -1, 214, -1, -1, 36, 30, 108, 213, 188, - -1, 37, 172, -1, 106, -1, 106, 119, -1, 119, - 106, -1, 119, 106, 119, -1, 217, -1, 218, -1, - 108, 234, 109, -1, 217, 108, 219, 109, -1, 220, - -1, 219, 113, 220, -1, 120, 221, -1, 120, 118, - 221, -1, 237, -1, 221, 118, 237, -1, -1, 223, - -1, 74, -1, 38, 183, -1, 108, 109, -1, 108, - 225, 109, -1, 226, -1, 225, 113, 226, -1, 237, - -1, 237, 110, 227, 111, -1, 237, 110, 186, 111, - -1, 227, -1, 107, -1, 10, -1, 11, -1, 227, - -1, 12, -1, -1, 230, -1, 231, 233, -1, 115, - 232, 10, 116, -1, -1, 94, -1, 24, -1, 80, - -1, -1, 57, -1, 46, -1, 15, -1, 16, -1, - 16, -1, -1, 237, -1, 9, -1 + -1, -1, 196, -1, 197, -1, 110, 213, 111, -1, + 198, -1, 85, 110, 199, 111, -1, 110, 199, 111, + -1, 198, 110, 199, 111, -1, 107, -1, 200, -1, + 200, 113, 107, -1, 200, 113, 107, 113, 200, -1, + 201, -1, 22, 101, 204, -1, 202, -1, 201, 193, + 202, -1, 203, -1, 202, 194, 203, -1, 204, -1, + 204, 101, 204, -1, 205, 110, 199, 111, -1, 110, + 199, 111, -1, 206, -1, 207, -1, 206, 217, 206, + -1, 66, 217, 206, -1, 206, 217, 65, -1, 66, + 217, 65, -1, 208, -1, 85, -1, 51, -1, 50, + -1, 91, -1, 230, -1, 187, -1, 239, -1, 236, + -1, 100, 34, 198, -1, 100, 35, 108, 209, 109, + -1, 210, -1, 209, 113, 210, -1, 107, -1, 239, + 195, 211, -1, -1, 212, -1, 78, -1, 20, -1, + 74, -1, 214, -1, 218, -1, 216, -1, -1, 36, + 30, 108, 215, 188, -1, 37, 172, -1, 106, -1, + 106, 119, -1, 119, 106, -1, 119, 106, 119, -1, + 219, -1, 220, -1, 108, 236, 109, -1, 219, 108, + 221, 109, -1, 222, -1, 221, 113, 222, -1, 120, + 223, -1, 120, 118, 223, -1, 239, -1, 223, 118, + 239, -1, -1, 225, -1, 74, -1, 38, 183, -1, + 108, 109, -1, 108, 227, 109, -1, 228, -1, 227, + 113, 228, -1, 239, -1, 239, 110, 229, 111, -1, + 239, 110, 186, 111, -1, 229, -1, 107, -1, 10, + -1, 11, -1, 229, -1, 12, -1, -1, 232, -1, + 233, 235, -1, 115, 234, 10, 116, -1, -1, 94, + -1, 24, -1, 80, -1, -1, 57, -1, 46, -1, + 15, -1, 16, -1, 16, -1, -1, 239, -1, 9, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { - 0, 349, 349, 355, 361, 378, 377, 406, 408, 411, - 415, 420, 427, 435, 440, 444, 453, 455, 463, 467, - 475, 479, 482, 485, 489, 509, 511, 519, 528, 532, - 547, 555, 568, 576, 575, 589, 601, 603, 605, 616, - 621, 627, 633, 635, 638, 649, 655, 661, 668, 674, - 683, 685, 696, 700, 703, 710, 716, 722, 729, 735, - 744, 746, 756, 770, 780, 796, 806, 822, 828, 835, - 845, 855, 860, 867, 874, 882, 892, 898, 904, 908, - 916, 927, 949, 951, 953, 959, 965, 973, 979, 986, - 991, 997, 1003, 1009, 1012, 1018, 1028, 1030, 1033, 1041, - 1048, 1061, 1072, 1082, 1093, 1103, 1114, 1125, 1127, 1134, - 1132, 1141, 1146, 1152, 1157, 1160, 1164, 1169, 1178, 1187, - 1198, 1220, 1227, 1246, 1250, 1256, 1262, 1268, 1278, 1288, - 1294, 1305, 1319, 1328, 1338, 1348, 1358, 1366, 1387, 1396, - 1405, 1407, 1414, 1421, 1427, 1431, 1437, 1457, 1467, 1469, - 1470, 1477, 1477, 1482, 1489, 1495, 1500, 1504, 1508, 1511, - 1516, 1528, 1545, 1550, 1555, 1588, 1598, 1612, 1614, 1615, - 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, - 1631, 1633, 1634, 1637, 1644, 1656, 1658, 1662, 1666, 1667, - 1668, 1669, 1670, 1674, 1675, 1676, 1677, 1681, 1682, 1689, - 1689, 1690, 1690, 1691, 1693, 1695, 1700, 1702, 1707, 1711, - 1720, 1724, 1729, 1734, 1737, 1743, 1753, 1757, 1760, 1763, - 1766, 1771, 1780, 1788, 1794, 1800, 1807, 1815, 1823, 1832, - 1837, 1841, 1846, 1852, 1857, 1858, 1859, 1872, 1886, 1890, - 1895, 1899, 1904, 1911, 1924, 1926, 1929, 1933, 1936, 1943, - 1945, 1946, 1951, 1949, 1961, 1969, 1971, 1972, 1973, 1975, - 1979, 1987, 2002, 2008, 2015, 2028, 2040, 2055, 2059, 2076, - 2081, 2084, 2089, 2111, 2116, 2121, 2127, 2133, 2141, 2149, - 2157, 2164, 2174, 2179, 2185, 2187, 2217, 2219, 2222, 2229, - 2235, 2237, 2238, 2239, 2242, 2244, 2245, 2248, 2253, 2260, - 2267, 2269, 2274 + 0, 352, 352, 358, 364, 381, 380, 409, 411, 414, + 418, 423, 430, 438, 443, 447, 456, 458, 466, 470, + 478, 482, 485, 488, 492, 512, 514, 522, 531, 535, + 550, 558, 571, 579, 578, 592, 604, 606, 608, 619, + 624, 630, 636, 638, 641, 652, 658, 664, 671, 677, + 686, 688, 699, 703, 706, 713, 719, 725, 732, 738, + 747, 749, 759, 773, 783, 799, 809, 825, 831, 838, + 848, 858, 863, 870, 877, 885, 895, 901, 907, 911, + 919, 930, 952, 954, 956, 962, 968, 976, 982, 989, + 994, 1000, 1006, 1012, 1015, 1021, 1031, 1033, 1036, 1044, + 1051, 1064, 1075, 1085, 1096, 1106, 1117, 1128, 1130, 1137, + 1135, 1144, 1149, 1155, 1160, 1163, 1167, 1172, 1181, 1190, + 1201, 1223, 1230, 1249, 1253, 1259, 1265, 1271, 1281, 1291, + 1297, 1308, 1322, 1331, 1341, 1351, 1361, 1369, 1390, 1399, + 1408, 1410, 1417, 1424, 1430, 1434, 1440, 1460, 1470, 1472, + 1473, 1480, 1480, 1485, 1492, 1498, 1503, 1507, 1511, 1514, + 1519, 1531, 1548, 1553, 1558, 1591, 1601, 1615, 1617, 1618, + 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, + 1634, 1636, 1637, 1640, 1647, 1659, 1661, 1665, 1669, 1670, + 1671, 1672, 1673, 1677, 1678, 1679, 1680, 1684, 1685, 1692, + 1692, 1693, 1693, 1695, 1697, 1702, 1704, 1709, 1713, 1722, + 1726, 1731, 1736, 1739, 1745, 1755, 1757, 1762, 1764, 1769, + 1771, 1777, 1779, 1784, 1793, 1801, 1807, 1813, 1820, 1828, + 1836, 1845, 1850, 1854, 1859, 1865, 1870, 1871, 1872, 1885, + 1899, 1903, 1908, 1912, 1917, 1924, 1937, 1939, 1942, 1946, + 1949, 1956, 1958, 1959, 1964, 1962, 1974, 1982, 1984, 1985, + 1986, 1988, 1992, 2000, 2015, 2021, 2028, 2041, 2053, 2068, + 2072, 2089, 2094, 2097, 2102, 2124, 2129, 2134, 2140, 2146, + 2154, 2162, 2170, 2177, 2187, 2192, 2198, 2200, 2230, 2232, + 2235, 2242, 2248, 2250, 2251, 2252, 2255, 2257, 2258, 2261, + 2266, 2273, 2280, 2282, 2287 }; #endif @@ -802,13 +803,14 @@ static const char *const yytname[] = "ValueDefinition", "Value", "@4", "SimpleValue", "DefinedValue", "RestrictedCharacterStringValue", "Opaque", "BasicTypeId", "BasicTypeId_UniverationCompatible", "BasicType", "BasicString", - "Union", "Intersection", "Except", "optConstraints", "Constraint", + "UnionMark", "IntersectionMark", "optConstraints", "Constraint", "SubtypeConstraint", "SetOfConstraints", "ElementSetSpecs", - "ElementSetSpec", "ConstraintSubtypeElement", "ConstraintSpec", - "SingleValue", "ContainedSubtype", "InnerTypeConstraint", - "WithComponentsList", "WithComponentsElement", "optPresenceConstraint", - "PresenceConstraint", "GeneralConstraint", "UserDefinedConstraint", - "@5", "ContentsConstraint", "ConstraintRangeSpec", "TableConstraint", + "ElementSetSpec", "Unions", "Intersections", "IntersectionElements", + "ConstraintSubtypeElement", "ConstraintSpec", "SingleValue", + "ContainedSubtype", "InnerTypeConstraint", "WithComponentsList", + "WithComponentsElement", "optPresenceConstraint", "PresenceConstraint", + "GeneralConstraint", "UserDefinedConstraint", "@5", + "ContentsConstraint", "ConstraintRangeSpec", "TableConstraint", "SimpleTableConstraint", "ComponentRelationConstraint", "AtNotationList", "AtNotationElement", "ComponentIdList", "optMarker", "Marker", "UniverationDefinition", "UniverationList", @@ -862,17 +864,17 @@ static const unsigned char yyr1[] = 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 193, - 193, 194, 194, 195, 196, 196, 197, 197, 198, 198, - 199, 199, 200, 200, 200, 200, 201, 201, 201, 201, - 201, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 203, 203, 204, 204, 204, 204, 204, 205, 206, 206, - 207, 207, 208, 208, 209, 209, 210, 210, 210, 211, - 211, 211, 213, 212, 214, 215, 215, 215, 215, 216, - 216, 217, 218, 219, 219, 220, 220, 221, 221, 222, - 222, 223, 223, 224, 224, 225, 225, 226, 226, 226, - 226, 226, 227, 227, 228, 228, 229, 229, 230, 231, - 232, 232, 232, 232, 233, 233, 233, 234, 234, 235, - 236, 236, 237 + 193, 194, 194, 195, 195, 196, 196, 197, 197, 198, + 198, 199, 199, 199, 199, 200, 200, 201, 201, 202, + 202, 203, 203, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 205, 205, 206, 206, 206, 206, 206, 207, + 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, + 212, 213, 213, 213, 215, 214, 216, 217, 217, 217, + 217, 218, 218, 219, 220, 221, 221, 222, 222, 223, + 223, 224, 224, 225, 225, 226, 226, 227, 227, 228, + 228, 228, 228, 228, 229, 229, 230, 230, 231, 231, + 232, 233, 234, 234, 234, 234, 235, 235, 235, 236, + 236, 237, 238, 238, 239 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -898,17 +900,17 @@ static const unsigned char yyr2[] = 1, 2, 2, 1, 1, 2, 2, 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, 0, 1, 1, 3, 1, 4, - 3, 4, 1, 1, 3, 5, 1, 3, 3, 3, - 3, 4, 3, 1, 1, 3, 3, 3, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, - 1, 3, 1, 3, 0, 1, 1, 1, 1, 1, - 1, 1, 0, 5, 2, 1, 2, 2, 3, 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, 1, 1, 0, 1, 2, 4, - 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, - 0, 1, 1 + 1, 1, 1, 0, 1, 1, 3, 1, 4, 3, + 4, 1, 1, 3, 5, 1, 3, 1, 3, 1, + 3, 1, 3, 4, 3, 1, 1, 3, 3, 3, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 5, 1, 3, 1, 3, 0, 1, 1, 1, + 1, 1, 1, 1, 0, 5, 2, 1, 2, 2, + 3, 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, 1, 1, 0, 1, + 2, 4, 0, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 0, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -916,8 +918,8 @@ static const unsigned char yyr2[] = means the default is an error. */ static const unsigned short yydefact[] = { - 0, 297, 298, 0, 2, 3, 5, 1, 4, 7, - 0, 0, 8, 302, 15, 10, 0, 11, 13, 16, + 0, 299, 300, 0, 2, 3, 5, 1, 4, 7, + 0, 0, 8, 304, 15, 10, 0, 11, 13, 16, 9, 12, 0, 0, 0, 0, 0, 0, 0, 17, 18, 0, 24, 22, 20, 23, 21, 0, 19, 14, 50, 0, 0, 26, 36, 51, 0, 54, 0, 55, @@ -925,44 +927,44 @@ static const unsigned short yydefact[] = 39, 0, 40, 0, 45, 47, 49, 185, 0, 186, 187, 188, 189, 190, 198, 191, 192, 193, 194, 195, 196, 197, 27, 28, 32, 30, 31, 35, 0, 0, - 56, 58, 38, 41, 0, 0, 0, 33, 29, 286, - 132, 299, 0, 167, 0, 0, 181, 174, 178, 180, + 56, 58, 38, 41, 0, 0, 0, 33, 29, 288, + 132, 301, 0, 167, 0, 0, 181, 174, 178, 180, 168, 0, 0, 169, 173, 177, 0, 0, 63, 183, 170, 62, 179, 136, 0, 42, 46, 48, 34, 0, - 290, 66, 65, 121, 287, 294, 0, 182, 176, 175, - 172, 171, 0, 69, 0, 170, 71, 0, 286, 0, - 184, 0, 0, 43, 44, 0, 292, 293, 291, 0, - 0, 204, 296, 295, 288, 133, 135, 0, 0, 0, - 0, 0, 61, 156, 162, 157, 282, 283, 163, 164, + 292, 66, 65, 121, 289, 296, 0, 182, 176, 175, + 172, 171, 0, 69, 0, 170, 71, 0, 288, 0, + 184, 0, 0, 43, 44, 0, 294, 295, 293, 0, + 0, 203, 298, 297, 290, 133, 135, 0, 0, 0, + 0, 0, 61, 156, 162, 157, 284, 285, 163, 164, 154, 155, 81, 0, 76, 78, 79, 158, 159, 80, - 281, 273, 0, 275, 280, 277, 141, 142, 137, 138, - 140, 134, 153, 151, 147, 148, 149, 0, 160, 286, - 286, 0, 98, 0, 129, 0, 0, 204, 204, 123, - 122, 0, 0, 120, 205, 206, 208, 286, 70, 75, - 74, 73, 72, 285, 0, 232, 231, 0, 230, 233, - 0, 212, 0, 235, 0, 213, 216, 0, 223, 224, - 229, 284, 234, 237, 236, 64, 286, 274, 0, 0, - 0, 0, 0, 0, 146, 143, 0, 271, 269, 269, - 269, 100, 270, 96, 269, 269, 107, 0, 289, 0, - 286, 0, 286, 0, 286, 0, 0, 0, 286, 0, - 0, 0, 249, 251, 250, 259, 260, 0, 68, 67, - 0, 255, 0, 0, 0, 0, 0, 60, 201, 202, - 199, 200, 0, 0, 0, 203, 0, 0, 0, 77, - 276, 0, 0, 160, 139, 165, 152, 161, 150, 272, - 105, 0, 104, 106, 97, 269, 102, 103, 0, 95, - 108, 99, 0, 117, 0, 90, 93, 94, 286, 131, - 0, 0, 83, 84, 89, 269, 286, 300, 0, 300, - 0, 0, 254, 0, 210, 207, 0, 0, 217, 256, - 257, 228, 226, 0, 238, 0, 222, 214, 218, 219, - 220, 0, 227, 225, 279, 278, 166, 144, 145, 101, - 0, 130, 0, 124, 286, 92, 286, 125, 286, 87, - 269, 286, 301, 126, 286, 209, 252, 261, 0, 0, - 263, 211, 258, 242, 0, 240, 204, 0, 221, 109, - 118, 119, 91, 88, 85, 86, 121, 121, 0, 0, - 265, 267, 262, 0, 239, 0, 244, 215, 0, 127, - 128, 253, 266, 0, 264, 241, 247, 248, 246, 243, - 245, 113, 114, 0, 0, 111, 115, 268, 0, 110, - 112, 116 + 283, 275, 0, 277, 282, 279, 141, 142, 137, 138, + 140, 134, 153, 151, 147, 148, 149, 0, 160, 288, + 288, 0, 98, 0, 129, 0, 0, 203, 203, 123, + 122, 0, 0, 120, 204, 205, 207, 288, 70, 75, + 74, 73, 72, 287, 0, 234, 233, 0, 232, 235, + 0, 211, 0, 237, 0, 212, 215, 217, 219, 221, + 0, 225, 226, 231, 286, 236, 239, 238, 64, 288, + 276, 0, 0, 0, 0, 0, 0, 146, 143, 0, + 273, 271, 271, 271, 100, 272, 96, 271, 271, 107, + 0, 291, 0, 288, 0, 288, 0, 288, 0, 0, + 0, 288, 0, 0, 0, 251, 253, 252, 261, 262, + 0, 68, 67, 0, 257, 0, 0, 0, 0, 0, + 60, 0, 199, 200, 0, 201, 202, 0, 0, 0, + 0, 77, 278, 0, 0, 160, 139, 165, 152, 161, + 150, 274, 105, 0, 104, 106, 97, 271, 102, 103, + 0, 95, 108, 99, 0, 117, 0, 90, 93, 94, + 288, 131, 0, 0, 83, 84, 89, 271, 288, 302, + 0, 302, 0, 0, 256, 0, 209, 206, 0, 0, + 216, 258, 259, 230, 228, 0, 240, 0, 224, 213, + 218, 220, 222, 0, 229, 227, 281, 280, 166, 144, + 145, 101, 0, 130, 0, 124, 288, 92, 288, 125, + 288, 87, 271, 288, 303, 126, 288, 208, 254, 263, + 0, 0, 265, 210, 260, 244, 0, 242, 203, 0, + 223, 109, 118, 119, 91, 88, 85, 86, 121, 121, + 0, 0, 267, 269, 264, 0, 241, 0, 246, 214, + 0, 127, 128, 255, 268, 0, 266, 243, 249, 250, + 248, 245, 247, 113, 114, 0, 0, 111, 115, 270, + 0, 110, 112, 116 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -971,258 +973,252 @@ static const short yydefgoto[] = -1, 3, 4, 5, 9, 11, 12, 16, 17, 28, 29, 30, 42, 43, 82, 83, 128, 54, 55, 61, 154, 62, 63, 64, 44, 45, 48, 49, 182, 84, - 117, 85, 142, 143, 183, 184, 351, 352, 353, 344, - 345, 131, 335, 211, 212, 339, 340, 438, 454, 455, - 354, 355, 160, 161, 220, 118, 198, 199, 456, 269, - 270, 86, 204, 261, 205, 206, 243, 326, 119, 120, - 121, 122, 313, 314, 316, 223, 224, 225, 226, 290, - 245, 246, 247, 248, 249, 250, 414, 415, 449, 450, - 291, 292, 428, 293, 303, 294, 295, 296, 409, 410, - 430, 271, 272, 150, 192, 193, 251, 252, 133, 134, - 135, 159, 164, 253, 123, 401, 254 + 117, 85, 142, 143, 183, 184, 353, 354, 355, 346, + 347, 131, 337, 211, 212, 341, 342, 440, 456, 457, + 356, 357, 160, 161, 220, 118, 198, 199, 458, 272, + 273, 86, 204, 264, 205, 206, 243, 328, 119, 120, + 121, 122, 314, 317, 223, 224, 225, 226, 293, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 416, 417, + 451, 452, 294, 295, 430, 296, 306, 297, 298, 299, + 411, 412, 432, 274, 275, 150, 192, 193, 254, 255, + 133, 134, 135, 159, 164, 256, 123, 403, 257 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -345 +#define YYPACT_NINF -282 static const short yypact[] = { - 179, -345, -345, 94, 179, -345, -345, -345, -345, -87, - 25, 118, -345, -345, -345, -345, 64, -345, 37, 234, - -345, -345, 106, 123, 107, 113, 164, 165, 260, 234, - -345, 157, -345, -345, -345, -345, -345, 247, -345, -345, - 177, 60, 235, -345, 239, -345, 175, -345, -72, -345, - 198, -345, -345, 147, 506, -345, -345, -345, 246, 199, - -345, 21, -345, 100, -345, 205, -345, -345, 299, -345, - -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, - -345, -345, 506, -345, -345, -345, -345, -345, 273, 659, - -345, -345, -345, -345, 179, 246, 212, -345, -345, 16, - 242, -345, 237, -345, 254, 270, -345, -345, -345, -345, - -345, 306, 278, -345, -345, -345, 735, 376, 272, -345, - 275, -345, -345, 267, 383, -87, -345, -345, -345, 281, - 87, -345, -345, -345, -345, 14, 246, -345, -345, -345, - -345, -345, 36, -345, 276, -345, 277, 284, 91, 77, - -345, 341, 201, -345, -345, 214, -345, -345, -345, 377, - 583, 108, -345, -345, -345, -345, -345, 391, 735, 246, - 246, 435, -345, -345, -345, -345, -345, -345, -345, -345, - -345, -345, -345, 134, -345, -345, -345, -345, -345, -345, - -345, -345, 186, -345, -345, 285, -345, -345, 289, -345, - -345, -345, -345, -345, -345, -345, -345, 290, 282, 162, - 76, 211, -345, 293, 370, 303, 340, -52, 95, -345, - -345, 304, 390, -345, -345, -345, 305, 16, -345, -345, - -345, -345, -345, -345, 315, -345, -345, 114, -345, -345, - 210, -345, 435, -345, 308, 181, 317, 310, 114, -345, - -345, -345, -345, -345, -345, -345, 91, -345, 97, 301, - 279, 416, 413, 201, -345, -345, 201, -345, -13, 74, - -13, -345, -345, 330, 74, -13, 324, 214, -345, 398, - 61, 323, 68, 356, 68, 357, 435, 401, 319, 179, - 321, 325, -345, -345, -345, 327, -345, 435, -345, -345, - 497, 318, 332, 216, 329, 335, 342, -345, -345, -345, - -345, -345, 345, 497, 497, -345, 497, 435, 228, -345, - -345, 343, 344, -345, -345, -345, 453, -345, -345, -345, - -345, 349, -345, -345, -345, -13, -345, -345, 373, -345, - -345, -345, 413, 352, 220, -345, -345, -345, 319, -345, - 397, 362, 359, -345, -345, -13, 319, 413, 364, 413, - 365, 369, -345, 371, -345, -345, 358, 368, -345, -345, - 363, -345, -345, 435, 305, 8, -345, 374, -345, -345, - -345, 372, -345, -345, -345, -345, -345, -345, -345, -345, - 380, -345, 301, -345, 61, -345, 319, -345, 43, -345, - -13, 319, -345, -345, 319, -345, -345, -345, -5, 221, - -345, -345, -345, -345, 222, -345, 108, 452, -345, -345, - -345, -345, -345, -345, -345, -345, -345, -345, 416, 413, - 366, -345, -345, 358, -345, 8, 6, 271, 49, -345, - -345, 453, 366, 413, -345, -345, -345, -345, -345, -345, - -345, -345, -345, 49, 46, -345, -345, -345, 28, -345, - -345, -345 + 193, -282, -282, 28, 193, -282, -282, -282, -282, -47, + 13, 45, -282, -282, -282, -282, 37, -282, -16, 168, + -282, -282, 138, 93, 83, 140, 165, 147, 223, 168, + -282, 155, -282, -282, -282, -282, -282, 245, -282, -282, + 64, 84, 225, -282, 222, -282, 176, -282, 132, -282, + 196, -282, -282, 167, 512, -282, -282, -282, 249, 202, + -282, 11, -282, 65, -282, 212, -282, -282, 314, -282, + -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, + -282, -282, 512, -282, -282, -282, -282, -282, 344, 665, + -282, -282, -282, -282, 193, 249, 234, -282, -282, -8, + 215, -282, 262, -282, 264, 278, -282, -282, -282, -282, + -282, 299, 270, -282, -282, -282, 741, 354, 250, -282, + 255, -282, -282, 246, 362, -47, -282, -282, -282, 258, + 25, -282, -282, -282, -282, 128, 249, -282, -282, -282, + -282, -282, 134, -282, 254, -282, 256, 261, 60, 70, + -282, 279, 224, -282, -282, 243, -282, -282, -282, 364, + 589, 82, -282, -282, -282, -282, -282, 373, 741, 249, + 249, 444, -282, -282, -282, -282, -282, -282, -282, -282, + -282, -282, -282, 159, -282, -282, -282, -282, -282, -282, + -282, -282, 177, -282, -282, 268, -282, -282, 263, -282, + -282, -282, -282, -282, -282, -282, -282, 265, 266, 174, + 73, 203, -282, 272, 339, 274, 318, 109, 112, -282, + -282, 282, 191, -282, -282, -282, 284, -8, -282, -282, + -282, -282, -282, -282, 300, -282, -282, -61, -282, -282, + 294, -282, 444, -282, 293, 291, 231, 235, -282, 304, + 301, -61, -282, -282, -282, -282, -282, -282, -282, 60, + -282, 92, 269, 322, 401, 400, 224, -282, -282, 224, + -282, 50, -21, 50, -282, -282, 317, -21, 50, 319, + 243, -282, 387, 66, 326, 47, 345, 47, 347, 444, + 392, 309, 193, 320, 325, -282, -282, -282, 321, -282, + 444, -282, -282, 472, 311, 331, 296, 323, 330, 333, + -282, 338, -282, -282, 472, -282, -282, 472, 472, 444, + 312, -282, -282, 335, 336, -282, -282, -282, 423, -282, + -282, -282, -282, 327, -282, -282, -282, 50, -282, -282, + 361, -282, -282, -282, 400, 332, 204, -282, -282, -282, + 309, -282, 377, 352, 349, -282, -282, 50, 309, 400, + 355, 400, 365, 367, -282, 368, -282, -282, 343, 378, + -282, -282, 359, -282, -282, 444, 284, 23, -282, 379, + 235, -282, -282, 380, -282, -282, -282, -282, -282, -282, + -282, -282, 382, -282, 269, -282, 66, -282, 309, -282, + 51, -282, 50, 309, -282, -282, 309, -282, -282, -282, + 31, 205, -282, -282, -282, -282, 218, -282, 82, 458, + -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, + 401, 400, 375, -282, -282, 343, -282, 23, 137, -282, + 46, -282, -282, 423, 375, 400, -282, -282, -282, -282, + -282, -282, -282, -282, -282, 46, 20, -282, -282, -282, + 17, -282, -282, -282 }; /* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { - -345, -345, -345, 485, -345, -345, 367, -345, 475, -345, - -345, 464, -345, -345, -345, 412, -345, -345, -345, -345, - -345, 434, -345, 404, -345, -345, -345, 438, 378, -345, - -79, -345, -345, 337, -345, 258, 232, -345, 119, -345, - 125, 296, -345, -345, 250, -345, -345, -345, 71, -344, - -271, -91, -345, -49, -345, 248, -345, 268, -132, 320, - 322, -345, 85, -345, -135, -252, -136, 103, -89, -78, - -345, -43, -345, -345, -345, -215, -345, -345, 229, -151, - 121, -126, -345, -84, -345, -345, -345, 101, -345, -345, - -345, -345, -345, -345, 291, -345, -345, -345, -345, 111, - 112, -246, -345, -345, -345, 288, -134, -345, -51, -345, - -345, -345, -345, 1, -345, 191, -10 + -282, -282, -282, 492, -282, -282, 372, -282, 482, -282, + -282, 470, -282, -282, -282, 418, -282, -282, -282, -282, + -282, 440, -282, 407, -282, -282, -282, 445, 357, -282, + -48, -282, -282, 337, -282, 247, 220, -282, 111, -282, + 116, 286, -282, -282, 236, -282, -282, -282, 59, -210, + -281, -96, -282, -76, -282, 233, -282, 252, -136, 308, + 310, -282, -80, -282, -118, -258, -119, 89, -59, -24, + -282, 22, -282, -282, -208, -282, -282, 219, -155, 106, + -282, 216, 214, -138, -282, -229, -282, -282, -282, 95, + -282, -282, -282, -282, -282, -282, 283, -282, -282, -282, + -282, 98, 105, -259, -282, -282, -282, 276, -141, -282, + -182, -282, -282, -282, -282, 1, -282, 178, -10 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, parse error. */ -#define YYTABLE_NINF -270 +#define YYTABLE_NINF -272 static const short yytable[] = { - 18, 6, 283, 285, 13, 6, 18, 321, 132, 346, - 124, 87, 187, 186, 188, 194, 187, 13, 188, 200, - 244, 10, 330, 332, 333, 266, 446, 144, 336, 337, - 13, 51, 451, 221, 13, 14, 1, 2, 145, 87, - 57, 58, 50, 66, 89, 196, 197, 452, 51, 129, - 451, 66, 13, 451, 65, 88, 282, 185, 222, 50, - 162, 267, 65, 196, 197, 452, 196, 197, 452, 13, - 13, 163, 89, 13, 14, 1, 2, 13, 350, 144, - 447, 219, 46, 88, 448, 66, 13, 176, 177, 389, - 145, 306, 264, 265, 7, 125, 65, 173, 174, 175, - 13, 176, 177, 350, 178, 179, 13, 176, 177, 399, - 460, 156, 266, 429, 460, 413, 31, 146, 268, 273, - 187, 186, 188, 346, 194, 322, 166, 187, 200, 188, - 187, 130, 188, 92, 15, 360, 299, 165, 189, 195, - 420, 180, 208, 453, 461, 167, 367, 22, 267, 168, - 343, 94, 201, 207, 425, 459, 13, 19, 130, 230, - 232, 453, 1, 2, 453, 185, 381, 157, 343, 146, - 229, 231, 47, 20, 368, 343, 130, -82, 264, 265, - 221, 158, 181, 130, 190, 32, 191, 378, 379, 347, - 380, 130, 331, 221, 1, 2, 33, 362, 60, 171, - 266, 436, 34, 284, 190, 222, 130, 173, 174, 175, - 13, 176, 177, 95, 178, 179, 1, 2, 222, 372, - 301, -25, 35, 174, 41, 13, 176, 177, 233, 178, - 179, 209, 210, 302, 383, 174, 267, 13, 176, 177, - 233, 178, 179, 255, 304, 305, 189, 256, 195, 323, - 23, 180, 327, 208, 36, 13, 208, 395, 421, 24, - 207, 1, 2, 37, 207, 400, 235, 207, 39, 202, - 348, -269, 356, 40, 356, -269, 99, 130, 235, 52, - 25, 371, 26, 308, 309, 310, 311, 56, 100, 101, - 363, 27, 181, 382, 312, 257, 196, 197, 53, 258, - 102, 67, 103, 347, 104, 423, 59, 239, 91, 203, - 13, 176, 177, 96, 105, 97, 1, 2, 106, 239, - 276, 127, 107, 137, 277, 108, 69, 70, 71, 393, - 432, 434, 391, 394, 433, 435, 109, 72, 100, 101, - 138, 110, 73, 111, 74, 112, 139, 402, 328, 402, - 426, 329, 75, 427, 113, 114, 1, 2, 196, 197, - 136, 76, 140, 77, 141, 416, 387, 388, 78, 115, - 79, 80, 81, 308, 309, 310, 311, 439, 440, 147, - 148, 116, 323, 149, 348, 151, 152, 213, 356, 155, - 169, 170, 171, 207, 227, 259, 263, 174, 431, 13, - 176, 177, 233, 178, 179, 1, 2, 260, 262, 278, - 279, 280, 234, 281, 286, 297, 300, 307, 315, 431, - 317, 325, 13, 334, 338, 416, 287, 288, 342, 357, - 359, 361, 364, 457, 130, 366, 365, 369, 370, 373, - 235, 236, 174, 375, 13, 176, 177, 233, 178, 179, - 1, 2, 377, 376, 384, 385, 237, 234, 386, 174, - 390, 13, 176, 177, 233, 178, 179, 1, 2, 392, - 396, 397, 398, 403, 234, 238, 405, 406, 408, 411, - 407, 239, 412, 418, 443, 235, 236, 417, 419, 8, - 240, 21, 153, 38, 98, 93, 90, 241, 289, 126, - 242, 237, 235, 236, 174, 228, 13, 176, 177, 233, - 178, 179, 1, 2, 319, 13, 358, 424, 237, 422, - 238, 1, 2, 298, 458, 172, 239, 341, 324, 349, - 274, 441, 275, 374, 67, 240, 445, 238, 437, 318, - 0, 442, 241, 239, 444, 242, 320, 235, 236, 68, - 404, 0, 240, 0, 0, 0, 0, 0, 0, 69, - 70, 71, 242, 237, 0, 0, 0, 0, 0, 0, - 72, 0, 0, 0, 0, 73, 0, 74, 0, 0, - 0, 0, 238, 0, 0, 75, 0, 0, 239, 0, - 0, 0, 0, 0, 76, 0, 77, 240, 100, 101, - 0, 78, 0, 79, 80, 81, 214, 242, 0, 0, - 102, 67, 103, 0, 104, 215, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 0, 0, 0, 106, 0, - 0, 0, 107, 0, 0, 108, 69, 70, 71, 0, - 0, 0, 0, 0, 216, 0, 109, 72, 0, 0, - 0, 110, 73, 111, 74, 112, 0, 0, 0, 0, - 0, 0, 75, 0, 113, 114, 217, 218, 0, 0, - 0, 76, 0, 77, 100, 101, 0, 0, 78, 115, - 79, 80, 81, 0, 0, 0, 102, 67, 103, 0, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18, 6, 348, 132, 323, 6, 18, 188, 194, 286, + 288, 188, 332, 334, 335, 200, 244, 269, 338, 339, + 13, 453, 13, 14, 453, 129, 1, 2, 7, 187, + 186, 51, 13, 187, 196, 197, 454, 196, 197, 454, + 13, 124, 50, 66, 89, 304, 13, 14, 51, 156, + 453, 66, 185, 270, 65, 88, 13, 144, 305, 50, + 13, 10, 65, 196, 197, 454, 173, 174, 175, 13, + 176, 177, 89, 178, 179, 13, 87, 374, 391, 13, + 176, 177, 352, 88, 19, 66, 352, 309, 269, 267, + 268, 385, 145, 13, 22, 125, 65, 333, 401, 1, + 2, 13, 176, 177, 87, 157, 46, 130, -25, 144, + 180, 41, 219, 271, 276, 348, 94, 146, 188, 158, + 194, 324, 15, 92, 270, 188, 166, 200, 188, 461, + 415, 302, 455, 463, 362, 455, 422, 165, 189, 195, + 187, 186, 208, 427, 145, 369, 20, 187, 31, 431, + 187, 181, 201, 207, 345, 32, -82, 448, 345, 230, + 232, 455, 130, 185, 383, 370, 130, 221, 171, 146, + 229, 231, 33, 345, 162, 130, 13, 190, 95, 191, + 382, 130, 1, 2, 23, 163, 330, 349, 130, 331, + 267, 268, 222, 24, 221, 364, 47, 221, 174, 190, + 13, 176, 177, 233, 178, 179, 1, 2, 1, 2, + 438, 449, 269, 234, 25, 450, 26, 285, 60, 222, + 287, 428, 222, 35, 429, 27, 37, 290, 291, 34, + 173, 174, 175, 13, 176, 177, 36, 178, 179, 1, + 2, 235, 236, 167, 57, 58, 462, 168, 270, 189, + 462, 195, 325, 423, 397, 329, 208, 237, 13, 208, + 209, 210, 402, 207, 1, 2, 39, 207, 258, 52, + 207, 40, 259, 350, 180, 358, 238, 358, 13, 176, + 177, 53, 239, -271, 1, 2, 260, -271, 56, 130, + 261, 240, 202, 365, 1, 2, 196, 197, 241, 292, + 349, 242, 425, 174, 59, 13, 176, 177, 233, 178, + 179, 91, 279, 395, 434, 181, 280, 396, 435, 174, + 96, 13, 176, 177, 233, 178, 179, 436, 307, 308, + 97, 437, 203, 136, 393, 312, 313, 315, 316, 196, + 197, 100, 101, 127, 389, 390, 235, 99, 137, 404, + 138, 404, 441, 442, 139, 140, 141, 147, 148, 100, + 101, 373, 235, 149, 151, 152, 155, 418, 169, 171, + 170, 102, 67, 103, 213, 104, 227, 384, 262, 282, + 266, 263, 283, 265, 325, 105, 350, 239, 281, 106, + 358, 284, 289, 107, 300, 207, 108, 69, 70, 71, + 433, 303, 310, 239, 311, 318, 327, 109, 72, 13, + 336, 319, 110, 73, 111, 74, 112, 344, 359, 340, + 361, 433, 363, 75, 130, 113, 114, 418, 388, 368, + 371, 366, 76, 375, 77, 459, 367, 372, 377, 78, + 115, 79, 80, 81, 378, 379, 386, 387, 392, 394, + 398, 174, 116, 13, 176, 177, 233, 178, 179, 1, + 2, 399, 400, 410, 405, 174, 234, 13, 176, 177, + 233, 178, 179, 1, 2, 408, 407, 409, 414, 174, + 234, 13, 176, 177, 233, 178, 179, 1, 2, 413, + 421, 420, 419, 445, 235, 236, 8, 153, 21, 38, + 98, 93, 126, 90, 172, 228, 321, 360, 235, 236, + 237, 426, 424, 301, 460, 326, 343, 351, 277, 443, + 278, 13, 235, 236, 237, 439, 376, 1, 2, 238, + 380, 381, 447, 446, 320, 239, 444, 322, 237, 406, + 67, 0, 0, 238, 240, 0, 0, 0, 0, 239, + 0, 241, 0, 0, 242, 68, 0, 238, 240, 0, + 0, 0, 0, 239, 0, 69, 70, 71, 242, 0, + 0, 0, 240, 0, 0, 0, 72, 0, 0, 0, + 0, 73, 242, 74, 0, 0, 0, 0, 0, 0, + 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, + 76, 0, 77, 0, 100, 101, 0, 78, 0, 79, + 80, 81, 214, 0, 0, 0, 102, 67, 103, 0, + 104, 215, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 108, 69, 70, 71, 0, 0, 0, 0, 0, - 0, 0, 109, 72, 0, 0, 0, 110, 73, 111, + 216, 0, 109, 72, 0, 0, 0, 110, 73, 111, 74, 112, 0, 0, 0, 0, 0, 0, 75, 0, - 113, 114, 0, 0, 0, 0, 0, 76, 0, 77, - 1, 2, 0, 0, 78, 115, 79, 80, 81, 0, + 113, 114, 217, 218, 0, 0, 0, 76, 0, 77, + 100, 101, 0, 0, 78, 115, 79, 80, 81, 0, 0, 0, 102, 67, 103, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 108, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 109, 72, 0, 0, 0, 110, 73, 111, 74, 112, 0, 0, 0, 0, 0, 0, 75, 0, 113, 114, 0, 0, - 0, 0, 0, 76, 0, 77, 0, 0, 0, 0, - 78, 115, 79, 80, 81 + 0, 0, 0, 76, 0, 77, 1, 2, 0, 0, + 78, 115, 79, 80, 81, 0, 0, 0, 102, 67, + 103, 0, 104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, + 107, 0, 0, 108, 69, 70, 71, 0, 0, 0, + 0, 0, 0, 0, 109, 72, 0, 0, 0, 110, + 73, 111, 74, 112, 0, 0, 0, 0, 0, 0, + 75, 0, 113, 114, 0, 0, 0, 0, 0, 76, + 0, 77, 0, 0, 0, 0, 78, 115, 79, 80, + 81 }; static const short yycheck[] = { - 10, 0, 217, 218, 9, 4, 16, 259, 99, 280, - 89, 54, 148, 148, 148, 149, 152, 9, 152, 151, - 171, 108, 268, 269, 270, 38, 20, 116, 274, 275, - 9, 41, 4, 85, 9, 10, 15, 16, 116, 82, - 112, 113, 41, 53, 54, 17, 18, 19, 58, 33, - 4, 61, 9, 4, 53, 54, 108, 148, 110, 58, - 46, 74, 61, 17, 18, 19, 17, 18, 19, 9, - 9, 57, 82, 9, 10, 15, 16, 9, 35, 168, - 74, 160, 22, 82, 78, 95, 9, 10, 11, 335, - 168, 242, 16, 17, 0, 94, 95, 6, 7, 8, - 9, 10, 11, 35, 13, 14, 9, 10, 11, 355, - 454, 24, 38, 118, 458, 107, 10, 116, 209, 210, - 256, 256, 256, 394, 258, 259, 136, 263, 260, 263, - 266, 115, 266, 112, 109, 286, 227, 136, 148, 149, - 392, 50, 152, 115, 116, 109, 297, 110, 74, 113, - 107, 51, 151, 152, 400, 109, 9, 39, 115, 169, - 170, 115, 15, 16, 115, 256, 317, 80, 107, 168, - 169, 170, 112, 109, 300, 107, 115, 109, 16, 17, - 85, 94, 91, 115, 107, 62, 109, 313, 314, 280, - 316, 115, 118, 85, 15, 16, 89, 288, 51, 108, - 38, 416, 89, 108, 107, 110, 115, 6, 7, 8, - 9, 10, 11, 113, 13, 14, 15, 16, 110, 303, - 106, 44, 58, 7, 47, 9, 10, 11, 12, 13, - 14, 17, 18, 119, 318, 7, 74, 9, 10, 11, - 12, 13, 14, 109, 34, 35, 256, 113, 258, 259, - 16, 50, 262, 263, 89, 9, 266, 348, 392, 25, - 259, 15, 16, 3, 263, 356, 50, 266, 111, 68, - 280, 109, 282, 26, 284, 113, 3, 115, 50, 44, - 46, 65, 48, 102, 103, 104, 105, 112, 15, 16, - 289, 57, 91, 65, 113, 109, 17, 18, 59, 113, - 27, 28, 29, 394, 31, 396, 108, 91, 109, 108, - 9, 10, 11, 108, 41, 16, 15, 16, 45, 91, - 109, 109, 49, 86, 113, 52, 53, 54, 55, 109, - 109, 109, 342, 113, 113, 113, 63, 64, 15, 16, - 86, 68, 69, 70, 71, 72, 76, 357, 263, 359, - 401, 266, 79, 404, 81, 82, 15, 16, 17, 18, - 118, 88, 56, 90, 86, 375, 17, 18, 95, 96, - 97, 98, 99, 102, 103, 104, 105, 426, 427, 3, - 108, 108, 392, 108, 394, 118, 3, 10, 398, 108, - 114, 114, 108, 392, 3, 110, 114, 7, 408, 9, - 10, 11, 12, 13, 14, 15, 16, 118, 118, 116, - 40, 108, 22, 73, 110, 110, 101, 109, 101, 429, - 110, 5, 9, 93, 100, 435, 36, 37, 30, 73, - 73, 30, 111, 443, 115, 108, 111, 119, 106, 110, - 50, 51, 7, 108, 9, 10, 11, 12, 13, 14, - 15, 16, 107, 111, 111, 111, 66, 22, 5, 7, - 87, 9, 10, 11, 12, 13, 14, 15, 16, 117, - 73, 109, 113, 109, 22, 85, 111, 108, 120, 111, - 109, 91, 119, 111, 118, 50, 51, 113, 108, 4, - 100, 16, 125, 29, 82, 61, 58, 107, 108, 95, - 110, 66, 50, 51, 7, 168, 9, 10, 11, 12, - 13, 14, 15, 16, 256, 9, 284, 398, 66, 394, - 85, 15, 16, 227, 453, 147, 91, 277, 260, 281, - 210, 428, 210, 304, 28, 100, 435, 85, 417, 248, - -1, 429, 107, 91, 433, 110, 258, 50, 51, 43, - 359, -1, 100, -1, -1, -1, -1, -1, -1, 53, - 54, 55, 110, 66, -1, -1, -1, -1, -1, -1, - 64, -1, -1, -1, -1, 69, -1, 71, -1, -1, - -1, -1, 85, -1, -1, 79, -1, -1, 91, -1, - -1, -1, -1, -1, 88, -1, 90, 100, 15, 16, - -1, 95, -1, 97, 98, 99, 23, 110, -1, -1, - 27, 28, 29, -1, 31, 32, -1, -1, -1, -1, - -1, -1, -1, -1, 41, -1, -1, -1, 45, -1, - -1, -1, 49, -1, -1, 52, 53, 54, 55, -1, - -1, -1, -1, -1, 61, -1, 63, 64, -1, -1, - -1, 68, 69, 70, 71, 72, -1, -1, -1, -1, - -1, -1, 79, -1, 81, 82, 83, 84, -1, -1, - -1, 88, -1, 90, 15, 16, -1, -1, 95, 96, - 97, 98, 99, -1, -1, -1, 27, 28, 29, -1, - 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 10, 0, 283, 99, 262, 4, 16, 148, 149, 217, + 218, 152, 271, 272, 273, 151, 171, 38, 277, 278, + 9, 4, 9, 10, 4, 33, 15, 16, 0, 148, + 148, 41, 9, 152, 17, 18, 19, 17, 18, 19, + 9, 89, 41, 53, 54, 106, 9, 10, 58, 24, + 4, 61, 148, 74, 53, 54, 9, 116, 119, 58, + 9, 108, 61, 17, 18, 19, 6, 7, 8, 9, + 10, 11, 82, 13, 14, 9, 54, 306, 337, 9, + 10, 11, 35, 82, 39, 95, 35, 242, 38, 16, + 17, 320, 116, 9, 110, 94, 95, 118, 357, 15, + 16, 9, 10, 11, 82, 80, 22, 115, 44, 168, + 50, 47, 160, 209, 210, 396, 51, 116, 259, 94, + 261, 262, 109, 112, 74, 266, 136, 263, 269, 109, + 107, 227, 115, 116, 289, 115, 394, 136, 148, 149, + 259, 259, 152, 402, 168, 300, 109, 266, 10, 118, + 269, 91, 151, 152, 107, 62, 109, 20, 107, 169, + 170, 115, 115, 259, 319, 303, 115, 85, 108, 168, + 169, 170, 89, 107, 46, 115, 9, 107, 113, 109, + 318, 115, 15, 16, 16, 57, 266, 283, 115, 269, + 16, 17, 110, 25, 85, 291, 112, 85, 7, 107, + 9, 10, 11, 12, 13, 14, 15, 16, 15, 16, + 418, 74, 38, 22, 46, 78, 48, 108, 51, 110, + 108, 403, 110, 58, 406, 57, 3, 36, 37, 89, + 6, 7, 8, 9, 10, 11, 89, 13, 14, 15, + 16, 50, 51, 109, 112, 113, 456, 113, 74, 259, + 460, 261, 262, 394, 350, 265, 266, 66, 9, 269, + 17, 18, 358, 262, 15, 16, 111, 266, 109, 44, + 269, 26, 113, 283, 50, 285, 85, 287, 9, 10, + 11, 59, 91, 109, 15, 16, 109, 113, 112, 115, + 113, 100, 68, 292, 15, 16, 17, 18, 107, 108, + 396, 110, 398, 7, 108, 9, 10, 11, 12, 13, + 14, 109, 109, 109, 109, 91, 113, 113, 113, 7, + 108, 9, 10, 11, 12, 13, 14, 109, 34, 35, + 16, 113, 108, 118, 344, 104, 105, 102, 103, 17, + 18, 15, 16, 109, 17, 18, 50, 3, 86, 359, + 86, 361, 428, 429, 76, 56, 86, 3, 108, 15, + 16, 65, 50, 108, 118, 3, 108, 377, 114, 108, + 114, 27, 28, 29, 10, 31, 3, 65, 110, 40, + 114, 118, 108, 118, 394, 41, 396, 91, 116, 45, + 400, 73, 110, 49, 110, 394, 52, 53, 54, 55, + 410, 101, 109, 91, 113, 101, 5, 63, 64, 9, + 93, 110, 68, 69, 70, 71, 72, 30, 73, 100, + 73, 431, 30, 79, 115, 81, 82, 437, 5, 108, + 119, 111, 88, 110, 90, 445, 111, 106, 108, 95, + 96, 97, 98, 99, 111, 107, 111, 111, 87, 117, + 73, 7, 108, 9, 10, 11, 12, 13, 14, 15, + 16, 109, 113, 120, 109, 7, 22, 9, 10, 11, + 12, 13, 14, 15, 16, 108, 111, 109, 119, 7, + 22, 9, 10, 11, 12, 13, 14, 15, 16, 111, + 108, 111, 113, 118, 50, 51, 4, 125, 16, 29, + 82, 61, 95, 58, 147, 168, 259, 287, 50, 51, + 66, 400, 396, 227, 455, 263, 280, 284, 210, 430, + 210, 9, 50, 51, 66, 419, 307, 15, 16, 85, + 314, 317, 437, 435, 251, 91, 431, 261, 66, 361, + 28, -1, -1, 85, 100, -1, -1, -1, -1, 91, + -1, 107, -1, -1, 110, 43, -1, 85, 100, -1, + -1, -1, -1, 91, -1, 53, 54, 55, 110, -1, + -1, -1, 100, -1, -1, -1, 64, -1, -1, -1, + -1, 69, 110, 71, -1, -1, -1, -1, -1, -1, + -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, + 88, -1, 90, -1, 15, 16, -1, 95, -1, 97, + 98, 99, 23, -1, -1, -1, 27, 28, 29, -1, + 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, 45, -1, -1, -1, 49, -1, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, - -1, -1, 63, 64, -1, -1, -1, 68, 69, 70, + 61, -1, 63, 64, -1, -1, -1, 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, 79, -1, - 81, 82, -1, -1, -1, -1, -1, 88, -1, 90, + 81, 82, 83, 84, -1, -1, -1, 88, -1, 90, 15, 16, -1, -1, 95, 96, 97, 98, 99, -1, -1, -1, 27, 28, 29, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, @@ -1230,61 +1226,69 @@ static const short yycheck[] = 55, -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, 79, -1, 81, 82, -1, -1, - -1, -1, -1, 88, -1, 90, -1, -1, -1, -1, - 95, 96, 97, 98, 99 + -1, -1, -1, 88, -1, 90, 15, 16, -1, -1, + 95, 96, 97, 98, 99, -1, -1, -1, 27, 28, + 29, -1, 31, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 41, -1, -1, -1, 45, -1, -1, -1, + 49, -1, -1, 52, 53, 54, 55, -1, -1, -1, + -1, -1, -1, -1, 63, 64, -1, -1, -1, 68, + 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, + 79, -1, 81, 82, -1, -1, -1, -1, -1, 88, + -1, 90, -1, -1, -1, -1, 95, 96, 97, 98, + 99 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned char yystos[] = { - 0, 15, 16, 122, 123, 124, 234, 0, 124, 125, - 108, 126, 127, 9, 10, 109, 128, 129, 237, 39, + 0, 15, 16, 122, 123, 124, 236, 0, 124, 125, + 108, 126, 127, 9, 10, 109, 128, 129, 239, 39, 109, 129, 110, 16, 25, 46, 48, 57, 130, 131, 132, 10, 62, 89, 89, 58, 89, 3, 132, 111, 26, 47, 133, 134, 145, 146, 22, 112, 147, 148, - 234, 237, 44, 59, 138, 139, 112, 112, 113, 108, - 51, 140, 142, 143, 144, 234, 237, 28, 43, 53, + 236, 239, 44, 59, 138, 139, 112, 112, 113, 108, + 51, 140, 142, 143, 144, 236, 239, 28, 43, 53, 54, 55, 64, 69, 71, 79, 88, 90, 95, 97, - 98, 99, 135, 136, 150, 152, 182, 192, 234, 237, + 98, 99, 135, 136, 150, 152, 182, 192, 236, 239, 148, 109, 112, 142, 51, 113, 108, 16, 136, 3, 15, 16, 27, 29, 31, 41, 45, 49, 52, 63, 68, 70, 72, 81, 82, 96, 108, 151, 176, 189, - 190, 191, 192, 235, 151, 234, 144, 109, 137, 33, - 115, 162, 172, 229, 230, 231, 118, 86, 86, 76, - 56, 86, 153, 154, 189, 190, 234, 3, 108, 108, - 224, 118, 3, 127, 141, 108, 24, 80, 94, 232, - 173, 174, 46, 57, 233, 234, 237, 109, 113, 114, + 190, 191, 192, 237, 151, 236, 144, 109, 137, 33, + 115, 162, 172, 231, 232, 233, 118, 86, 86, 76, + 56, 86, 153, 154, 189, 190, 236, 3, 108, 108, + 226, 118, 3, 127, 141, 108, 24, 80, 94, 234, + 173, 174, 46, 57, 235, 236, 239, 109, 113, 114, 114, 108, 149, 6, 7, 8, 10, 11, 13, 14, - 50, 91, 149, 155, 156, 172, 185, 187, 227, 237, - 107, 109, 225, 226, 227, 237, 17, 18, 177, 178, - 179, 234, 68, 108, 183, 185, 186, 234, 237, 17, + 50, 91, 149, 155, 156, 172, 185, 187, 229, 239, + 107, 109, 227, 228, 229, 239, 17, 18, 177, 178, + 179, 236, 68, 108, 183, 185, 186, 236, 239, 17, 18, 164, 165, 10, 23, 32, 61, 83, 84, 151, - 175, 85, 110, 196, 197, 198, 199, 3, 154, 234, - 237, 234, 237, 12, 22, 50, 51, 66, 85, 91, - 100, 107, 110, 187, 200, 201, 202, 203, 204, 205, - 206, 227, 228, 234, 237, 109, 113, 109, 113, 110, - 118, 184, 118, 114, 16, 17, 38, 74, 172, 180, - 181, 222, 223, 172, 180, 181, 109, 113, 116, 40, - 108, 73, 108, 196, 108, 196, 110, 36, 37, 108, - 200, 211, 212, 214, 216, 217, 218, 110, 162, 172, - 101, 106, 119, 215, 34, 35, 200, 109, 102, 103, - 104, 105, 113, 193, 194, 101, 195, 110, 215, 156, - 226, 186, 227, 237, 178, 5, 188, 237, 183, 183, - 222, 118, 222, 222, 93, 163, 222, 222, 100, 166, - 167, 165, 30, 107, 160, 161, 171, 172, 237, 176, - 35, 157, 158, 159, 171, 172, 237, 73, 157, 73, - 200, 30, 172, 234, 111, 111, 108, 200, 202, 119, - 106, 65, 204, 110, 199, 108, 111, 107, 202, 202, - 202, 200, 65, 204, 111, 111, 5, 17, 18, 222, - 87, 237, 117, 109, 113, 172, 73, 109, 113, 222, - 172, 236, 237, 109, 236, 111, 108, 109, 120, 219, - 220, 111, 119, 107, 207, 208, 237, 113, 111, 108, - 186, 227, 161, 172, 159, 222, 229, 229, 213, 118, - 221, 237, 109, 113, 109, 113, 196, 201, 168, 174, - 174, 188, 221, 118, 220, 208, 20, 74, 78, 209, - 210, 4, 19, 115, 169, 170, 179, 237, 169, 109, - 170, 116 + 175, 85, 110, 195, 196, 197, 198, 3, 154, 236, + 239, 236, 239, 12, 22, 50, 51, 66, 85, 91, + 100, 107, 110, 187, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 229, 230, 236, 239, 109, 113, + 109, 113, 110, 118, 184, 118, 114, 16, 17, 38, + 74, 172, 180, 181, 224, 225, 172, 180, 181, 109, + 113, 116, 40, 108, 73, 108, 195, 108, 195, 110, + 36, 37, 108, 199, 213, 214, 216, 218, 219, 220, + 110, 162, 172, 101, 106, 119, 217, 34, 35, 199, + 109, 113, 104, 105, 193, 102, 103, 194, 101, 110, + 217, 156, 228, 186, 229, 239, 178, 5, 188, 239, + 183, 183, 224, 118, 224, 224, 93, 163, 224, 224, + 100, 166, 167, 165, 30, 107, 160, 161, 171, 172, + 239, 176, 35, 157, 158, 159, 171, 172, 239, 73, + 157, 73, 199, 30, 172, 236, 111, 111, 108, 199, + 204, 119, 106, 65, 206, 110, 198, 108, 111, 107, + 202, 203, 204, 199, 65, 206, 111, 111, 5, 17, + 18, 224, 87, 239, 117, 109, 113, 172, 73, 109, + 113, 224, 172, 238, 239, 109, 238, 111, 108, 109, + 120, 221, 222, 111, 119, 107, 209, 210, 239, 113, + 111, 108, 186, 229, 161, 172, 159, 224, 231, 231, + 215, 118, 223, 239, 109, 113, 109, 113, 195, 200, + 168, 174, 174, 188, 223, 118, 222, 210, 20, 74, + 78, 211, 212, 4, 19, 115, 169, 170, 179, 239, + 169, 109, 170, 116 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -1835,14 +1839,14 @@ yyreduce: switch (yyn) { case 2: -#line 350 "asn1p_y.y" +#line 353 "asn1p_y.y" { *(void **)param = yyvsp[0].a_grammar; } break; case 3: -#line 356 "asn1p_y.y" +#line 359 "asn1p_y.y" { yyval.a_grammar = asn1p_new(); checkmem(yyval.a_grammar); @@ -1851,7 +1855,7 @@ yyreduce: break; case 4: -#line 361 "asn1p_y.y" +#line 364 "asn1p_y.y" { yyval.a_grammar = yyvsp[-1].a_grammar; TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next); @@ -1859,12 +1863,12 @@ yyreduce: break; case 5: -#line 378 "asn1p_y.y" +#line 381 "asn1p_y.y" { currentModule = asn1p_module_new(); } break; case 6: -#line 383 "asn1p_y.y" +#line 386 "asn1p_y.y" { yyval.a_module = currentModule; @@ -1885,31 +1889,31 @@ yyreduce: break; case 7: -#line 407 "asn1p_y.y" +#line 410 "asn1p_y.y" { yyval.a_oid = 0; } break; case 8: -#line 408 "asn1p_y.y" +#line 411 "asn1p_y.y" { yyval.a_oid = yyvsp[0].a_oid; } break; case 9: -#line 412 "asn1p_y.y" +#line 415 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; } break; case 10: -#line 415 "asn1p_y.y" +#line 418 "asn1p_y.y" { yyval.a_oid = 0; } break; case 11: -#line 421 "asn1p_y.y" +#line 424 "asn1p_y.y" { yyval.a_oid = asn1p_oid_new(); asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1919,7 +1923,7 @@ yyreduce: break; case 12: -#line 427 "asn1p_y.y" +#line 430 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1929,7 +1933,7 @@ yyreduce: break; case 13: -#line 436 "asn1p_y.y" +#line 439 "asn1p_y.y" { /* iso */ yyval.a_oid_arc.name = yyvsp[0].tv_str; yyval.a_oid_arc.number = -1; @@ -1937,7 +1941,7 @@ yyreduce: break; case 14: -#line 440 "asn1p_y.y" +#line 443 "asn1p_y.y" { /* iso(1) */ yyval.a_oid_arc.name = yyvsp[-3].tv_str; yyval.a_oid_arc.number = yyvsp[-1].a_int; @@ -1945,7 +1949,7 @@ yyreduce: break; case 15: -#line 444 "asn1p_y.y" +#line 447 "asn1p_y.y" { /* 1 */ yyval.a_oid_arc.name = 0; yyval.a_oid_arc.number = yyvsp[0].a_int; @@ -1953,61 +1957,61 @@ yyreduce: break; case 16: -#line 454 "asn1p_y.y" +#line 457 "asn1p_y.y" { yyval.a_module_flags = MSF_NOFLAGS; } break; case 17: -#line 455 "asn1p_y.y" +#line 458 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; } break; case 18: -#line 464 "asn1p_y.y" +#line 467 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; } break; case 19: -#line 467 "asn1p_y.y" +#line 470 "asn1p_y.y" { yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags; } break; case 20: -#line 476 "asn1p_y.y" +#line 479 "asn1p_y.y" { yyval.a_module_flags = MSF_EXPLICIT_TAGS; } break; case 21: -#line 479 "asn1p_y.y" +#line 482 "asn1p_y.y" { yyval.a_module_flags = MSF_IMPLICIT_TAGS; } break; case 22: -#line 482 "asn1p_y.y" +#line 485 "asn1p_y.y" { yyval.a_module_flags = MSF_AUTOMATIC_TAGS; } break; case 23: -#line 485 "asn1p_y.y" +#line 488 "asn1p_y.y" { yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED; } break; case 24: -#line 489 "asn1p_y.y" +#line 492 "asn1p_y.y" { /* X.680Amd1 specifies TAG and XER */ if(strcmp(yyvsp[-1].tv_str, "TAG") == 0) { @@ -2026,19 +2030,19 @@ yyreduce: break; case 25: -#line 510 "asn1p_y.y" +#line 513 "asn1p_y.y" { yyval.a_module = 0; } break; case 26: -#line 511 "asn1p_y.y" +#line 514 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; } break; case 27: -#line 520 "asn1p_y.y" +#line 523 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); AL_IMPORT(yyval.a_module, exports, yyvsp[-2].a_module, xp_next); @@ -2048,14 +2052,14 @@ yyreduce: break; case 28: -#line 529 "asn1p_y.y" +#line 532 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; } break; case 29: -#line 532 "asn1p_y.y" +#line 535 "asn1p_y.y" { if(yyvsp[-1].a_module) { yyval.a_module = yyvsp[-1].a_module; @@ -2068,7 +2072,7 @@ yyreduce: break; case 30: -#line 548 "asn1p_y.y" +#line 551 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2079,7 +2083,7 @@ yyreduce: break; case 31: -#line 555 "asn1p_y.y" +#line 558 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2090,7 +2094,7 @@ yyreduce: break; case 32: -#line 568 "asn1p_y.y" +#line 571 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2101,12 +2105,12 @@ yyreduce: break; case 33: -#line 576 "asn1p_y.y" +#line 579 "asn1p_y.y" { asn1p_lexer_hack_push_encoding_control(); } break; case 34: -#line 577 "asn1p_y.y" +#line 580 "asn1p_y.y" { fprintf(stderr, "WARNING: ENCODING-CONTROL %s " @@ -2118,7 +2122,7 @@ yyreduce: break; case 35: -#line 589 "asn1p_y.y" +#line 592 "asn1p_y.y" { return yyerror( "Attempt to redefine a standard basic string type, " @@ -2127,12 +2131,12 @@ yyreduce: break; case 36: -#line 602 "asn1p_y.y" +#line 605 "asn1p_y.y" { yyval.a_module = 0; } break; case 38: -#line 606 "asn1p_y.y" +#line 609 "asn1p_y.y" { if(!saved_aid && 0) return yyerror("Unterminated IMPORTS FROM, " @@ -2143,14 +2147,14 @@ yyreduce: break; case 39: -#line 616 "asn1p_y.y" +#line 619 "asn1p_y.y" { return yyerror("Empty IMPORTS list"); } break; case 40: -#line 622 "asn1p_y.y" +#line 625 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2159,7 +2163,7 @@ yyreduce: break; case 41: -#line 627 "asn1p_y.y" +#line 630 "asn1p_y.y" { yyval.a_module = yyvsp[-1].a_module; TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next); @@ -2167,17 +2171,17 @@ yyreduce: break; case 42: -#line 634 "asn1p_y.y" +#line 637 "asn1p_y.y" { memset(&yyval.a_aid, 0, sizeof(yyval.a_aid)); } break; case 43: -#line 635 "asn1p_y.y" +#line 638 "asn1p_y.y" { yyval.a_aid.oid = yyvsp[0].a_oid; } break; case 44: -#line 639 "asn1p_y.y" +#line 642 "asn1p_y.y" { yyval.a_xports = yyvsp[-3].a_xports; yyval.a_xports->fromModuleName = yyvsp[-1].tv_str; @@ -2189,7 +2193,7 @@ yyreduce: break; case 45: -#line 650 "asn1p_y.y" +#line 653 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); checkmem(yyval.a_xports); @@ -2198,7 +2202,7 @@ yyreduce: break; case 46: -#line 655 "asn1p_y.y" +#line 658 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); @@ -2206,7 +2210,7 @@ yyreduce: break; case 47: -#line 662 "asn1p_y.y" +#line 665 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2216,7 +2220,7 @@ yyreduce: break; case 48: -#line 668 "asn1p_y.y" +#line 671 "asn1p_y.y" { /* Completely equivalent to above */ yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2226,7 +2230,7 @@ yyreduce: break; case 49: -#line 674 "asn1p_y.y" +#line 677 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2236,12 +2240,12 @@ yyreduce: break; case 50: -#line 684 "asn1p_y.y" +#line 687 "asn1p_y.y" { yyval.a_module = 0; } break; case 51: -#line 685 "asn1p_y.y" +#line 688 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2254,21 +2258,21 @@ yyreduce: break; case 52: -#line 697 "asn1p_y.y" +#line 700 "asn1p_y.y" { yyval.a_xports = yyvsp[-1].a_xports; } break; case 53: -#line 700 "asn1p_y.y" +#line 703 "asn1p_y.y" { yyval.a_xports = 0; } break; case 54: -#line 703 "asn1p_y.y" +#line 706 "asn1p_y.y" { /* Empty EXPORTS clause effectively prohibits export. */ yyval.a_xports = asn1p_xports_new(); @@ -2277,7 +2281,7 @@ yyreduce: break; case 55: -#line 711 "asn1p_y.y" +#line 714 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); assert(yyval.a_xports); @@ -2286,7 +2290,7 @@ yyreduce: break; case 56: -#line 716 "asn1p_y.y" +#line 719 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); @@ -2294,7 +2298,7 @@ yyreduce: break; case 57: -#line 723 "asn1p_y.y" +#line 726 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2304,7 +2308,7 @@ yyreduce: break; case 58: -#line 729 "asn1p_y.y" +#line 732 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2314,7 +2318,7 @@ yyreduce: break; case 59: -#line 735 "asn1p_y.y" +#line 738 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2324,12 +2328,12 @@ yyreduce: break; case 60: -#line 744 "asn1p_y.y" +#line 747 "asn1p_y.y" { yyval.a_constr = yyvsp[-1].a_constr; } break; case 61: -#line 747 "asn1p_y.y" +#line 750 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2340,14 +2344,14 @@ yyreduce: break; case 62: -#line 757 "asn1p_y.y" +#line 760 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 63: -#line 770 "asn1p_y.y" +#line 773 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2358,7 +2362,7 @@ yyreduce: break; case 64: -#line 780 "asn1p_y.y" +#line 783 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2370,7 +2374,7 @@ yyreduce: break; case 65: -#line 800 "asn1p_y.y" +#line 803 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2380,7 +2384,7 @@ yyreduce: break; case 66: -#line 806 "asn1p_y.y" +#line 809 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2390,7 +2394,7 @@ yyreduce: break; case 67: -#line 822 "asn1p_y.y" +#line 825 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-5].tv_str; @@ -2399,7 +2403,7 @@ yyreduce: break; case 68: -#line 828 "asn1p_y.y" +#line 831 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-5].tv_str; @@ -2408,7 +2412,7 @@ yyreduce: break; case 69: -#line 836 "asn1p_y.y" +#line 839 "asn1p_y.y" { int ret; yyval.a_plist = asn1p_paramlist_new(yylineno); @@ -2421,7 +2425,7 @@ yyreduce: break; case 70: -#line 845 "asn1p_y.y" +#line 848 "asn1p_y.y" { int ret; yyval.a_plist = yyvsp[-2].a_plist; @@ -2433,7 +2437,7 @@ yyreduce: break; case 71: -#line 856 "asn1p_y.y" +#line 859 "asn1p_y.y" { yyval.a_parg.governor = NULL; yyval.a_parg.argument = yyvsp[0].tv_str; @@ -2441,7 +2445,7 @@ yyreduce: break; case 72: -#line 860 "asn1p_y.y" +#line 863 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -2452,7 +2456,7 @@ yyreduce: break; case 73: -#line 867 "asn1p_y.y" +#line 870 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -2463,7 +2467,7 @@ yyreduce: break; case 74: -#line 874 "asn1p_y.y" +#line 877 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -2475,7 +2479,7 @@ yyreduce: break; case 75: -#line 882 "asn1p_y.y" +#line 885 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -2487,7 +2491,7 @@ yyreduce: break; case 76: -#line 893 "asn1p_y.y" +#line 896 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2496,7 +2500,7 @@ yyreduce: break; case 77: -#line 898 "asn1p_y.y" +#line 901 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); @@ -2504,14 +2508,14 @@ yyreduce: break; case 78: -#line 905 "asn1p_y.y" +#line 908 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 79: -#line 908 "asn1p_y.y" +#line 911 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2523,7 +2527,7 @@ yyreduce: break; case 80: -#line 916 "asn1p_y.y" +#line 919 "asn1p_y.y" { asn1p_ref_t *ref; yyval.a_expr = NEW_EXPR(); @@ -2538,7 +2542,7 @@ yyreduce: break; case 81: -#line 927 "asn1p_y.y" +#line 930 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); yyval.a_expr->expr_type = A1TC_VALUESET; @@ -2548,17 +2552,17 @@ yyreduce: break; case 82: -#line 950 "asn1p_y.y" +#line 953 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); } break; case 83: -#line 951 "asn1p_y.y" +#line 954 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 84: -#line 954 "asn1p_y.y" +#line 957 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2567,7 +2571,7 @@ yyreduce: break; case 85: -#line 959 "asn1p_y.y" +#line 962 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); @@ -2575,7 +2579,7 @@ yyreduce: break; case 86: -#line 966 "asn1p_y.y" +#line 969 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2586,7 +2590,7 @@ yyreduce: break; case 87: -#line 973 "asn1p_y.y" +#line 976 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; yyvsp[0].a_marker.flags |= yyval.a_expr->marker.flags; @@ -2596,7 +2600,7 @@ yyreduce: break; case 88: -#line 979 "asn1p_y.y" +#line 982 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2607,14 +2611,14 @@ yyreduce: break; case 89: -#line 986 "asn1p_y.y" +#line 989 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 90: -#line 992 "asn1p_y.y" +#line 995 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2623,7 +2627,7 @@ yyreduce: break; case 91: -#line 997 "asn1p_y.y" +#line 1000 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); @@ -2631,7 +2635,7 @@ yyreduce: break; case 92: -#line 1004 "asn1p_y.y" +#line 1007 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2640,14 +2644,14 @@ yyreduce: break; case 93: -#line 1009 "asn1p_y.y" +#line 1012 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 94: -#line 1012 "asn1p_y.y" +#line 1015 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; _fixup_anonymous_identifier(yyval.a_expr); @@ -2655,7 +2659,7 @@ yyreduce: break; case 95: -#line 1019 "asn1p_y.y" +#line 1022 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; checkmem(yyval.a_expr); @@ -2666,17 +2670,17 @@ yyreduce: break; case 96: -#line 1029 "asn1p_y.y" +#line 1032 "asn1p_y.y" { yyval.a_int = 0; } break; case 97: -#line 1030 "asn1p_y.y" +#line 1033 "asn1p_y.y" { yyval.a_int = 1; } break; case 98: -#line 1034 "asn1p_y.y" +#line 1037 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2687,7 +2691,7 @@ yyreduce: break; case 99: -#line 1041 "asn1p_y.y" +#line 1044 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); @@ -2695,7 +2699,7 @@ yyreduce: break; case 100: -#line 1051 "asn1p_y.y" +#line 1054 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2707,7 +2711,7 @@ yyreduce: break; case 101: -#line 1061 "asn1p_y.y" +#line 1064 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); yyval.a_expr->Identifier = yyvsp[-3].tv_str; @@ -2720,7 +2724,7 @@ yyreduce: break; case 102: -#line 1072 "asn1p_y.y" +#line 1075 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2732,7 +2736,7 @@ yyreduce: break; case 103: -#line 1082 "asn1p_y.y" +#line 1085 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2745,7 +2749,7 @@ yyreduce: break; case 104: -#line 1093 "asn1p_y.y" +#line 1096 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2757,7 +2761,7 @@ yyreduce: break; case 105: -#line 1103 "asn1p_y.y" +#line 1106 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2770,7 +2774,7 @@ yyreduce: break; case 106: -#line 1114 "asn1p_y.y" +#line 1117 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2783,31 +2787,31 @@ yyreduce: break; case 107: -#line 1126 "asn1p_y.y" +#line 1129 "asn1p_y.y" { yyval.a_wsynt = 0; } break; case 108: -#line 1127 "asn1p_y.y" +#line 1130 "asn1p_y.y" { yyval.a_wsynt = yyvsp[0].a_wsynt; } break; case 109: -#line 1134 "asn1p_y.y" +#line 1137 "asn1p_y.y" { asn1p_lexer_hack_enable_with_syntax(); } break; case 110: -#line 1136 "asn1p_y.y" +#line 1139 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; } break; case 111: -#line 1142 "asn1p_y.y" +#line 1145 "asn1p_y.y" { yyval.a_wsynt = asn1p_wsyntx_new(); TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); @@ -2815,7 +2819,7 @@ yyreduce: break; case 112: -#line 1146 "asn1p_y.y" +#line 1149 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); @@ -2823,7 +2827,7 @@ yyreduce: break; case 113: -#line 1153 "asn1p_y.y" +#line 1156 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].tv_opaque.buf, 0); yyval.a_wchunk->type = WC_WHITESPACE; @@ -2831,14 +2835,14 @@ yyreduce: break; case 114: -#line 1157 "asn1p_y.y" +#line 1160 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].tv_str, 0); } break; case 115: -#line 1160 "asn1p_y.y" +#line 1163 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].a_refcomp.name, 0); yyval.a_wchunk->type = WC_FIELD; @@ -2846,14 +2850,14 @@ yyreduce: break; case 116: -#line 1164 "asn1p_y.y" +#line 1167 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromsyntax(yyvsp[-1].a_wsynt); } break; case 117: -#line 1170 "asn1p_y.y" +#line 1173 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2865,7 +2869,7 @@ yyreduce: break; case 118: -#line 1178 "asn1p_y.y" +#line 1181 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2878,7 +2882,7 @@ yyreduce: break; case 119: -#line 1187 "asn1p_y.y" +#line 1190 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2891,7 +2895,7 @@ yyreduce: break; case 120: -#line 1199 "asn1p_y.y" +#line 1202 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr->tag = yyvsp[-2].a_tag; @@ -2914,7 +2918,7 @@ yyreduce: break; case 121: -#line 1221 "asn1p_y.y" +#line 1224 "asn1p_y.y" { yyval.a_int = asn1p_as_pointer ? EM_INDIRECT : 0; asn1p_as_pointer = 0; @@ -2922,7 +2926,7 @@ yyreduce: break; case 122: -#line 1228 "asn1p_y.y" +#line 1231 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->marker.flags |= yyvsp[-1].a_int; @@ -2942,14 +2946,14 @@ yyreduce: break; case 123: -#line 1247 "asn1p_y.y" +#line 1250 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; case 124: -#line 1250 "asn1p_y.y" +#line 1253 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2959,7 +2963,7 @@ yyreduce: break; case 125: -#line 1256 "asn1p_y.y" +#line 1259 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2969,7 +2973,7 @@ yyreduce: break; case 126: -#line 1262 "asn1p_y.y" +#line 1265 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2979,7 +2983,7 @@ yyreduce: break; case 127: -#line 1268 "asn1p_y.y" +#line 1271 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2993,7 +2997,7 @@ yyreduce: break; case 128: -#line 1278 "asn1p_y.y" +#line 1281 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -3007,7 +3011,7 @@ yyreduce: break; case 129: -#line 1288 "asn1p_y.y" +#line 1291 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -3017,7 +3021,7 @@ yyreduce: break; case 130: -#line 1294 "asn1p_y.y" +#line 1297 "asn1p_y.y" { int ret; yyval.a_expr = NEW_EXPR(); @@ -3032,7 +3036,7 @@ yyreduce: break; case 131: -#line 1305 "asn1p_y.y" +#line 1308 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -3043,7 +3047,7 @@ yyreduce: break; case 132: -#line 1320 "asn1p_y.y" +#line 1323 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3055,7 +3059,7 @@ yyreduce: break; case 133: -#line 1328 "asn1p_y.y" +#line 1331 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3069,7 +3073,7 @@ yyreduce: break; case 134: -#line 1338 "asn1p_y.y" +#line 1341 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3083,7 +3087,7 @@ yyreduce: break; case 135: -#line 1348 "asn1p_y.y" +#line 1351 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3097,7 +3101,7 @@ yyreduce: break; case 136: -#line 1358 "asn1p_y.y" +#line 1361 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3109,7 +3113,7 @@ yyreduce: break; case 137: -#line 1366 "asn1p_y.y" +#line 1369 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[0].a_ref; @@ -3132,7 +3136,7 @@ yyreduce: break; case 138: -#line 1388 "asn1p_y.y" +#line 1391 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3144,7 +3148,7 @@ yyreduce: break; case 139: -#line 1396 "asn1p_y.y" +#line 1399 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[-2].a_ref; @@ -3155,7 +3159,7 @@ yyreduce: break; case 141: -#line 1409 "asn1p_y.y" +#line 1412 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_AmpUppercase; yyval.a_refcomp.name = yyvsp[0].tv_str; @@ -3163,7 +3167,7 @@ yyreduce: break; case 142: -#line 1414 "asn1p_y.y" +#line 1417 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_Amplowercase; yyval.a_refcomp.name = yyvsp[0].tv_str; @@ -3171,7 +3175,7 @@ yyreduce: break; case 143: -#line 1423 "asn1p_y.y" +#line 1426 "asn1p_y.y" { yyval.a_ref = asn1p_ref_new(yylineno); asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); @@ -3179,7 +3183,7 @@ yyreduce: break; case 144: -#line 1427 "asn1p_y.y" +#line 1430 "asn1p_y.y" { yyval.a_ref = yyval.a_ref; asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); @@ -3187,7 +3191,7 @@ yyreduce: break; case 145: -#line 1431 "asn1p_y.y" +#line 1434 "asn1p_y.y" { yyval.a_ref = yyval.a_ref; asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_Amplowercase); @@ -3195,7 +3199,7 @@ yyreduce: break; case 146: -#line 1438 "asn1p_y.y" +#line 1441 "asn1p_y.y" { yyval.a_ref = asn1p_ref_new(yylineno); asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_CAPITALS); @@ -3203,7 +3207,7 @@ yyreduce: break; case 147: -#line 1458 "asn1p_y.y" +#line 1461 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; assert(yyval.a_expr->Identifier == NULL); @@ -3214,7 +3218,7 @@ yyreduce: break; case 150: -#line 1470 "asn1p_y.y" +#line 1473 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3225,12 +3229,12 @@ yyreduce: break; case 151: -#line 1477 "asn1p_y.y" +#line 1480 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); } break; case 152: -#line 1477 "asn1p_y.y" +#line 1480 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); @@ -3239,7 +3243,7 @@ yyreduce: break; case 153: -#line 1482 "asn1p_y.y" +#line 1485 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3248,7 +3252,7 @@ yyreduce: break; case 154: -#line 1490 "asn1p_y.y" +#line 1493 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3257,7 +3261,7 @@ yyreduce: break; case 155: -#line 1495 "asn1p_y.y" +#line 1498 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3266,7 +3270,7 @@ yyreduce: break; case 156: -#line 1500 "asn1p_y.y" +#line 1503 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B'); checkmem(yyval.a_value); @@ -3274,7 +3278,7 @@ yyreduce: break; case 157: -#line 1504 "asn1p_y.y" +#line 1507 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H'); checkmem(yyval.a_value); @@ -3282,21 +3286,21 @@ yyreduce: break; case 158: -#line 1508 "asn1p_y.y" +#line 1511 "asn1p_y.y" { yyval.a_value = yyval.a_value; } break; case 159: -#line 1511 "asn1p_y.y" +#line 1514 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; } break; case 160: -#line 1517 "asn1p_y.y" +#line 1520 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3311,7 +3315,7 @@ yyreduce: break; case 161: -#line 1528 "asn1p_y.y" +#line 1531 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3329,7 +3333,7 @@ yyreduce: break; case 162: -#line 1546 "asn1p_y.y" +#line 1549 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); @@ -3337,7 +3341,7 @@ yyreduce: break; case 163: -#line 1550 "asn1p_y.y" +#line 1553 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -3346,7 +3350,7 @@ yyreduce: break; case 164: -#line 1555 "asn1p_y.y" +#line 1558 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -3355,7 +3359,7 @@ yyreduce: break; case 165: -#line 1589 "asn1p_y.y" +#line 1592 "asn1p_y.y" { yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 1; yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1); @@ -3368,7 +3372,7 @@ yyreduce: break; case 166: -#line 1598 "asn1p_y.y" +#line 1601 "asn1p_y.y" { int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len; char *p = malloc(newsize + 1); @@ -3384,87 +3388,87 @@ yyreduce: break; case 167: -#line 1613 "asn1p_y.y" +#line 1616 "asn1p_y.y" { yyval.a_type = ASN_BASIC_BOOLEAN; } break; case 168: -#line 1614 "asn1p_y.y" +#line 1617 "asn1p_y.y" { yyval.a_type = ASN_BASIC_NULL; } break; case 169: -#line 1615 "asn1p_y.y" +#line 1618 "asn1p_y.y" { yyval.a_type = ASN_BASIC_REAL; } break; case 170: -#line 1616 "asn1p_y.y" +#line 1619 "asn1p_y.y" { yyval.a_type = yyvsp[0].a_type; } break; case 171: -#line 1617 "asn1p_y.y" +#line 1620 "asn1p_y.y" { yyval.a_type = ASN_BASIC_OCTET_STRING; } break; case 172: -#line 1618 "asn1p_y.y" +#line 1621 "asn1p_y.y" { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; } break; case 173: -#line 1619 "asn1p_y.y" +#line 1622 "asn1p_y.y" { yyval.a_type = ASN_BASIC_RELATIVE_OID; } break; case 174: -#line 1620 "asn1p_y.y" +#line 1623 "asn1p_y.y" { yyval.a_type = ASN_BASIC_EXTERNAL; } break; case 175: -#line 1621 "asn1p_y.y" +#line 1624 "asn1p_y.y" { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; } break; case 176: -#line 1622 "asn1p_y.y" +#line 1625 "asn1p_y.y" { yyval.a_type = ASN_BASIC_CHARACTER_STRING; } break; case 177: -#line 1623 "asn1p_y.y" +#line 1626 "asn1p_y.y" { yyval.a_type = ASN_BASIC_UTCTime; } break; case 178: -#line 1624 "asn1p_y.y" +#line 1627 "asn1p_y.y" { yyval.a_type = ASN_BASIC_GeneralizedTime; } break; case 179: -#line 1625 "asn1p_y.y" +#line 1628 "asn1p_y.y" { yyval.a_type = yyvsp[0].a_type; } break; case 180: -#line 1632 "asn1p_y.y" +#line 1635 "asn1p_y.y" { yyval.a_type = ASN_BASIC_INTEGER; } break; case 181: -#line 1633 "asn1p_y.y" +#line 1636 "asn1p_y.y" { yyval.a_type = ASN_BASIC_ENUMERATED; } break; case 182: -#line 1634 "asn1p_y.y" +#line 1637 "asn1p_y.y" { yyval.a_type = ASN_BASIC_BIT_STRING; } break; case 183: -#line 1638 "asn1p_y.y" +#line 1641 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -3474,7 +3478,7 @@ yyreduce: break; case 184: -#line 1644 "asn1p_y.y" +#line 1647 "asn1p_y.y" { if(yyvsp[0].a_expr) { yyval.a_expr = yyvsp[0].a_expr; @@ -3488,12 +3492,12 @@ yyreduce: break; case 185: -#line 1657 "asn1p_y.y" +#line 1660 "asn1p_y.y" { yyval.a_type = ASN_STRING_BMPString; } break; case 186: -#line 1658 "asn1p_y.y" +#line 1661 "asn1p_y.y" { yyval.a_type = ASN_STRING_GeneralString; fprintf(stderr, "WARNING: GeneralString is not fully supported\n"); @@ -3501,7 +3505,7 @@ yyreduce: break; case 187: -#line 1662 "asn1p_y.y" +#line 1665 "asn1p_y.y" { yyval.a_type = ASN_STRING_GraphicString; fprintf(stderr, "WARNING: GraphicString is not fully supported\n"); @@ -3509,27 +3513,27 @@ yyreduce: break; case 188: -#line 1666 "asn1p_y.y" +#line 1669 "asn1p_y.y" { yyval.a_type = ASN_STRING_IA5String; } break; case 189: -#line 1667 "asn1p_y.y" +#line 1670 "asn1p_y.y" { yyval.a_type = ASN_STRING_ISO646String; } break; case 190: -#line 1668 "asn1p_y.y" +#line 1671 "asn1p_y.y" { yyval.a_type = ASN_STRING_NumericString; } break; case 191: -#line 1669 "asn1p_y.y" +#line 1672 "asn1p_y.y" { yyval.a_type = ASN_STRING_PrintableString; } break; case 192: -#line 1670 "asn1p_y.y" +#line 1673 "asn1p_y.y" { yyval.a_type = ASN_STRING_T61String; fprintf(stderr, "WARNING: T61String is not fully supported\n"); @@ -3537,22 +3541,22 @@ yyreduce: break; case 193: -#line 1674 "asn1p_y.y" +#line 1677 "asn1p_y.y" { yyval.a_type = ASN_STRING_TeletexString; } break; case 194: -#line 1675 "asn1p_y.y" +#line 1678 "asn1p_y.y" { yyval.a_type = ASN_STRING_UniversalString; } break; case 195: -#line 1676 "asn1p_y.y" +#line 1679 "asn1p_y.y" { yyval.a_type = ASN_STRING_UTF8String; } break; case 196: -#line 1677 "asn1p_y.y" +#line 1680 "asn1p_y.y" { yyval.a_type = ASN_STRING_VideotexString; fprintf(stderr, "WARNING: VideotexString is not fully supported\n"); @@ -3560,43 +3564,43 @@ yyreduce: break; case 197: -#line 1681 "asn1p_y.y" +#line 1684 "asn1p_y.y" { yyval.a_type = ASN_STRING_VisibleString; } break; case 198: -#line 1682 "asn1p_y.y" +#line 1685 "asn1p_y.y" { yyval.a_type = ASN_STRING_ObjectDescriptor; } break; - case 204: -#line 1694 "asn1p_y.y" + case 203: +#line 1696 "asn1p_y.y" { yyval.a_constr = 0; } break; - case 205: -#line 1695 "asn1p_y.y" + case 204: +#line 1697 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; - case 207: -#line 1702 "asn1p_y.y" + case 206: +#line 1704 "asn1p_y.y" { yyval.a_constr = yyvsp[-1].a_constr; } break; - case 208: -#line 1708 "asn1p_y.y" + case 207: +#line 1710 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0); } break; - case 209: -#line 1711 "asn1p_y.y" + case 208: +#line 1713 "asn1p_y.y" { /* * This is a special case, for compatibility purposes. @@ -3606,37 +3610,37 @@ yyreduce: } break; - case 210: -#line 1721 "asn1p_y.y" + case 209: +#line 1723 "asn1p_y.y" { yyval.a_constr = yyvsp[-1].a_constr; } break; - case 211: -#line 1724 "asn1p_y.y" + case 210: +#line 1726 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr); } break; - case 212: -#line 1730 "asn1p_y.y" + case 211: +#line 1732 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr->type = ACT_EL_EXT; } break; - case 213: -#line 1734 "asn1p_y.y" + case 212: +#line 1736 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; - case 214: -#line 1737 "asn1p_y.y" + case 213: +#line 1739 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -3645,8 +3649,8 @@ yyreduce: } break; - case 215: -#line 1743 "asn1p_y.y" + case 214: +#line 1745 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -3658,13 +3662,6 @@ yyreduce: break; case 216: -#line 1754 "asn1p_y.y" - { - yyval.a_constr = yyvsp[0].a_constr; - } - break; - - case 217: #line 1757 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_AEX, yyvsp[0].a_constr, 0); @@ -3672,28 +3669,28 @@ yyreduce: break; case 218: -#line 1760 "asn1p_y.y" +#line 1764 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; - case 219: -#line 1763 "asn1p_y.y" + case 220: +#line 1771 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; - case 220: -#line 1766 "asn1p_y.y" + case 222: +#line 1779 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; - case 221: -#line 1772 "asn1p_y.y" + case 223: +#line 1785 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -3704,8 +3701,8 @@ yyreduce: } break; - case 222: -#line 1780 "asn1p_y.y" + case 224: +#line 1793 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -3716,8 +3713,8 @@ yyreduce: } break; - case 223: -#line 1788 "asn1p_y.y" + case 225: +#line 1801 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3726,8 +3723,8 @@ yyreduce: } break; - case 224: -#line 1794 "asn1p_y.y" + case 226: +#line 1807 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3736,43 +3733,43 @@ yyreduce: } break; - case 225: -#line 1800 "asn1p_y.y" - { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = yyvsp[-1].a_ctype; - yyval.a_constr->range_start = yyvsp[-2].a_value; - yyval.a_constr->range_stop = yyvsp[0].a_value; - } - break; - - case 226: -#line 1807 "asn1p_y.y" - { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = yyvsp[-1].a_ctype; - yyval.a_constr->range_start = asn1p_value_fromint(-123); - yyval.a_constr->range_stop = yyvsp[0].a_value; - yyval.a_constr->range_start->type = ATV_MIN; - } - break; - case 227: -#line 1815 "asn1p_y.y" +#line 1813 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); yyval.a_constr->type = yyvsp[-1].a_ctype; yyval.a_constr->range_start = yyvsp[-2].a_value; - yyval.a_constr->range_stop = asn1p_value_fromint(321); - yyval.a_constr->range_stop->type = ATV_MAX; + yyval.a_constr->range_stop = yyvsp[0].a_value; } break; case 228: -#line 1823 "asn1p_y.y" +#line 1820 "asn1p_y.y" + { + yyval.a_constr = asn1p_constraint_new(yylineno); + checkmem(yyval.a_constr); + yyval.a_constr->type = yyvsp[-1].a_ctype; + yyval.a_constr->range_start = asn1p_value_fromint(-123); + yyval.a_constr->range_stop = yyvsp[0].a_value; + yyval.a_constr->range_start->type = ATV_MIN; + } + break; + + case 229: +#line 1828 "asn1p_y.y" + { + yyval.a_constr = asn1p_constraint_new(yylineno); + checkmem(yyval.a_constr); + yyval.a_constr->type = yyvsp[-1].a_ctype; + yyval.a_constr->range_start = yyvsp[-2].a_value; + yyval.a_constr->range_stop = asn1p_value_fromint(321); + yyval.a_constr->range_stop->type = ATV_MAX; + } + break; + + case 230: +#line 1836 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3784,29 +3781,29 @@ yyreduce: } break; - case 229: -#line 1832 "asn1p_y.y" + case 231: +#line 1845 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; - case 230: -#line 1838 "asn1p_y.y" + case 232: +#line 1851 "asn1p_y.y" { yyval.a_ctype = ACT_CT_SIZE; } break; - case 231: -#line 1841 "asn1p_y.y" + case 233: +#line 1854 "asn1p_y.y" { yyval.a_ctype = ACT_CT_FROM; } break; - case 232: -#line 1847 "asn1p_y.y" + case 234: +#line 1860 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3814,8 +3811,8 @@ yyreduce: } break; - case 233: -#line 1852 "asn1p_y.y" + case 235: +#line 1865 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(1); checkmem(yyval.a_value); @@ -3823,8 +3820,8 @@ yyreduce: } break; - case 236: -#line 1859 "asn1p_y.y" + case 238: +#line 1872 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3838,8 +3835,8 @@ yyreduce: } break; - case 237: -#line 1873 "asn1p_y.y" + case 239: +#line 1886 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3853,36 +3850,36 @@ yyreduce: } break; - case 238: -#line 1887 "asn1p_y.y" + case 240: +#line 1900 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0); } break; - case 239: -#line 1890 "asn1p_y.y" + case 241: +#line 1903 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0); } break; - case 240: -#line 1896 "asn1p_y.y" + case 242: +#line 1909 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; - case 241: -#line 1899 "asn1p_y.y" + case 243: +#line 1912 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; - case 242: -#line 1905 "asn1p_y.y" + case 244: +#line 1918 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3891,8 +3888,8 @@ yyreduce: } break; - case 243: -#line 1911 "asn1p_y.y" + case 245: +#line 1924 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3903,44 +3900,44 @@ yyreduce: } break; - case 244: -#line 1925 "asn1p_y.y" + case 246: +#line 1938 "asn1p_y.y" { yyval.a_pres = ACPRES_DEFAULT; } break; - case 245: -#line 1926 "asn1p_y.y" + case 247: +#line 1939 "asn1p_y.y" { yyval.a_pres = yyvsp[0].a_pres; } break; - case 246: -#line 1930 "asn1p_y.y" + case 248: +#line 1943 "asn1p_y.y" { yyval.a_pres = ACPRES_PRESENT; } break; - case 247: -#line 1933 "asn1p_y.y" + case 249: +#line 1946 "asn1p_y.y" { yyval.a_pres = ACPRES_ABSENT; } break; - case 248: -#line 1936 "asn1p_y.y" + case 250: +#line 1949 "asn1p_y.y" { yyval.a_pres = ACPRES_OPTIONAL; } break; - case 252: -#line 1951 "asn1p_y.y" + case 254: +#line 1964 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); } break; - case 253: -#line 1951 "asn1p_y.y" + case 255: +#line 1964 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3951,8 +3948,8 @@ yyreduce: } break; - case 254: -#line 1962 "asn1p_y.y" + case 256: +#line 1975 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr->type = ACT_CT_CTNG; @@ -3960,42 +3957,42 @@ yyreduce: } break; - case 255: -#line 1970 "asn1p_y.y" + case 257: +#line 1983 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RANGE; } break; - case 256: -#line 1971 "asn1p_y.y" + case 258: +#line 1984 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RLRANGE; } break; - case 257: -#line 1972 "asn1p_y.y" + case 259: +#line 1985 "asn1p_y.y" { yyval.a_ctype = ACT_EL_LLRANGE; } break; - case 258: -#line 1973 "asn1p_y.y" + case 260: +#line 1986 "asn1p_y.y" { yyval.a_ctype = ACT_EL_ULRANGE; } break; - case 259: -#line 1976 "asn1p_y.y" - { - yyval.a_constr = yyvsp[0].a_constr; - } - break; - - case 260: -#line 1979 "asn1p_y.y" - { - yyval.a_constr = yyvsp[0].a_constr; - } - break; - case 261: -#line 1988 "asn1p_y.y" +#line 1989 "asn1p_y.y" + { + yyval.a_constr = yyvsp[0].a_constr; + } + break; + + case 262: +#line 1992 "asn1p_y.y" + { + yyval.a_constr = yyvsp[0].a_constr; + } + break; + + case 263: +#line 2001 "asn1p_y.y" { asn1p_ref_t *ref = asn1p_ref_new(yylineno); asn1p_constraint_t *ct; @@ -4010,15 +4007,15 @@ yyreduce: } break; - case 262: -#line 2003 "asn1p_y.y" + case 264: +#line 2016 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr); } break; - case 263: -#line 2009 "asn1p_y.y" + case 265: +#line 2022 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -4027,8 +4024,8 @@ yyreduce: } break; - case 264: -#line 2015 "asn1p_y.y" + case 266: +#line 2028 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -4039,8 +4036,8 @@ yyreduce: } break; - case 265: -#line 2029 "asn1p_y.y" + case 267: +#line 2042 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 2); int ret; @@ -4054,8 +4051,8 @@ yyreduce: } break; - case 266: -#line 2040 "asn1p_y.y" + case 268: +#line 2053 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 3); int ret; @@ -4070,15 +4067,15 @@ yyreduce: } break; - case 267: -#line 2056 "asn1p_y.y" + case 269: +#line 2069 "asn1p_y.y" { yyval.tv_str = yyvsp[0].tv_str; } break; - case 268: -#line 2059 "asn1p_y.y" + case 270: +#line 2072 "asn1p_y.y" { int l1 = strlen(yyvsp[-2].tv_str); int l3 = strlen(yyvsp[0].tv_str); @@ -4090,52 +4087,52 @@ yyreduce: } break; - case 269: -#line 2077 "asn1p_y.y" + case 271: +#line 2090 "asn1p_y.y" { yyval.a_marker.flags = EM_NOMARK; yyval.a_marker.default_value = 0; } break; - case 270: -#line 2081 "asn1p_y.y" + case 272: +#line 2094 "asn1p_y.y" { yyval.a_marker = yyvsp[0].a_marker; } break; - case 271: -#line 2085 "asn1p_y.y" + case 273: +#line 2098 "asn1p_y.y" { yyval.a_marker.flags = EM_OPTIONAL | EM_INDIRECT; yyval.a_marker.default_value = 0; } break; - case 272: -#line 2089 "asn1p_y.y" + case 274: +#line 2102 "asn1p_y.y" { yyval.a_marker.flags = EM_DEFAULT; yyval.a_marker.default_value = yyvsp[0].a_value; } break; - case 273: -#line 2112 "asn1p_y.y" + case 275: +#line 2125 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); } break; - case 274: -#line 2116 "asn1p_y.y" + case 276: +#line 2129 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; } break; - case 275: -#line 2122 "asn1p_y.y" + case 277: +#line 2135 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -4143,16 +4140,16 @@ yyreduce: } break; - case 276: -#line 2127 "asn1p_y.y" + case 278: +#line 2140 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); } break; - case 277: -#line 2134 "asn1p_y.y" + case 279: +#line 2147 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -4162,32 +4159,32 @@ yyreduce: } break; - case 278: -#line 2141 "asn1p_y.y" - { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->expr_type = A1TC_UNIVERVAL; - yyval.a_expr->meta_type = AMT_VALUE; - yyval.a_expr->Identifier = yyvsp[-3].tv_str; - yyval.a_expr->value = yyvsp[-1].a_value; - } - break; - - case 279: -#line 2149 "asn1p_y.y" - { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->expr_type = A1TC_UNIVERVAL; - yyval.a_expr->meta_type = AMT_VALUE; - yyval.a_expr->Identifier = yyvsp[-3].tv_str; - yyval.a_expr->value = yyvsp[-1].a_value; - } - break; - case 280: -#line 2157 "asn1p_y.y" +#line 2154 "asn1p_y.y" + { + yyval.a_expr = NEW_EXPR(); + checkmem(yyval.a_expr); + yyval.a_expr->expr_type = A1TC_UNIVERVAL; + yyval.a_expr->meta_type = AMT_VALUE; + yyval.a_expr->Identifier = yyvsp[-3].tv_str; + yyval.a_expr->value = yyvsp[-1].a_value; + } + break; + + case 281: +#line 2162 "asn1p_y.y" + { + yyval.a_expr = NEW_EXPR(); + checkmem(yyval.a_expr); + yyval.a_expr->expr_type = A1TC_UNIVERVAL; + yyval.a_expr->meta_type = AMT_VALUE; + yyval.a_expr->Identifier = yyvsp[-3].tv_str; + yyval.a_expr->value = yyvsp[-1].a_value; + } + break; + + case 282: +#line 2170 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -4197,8 +4194,8 @@ yyreduce: } break; - case 281: -#line 2164 "asn1p_y.y" + case 283: +#line 2177 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -4209,16 +4206,8 @@ yyreduce: } break; - case 282: -#line 2175 "asn1p_y.y" - { - yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); - checkmem(yyval.a_value); - } - break; - - case 283: -#line 2179 "asn1p_y.y" + case 284: +#line 2188 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -4226,92 +4215,84 @@ yyreduce: break; case 285: -#line 2187 "asn1p_y.y" +#line 2192 "asn1p_y.y" + { + yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); + checkmem(yyval.a_value); + } + break; + + case 287: +#line 2200 "asn1p_y.y" { yyval.a_value = asn1p_value_fromdouble(yyvsp[0].a_dbl); checkmem(yyval.a_value); } break; - case 286: -#line 2218 "asn1p_y.y" + case 288: +#line 2231 "asn1p_y.y" { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); } break; - case 287: -#line 2219 "asn1p_y.y" + case 289: +#line 2232 "asn1p_y.y" { yyval.a_tag = yyvsp[0].a_tag; } break; - case 288: -#line 2223 "asn1p_y.y" + case 290: +#line 2236 "asn1p_y.y" { yyval.a_tag = yyvsp[-1].a_tag; yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode; } break; - case 289: -#line 2230 "asn1p_y.y" + case 291: +#line 2243 "asn1p_y.y" { yyval.a_tag = yyvsp[-2].a_tag; yyval.a_tag.tag_value = yyvsp[-1].a_int; } break; - case 290: -#line 2236 "asn1p_y.y" + case 292: +#line 2249 "asn1p_y.y" { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; } break; - case 291: -#line 2237 "asn1p_y.y" + case 293: +#line 2250 "asn1p_y.y" { yyval.a_tag.tag_class = TC_UNIVERSAL; } break; - case 292: -#line 2238 "asn1p_y.y" + case 294: +#line 2251 "asn1p_y.y" { yyval.a_tag.tag_class = TC_APPLICATION; } break; - case 293: -#line 2239 "asn1p_y.y" + case 295: +#line 2252 "asn1p_y.y" { yyval.a_tag.tag_class = TC_PRIVATE; } break; - case 294: -#line 2243 "asn1p_y.y" + case 296: +#line 2256 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_DEFAULT; } break; - case 295: -#line 2244 "asn1p_y.y" + case 297: +#line 2257 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_IMPLICIT; } break; - case 296: -#line 2245 "asn1p_y.y" + case 298: +#line 2258 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_EXPLICIT; } break; - case 297: -#line 2249 "asn1p_y.y" - { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; - } - break; - - case 298: -#line 2253 "asn1p_y.y" - { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; - } - break; - case 299: -#line 2261 "asn1p_y.y" +#line 2262 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; @@ -4319,19 +4300,35 @@ yyreduce: break; case 300: -#line 2268 "asn1p_y.y" - { yyval.tv_str = 0; } +#line 2266 "asn1p_y.y" + { + checkmem(yyvsp[0].tv_str); + yyval.tv_str = yyvsp[0].tv_str; + } break; case 301: -#line 2269 "asn1p_y.y" +#line 2274 "asn1p_y.y" { + checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; } break; case 302: -#line 2275 "asn1p_y.y" +#line 2281 "asn1p_y.y" + { yyval.tv_str = 0; } + break; + + case 303: +#line 2282 "asn1p_y.y" + { + yyval.tv_str = yyvsp[0].tv_str; + } + break; + + case 304: +#line 2288 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; @@ -4342,7 +4339,7 @@ yyreduce: } /* Line 1016 of /usr/local/share/bison/yacc.c. */ -#line 4346 "asn1p_y.c" +#line 4343 "asn1p_y.c" yyvsp -= yylen; yyssp -= yylen; @@ -4561,7 +4558,7 @@ yyreturn: } -#line 2281 "asn1p_y.y" +#line 2294 "asn1p_y.y" diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y index 9baa9ce6..a89ba798 100644 --- a/libasn1parser/asn1p_y.y +++ b/libasn1parser/asn1p_y.y @@ -226,7 +226,7 @@ static asn1p_module_t *currentModule; %token TOK_VisibleString %token TOK_WITH -%left TOK_EXCEPT +%nonassoc TOK_EXCEPT %left '^' TOK_INTERSECTION %left '|' TOK_UNION @@ -316,6 +316,9 @@ static asn1p_module_t *currentModule; %type SetOfConstraints %type ElementSetSpecs /* 1..2,...,3 */ %type ElementSetSpec /* 1..2,...,3 */ +%type Unions +%type Intersections +%type IntersectionElements %type ConstraintSubtypeElement /* 1..2 */ %type SimpleTableConstraint %type UserDefinedConstraint @@ -1686,9 +1689,8 @@ BasicString: /* * Data type constraints. */ -Union: '|' | TOK_UNION; -Intersection: '^' | TOK_INTERSECTION; -Except: TOK_EXCEPT; +UnionMark: '|' | TOK_UNION; +IntersectionMark: '^' | TOK_INTERSECTION; optConstraints: { $$ = 0; } @@ -1751,19 +1753,30 @@ ElementSetSpecs: ; ElementSetSpec: - ConstraintSubtypeElement { - $$ = $1; - } + Unions | TOK_ALL TOK_EXCEPT ConstraintSubtypeElement { CONSTRAINT_INSERT($$, ACT_CA_AEX, $3, 0); } - | ElementSetSpec Union ConstraintSubtypeElement { + ; + +Unions: + Intersections + | Unions UnionMark Intersections { CONSTRAINT_INSERT($$, ACT_CA_UNI, $1, $3); } - | ElementSetSpec Intersection ConstraintSubtypeElement { + ; + +Intersections: + IntersectionElements + | Intersections IntersectionMark IntersectionElements { CONSTRAINT_INSERT($$, ACT_CA_INT, $1, $3); } - | ConstraintSubtypeElement Except ConstraintSubtypeElement { + ; + + +IntersectionElements: + ConstraintSubtypeElement + | ConstraintSubtypeElement TOK_EXCEPT ConstraintSubtypeElement { CONSTRAINT_INSERT($$, ACT_CA_EXC, $1, $3); } ;