diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c index 11233678..709611c1 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 840 +#define YYLAST 824 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 121 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 119 +#define YYNNTS 120 /* YYNRULES -- Number of rules. */ -#define YYNRULES 304 +#define YYNRULES 306 /* YYNRULES -- Number of states. */ -#define YYNSTATES 464 +#define YYNSTATES 465 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -592,160 +592,160 @@ static const unsigned short yyprhs[] = 28, 31, 33, 36, 38, 43, 45, 46, 48, 50, 53, 56, 59, 62, 65, 68, 69, 71, 75, 77, 80, 82, 84, 86, 87, 91, 93, 94, 96, 100, - 103, 105, 108, 109, 111, 116, 118, 122, 124, 128, - 130, 131, 133, 137, 141, 144, 146, 150, 152, 156, - 158, 162, 167, 169, 171, 176, 180, 184, 191, 198, - 200, 204, 206, 210, 214, 218, 222, 224, 228, 230, - 232, 234, 236, 237, 239, 241, 245, 249, 252, 256, - 258, 260, 264, 267, 269, 271, 277, 278, 280, 282, - 286, 289, 294, 298, 302, 306, 310, 314, 315, 317, - 318, 325, 327, 330, 332, 334, 336, 340, 342, 346, - 350, 354, 355, 358, 360, 365, 370, 375, 382, 389, - 391, 396, 400, 402, 406, 410, 414, 416, 420, 422, - 426, 428, 430, 432, 434, 438, 442, 444, 449, 451, - 453, 457, 458, 462, 464, 466, 468, 470, 472, 474, - 476, 478, 482, 484, 486, 488, 490, 493, 495, 497, - 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, 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 + 103, 104, 106, 108, 111, 112, 114, 119, 121, 125, + 127, 131, 133, 134, 136, 140, 144, 147, 149, 153, + 155, 159, 161, 165, 170, 172, 174, 179, 183, 187, + 194, 201, 203, 207, 209, 213, 217, 221, 225, 227, + 231, 233, 235, 237, 239, 240, 242, 244, 248, 252, + 255, 259, 261, 263, 267, 270, 272, 274, 280, 281, + 283, 285, 289, 292, 297, 301, 305, 309, 313, 317, + 318, 320, 321, 328, 330, 333, 335, 337, 339, 343, + 345, 349, 353, 357, 358, 361, 363, 368, 373, 378, + 385, 392, 394, 399, 403, 405, 409, 413, 417, 419, + 423, 425, 429, 431, 433, 435, 437, 441, 445, 447, + 452, 454, 456, 460, 461, 465, 467, 469, 471, 473, + 475, 477, 479, 481, 485, 487, 489, 491, 493, 496, + 498, 500, 502, 504, 507, 510, 512, 514, 517, 520, + 522, 524, 526, 528, 530, 533, 535, 538, 540, 542, + 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, + 564, 566, 568, 570, 572, 574, 575, 577, 579, 583, + 585, 590, 594, 599, 601, 603, 607, 613, 615, 619, + 621, 625, 627, 631, 633, 637, 642, 646, 648, 650, + 654, 658, 662, 666, 668, 670, 672, 674, 676, 678, + 680, 682, 684, 688, 694, 696, 700, 702, 706, 707, + 709, 711, 713, 715, 717, 719, 721, 722, 728, 731, + 733, 736, 739, 743, 745, 747, 751, 756, 758, 762, + 765, 769, 771, 775, 776, 778, 780, 783, 786, 790, + 792, 796, 798, 803, 808, 810, 812, 814, 816, 818, + 820, 821, 823, 826, 831, 832, 834, 836, 838, 839, + 841, 843, 845, 847, 849, 850, 852 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const short yyrhs[] = { 122, 0, -1, 123, -1, 124, -1, 123, 124, -1, - -1, 236, 125, 126, 39, 130, 3, 26, 133, 44, + -1, 237, 125, 126, 39, 130, 3, 26, 133, 44, -1, -1, 127, -1, 108, 128, 109, -1, 108, 109, - -1, 129, -1, 128, 129, -1, 239, -1, 239, 110, + -1, 129, -1, 128, 129, -1, 240, -1, 240, 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, - -1, 145, 138, 135, -1, 136, -1, 135, 136, -1, - 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, 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, - 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, 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, 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, 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, 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, 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, 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, -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 + -1, 146, 138, 135, -1, 136, -1, 135, 136, -1, + 153, -1, 183, -1, 151, -1, -1, 43, 16, 137, + -1, 193, -1, -1, 139, -1, 59, 140, 112, -1, + 59, 51, -1, -1, 141, -1, 143, -1, 141, 143, + -1, -1, 127, -1, 144, 51, 237, 142, -1, 145, + -1, 144, 113, 145, -1, 237, -1, 237, 108, 109, + -1, 240, -1, -1, 147, -1, 47, 148, 112, -1, + 47, 22, 112, -1, 47, 112, -1, 149, -1, 148, + 113, 149, -1, 237, -1, 237, 108, 109, -1, 240, + -1, 108, 200, 109, -1, 237, 152, 3, 150, -1, + 192, -1, 177, -1, 177, 108, 156, 109, -1, 237, + 3, 173, -1, 237, 3, 163, -1, 237, 108, 154, + 109, 3, 173, -1, 237, 108, 154, 109, 3, 163, + -1, 155, -1, 154, 113, 155, -1, 237, -1, 237, + 114, 240, -1, 237, 114, 237, -1, 190, 114, 240, + -1, 190, 114, 237, -1, 157, -1, 156, 113, 157, + -1, 173, -1, 186, -1, 240, -1, 150, -1, -1, + 159, -1, 160, -1, 159, 113, 160, -1, 240, 173, + 225, -1, 173, 225, -1, 35, 73, 173, -1, 172, + -1, 162, -1, 161, 113, 162, -1, 240, 173, -1, + 172, -1, 173, -1, 33, 108, 165, 109, 167, -1, + -1, 93, -1, 166, -1, 165, 113, 166, -1, 17, + 225, -1, 18, 173, 164, 225, -1, 18, 181, 225, + -1, 18, 182, 225, -1, 17, 181, 225, -1, 17, + 173, 225, -1, 17, 182, 225, -1, -1, 168, -1, + -1, 100, 87, 108, 169, 170, 109, -1, 171, -1, + 170, 171, -1, 4, -1, 19, -1, 180, -1, 115, + 170, 116, -1, 107, -1, 107, 117, 187, -1, 107, + 117, 230, -1, 232, 175, 196, -1, -1, 174, 176, + -1, 152, -1, 32, 108, 161, 109, -1, 83, 108, + 158, 109, -1, 84, 108, 158, 109, -1, 83, 196, + 73, 239, 232, 175, -1, 84, 196, 73, 239, 232, + 175, -1, 23, -1, 23, 40, 30, 240, -1, 61, + 73, 177, -1, 15, -1, 15, 118, 237, -1, 238, + 118, 237, -1, 15, 118, 240, -1, 238, -1, 238, + 118, 178, -1, 179, -1, 178, 118, 179, -1, 180, + -1, 17, -1, 18, -1, 17, -1, 181, 118, 17, + -1, 181, 118, 18, -1, 16, -1, 240, 152, 3, + 184, -1, 186, -1, 187, -1, 240, 114, 184, -1, + -1, 108, 185, 189, -1, 68, -1, 50, -1, 91, + -1, 6, -1, 8, -1, 188, -1, 230, -1, 240, + -1, 237, 118, 240, -1, 7, -1, 13, -1, 14, + -1, 5, -1, 189, 5, -1, 29, -1, 68, -1, + 81, -1, 191, -1, 72, 86, -1, 70, 56, -1, + 82, -1, 49, -1, 41, 76, -1, 31, 86, -1, + 96, -1, 52, -1, 193, -1, 63, -1, 45, -1, + 27, 86, -1, 190, -1, 191, 227, -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, -1, 197, -1, 198, -1, 110, + 214, 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, 205, -1, 203, + -1, 202, 194, 203, -1, 204, -1, 203, 195, 204, + -1, 205, -1, 205, 101, 205, -1, 206, 110, 200, + 111, -1, 110, 200, 111, -1, 207, -1, 208, -1, + 207, 218, 207, -1, 66, 218, 207, -1, 207, 218, + 65, -1, 66, 218, 65, -1, 209, -1, 85, -1, + 51, -1, 50, -1, 91, -1, 231, -1, 188, -1, + 240, -1, 237, -1, 100, 34, 199, -1, 100, 35, + 108, 210, 109, -1, 211, -1, 210, 113, 211, -1, + 107, -1, 240, 196, 212, -1, -1, 213, -1, 78, + -1, 20, -1, 74, -1, 215, -1, 219, -1, 217, + -1, -1, 36, 30, 108, 216, 189, -1, 37, 173, + -1, 106, -1, 106, 119, -1, 119, 106, -1, 119, + 106, 119, -1, 220, -1, 221, -1, 108, 237, 109, + -1, 220, 108, 222, 109, -1, 223, -1, 222, 113, + 223, -1, 120, 224, -1, 120, 118, 224, -1, 240, + -1, 224, 118, 240, -1, -1, 226, -1, 74, -1, + 38, 184, -1, 108, 109, -1, 108, 228, 109, -1, + 229, -1, 228, 113, 229, -1, 240, -1, 240, 110, + 230, 111, -1, 240, 110, 187, 111, -1, 230, -1, + 107, -1, 10, -1, 11, -1, 230, -1, 12, -1, + -1, 233, -1, 234, 236, -1, 115, 235, 10, 116, + -1, -1, 94, -1, 24, -1, 80, -1, -1, 57, + -1, 46, -1, 15, -1, 16, -1, 16, -1, -1, + 240, -1, 9, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { - 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 + 0, 353, 353, 359, 365, 382, 381, 410, 412, 415, + 419, 424, 431, 439, 444, 448, 457, 459, 467, 471, + 479, 483, 486, 489, 493, 513, 515, 523, 532, 536, + 551, 559, 572, 580, 579, 593, 605, 607, 609, 620, + 625, 627, 629, 635, 641, 643, 646, 657, 663, 669, + 676, 682, 691, 693, 704, 708, 711, 718, 724, 730, + 737, 743, 752, 754, 764, 778, 788, 804, 814, 830, + 836, 843, 853, 863, 868, 875, 882, 890, 900, 906, + 912, 916, 924, 935, 957, 959, 961, 967, 973, 981, + 987, 994, 999, 1005, 1011, 1017, 1020, 1026, 1036, 1038, + 1041, 1049, 1056, 1069, 1080, 1090, 1101, 1111, 1122, 1133, + 1135, 1142, 1140, 1149, 1154, 1160, 1165, 1168, 1172, 1177, + 1186, 1195, 1206, 1228, 1235, 1254, 1258, 1264, 1270, 1276, + 1286, 1296, 1302, 1313, 1327, 1336, 1346, 1356, 1366, 1374, + 1395, 1404, 1413, 1415, 1422, 1429, 1435, 1439, 1445, 1465, + 1475, 1477, 1478, 1485, 1485, 1490, 1497, 1503, 1508, 1512, + 1516, 1519, 1524, 1536, 1553, 1558, 1563, 1596, 1606, 1620, + 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, + 1632, 1633, 1639, 1641, 1642, 1645, 1652, 1664, 1666, 1670, + 1674, 1675, 1676, 1677, 1678, 1682, 1683, 1684, 1685, 1689, + 1690, 1697, 1697, 1698, 1698, 1700, 1702, 1707, 1709, 1714, + 1718, 1727, 1731, 1736, 1741, 1744, 1750, 1760, 1762, 1767, + 1769, 1774, 1776, 1782, 1784, 1789, 1798, 1806, 1812, 1818, + 1825, 1833, 1841, 1850, 1855, 1859, 1864, 1870, 1875, 1876, + 1877, 1890, 1904, 1908, 1913, 1917, 1922, 1929, 1942, 1944, + 1947, 1951, 1954, 1961, 1963, 1964, 1969, 1967, 1979, 1987, + 1989, 1990, 1991, 1993, 1997, 2005, 2020, 2026, 2033, 2046, + 2058, 2073, 2077, 2094, 2099, 2102, 2107, 2129, 2134, 2139, + 2145, 2151, 2159, 2167, 2175, 2182, 2192, 2197, 2203, 2205, + 2235, 2237, 2240, 2247, 2253, 2255, 2256, 2257, 2260, 2262, + 2263, 2266, 2271, 2278, 2285, 2287, 2292 }; #endif @@ -787,30 +787,30 @@ static const char *const yytname[] = "ObjectIdentifierElement", "optModuleDefinitionFlags", "ModuleDefinitionFlags", "ModuleDefinitionFlag", "optModuleBody", "ModuleBody", "AssignmentList", "Assignment", "@2", "optImports", - "ImportsDefinition", "ImportsBundleSet", "AssignedIdentifier", - "ImportsBundle", "ImportsList", "ImportsElement", "optExports", - "ExportsDefinition", "ExportsBody", "ExportsElement", "ValueSet", - "ValueSetTypeAssignment", "DefinedType", "DataTypeReference", - "ParameterArgumentList", "ParameterArgumentName", "ActualParameterList", - "ActualParameter", "optComponentTypeLists", "ComponentTypeLists", - "ComponentType", "AlternativeTypeLists", "AlternativeType", - "ObjectClass", "optUnique", "FieldSpec", "ClassField", "optWithSyntax", - "WithSyntax", "@3", "WithSyntaxList", "WithSyntaxToken", - "ExtensionAndException", "Type", "NSTD_IndirectMarker", - "TypeDeclaration", "TypeDeclarationSet", "ComplexTypeReference", - "ComplexTypeReferenceAmpList", "ComplexTypeReferenceElement", - "PrimitiveFieldReference", "FieldName", "DefinedObjectClass", - "ValueDefinition", "Value", "@4", "SimpleValue", "DefinedValue", - "RestrictedCharacterStringValue", "Opaque", "BasicTypeId", - "BasicTypeId_UniverationCompatible", "BasicType", "BasicString", - "UnionMark", "IntersectionMark", "optConstraints", "Constraint", - "SubtypeConstraint", "SetOfConstraints", "ElementSetSpecs", - "ElementSetSpec", "Unions", "Intersections", "IntersectionElements", - "ConstraintSubtypeElement", "ConstraintSpec", "SingleValue", - "ContainedSubtype", "InnerTypeConstraint", "WithComponentsList", - "WithComponentsElement", "optPresenceConstraint", "PresenceConstraint", - "GeneralConstraint", "UserDefinedConstraint", "@5", - "ContentsConstraint", "ConstraintRangeSpec", "TableConstraint", + "ImportsDefinition", "optImportsBundleSet", "ImportsBundleSet", + "AssignedIdentifier", "ImportsBundle", "ImportsList", "ImportsElement", + "optExports", "ExportsDefinition", "ExportsBody", "ExportsElement", + "ValueSet", "ValueSetTypeAssignment", "DefinedType", + "DataTypeReference", "ParameterArgumentList", "ParameterArgumentName", + "ActualParameterList", "ActualParameter", "optComponentTypeLists", + "ComponentTypeLists", "ComponentType", "AlternativeTypeLists", + "AlternativeType", "ObjectClass", "optUnique", "FieldSpec", + "ClassField", "optWithSyntax", "WithSyntax", "@3", "WithSyntaxList", + "WithSyntaxToken", "ExtensionAndException", "Type", + "NSTD_IndirectMarker", "TypeDeclaration", "TypeDeclarationSet", + "ComplexTypeReference", "ComplexTypeReferenceAmpList", + "ComplexTypeReferenceElement", "PrimitiveFieldReference", "FieldName", + "DefinedObjectClass", "ValueDefinition", "Value", "@4", "SimpleValue", + "DefinedValue", "RestrictedCharacterStringValue", "Opaque", + "BasicTypeId", "BasicTypeId_UniverationCompatible", "BasicType", + "BasicString", "UnionMark", "IntersectionMark", "optConstraints", + "Constraint", "SubtypeConstraint", "SetOfConstraints", + "ElementSetSpecs", "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", @@ -848,33 +848,33 @@ static const unsigned char yyr1[] = 127, 128, 128, 129, 129, 129, 130, 130, 131, 131, 132, 132, 132, 132, 132, 133, 133, 134, 135, 135, 136, 136, 136, 137, 136, 136, 138, 138, 139, 139, - 140, 140, 141, 141, 142, 143, 143, 144, 144, 144, - 145, 145, 146, 146, 146, 147, 147, 148, 148, 148, - 149, 150, 151, 151, 151, 152, 152, 152, 152, 153, - 153, 154, 154, 154, 154, 154, 155, 155, 156, 156, - 156, 156, 157, 157, 158, 158, 159, 159, 159, 159, - 160, 160, 161, 161, 161, 162, 163, 163, 164, 164, - 165, 165, 165, 165, 165, 165, 165, 166, 166, 168, - 167, 169, 169, 170, 170, 170, 170, 171, 171, 171, - 172, 173, 174, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 176, 176, 176, 176, 176, 176, 177, 177, - 178, 179, 179, 180, 180, 180, 181, 182, 183, 183, - 183, 184, 183, 183, 185, 185, 185, 185, 185, 185, - 186, 186, 187, 187, 187, 188, 188, 189, 189, 189, - 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, + 140, 140, 141, 141, 142, 142, 143, 144, 144, 145, + 145, 145, 146, 146, 147, 147, 147, 148, 148, 149, + 149, 149, 150, 151, 152, 152, 152, 153, 153, 153, + 153, 154, 154, 155, 155, 155, 155, 155, 156, 156, + 157, 157, 157, 157, 158, 158, 159, 159, 160, 160, + 160, 160, 161, 161, 162, 162, 162, 163, 164, 164, + 165, 165, 166, 166, 166, 166, 166, 166, 166, 167, + 167, 169, 168, 170, 170, 171, 171, 171, 171, 172, + 172, 172, 173, 174, 175, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 177, 177, 177, 177, 177, 177, + 178, 178, 179, 180, 180, 181, 181, 181, 182, 183, + 184, 184, 184, 185, 184, 184, 186, 186, 186, 186, + 186, 186, 187, 187, 188, 188, 188, 189, 189, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 191, 191, 191, 192, 192, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 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, + 198, 199, 199, 200, 200, 200, 200, 201, 201, 202, + 202, 203, 203, 204, 204, 205, 205, 205, 205, 205, + 205, 205, 205, 205, 206, 206, 207, 207, 207, 207, + 207, 208, 209, 209, 210, 210, 211, 211, 212, 212, + 213, 213, 213, 214, 214, 214, 216, 215, 217, 218, + 218, 218, 218, 219, 219, 220, 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 + 228, 229, 229, 229, 229, 229, 230, 230, 231, 231, + 232, 232, 233, 234, 235, 235, 235, 235, 236, 236, + 236, 237, 237, 238, 239, 239, 240 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -884,33 +884,33 @@ static const unsigned char yyr2[] = 2, 1, 2, 1, 4, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 0, 1, 3, 1, 2, 1, 1, 1, 0, 3, 1, 0, 1, 3, 2, - 1, 2, 0, 1, 4, 1, 3, 1, 3, 1, - 0, 1, 3, 3, 2, 1, 3, 1, 3, 1, - 3, 4, 1, 1, 4, 3, 3, 6, 6, 1, - 3, 1, 3, 3, 3, 3, 1, 3, 1, 1, - 1, 1, 0, 1, 1, 3, 3, 2, 3, 1, - 1, 3, 2, 1, 1, 5, 0, 1, 1, 3, - 2, 4, 3, 3, 3, 3, 3, 0, 1, 0, - 6, 1, 2, 1, 1, 1, 3, 1, 3, 3, - 3, 0, 2, 1, 4, 4, 4, 6, 6, 1, - 4, 3, 1, 3, 3, 3, 1, 3, 1, 3, - 1, 1, 1, 1, 3, 3, 1, 4, 1, 1, - 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, - 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, + 0, 1, 1, 2, 0, 1, 4, 1, 3, 1, + 3, 1, 0, 1, 3, 3, 2, 1, 3, 1, + 3, 1, 3, 4, 1, 1, 4, 3, 3, 6, + 6, 1, 3, 1, 3, 3, 3, 3, 1, 3, + 1, 1, 1, 1, 0, 1, 1, 3, 3, 2, + 3, 1, 1, 3, 2, 1, 1, 5, 0, 1, + 1, 3, 2, 4, 3, 3, 3, 3, 3, 0, + 1, 0, 6, 1, 2, 1, 1, 1, 3, 1, + 3, 3, 3, 0, 2, 1, 4, 4, 4, 6, + 6, 1, 4, 3, 1, 3, 3, 3, 1, 3, + 1, 3, 1, 1, 1, 1, 3, 3, 1, 4, + 1, 1, 3, 0, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 1, 1, 1, 2, 1, + 1, 1, 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, 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 + 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 @@ -918,314 +918,301 @@ static const unsigned char yyr2[] = means the default is an error. */ static const unsigned short yydefact[] = { - 0, 299, 300, 0, 2, 3, 5, 1, 4, 7, - 0, 0, 8, 304, 15, 10, 0, 11, 13, 16, + 0, 301, 302, 0, 2, 3, 5, 1, 4, 7, + 0, 0, 8, 306, 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, - 57, 59, 6, 0, 0, 37, 53, 52, 0, 0, - 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, 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, - 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, - 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 + 52, 0, 0, 26, 36, 53, 0, 56, 0, 57, + 59, 61, 6, 40, 0, 37, 55, 54, 0, 0, + 39, 0, 41, 42, 0, 47, 49, 51, 187, 0, + 188, 189, 190, 191, 192, 200, 193, 194, 195, 196, + 197, 198, 199, 27, 28, 32, 30, 31, 35, 0, + 0, 58, 60, 38, 43, 0, 0, 0, 33, 29, + 290, 134, 303, 0, 169, 0, 0, 183, 176, 180, + 182, 170, 0, 0, 171, 175, 179, 0, 0, 65, + 185, 172, 64, 181, 138, 0, 44, 48, 50, 34, + 0, 294, 68, 67, 123, 291, 298, 0, 184, 178, + 177, 174, 173, 0, 71, 0, 172, 73, 0, 290, + 0, 186, 0, 0, 45, 46, 0, 296, 297, 295, + 0, 0, 205, 300, 299, 292, 135, 137, 0, 0, + 0, 0, 0, 63, 158, 164, 159, 286, 287, 165, + 166, 156, 157, 83, 0, 78, 80, 81, 160, 161, + 82, 285, 277, 0, 279, 284, 281, 143, 144, 139, + 140, 142, 136, 155, 153, 149, 150, 151, 0, 162, + 290, 290, 0, 100, 0, 131, 0, 0, 205, 205, + 125, 124, 0, 0, 122, 206, 207, 209, 290, 72, + 77, 76, 75, 74, 289, 0, 236, 235, 0, 234, + 237, 0, 213, 0, 239, 0, 214, 217, 219, 221, + 223, 0, 227, 228, 233, 288, 238, 241, 240, 66, + 290, 278, 0, 0, 0, 0, 0, 0, 148, 145, + 0, 275, 273, 273, 273, 102, 274, 98, 273, 273, + 109, 0, 293, 0, 290, 0, 290, 0, 290, 0, + 0, 0, 290, 0, 0, 0, 253, 255, 254, 263, + 264, 0, 70, 69, 0, 259, 0, 0, 0, 0, + 0, 62, 0, 201, 202, 0, 203, 204, 0, 0, + 0, 0, 79, 280, 0, 0, 162, 141, 167, 154, + 163, 152, 276, 107, 0, 106, 108, 99, 273, 104, + 105, 0, 97, 110, 101, 0, 119, 0, 92, 95, + 96, 290, 133, 0, 0, 85, 86, 91, 273, 290, + 304, 0, 304, 0, 0, 258, 0, 211, 208, 0, + 0, 218, 260, 261, 232, 230, 0, 242, 0, 226, + 215, 220, 222, 224, 0, 231, 229, 283, 282, 168, + 146, 147, 103, 0, 132, 0, 126, 290, 94, 290, + 127, 290, 89, 273, 290, 305, 128, 290, 210, 256, + 265, 0, 0, 267, 212, 262, 246, 0, 244, 205, + 0, 225, 111, 120, 121, 93, 90, 87, 88, 123, + 123, 0, 0, 269, 271, 266, 0, 243, 0, 248, + 216, 0, 129, 130, 257, 270, 0, 268, 245, 251, + 252, 250, 247, 249, 115, 116, 0, 0, 113, 117, + 272, 0, 112, 114, 118 }; /* YYDEFGOTO[NTERM-NUM]. */ 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, 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 + 29, 30, 42, 43, 83, 84, 129, 54, 55, 61, + 62, 155, 63, 64, 65, 44, 45, 48, 49, 183, + 85, 118, 86, 143, 144, 184, 185, 354, 355, 356, + 347, 348, 132, 338, 212, 213, 342, 343, 441, 457, + 458, 357, 358, 161, 162, 221, 119, 199, 200, 459, + 273, 274, 87, 205, 265, 206, 207, 244, 329, 120, + 121, 122, 123, 315, 318, 224, 225, 226, 227, 294, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 417, + 418, 452, 453, 295, 296, 431, 297, 307, 298, 299, + 300, 412, 413, 433, 275, 276, 151, 193, 194, 255, + 256, 134, 135, 136, 160, 165, 257, 124, 404, 258 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -282 +#define YYPACT_NINF -274 static const short yypact[] = { - 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 + 77, -274, -274, 33, 77, -274, -274, -274, -274, -52, + 8, 107, -274, -274, -274, -274, 36, -274, 42, 267, + -274, -274, 149, 20, 79, 96, 132, 111, 208, 267, + -274, 105, -274, -274, -274, -274, -274, 220, -274, -274, + 69, 72, 193, -274, 213, -274, 158, -274, 117, -274, + 178, -274, -274, 183, 478, -274, -274, -274, 266, 182, + -274, 181, 266, -274, -28, -274, 189, -274, -274, 292, + -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, + -274, -274, -274, 478, -274, -274, -274, -274, -274, 345, + 631, -274, -274, -274, -274, 77, 266, 201, -274, -274, + -6, 194, -274, 236, -274, 248, 268, -274, -274, -274, + -274, -274, 291, 263, -274, -274, -274, 707, 348, 247, + -274, 251, -274, -274, 238, 354, -52, -274, -274, -274, + 255, 83, -274, -274, -274, -274, 55, 266, -274, -274, + -274, -274, -274, -81, -274, 252, -274, 253, 257, 58, + 80, -274, 310, 199, -274, -274, 241, -274, -274, -274, + 359, 555, 10, -274, -274, -274, -274, -274, 367, 707, + 266, 266, 229, -274, -274, -274, -274, -274, -274, -274, + -274, -274, -274, -274, 82, -274, -274, -274, -274, -274, + -274, -274, -274, 88, -274, -274, 261, -274, -274, 259, + -274, -274, -274, -274, -274, -274, -274, -274, 260, 265, + 249, 41, 119, -274, 264, 335, 273, 309, 94, 109, + -274, -274, 274, 211, -274, -274, -274, 278, -6, -274, + -274, -274, -274, -274, -274, 288, -274, -274, 74, -274, + -274, 282, -274, 229, -274, 283, 270, 227, 235, -274, + 294, 293, 74, -274, -274, -274, -274, -274, -274, -274, + 58, -274, 40, 289, 323, 388, 393, 199, -274, -274, + 199, -274, 0, 32, 0, -274, -274, 311, 32, 0, + 305, 241, -274, 376, 71, 327, 67, 334, 67, 337, + 229, 381, 297, 77, 307, 308, -274, -274, -274, 312, + -274, 229, -274, -274, 459, 302, 317, 469, 315, 321, + 319, -274, 324, -274, -274, 459, -274, -274, 459, 459, + 229, 733, -274, -274, 326, 336, -274, -274, -274, 427, + -274, -274, -274, -274, 328, -274, -274, -274, 0, -274, + -274, 347, -274, -274, -274, 393, 322, 122, -274, -274, + -274, 297, -274, 365, 339, 332, -274, -274, 0, 297, + 393, 340, 393, 351, 338, -274, 341, -274, -274, 331, + 352, -274, -274, 346, -274, -274, 229, 278, 16, -274, + 364, 235, -274, -274, 353, -274, -274, -274, -274, -274, + -274, -274, -274, 377, -274, 289, -274, 71, -274, 297, + -274, 68, -274, 0, 297, -274, -274, 297, -274, -274, + -274, 12, 160, -274, -274, -274, -274, 175, -274, 10, + 445, -274, -274, -274, -274, -274, -274, -274, -274, -274, + -274, 388, 393, 366, -274, -274, 331, -274, 16, 91, + -274, 43, -274, -274, 427, 366, 393, -274, -274, -274, + -274, -274, -274, -274, -274, -274, 43, 22, -274, -274, + -274, 18, -274, -274, -274 }; /* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { - -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 + -274, -274, -274, 482, -274, -274, 362, -274, 473, -274, + -274, 461, -274, -274, -274, 408, -274, -274, -274, -274, + -274, -274, 430, -274, 401, -274, -274, -274, 440, 355, + -274, -61, -274, -274, 330, -274, 240, 214, -274, 100, + -274, 108, 276, -274, -274, 226, -274, -274, -274, 52, + -172, -273, -96, -274, -76, -274, 228, -274, 250, -136, + 301, 304, -274, 39, -274, -125, -253, -119, 85, -12, + -7, -274, 21, -274, -274, -216, -274, -274, 209, -165, + 98, -274, 205, 204, -221, -274, -140, -274, -274, -274, + 86, -274, -274, -274, -274, -274, -274, 271, -274, -274, + -274, -274, 90, 95, -259, -274, -274, -274, 275, -141, + -274, -74, -274, -274, -274, -274, 1, -274, 166, -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 -272 +#define YYTABLE_NINF -274 static const short yytable[] = { - 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, - 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, 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, 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 + 18, 6, 287, 289, 133, 6, 18, 245, 189, 195, + 324, 349, 189, 333, 335, 336, 201, 13, 14, 339, + 340, 13, 454, 95, 187, 13, 454, 130, 168, 125, + 188, 51, 169, 7, 188, 197, 198, 455, 270, 197, + 198, 455, 50, 67, 90, 13, 14, 454, 51, 13, + 177, 178, 67, 186, 66, 89, 10, 268, 269, 50, + 197, 198, 455, 66, 174, 175, 176, 13, 177, 178, + 270, 179, 180, 90, 271, 88, 13, 13, 310, 392, + 13, 13, 32, 371, 89, 96, 67, 1, 2, 13, + 177, 178, 1, 2, 46, 222, 126, 66, 383, 402, + 220, 163, 353, 353, 88, 145, 271, 157, 181, 131, + 146, 449, 164, -25, 272, 277, 41, 15, 147, 189, + 223, 195, 325, 416, 349, 363, 189, 167, 201, 189, + 432, 462, 303, 456, 464, 187, 370, 456, 166, 190, + 196, 188, 423, 209, 428, 20, 19, 191, 188, 182, + 334, 188, 22, 202, 208, 384, 131, 145, 456, 31, + 231, 233, 146, 158, 186, 450, 172, 375, 33, 451, + 147, 230, 232, 131, 346, 346, -84, 159, 346, 222, + 305, 386, 131, 131, 47, 34, 131, 191, 350, 192, + 35, 259, 13, 306, 222, 260, 365, 261, 1, 2, + 36, 262, 286, 439, 223, 174, 175, 176, 13, 177, + 178, 37, 179, 180, 1, 2, 39, 288, 175, 223, + 13, 177, 178, 234, 179, 180, 1, 2, 280, 57, + 58, 396, 281, 235, 60, 397, 175, 52, 13, 177, + 178, 234, 179, 180, 1, 2, 40, 291, 292, 181, + 190, 235, 196, 326, 424, 398, 330, 209, 210, 211, + 209, 236, 237, 403, 208, 268, 269, 203, 208, 435, + 56, 208, 53, 436, 351, 13, 359, 238, 359, 236, + 237, 1, 2, 23, 437, 463, 59, 270, 438, 463, + 182, 92, 24, 93, 366, 238, 239, 97, 13, 177, + 178, 350, 240, 426, 1, 2, 331, 204, 98, 332, + 128, 241, 137, 25, 239, 26, 308, 309, 242, 293, + 240, 243, 138, 271, 27, 1, 2, 197, 198, 241, + 429, 313, 314, 430, 139, 394, 242, 316, 317, 243, + 197, 198, 101, 102, 140, 390, 391, 141, 100, 142, + 405, 148, 405, 442, 443, 149, 152, 153, -273, 150, + 101, 102, -273, 156, 131, 172, 170, 171, 419, 214, + 228, 263, 103, 68, 104, 283, 105, 264, 266, 267, + 282, 284, 285, 312, 290, 326, 106, 351, 301, 304, + 107, 359, 311, 328, 108, 319, 208, 109, 70, 71, + 72, 434, 13, 320, 337, 341, 345, 360, 110, 73, + 362, 364, 131, 111, 74, 112, 75, 113, 367, 368, + 369, 372, 434, 373, 76, 376, 114, 115, 419, 378, + 379, 380, 389, 77, 393, 78, 460, 387, 399, 395, + 79, 116, 80, 81, 82, 401, 409, 388, 400, 406, + 410, 411, 175, 117, 13, 177, 178, 234, 179, 180, + 1, 2, 408, 414, 421, 415, 175, 235, 13, 177, + 178, 234, 179, 180, 1, 2, 175, 420, 13, 177, + 178, 234, 179, 180, 446, 422, 8, 13, 154, 21, + 38, 99, 94, 1, 2, 236, 237, 127, 91, 229, + 322, 427, 361, 173, 302, 425, 68, 344, 461, 236, + 237, 238, 278, 352, 327, 279, 444, 377, 440, 236, + 381, 69, 382, 321, 448, 238, 447, 445, 407, 0, + 239, 70, 71, 72, 374, 0, 240, 323, 0, 0, + 0, 0, 73, 0, 239, 241, 0, 74, 0, 75, + 240, 0, 0, 0, 0, 243, 0, 76, 0, 241, + 240, 0, 0, 0, 0, 0, 77, 0, 78, 243, + 101, 102, 0, 79, 0, 80, 81, 82, 215, 0, + 0, 0, 103, 68, 104, 0, 105, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, + 107, 0, 0, 0, 108, 0, 0, 109, 70, 71, + 72, 0, 0, 0, 0, 0, 217, 0, 110, 73, + 0, 0, 0, 111, 74, 112, 75, 113, 0, 0, + 0, 0, 0, 0, 76, 0, 114, 115, 218, 219, + 0, 0, 0, 77, 0, 78, 101, 102, 0, 0, + 79, 116, 80, 81, 82, 0, 0, 0, 103, 68, + 104, 0, 105, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, + 108, 0, 0, 109, 70, 71, 72, 0, 0, 0, + 0, 0, 0, 0, 110, 73, 0, 0, 0, 111, + 74, 112, 75, 113, 0, 0, 0, 0, 0, 0, + 76, 0, 114, 115, 0, 0, 0, 0, 0, 77, + 0, 78, 1, 2, 0, 0, 79, 116, 80, 81, + 82, 0, 0, 0, 103, 68, 104, 0, 105, 0, + 175, 0, 13, 177, 178, 234, 179, 180, 106, 0, + 0, 0, 107, 0, 0, 0, 108, 0, 0, 109, + 70, 71, 72, 0, 0, 0, 0, 0, 0, 0, + 110, 73, 0, 0, 0, 111, 74, 112, 75, 113, + 0, 0, 0, 236, 0, 0, 76, 0, 114, 115, + 0, 0, 0, 0, 0, 77, 0, 78, 385, 0, + 0, 0, 79, 116, 80, 81, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 240 }; static const short yycheck[] = { - 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, - 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, + 10, 0, 218, 219, 100, 4, 16, 172, 149, 150, + 263, 284, 153, 272, 273, 274, 152, 9, 10, 278, + 279, 9, 4, 51, 149, 9, 4, 33, 109, 90, + 149, 41, 113, 0, 153, 17, 18, 19, 38, 17, + 18, 19, 41, 53, 54, 9, 10, 4, 58, 9, + 10, 11, 62, 149, 53, 54, 108, 16, 17, 58, + 17, 18, 19, 62, 6, 7, 8, 9, 10, 11, + 38, 13, 14, 83, 74, 54, 9, 9, 243, 338, + 9, 9, 62, 304, 83, 113, 96, 15, 16, 9, + 10, 11, 15, 16, 22, 85, 95, 96, 319, 358, + 161, 46, 35, 35, 83, 117, 74, 24, 50, 115, + 117, 20, 57, 44, 210, 211, 47, 109, 117, 260, + 110, 262, 263, 107, 397, 290, 267, 137, 264, 270, + 118, 109, 228, 115, 116, 260, 301, 115, 137, 149, + 150, 260, 395, 153, 403, 109, 39, 107, 267, 91, + 118, 270, 110, 152, 153, 320, 115, 169, 115, 10, + 170, 171, 169, 80, 260, 74, 108, 307, 89, 78, + 169, 170, 171, 115, 107, 107, 109, 94, 107, 85, + 106, 321, 115, 115, 112, 89, 115, 107, 284, 109, + 58, 109, 9, 119, 85, 113, 292, 109, 15, 16, + 89, 113, 108, 419, 110, 6, 7, 8, 9, 10, + 11, 3, 13, 14, 15, 16, 111, 108, 7, 110, + 9, 10, 11, 12, 13, 14, 15, 16, 109, 112, + 113, 109, 113, 22, 51, 113, 7, 44, 9, 10, + 11, 12, 13, 14, 15, 16, 26, 36, 37, 50, + 260, 22, 262, 263, 395, 351, 266, 267, 17, 18, + 270, 50, 51, 359, 263, 16, 17, 68, 267, 109, + 112, 270, 59, 113, 284, 9, 286, 66, 288, 50, + 51, 15, 16, 16, 109, 457, 108, 38, 113, 461, + 91, 109, 25, 112, 293, 66, 85, 108, 9, 10, + 11, 397, 91, 399, 15, 16, 267, 108, 16, 270, + 109, 100, 118, 46, 85, 48, 34, 35, 107, 108, + 91, 110, 86, 74, 57, 15, 16, 17, 18, 100, + 404, 104, 105, 407, 86, 345, 107, 102, 103, 110, + 17, 18, 15, 16, 76, 17, 18, 56, 3, 86, + 360, 3, 362, 429, 430, 108, 118, 3, 109, 108, + 15, 16, 113, 108, 115, 108, 114, 114, 378, 10, + 3, 110, 27, 28, 29, 40, 31, 118, 118, 114, + 116, 108, 73, 113, 110, 395, 41, 397, 110, 101, + 45, 401, 109, 5, 49, 101, 395, 52, 53, 54, + 55, 411, 9, 110, 93, 100, 30, 73, 63, 64, + 73, 30, 115, 68, 69, 70, 71, 72, 111, 111, + 108, 119, 432, 106, 79, 110, 81, 82, 438, 108, + 111, 107, 5, 88, 87, 90, 446, 111, 73, 117, + 95, 96, 97, 98, 99, 113, 108, 111, 109, 109, + 109, 120, 7, 108, 9, 10, 11, 12, 13, 14, + 15, 16, 111, 111, 111, 119, 7, 22, 9, 10, + 11, 12, 13, 14, 15, 16, 7, 113, 9, 10, + 11, 12, 13, 14, 118, 108, 4, 9, 126, 16, + 29, 83, 62, 15, 16, 50, 51, 96, 58, 169, + 260, 401, 288, 148, 228, 397, 28, 281, 456, 50, + 51, 66, 211, 285, 264, 211, 431, 308, 420, 50, + 315, 43, 318, 252, 438, 66, 436, 432, 362, -1, + 85, 53, 54, 55, 65, -1, 91, 262, -1, -1, + -1, -1, 64, -1, 85, 100, -1, 69, -1, 71, + 91, -1, -1, -1, -1, 110, -1, 79, -1, 100, + 91, -1, -1, -1, -1, -1, 88, -1, 90, 110, + 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, + 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, -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, @@ -1234,61 +1221,70 @@ static const short yycheck[] = -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, 90, 15, 16, -1, -1, 95, 96, 97, 98, + 99, -1, -1, -1, 27, 28, 29, -1, 31, -1, + 7, -1, 9, 10, 11, 12, 13, 14, 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, 50, -1, -1, 79, -1, 81, 82, + -1, -1, -1, -1, -1, 88, -1, 90, 65, -1, + -1, -1, 95, 96, 97, 98, 99, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 91 }; /* 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, 236, 0, 124, 125, - 108, 126, 127, 9, 10, 109, 128, 129, 239, 39, + 0, 15, 16, 122, 123, 124, 237, 0, 124, 125, + 108, 126, 127, 9, 10, 109, 128, 129, 240, 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, - 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, 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, 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, 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, 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 + 26, 47, 133, 134, 146, 147, 22, 112, 148, 149, + 237, 240, 44, 59, 138, 139, 112, 112, 113, 108, + 51, 140, 141, 143, 144, 145, 237, 240, 28, 43, + 53, 54, 55, 64, 69, 71, 79, 88, 90, 95, + 97, 98, 99, 135, 136, 151, 153, 183, 193, 237, + 240, 149, 109, 112, 143, 51, 113, 108, 16, 136, + 3, 15, 16, 27, 29, 31, 41, 45, 49, 52, + 63, 68, 70, 72, 81, 82, 96, 108, 152, 177, + 190, 191, 192, 193, 238, 152, 237, 145, 109, 137, + 33, 115, 163, 173, 232, 233, 234, 118, 86, 86, + 76, 56, 86, 154, 155, 190, 191, 237, 3, 108, + 108, 227, 118, 3, 127, 142, 108, 24, 80, 94, + 235, 174, 175, 46, 57, 236, 237, 240, 109, 113, + 114, 114, 108, 150, 6, 7, 8, 10, 11, 13, + 14, 50, 91, 150, 156, 157, 173, 186, 188, 230, + 240, 107, 109, 228, 229, 230, 240, 17, 18, 178, + 179, 180, 237, 68, 108, 184, 186, 187, 237, 240, + 17, 18, 165, 166, 10, 23, 32, 61, 83, 84, + 152, 176, 85, 110, 196, 197, 198, 199, 3, 155, + 237, 240, 237, 240, 12, 22, 50, 51, 66, 85, + 91, 100, 107, 110, 188, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 230, 231, 237, 240, 109, + 113, 109, 113, 110, 118, 185, 118, 114, 16, 17, + 38, 74, 173, 181, 182, 225, 226, 173, 181, 182, + 109, 113, 116, 40, 108, 73, 108, 196, 108, 196, + 110, 36, 37, 108, 200, 214, 215, 217, 219, 220, + 221, 110, 163, 173, 101, 106, 119, 218, 34, 35, + 200, 109, 113, 104, 105, 194, 102, 103, 195, 101, + 110, 218, 157, 229, 187, 230, 240, 179, 5, 189, + 240, 184, 184, 225, 118, 225, 225, 93, 164, 225, + 225, 100, 167, 168, 166, 30, 107, 161, 162, 172, + 173, 240, 177, 35, 158, 159, 160, 172, 173, 240, + 73, 158, 73, 200, 30, 173, 237, 111, 111, 108, + 200, 205, 119, 106, 65, 207, 110, 199, 108, 111, + 107, 203, 204, 205, 200, 65, 207, 111, 111, 5, + 17, 18, 225, 87, 240, 117, 109, 113, 173, 73, + 109, 113, 225, 173, 239, 240, 109, 239, 111, 108, + 109, 120, 222, 223, 111, 119, 107, 210, 211, 240, + 113, 111, 108, 187, 230, 162, 173, 160, 225, 232, + 232, 216, 118, 224, 240, 109, 113, 109, 113, 196, + 201, 169, 175, 175, 189, 224, 118, 223, 211, 20, + 74, 78, 212, 213, 4, 19, 115, 170, 171, 180, + 240, 170, 109, 171, 116 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -1839,14 +1835,14 @@ yyreduce: switch (yyn) { case 2: -#line 353 "asn1p_y.y" +#line 354 "asn1p_y.y" { *(void **)param = yyvsp[0].a_grammar; } break; case 3: -#line 359 "asn1p_y.y" +#line 360 "asn1p_y.y" { yyval.a_grammar = asn1p_new(); checkmem(yyval.a_grammar); @@ -1855,7 +1851,7 @@ yyreduce: break; case 4: -#line 364 "asn1p_y.y" +#line 365 "asn1p_y.y" { yyval.a_grammar = yyvsp[-1].a_grammar; TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next); @@ -1863,12 +1859,12 @@ yyreduce: break; case 5: -#line 381 "asn1p_y.y" +#line 382 "asn1p_y.y" { currentModule = asn1p_module_new(); } break; case 6: -#line 386 "asn1p_y.y" +#line 387 "asn1p_y.y" { yyval.a_module = currentModule; @@ -1889,31 +1885,31 @@ yyreduce: break; case 7: -#line 410 "asn1p_y.y" +#line 411 "asn1p_y.y" { yyval.a_oid = 0; } break; case 8: -#line 411 "asn1p_y.y" +#line 412 "asn1p_y.y" { yyval.a_oid = yyvsp[0].a_oid; } break; case 9: -#line 415 "asn1p_y.y" +#line 416 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; } break; case 10: -#line 418 "asn1p_y.y" +#line 419 "asn1p_y.y" { yyval.a_oid = 0; } break; case 11: -#line 424 "asn1p_y.y" +#line 425 "asn1p_y.y" { yyval.a_oid = asn1p_oid_new(); asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1923,7 +1919,7 @@ yyreduce: break; case 12: -#line 430 "asn1p_y.y" +#line 431 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1933,7 +1929,7 @@ yyreduce: break; case 13: -#line 439 "asn1p_y.y" +#line 440 "asn1p_y.y" { /* iso */ yyval.a_oid_arc.name = yyvsp[0].tv_str; yyval.a_oid_arc.number = -1; @@ -1941,7 +1937,7 @@ yyreduce: break; case 14: -#line 443 "asn1p_y.y" +#line 444 "asn1p_y.y" { /* iso(1) */ yyval.a_oid_arc.name = yyvsp[-3].tv_str; yyval.a_oid_arc.number = yyvsp[-1].a_int; @@ -1949,7 +1945,7 @@ yyreduce: break; case 15: -#line 447 "asn1p_y.y" +#line 448 "asn1p_y.y" { /* 1 */ yyval.a_oid_arc.name = 0; yyval.a_oid_arc.number = yyvsp[0].a_int; @@ -1957,61 +1953,61 @@ yyreduce: break; case 16: -#line 457 "asn1p_y.y" +#line 458 "asn1p_y.y" { yyval.a_module_flags = MSF_NOFLAGS; } break; case 17: -#line 458 "asn1p_y.y" +#line 459 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; } break; case 18: -#line 467 "asn1p_y.y" +#line 468 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; } break; case 19: -#line 470 "asn1p_y.y" +#line 471 "asn1p_y.y" { yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags; } break; case 20: -#line 479 "asn1p_y.y" +#line 480 "asn1p_y.y" { yyval.a_module_flags = MSF_EXPLICIT_TAGS; } break; case 21: -#line 482 "asn1p_y.y" +#line 483 "asn1p_y.y" { yyval.a_module_flags = MSF_IMPLICIT_TAGS; } break; case 22: -#line 485 "asn1p_y.y" +#line 486 "asn1p_y.y" { yyval.a_module_flags = MSF_AUTOMATIC_TAGS; } break; case 23: -#line 488 "asn1p_y.y" +#line 489 "asn1p_y.y" { yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED; } break; case 24: -#line 492 "asn1p_y.y" +#line 493 "asn1p_y.y" { /* X.680Amd1 specifies TAG and XER */ if(strcmp(yyvsp[-1].tv_str, "TAG") == 0) { @@ -2030,19 +2026,19 @@ yyreduce: break; case 25: -#line 513 "asn1p_y.y" +#line 514 "asn1p_y.y" { yyval.a_module = 0; } break; case 26: -#line 514 "asn1p_y.y" +#line 515 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; } break; case 27: -#line 523 "asn1p_y.y" +#line 524 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); AL_IMPORT(yyval.a_module, exports, yyvsp[-2].a_module, xp_next); @@ -2052,14 +2048,14 @@ yyreduce: break; case 28: -#line 532 "asn1p_y.y" +#line 533 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; } break; case 29: -#line 535 "asn1p_y.y" +#line 536 "asn1p_y.y" { if(yyvsp[-1].a_module) { yyval.a_module = yyvsp[-1].a_module; @@ -2072,7 +2068,7 @@ yyreduce: break; case 30: -#line 551 "asn1p_y.y" +#line 552 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2083,7 +2079,7 @@ yyreduce: break; case 31: -#line 558 "asn1p_y.y" +#line 559 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2094,7 +2090,7 @@ yyreduce: break; case 32: -#line 571 "asn1p_y.y" +#line 572 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2105,12 +2101,12 @@ yyreduce: break; case 33: -#line 579 "asn1p_y.y" +#line 580 "asn1p_y.y" { asn1p_lexer_hack_push_encoding_control(); } break; case 34: -#line 580 "asn1p_y.y" +#line 581 "asn1p_y.y" { fprintf(stderr, "WARNING: ENCODING-CONTROL %s " @@ -2122,7 +2118,7 @@ yyreduce: break; case 35: -#line 592 "asn1p_y.y" +#line 593 "asn1p_y.y" { return yyerror( "Attempt to redefine a standard basic string type, " @@ -2131,12 +2127,12 @@ yyreduce: break; case 36: -#line 605 "asn1p_y.y" +#line 606 "asn1p_y.y" { yyval.a_module = 0; } break; case 38: -#line 609 "asn1p_y.y" +#line 610 "asn1p_y.y" { if(!saved_aid && 0) return yyerror("Unterminated IMPORTS FROM, " @@ -2147,14 +2143,19 @@ yyreduce: break; case 39: -#line 619 "asn1p_y.y" +#line 620 "asn1p_y.y" { return yyerror("Empty IMPORTS list"); } break; case 40: -#line 625 "asn1p_y.y" +#line 626 "asn1p_y.y" + { yyval.a_module = asn1p_module_new(); } + break; + + case 42: +#line 630 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2162,26 +2163,26 @@ yyreduce: } break; - case 41: -#line 630 "asn1p_y.y" + case 43: +#line 635 "asn1p_y.y" { yyval.a_module = yyvsp[-1].a_module; TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next); } break; - case 42: -#line 637 "asn1p_y.y" + case 44: +#line 642 "asn1p_y.y" { memset(&yyval.a_aid, 0, sizeof(yyval.a_aid)); } break; - case 43: -#line 638 "asn1p_y.y" + case 45: +#line 643 "asn1p_y.y" { yyval.a_aid.oid = yyvsp[0].a_oid; } break; - case 44: -#line 642 "asn1p_y.y" + case 46: +#line 647 "asn1p_y.y" { yyval.a_xports = yyvsp[-3].a_xports; yyval.a_xports->fromModuleName = yyvsp[-1].tv_str; @@ -2192,8 +2193,8 @@ yyreduce: } break; - case 45: -#line 653 "asn1p_y.y" + case 47: +#line 658 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); checkmem(yyval.a_xports); @@ -2201,36 +2202,16 @@ yyreduce: } break; - case 46: -#line 658 "asn1p_y.y" + case 48: +#line 663 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); } break; - case 47: -#line 665 "asn1p_y.y" - { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[0].tv_str; - yyval.a_expr->expr_type = A1TC_REFERENCE; - } - break; - - case 48: -#line 671 "asn1p_y.y" - { /* Completely equivalent to above */ - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyval.a_expr->expr_type = A1TC_REFERENCE; - } - break; - case 49: -#line 677 "asn1p_y.y" +#line 670 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2240,12 +2221,32 @@ yyreduce: break; case 50: -#line 687 "asn1p_y.y" - { yyval.a_module = 0; } +#line 676 "asn1p_y.y" + { /* Completely equivalent to above */ + yyval.a_expr = NEW_EXPR(); + checkmem(yyval.a_expr); + yyval.a_expr->Identifier = yyvsp[-2].tv_str; + yyval.a_expr->expr_type = A1TC_REFERENCE; + } break; case 51: -#line 688 "asn1p_y.y" +#line 682 "asn1p_y.y" + { + yyval.a_expr = NEW_EXPR(); + checkmem(yyval.a_expr); + yyval.a_expr->Identifier = yyvsp[0].tv_str; + yyval.a_expr->expr_type = A1TC_REFERENCE; + } + break; + + case 52: +#line 692 "asn1p_y.y" + { yyval.a_module = 0; } + break; + + case 53: +#line 693 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -2257,22 +2258,22 @@ yyreduce: } break; - case 52: -#line 700 "asn1p_y.y" + case 54: +#line 705 "asn1p_y.y" { yyval.a_xports = yyvsp[-1].a_xports; } break; - case 53: -#line 703 "asn1p_y.y" + case 55: +#line 708 "asn1p_y.y" { yyval.a_xports = 0; } break; - case 54: -#line 706 "asn1p_y.y" + case 56: +#line 711 "asn1p_y.y" { /* Empty EXPORTS clause effectively prohibits export. */ yyval.a_xports = asn1p_xports_new(); @@ -2280,8 +2281,8 @@ yyreduce: } break; - case 55: -#line 714 "asn1p_y.y" + case 57: +#line 719 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); assert(yyval.a_xports); @@ -2289,36 +2290,16 @@ yyreduce: } break; - case 56: -#line 719 "asn1p_y.y" + case 58: +#line 724 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); } break; - case 57: -#line 726 "asn1p_y.y" - { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[0].tv_str; - yyval.a_expr->expr_type = A1TC_EXPORTVAR; - } - break; - - case 58: -#line 732 "asn1p_y.y" - { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyval.a_expr->expr_type = A1TC_EXPORTVAR; - } - break; - case 59: -#line 738 "asn1p_y.y" +#line 731 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2328,12 +2309,32 @@ yyreduce: break; case 60: -#line 747 "asn1p_y.y" - { yyval.a_constr = yyvsp[-1].a_constr; } +#line 737 "asn1p_y.y" + { + yyval.a_expr = NEW_EXPR(); + checkmem(yyval.a_expr); + yyval.a_expr->Identifier = yyvsp[-2].tv_str; + yyval.a_expr->expr_type = A1TC_EXPORTVAR; + } break; case 61: -#line 750 "asn1p_y.y" +#line 743 "asn1p_y.y" + { + yyval.a_expr = NEW_EXPR(); + checkmem(yyval.a_expr); + yyval.a_expr->Identifier = yyvsp[0].tv_str; + yyval.a_expr->expr_type = A1TC_EXPORTVAR; + } + break; + + case 62: +#line 752 "asn1p_y.y" + { yyval.a_constr = yyvsp[-1].a_constr; } + break; + + case 63: +#line 755 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2343,15 +2344,15 @@ yyreduce: } break; - case 62: -#line 760 "asn1p_y.y" + case 64: +#line 765 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; - case 63: -#line 773 "asn1p_y.y" + case 65: +#line 778 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2361,8 +2362,8 @@ yyreduce: } break; - case 64: -#line 783 "asn1p_y.y" + case 66: +#line 788 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2373,8 +2374,8 @@ yyreduce: } break; - case 65: -#line 803 "asn1p_y.y" + case 67: +#line 808 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2383,8 +2384,8 @@ yyreduce: } break; - case 66: -#line 809 "asn1p_y.y" + case 68: +#line 814 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2393,26 +2394,26 @@ yyreduce: } break; - case 67: -#line 825 "asn1p_y.y" - { - yyval.a_expr = yyvsp[0].a_expr; - yyval.a_expr->Identifier = yyvsp[-5].tv_str; - yyval.a_expr->lhs_params = yyvsp[-3].a_plist; - } - break; - - case 68: -#line 831 "asn1p_y.y" - { - yyval.a_expr = yyvsp[0].a_expr; - yyval.a_expr->Identifier = yyvsp[-5].tv_str; - yyval.a_expr->lhs_params = yyvsp[-3].a_plist; - } - break; - case 69: -#line 839 "asn1p_y.y" +#line 830 "asn1p_y.y" + { + yyval.a_expr = yyvsp[0].a_expr; + yyval.a_expr->Identifier = yyvsp[-5].tv_str; + yyval.a_expr->lhs_params = yyvsp[-3].a_plist; + } + break; + + case 70: +#line 836 "asn1p_y.y" + { + yyval.a_expr = yyvsp[0].a_expr; + yyval.a_expr->Identifier = yyvsp[-5].tv_str; + yyval.a_expr->lhs_params = yyvsp[-3].a_plist; + } + break; + + case 71: +#line 844 "asn1p_y.y" { int ret; yyval.a_plist = asn1p_paramlist_new(yylineno); @@ -2424,8 +2425,8 @@ yyreduce: } break; - case 70: -#line 848 "asn1p_y.y" + case 72: +#line 853 "asn1p_y.y" { int ret; yyval.a_plist = yyvsp[-2].a_plist; @@ -2436,50 +2437,38 @@ yyreduce: } break; - case 71: -#line 859 "asn1p_y.y" + case 73: +#line 864 "asn1p_y.y" { yyval.a_parg.governor = NULL; yyval.a_parg.argument = yyvsp[0].tv_str; } break; - case 72: -#line 863 "asn1p_y.y" - { - int ret; - yyval.a_parg.governor = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_parg.governor, yyvsp[-2].tv_str, 0); - checkmem(ret == 0); - yyval.a_parg.argument = yyvsp[0].tv_str; - } - break; - - case 73: -#line 870 "asn1p_y.y" - { - int ret; - yyval.a_parg.governor = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_parg.governor, yyvsp[-2].tv_str, 0); - checkmem(ret == 0); - yyval.a_parg.argument = yyvsp[0].tv_str; - } - break; - case 74: -#line 877 "asn1p_y.y" +#line 868 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_parg.governor, - ASN_EXPR_TYPE2STR(yyvsp[-2].a_type), 1); + ret = asn1p_ref_add_component(yyval.a_parg.governor, yyvsp[-2].tv_str, 0); checkmem(ret == 0); yyval.a_parg.argument = yyvsp[0].tv_str; } break; case 75: -#line 885 "asn1p_y.y" +#line 875 "asn1p_y.y" + { + int ret; + yyval.a_parg.governor = asn1p_ref_new(yylineno); + ret = asn1p_ref_add_component(yyval.a_parg.governor, yyvsp[-2].tv_str, 0); + checkmem(ret == 0); + yyval.a_parg.argument = yyvsp[0].tv_str; + } + break; + + case 76: +#line 882 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -2490,8 +2479,20 @@ yyreduce: } break; - case 76: -#line 896 "asn1p_y.y" + case 77: +#line 890 "asn1p_y.y" + { + int ret; + yyval.a_parg.governor = asn1p_ref_new(yylineno); + ret = asn1p_ref_add_component(yyval.a_parg.governor, + ASN_EXPR_TYPE2STR(yyvsp[-2].a_type), 1); + checkmem(ret == 0); + yyval.a_parg.argument = yyvsp[0].tv_str; + } + break; + + case 78: +#line 901 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2499,23 +2500,23 @@ yyreduce: } break; - case 77: -#line 901 "asn1p_y.y" + case 79: +#line 906 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); } break; - case 78: -#line 908 "asn1p_y.y" + case 80: +#line 913 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; - case 79: -#line 911 "asn1p_y.y" + case 81: +#line 916 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2526,8 +2527,8 @@ yyreduce: } break; - case 80: -#line 919 "asn1p_y.y" + case 82: +#line 924 "asn1p_y.y" { asn1p_ref_t *ref; yyval.a_expr = NEW_EXPR(); @@ -2541,8 +2542,8 @@ yyreduce: } break; - case 81: -#line 930 "asn1p_y.y" + case 83: +#line 935 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); yyval.a_expr->expr_type = A1TC_VALUESET; @@ -2551,18 +2552,18 @@ yyreduce: } break; - case 82: -#line 953 "asn1p_y.y" + case 84: +#line 958 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); } break; - case 83: -#line 954 "asn1p_y.y" + case 85: +#line 959 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; - case 84: -#line 957 "asn1p_y.y" + case 86: +#line 962 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2570,16 +2571,16 @@ yyreduce: } break; - case 85: -#line 962 "asn1p_y.y" + case 87: +#line 967 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); } break; - case 86: -#line 969 "asn1p_y.y" + case 88: +#line 974 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2589,8 +2590,8 @@ yyreduce: } break; - case 87: -#line 976 "asn1p_y.y" + case 89: +#line 981 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; yyvsp[0].a_marker.flags |= yyval.a_expr->marker.flags; @@ -2599,8 +2600,8 @@ yyreduce: } break; - case 88: -#line 982 "asn1p_y.y" + case 90: +#line 987 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2610,15 +2611,15 @@ yyreduce: } break; - case 89: -#line 989 "asn1p_y.y" + case 91: +#line 994 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; - case 90: -#line 995 "asn1p_y.y" + case 92: +#line 1000 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2626,16 +2627,16 @@ yyreduce: } break; - case 91: -#line 1000 "asn1p_y.y" + case 93: +#line 1005 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); } break; - case 92: -#line 1007 "asn1p_y.y" + case 94: +#line 1012 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2643,23 +2644,23 @@ yyreduce: } break; - case 93: -#line 1012 "asn1p_y.y" + case 95: +#line 1017 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; - case 94: -#line 1015 "asn1p_y.y" + case 96: +#line 1020 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; _fixup_anonymous_identifier(yyval.a_expr); } break; - case 95: -#line 1022 "asn1p_y.y" + case 97: +#line 1027 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; checkmem(yyval.a_expr); @@ -2669,18 +2670,18 @@ yyreduce: } break; - case 96: -#line 1032 "asn1p_y.y" + case 98: +#line 1037 "asn1p_y.y" { yyval.a_int = 0; } break; - case 97: -#line 1033 "asn1p_y.y" + case 99: +#line 1038 "asn1p_y.y" { yyval.a_int = 1; } break; - case 98: -#line 1037 "asn1p_y.y" + case 100: +#line 1042 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2690,16 +2691,16 @@ yyreduce: } break; - case 99: -#line 1044 "asn1p_y.y" + case 101: +#line 1049 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); } break; - case 100: -#line 1054 "asn1p_y.y" + case 102: +#line 1059 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2710,8 +2711,8 @@ yyreduce: } break; - case 101: -#line 1064 "asn1p_y.y" + case 103: +#line 1069 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); yyval.a_expr->Identifier = yyvsp[-3].tv_str; @@ -2723,8 +2724,8 @@ yyreduce: } break; - case 102: -#line 1075 "asn1p_y.y" + case 104: +#line 1080 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2735,8 +2736,8 @@ yyreduce: } break; - case 103: -#line 1085 "asn1p_y.y" + case 105: +#line 1090 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2748,8 +2749,8 @@ yyreduce: } break; - case 104: -#line 1096 "asn1p_y.y" + case 106: +#line 1101 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2760,8 +2761,8 @@ yyreduce: } break; - case 105: -#line 1106 "asn1p_y.y" + case 107: +#line 1111 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2773,8 +2774,8 @@ yyreduce: } break; - case 106: -#line 1117 "asn1p_y.y" + case 108: +#line 1122 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2786,108 +2787,82 @@ yyreduce: } break; - case 107: -#line 1129 "asn1p_y.y" + case 109: +#line 1134 "asn1p_y.y" { yyval.a_wsynt = 0; } break; - case 108: -#line 1130 "asn1p_y.y" + case 110: +#line 1135 "asn1p_y.y" { yyval.a_wsynt = yyvsp[0].a_wsynt; } break; - case 109: -#line 1137 "asn1p_y.y" + case 111: +#line 1142 "asn1p_y.y" { asn1p_lexer_hack_enable_with_syntax(); } break; - case 110: -#line 1139 "asn1p_y.y" + case 112: +#line 1144 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; } break; - case 111: -#line 1145 "asn1p_y.y" + case 113: +#line 1150 "asn1p_y.y" { yyval.a_wsynt = asn1p_wsyntx_new(); TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); } break; - case 112: -#line 1149 "asn1p_y.y" + case 114: +#line 1154 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); } break; - case 113: -#line 1156 "asn1p_y.y" + case 115: +#line 1161 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].tv_opaque.buf, 0); yyval.a_wchunk->type = WC_WHITESPACE; } break; - case 114: -#line 1160 "asn1p_y.y" + case 116: +#line 1165 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].tv_str, 0); } break; - case 115: -#line 1163 "asn1p_y.y" + case 117: +#line 1168 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].a_refcomp.name, 0); yyval.a_wchunk->type = WC_FIELD; } break; - case 116: -#line 1167 "asn1p_y.y" + case 118: +#line 1172 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromsyntax(yyvsp[-1].a_wsynt); } break; - case 117: -#line 1173 "asn1p_y.y" - { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = strdup("..."); - checkmem(yyval.a_expr->Identifier); - yyval.a_expr->expr_type = A1TC_EXTENSIBLE; - yyval.a_expr->meta_type = AMT_TYPE; - } - break; - - case 118: -#line 1181 "asn1p_y.y" - { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = strdup("..."); - checkmem(yyval.a_expr->Identifier); - yyval.a_expr->value = yyvsp[0].a_value; - yyval.a_expr->expr_type = A1TC_EXTENSIBLE; - yyval.a_expr->meta_type = AMT_TYPE; - } - break; - case 119: -#line 1190 "asn1p_y.y" +#line 1178 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); yyval.a_expr->Identifier = strdup("..."); - yyval.a_expr->value = yyvsp[0].a_value; checkmem(yyval.a_expr->Identifier); yyval.a_expr->expr_type = A1TC_EXTENSIBLE; yyval.a_expr->meta_type = AMT_TYPE; @@ -2895,7 +2870,33 @@ yyreduce: break; case 120: -#line 1202 "asn1p_y.y" +#line 1186 "asn1p_y.y" + { + yyval.a_expr = NEW_EXPR(); + checkmem(yyval.a_expr); + yyval.a_expr->Identifier = strdup("..."); + checkmem(yyval.a_expr->Identifier); + yyval.a_expr->value = yyvsp[0].a_value; + yyval.a_expr->expr_type = A1TC_EXTENSIBLE; + yyval.a_expr->meta_type = AMT_TYPE; + } + break; + + case 121: +#line 1195 "asn1p_y.y" + { + yyval.a_expr = NEW_EXPR(); + checkmem(yyval.a_expr); + yyval.a_expr->Identifier = strdup("..."); + yyval.a_expr->value = yyvsp[0].a_value; + checkmem(yyval.a_expr->Identifier); + yyval.a_expr->expr_type = A1TC_EXTENSIBLE; + yyval.a_expr->meta_type = AMT_TYPE; + } + break; + + case 122: +#line 1207 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr->tag = yyvsp[-2].a_tag; @@ -2917,16 +2918,16 @@ yyreduce: } break; - case 121: -#line 1224 "asn1p_y.y" + case 123: +#line 1229 "asn1p_y.y" { yyval.a_int = asn1p_as_pointer ? EM_INDIRECT : 0; asn1p_as_pointer = 0; } break; - case 122: -#line 1231 "asn1p_y.y" + case 124: +#line 1236 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->marker.flags |= yyvsp[-1].a_int; @@ -2945,15 +2946,15 @@ yyreduce: } break; - case 123: -#line 1250 "asn1p_y.y" + case 125: +#line 1255 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; } break; - case 124: -#line 1253 "asn1p_y.y" + case 126: +#line 1258 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2962,8 +2963,8 @@ yyreduce: } break; - case 125: -#line 1259 "asn1p_y.y" + case 127: +#line 1264 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2972,8 +2973,8 @@ yyreduce: } break; - case 126: -#line 1265 "asn1p_y.y" + case 128: +#line 1270 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2982,8 +2983,8 @@ yyreduce: } break; - case 127: -#line 1271 "asn1p_y.y" + case 129: +#line 1276 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -2996,8 +2997,8 @@ yyreduce: } break; - case 128: -#line 1281 "asn1p_y.y" + case 130: +#line 1286 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -3010,8 +3011,8 @@ yyreduce: } break; - case 129: -#line 1291 "asn1p_y.y" + case 131: +#line 1296 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -3020,8 +3021,8 @@ yyreduce: } break; - case 130: -#line 1297 "asn1p_y.y" + case 132: +#line 1302 "asn1p_y.y" { int ret; yyval.a_expr = NEW_EXPR(); @@ -3035,8 +3036,8 @@ yyreduce: } break; - case 131: -#line 1308 "asn1p_y.y" + case 133: +#line 1313 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -3046,8 +3047,8 @@ yyreduce: } break; - case 132: -#line 1323 "asn1p_y.y" + case 134: +#line 1328 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3058,36 +3059,36 @@ yyreduce: } break; - case 133: -#line 1331 "asn1p_y.y" - { - int ret; - yyval.a_ref = asn1p_ref_new(yylineno); - checkmem(yyval.a_ref); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_UNKNOWN); - checkmem(ret == 0); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN); - checkmem(ret == 0); - free(yyvsp[-2].tv_str); - } - break; - - case 134: -#line 1341 "asn1p_y.y" - { - int ret; - yyval.a_ref = asn1p_ref_new(yylineno); - checkmem(yyval.a_ref); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_UNKNOWN); - checkmem(ret == 0); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN); - checkmem(ret == 0); - free(yyvsp[-2].tv_str); - } - break; - case 135: -#line 1351 "asn1p_y.y" +#line 1336 "asn1p_y.y" + { + int ret; + yyval.a_ref = asn1p_ref_new(yylineno); + checkmem(yyval.a_ref); + ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_UNKNOWN); + checkmem(ret == 0); + ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN); + checkmem(ret == 0); + free(yyvsp[-2].tv_str); + } + break; + + case 136: +#line 1346 "asn1p_y.y" + { + int ret; + yyval.a_ref = asn1p_ref_new(yylineno); + checkmem(yyval.a_ref); + ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_UNKNOWN); + checkmem(ret == 0); + ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN); + checkmem(ret == 0); + free(yyvsp[-2].tv_str); + } + break; + + case 137: +#line 1356 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3100,8 +3101,8 @@ yyreduce: } break; - case 136: -#line 1361 "asn1p_y.y" + case 138: +#line 1366 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3112,8 +3113,8 @@ yyreduce: } break; - case 137: -#line 1369 "asn1p_y.y" + case 139: +#line 1374 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[0].a_ref; @@ -3135,8 +3136,8 @@ yyreduce: } break; - case 138: -#line 1391 "asn1p_y.y" + case 140: +#line 1396 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -3147,8 +3148,8 @@ yyreduce: } break; - case 139: -#line 1399 "asn1p_y.y" + case 141: +#line 1404 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[-2].a_ref; @@ -3158,56 +3159,56 @@ yyreduce: } break; - case 141: -#line 1412 "asn1p_y.y" + case 143: +#line 1417 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_AmpUppercase; yyval.a_refcomp.name = yyvsp[0].tv_str; } break; - case 142: -#line 1417 "asn1p_y.y" + case 144: +#line 1422 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_Amplowercase; yyval.a_refcomp.name = yyvsp[0].tv_str; } break; - case 143: -#line 1426 "asn1p_y.y" + case 145: +#line 1431 "asn1p_y.y" { yyval.a_ref = asn1p_ref_new(yylineno); asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); } break; - case 144: -#line 1430 "asn1p_y.y" + case 146: +#line 1435 "asn1p_y.y" { yyval.a_ref = yyval.a_ref; asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); } break; - case 145: -#line 1434 "asn1p_y.y" + case 147: +#line 1439 "asn1p_y.y" { yyval.a_ref = yyval.a_ref; asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_Amplowercase); } break; - case 146: -#line 1441 "asn1p_y.y" + case 148: +#line 1446 "asn1p_y.y" { yyval.a_ref = asn1p_ref_new(yylineno); asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_CAPITALS); } break; - case 147: -#line 1461 "asn1p_y.y" + case 149: +#line 1466 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; assert(yyval.a_expr->Identifier == NULL); @@ -3217,8 +3218,8 @@ yyreduce: } break; - case 150: -#line 1473 "asn1p_y.y" + case 152: +#line 1478 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3228,13 +3229,13 @@ yyreduce: } break; - case 151: -#line 1480 "asn1p_y.y" + case 153: +#line 1485 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); } break; - case 152: -#line 1480 "asn1p_y.y" + case 154: +#line 1485 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); @@ -3242,8 +3243,8 @@ yyreduce: } break; - case 153: -#line 1485 "asn1p_y.y" + case 155: +#line 1490 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3251,8 +3252,8 @@ yyreduce: } break; - case 154: -#line 1493 "asn1p_y.y" + case 156: +#line 1498 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3260,8 +3261,8 @@ yyreduce: } break; - case 155: -#line 1498 "asn1p_y.y" + case 157: +#line 1503 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3269,38 +3270,38 @@ yyreduce: } break; - case 156: -#line 1503 "asn1p_y.y" + case 158: +#line 1508 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B'); checkmem(yyval.a_value); } break; - case 157: -#line 1507 "asn1p_y.y" + case 159: +#line 1512 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H'); checkmem(yyval.a_value); } break; - case 158: -#line 1511 "asn1p_y.y" + case 160: +#line 1516 "asn1p_y.y" { yyval.a_value = yyval.a_value; } break; - case 159: -#line 1514 "asn1p_y.y" + case 161: +#line 1519 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; } break; - case 160: -#line 1520 "asn1p_y.y" + case 162: +#line 1525 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3314,8 +3315,8 @@ yyreduce: } break; - case 161: -#line 1531 "asn1p_y.y" + case 163: +#line 1536 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3332,16 +3333,16 @@ yyreduce: } break; - case 162: -#line 1549 "asn1p_y.y" + case 164: +#line 1554 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); } break; - case 163: -#line 1553 "asn1p_y.y" + case 165: +#line 1558 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -3349,8 +3350,8 @@ yyreduce: } break; - case 164: -#line 1558 "asn1p_y.y" + case 166: +#line 1563 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -3358,8 +3359,8 @@ yyreduce: } break; - case 165: -#line 1592 "asn1p_y.y" + case 167: +#line 1597 "asn1p_y.y" { yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 1; yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1); @@ -3371,8 +3372,8 @@ yyreduce: } break; - case 166: -#line 1601 "asn1p_y.y" + case 168: +#line 1606 "asn1p_y.y" { int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len; char *p = malloc(newsize + 1); @@ -3387,88 +3388,88 @@ yyreduce: } break; - case 167: -#line 1616 "asn1p_y.y" + case 169: +#line 1621 "asn1p_y.y" { yyval.a_type = ASN_BASIC_BOOLEAN; } break; - case 168: -#line 1617 "asn1p_y.y" + case 170: +#line 1622 "asn1p_y.y" { yyval.a_type = ASN_BASIC_NULL; } break; - case 169: -#line 1618 "asn1p_y.y" + case 171: +#line 1623 "asn1p_y.y" { yyval.a_type = ASN_BASIC_REAL; } break; - case 170: -#line 1619 "asn1p_y.y" - { yyval.a_type = yyvsp[0].a_type; } - break; - - case 171: -#line 1620 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_OCTET_STRING; } - break; - case 172: -#line 1621 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; } +#line 1624 "asn1p_y.y" + { yyval.a_type = yyvsp[0].a_type; } break; case 173: -#line 1622 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_RELATIVE_OID; } +#line 1625 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_OCTET_STRING; } break; case 174: -#line 1623 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_EXTERNAL; } +#line 1626 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; } break; case 175: -#line 1624 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; } +#line 1627 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_RELATIVE_OID; } break; case 176: -#line 1625 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_CHARACTER_STRING; } +#line 1628 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_EXTERNAL; } break; case 177: -#line 1626 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_UTCTime; } +#line 1629 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; } break; case 178: -#line 1627 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_GeneralizedTime; } +#line 1630 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_CHARACTER_STRING; } break; case 179: -#line 1628 "asn1p_y.y" - { yyval.a_type = yyvsp[0].a_type; } +#line 1631 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_UTCTime; } break; case 180: -#line 1635 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_INTEGER; } +#line 1632 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_GeneralizedTime; } break; case 181: -#line 1636 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_ENUMERATED; } +#line 1633 "asn1p_y.y" + { yyval.a_type = yyvsp[0].a_type; } break; case 182: -#line 1637 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_BIT_STRING; } +#line 1640 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_INTEGER; } break; case 183: #line 1641 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_ENUMERATED; } + break; + + case 184: +#line 1642 "asn1p_y.y" + { yyval.a_type = ASN_BASIC_BIT_STRING; } + break; + + case 185: +#line 1646 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -3477,8 +3478,8 @@ yyreduce: } break; - case 184: -#line 1647 "asn1p_y.y" + case 186: +#line 1652 "asn1p_y.y" { if(yyvsp[0].a_expr) { yyval.a_expr = yyvsp[0].a_expr; @@ -3491,116 +3492,116 @@ yyreduce: } break; - case 185: -#line 1660 "asn1p_y.y" + case 187: +#line 1665 "asn1p_y.y" { yyval.a_type = ASN_STRING_BMPString; } break; - case 186: -#line 1661 "asn1p_y.y" + case 188: +#line 1666 "asn1p_y.y" { yyval.a_type = ASN_STRING_GeneralString; fprintf(stderr, "WARNING: GeneralString is not fully supported\n"); } break; - case 187: -#line 1665 "asn1p_y.y" + case 189: +#line 1670 "asn1p_y.y" { yyval.a_type = ASN_STRING_GraphicString; fprintf(stderr, "WARNING: GraphicString is not fully supported\n"); } break; - case 188: -#line 1669 "asn1p_y.y" + case 190: +#line 1674 "asn1p_y.y" { yyval.a_type = ASN_STRING_IA5String; } break; - case 189: -#line 1670 "asn1p_y.y" + case 191: +#line 1675 "asn1p_y.y" { yyval.a_type = ASN_STRING_ISO646String; } break; - case 190: -#line 1671 "asn1p_y.y" + case 192: +#line 1676 "asn1p_y.y" { yyval.a_type = ASN_STRING_NumericString; } break; - case 191: -#line 1672 "asn1p_y.y" + case 193: +#line 1677 "asn1p_y.y" { yyval.a_type = ASN_STRING_PrintableString; } break; - case 192: -#line 1673 "asn1p_y.y" + case 194: +#line 1678 "asn1p_y.y" { yyval.a_type = ASN_STRING_T61String; fprintf(stderr, "WARNING: T61String is not fully supported\n"); } break; - case 193: -#line 1677 "asn1p_y.y" + case 195: +#line 1682 "asn1p_y.y" { yyval.a_type = ASN_STRING_TeletexString; } break; - case 194: -#line 1678 "asn1p_y.y" + case 196: +#line 1683 "asn1p_y.y" { yyval.a_type = ASN_STRING_UniversalString; } break; - case 195: -#line 1679 "asn1p_y.y" + case 197: +#line 1684 "asn1p_y.y" { yyval.a_type = ASN_STRING_UTF8String; } break; - case 196: -#line 1680 "asn1p_y.y" + case 198: +#line 1685 "asn1p_y.y" { yyval.a_type = ASN_STRING_VideotexString; fprintf(stderr, "WARNING: VideotexString is not fully supported\n"); } break; - case 197: -#line 1684 "asn1p_y.y" + case 199: +#line 1689 "asn1p_y.y" { yyval.a_type = ASN_STRING_VisibleString; } break; - case 198: -#line 1685 "asn1p_y.y" + case 200: +#line 1690 "asn1p_y.y" { yyval.a_type = ASN_STRING_ObjectDescriptor; } break; - case 203: -#line 1696 "asn1p_y.y" + case 205: +#line 1701 "asn1p_y.y" { yyval.a_constr = 0; } break; - case 204: -#line 1697 "asn1p_y.y" + case 206: +#line 1702 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; - case 206: -#line 1704 "asn1p_y.y" + case 208: +#line 1709 "asn1p_y.y" { yyval.a_constr = yyvsp[-1].a_constr; } break; - case 207: -#line 1710 "asn1p_y.y" + case 209: +#line 1715 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0); } break; - case 208: -#line 1713 "asn1p_y.y" + case 210: +#line 1718 "asn1p_y.y" { /* * This is a special case, for compatibility purposes. @@ -3610,37 +3611,37 @@ yyreduce: } break; - case 209: -#line 1723 "asn1p_y.y" + case 211: +#line 1728 "asn1p_y.y" { yyval.a_constr = yyvsp[-1].a_constr; } break; - case 210: -#line 1726 "asn1p_y.y" + case 212: +#line 1731 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr); } break; - case 211: -#line 1732 "asn1p_y.y" + case 213: +#line 1737 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr->type = ACT_EL_EXT; } break; - case 212: -#line 1736 "asn1p_y.y" + case 214: +#line 1741 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; - case 213: -#line 1739 "asn1p_y.y" + case 215: +#line 1744 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -3649,8 +3650,8 @@ yyreduce: } break; - case 214: -#line 1745 "asn1p_y.y" + case 216: +#line 1750 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -3661,36 +3662,36 @@ yyreduce: } break; - case 216: -#line 1757 "asn1p_y.y" + case 218: +#line 1762 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_AEX, yyvsp[0].a_constr, 0); } break; - case 218: -#line 1764 "asn1p_y.y" + case 220: +#line 1769 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; - case 220: -#line 1771 "asn1p_y.y" + case 222: +#line 1776 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; - case 222: -#line 1779 "asn1p_y.y" + case 224: +#line 1784 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; - case 223: -#line 1785 "asn1p_y.y" + case 225: +#line 1790 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -3701,8 +3702,8 @@ yyreduce: } break; - case 224: -#line 1793 "asn1p_y.y" + case 226: +#line 1798 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -3713,8 +3714,8 @@ yyreduce: } break; - case 225: -#line 1801 "asn1p_y.y" + case 227: +#line 1806 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3723,8 +3724,8 @@ yyreduce: } break; - case 226: -#line 1807 "asn1p_y.y" + case 228: +#line 1812 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3733,43 +3734,43 @@ yyreduce: } break; - case 227: -#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 = yyvsp[0].a_value; - } - break; - - case 228: -#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" +#line 1818 "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 230: -#line 1836 "asn1p_y.y" +#line 1825 "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 231: +#line 1833 "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 232: +#line 1841 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3781,29 +3782,29 @@ yyreduce: } break; - case 231: -#line 1845 "asn1p_y.y" + case 233: +#line 1850 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; - case 232: -#line 1851 "asn1p_y.y" + case 234: +#line 1856 "asn1p_y.y" { yyval.a_ctype = ACT_CT_SIZE; } break; - case 233: -#line 1854 "asn1p_y.y" + case 235: +#line 1859 "asn1p_y.y" { yyval.a_ctype = ACT_CT_FROM; } break; - case 234: -#line 1860 "asn1p_y.y" + case 236: +#line 1865 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3811,8 +3812,8 @@ yyreduce: } break; - case 235: -#line 1865 "asn1p_y.y" + case 237: +#line 1870 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(1); checkmem(yyval.a_value); @@ -3820,8 +3821,8 @@ yyreduce: } break; - case 238: -#line 1872 "asn1p_y.y" + case 240: +#line 1877 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3835,8 +3836,8 @@ yyreduce: } break; - case 239: -#line 1886 "asn1p_y.y" + case 241: +#line 1891 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3850,36 +3851,36 @@ yyreduce: } break; - case 240: -#line 1900 "asn1p_y.y" + case 242: +#line 1905 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0); } break; - case 241: -#line 1903 "asn1p_y.y" + case 243: +#line 1908 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0); } break; - case 242: -#line 1909 "asn1p_y.y" + case 244: +#line 1914 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; } break; - case 243: -#line 1912 "asn1p_y.y" + case 245: +#line 1917 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr); } break; - case 244: -#line 1918 "asn1p_y.y" + case 246: +#line 1923 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3888,8 +3889,8 @@ yyreduce: } break; - case 245: -#line 1924 "asn1p_y.y" + case 247: +#line 1929 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3900,44 +3901,44 @@ yyreduce: } break; - case 246: -#line 1938 "asn1p_y.y" + case 248: +#line 1943 "asn1p_y.y" { yyval.a_pres = ACPRES_DEFAULT; } break; - case 247: -#line 1939 "asn1p_y.y" + case 249: +#line 1944 "asn1p_y.y" { yyval.a_pres = yyvsp[0].a_pres; } break; - case 248: -#line 1943 "asn1p_y.y" + case 250: +#line 1948 "asn1p_y.y" { yyval.a_pres = ACPRES_PRESENT; } break; - case 249: -#line 1946 "asn1p_y.y" + case 251: +#line 1951 "asn1p_y.y" { yyval.a_pres = ACPRES_ABSENT; } break; - case 250: -#line 1949 "asn1p_y.y" + case 252: +#line 1954 "asn1p_y.y" { yyval.a_pres = ACPRES_OPTIONAL; } break; - case 254: -#line 1964 "asn1p_y.y" + case 256: +#line 1969 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); } break; - case 255: -#line 1964 "asn1p_y.y" + case 257: +#line 1969 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3948,8 +3949,8 @@ yyreduce: } break; - case 256: -#line 1975 "asn1p_y.y" + case 258: +#line 1980 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); yyval.a_constr->type = ACT_CT_CTNG; @@ -3957,42 +3958,42 @@ yyreduce: } break; - case 257: -#line 1983 "asn1p_y.y" + case 259: +#line 1988 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RANGE; } break; - case 258: -#line 1984 "asn1p_y.y" + case 260: +#line 1989 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RLRANGE; } break; - case 259: -#line 1985 "asn1p_y.y" + case 261: +#line 1990 "asn1p_y.y" { yyval.a_ctype = ACT_EL_LLRANGE; } break; - case 260: -#line 1986 "asn1p_y.y" + case 262: +#line 1991 "asn1p_y.y" { yyval.a_ctype = ACT_EL_ULRANGE; } break; - case 261: -#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" +#line 1994 "asn1p_y.y" + { + yyval.a_constr = yyvsp[0].a_constr; + } + break; + + case 264: +#line 1997 "asn1p_y.y" + { + yyval.a_constr = yyvsp[0].a_constr; + } + break; + + case 265: +#line 2006 "asn1p_y.y" { asn1p_ref_t *ref = asn1p_ref_new(yylineno); asn1p_constraint_t *ct; @@ -4007,15 +4008,15 @@ yyreduce: } break; - case 264: -#line 2016 "asn1p_y.y" + case 266: +#line 2021 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr); } break; - case 265: -#line 2022 "asn1p_y.y" + case 267: +#line 2027 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -4024,8 +4025,8 @@ yyreduce: } break; - case 266: -#line 2028 "asn1p_y.y" + case 268: +#line 2033 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -4036,8 +4037,8 @@ yyreduce: } break; - case 267: -#line 2042 "asn1p_y.y" + case 269: +#line 2047 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 2); int ret; @@ -4051,8 +4052,8 @@ yyreduce: } break; - case 268: -#line 2053 "asn1p_y.y" + case 270: +#line 2058 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 3); int ret; @@ -4067,15 +4068,15 @@ yyreduce: } break; - case 269: -#line 2069 "asn1p_y.y" + case 271: +#line 2074 "asn1p_y.y" { yyval.tv_str = yyvsp[0].tv_str; } break; - case 270: -#line 2072 "asn1p_y.y" + case 272: +#line 2077 "asn1p_y.y" { int l1 = strlen(yyvsp[-2].tv_str); int l3 = strlen(yyvsp[0].tv_str); @@ -4087,52 +4088,52 @@ yyreduce: } break; - case 271: -#line 2090 "asn1p_y.y" + case 273: +#line 2095 "asn1p_y.y" { yyval.a_marker.flags = EM_NOMARK; yyval.a_marker.default_value = 0; } break; - case 272: -#line 2094 "asn1p_y.y" + case 274: +#line 2099 "asn1p_y.y" { yyval.a_marker = yyvsp[0].a_marker; } break; - case 273: -#line 2098 "asn1p_y.y" + case 275: +#line 2103 "asn1p_y.y" { yyval.a_marker.flags = EM_OPTIONAL | EM_INDIRECT; yyval.a_marker.default_value = 0; } break; - case 274: -#line 2102 "asn1p_y.y" + case 276: +#line 2107 "asn1p_y.y" { yyval.a_marker.flags = EM_DEFAULT; yyval.a_marker.default_value = yyvsp[0].a_value; } break; - case 275: -#line 2125 "asn1p_y.y" + case 277: +#line 2130 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); } break; - case 276: -#line 2129 "asn1p_y.y" + case 278: +#line 2134 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; } break; - case 277: -#line 2135 "asn1p_y.y" + case 279: +#line 2140 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -4140,16 +4141,16 @@ yyreduce: } break; - case 278: -#line 2140 "asn1p_y.y" + case 280: +#line 2145 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); } break; - case 279: -#line 2147 "asn1p_y.y" + case 281: +#line 2152 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -4159,32 +4160,32 @@ yyreduce: } break; - case 280: -#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" +#line 2159 "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 283: +#line 2167 "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 284: +#line 2175 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -4194,8 +4195,8 @@ yyreduce: } break; - case 283: -#line 2177 "asn1p_y.y" + case 285: +#line 2182 "asn1p_y.y" { yyval.a_expr = NEW_EXPR(); checkmem(yyval.a_expr); @@ -4206,16 +4207,8 @@ yyreduce: } break; - case 284: -#line 2188 "asn1p_y.y" - { - yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); - checkmem(yyval.a_value); - } - break; - - case 285: -#line 2192 "asn1p_y.y" + case 286: +#line 2193 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -4223,92 +4216,84 @@ yyreduce: break; case 287: -#line 2200 "asn1p_y.y" +#line 2197 "asn1p_y.y" + { + yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); + checkmem(yyval.a_value); + } + break; + + case 289: +#line 2205 "asn1p_y.y" { yyval.a_value = asn1p_value_fromdouble(yyvsp[0].a_dbl); checkmem(yyval.a_value); } break; - case 288: -#line 2231 "asn1p_y.y" + case 290: +#line 2236 "asn1p_y.y" { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); } break; - case 289: -#line 2232 "asn1p_y.y" + case 291: +#line 2237 "asn1p_y.y" { yyval.a_tag = yyvsp[0].a_tag; } break; - case 290: -#line 2236 "asn1p_y.y" + case 292: +#line 2241 "asn1p_y.y" { yyval.a_tag = yyvsp[-1].a_tag; yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode; } break; - case 291: -#line 2243 "asn1p_y.y" + case 293: +#line 2248 "asn1p_y.y" { yyval.a_tag = yyvsp[-2].a_tag; yyval.a_tag.tag_value = yyvsp[-1].a_int; } break; - case 292: -#line 2249 "asn1p_y.y" + case 294: +#line 2254 "asn1p_y.y" { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; } break; - case 293: -#line 2250 "asn1p_y.y" - { yyval.a_tag.tag_class = TC_UNIVERSAL; } - break; - - case 294: -#line 2251 "asn1p_y.y" - { yyval.a_tag.tag_class = TC_APPLICATION; } - break; - case 295: -#line 2252 "asn1p_y.y" - { yyval.a_tag.tag_class = TC_PRIVATE; } +#line 2255 "asn1p_y.y" + { yyval.a_tag.tag_class = TC_UNIVERSAL; } break; case 296: #line 2256 "asn1p_y.y" - { yyval.a_tag.tag_mode = TM_DEFAULT; } + { yyval.a_tag.tag_class = TC_APPLICATION; } break; case 297: #line 2257 "asn1p_y.y" - { yyval.a_tag.tag_mode = TM_IMPLICIT; } + { yyval.a_tag.tag_class = TC_PRIVATE; } break; case 298: -#line 2258 "asn1p_y.y" - { yyval.a_tag.tag_mode = TM_EXPLICIT; } +#line 2261 "asn1p_y.y" + { yyval.a_tag.tag_mode = TM_DEFAULT; } break; case 299: #line 2262 "asn1p_y.y" - { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; - } + { yyval.a_tag.tag_mode = TM_IMPLICIT; } break; case 300: -#line 2266 "asn1p_y.y" - { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; - } +#line 2263 "asn1p_y.y" + { yyval.a_tag.tag_mode = TM_EXPLICIT; } break; case 301: -#line 2274 "asn1p_y.y" +#line 2267 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; @@ -4316,19 +4301,35 @@ yyreduce: break; case 302: -#line 2281 "asn1p_y.y" - { yyval.tv_str = 0; } +#line 2271 "asn1p_y.y" + { + checkmem(yyvsp[0].tv_str); + yyval.tv_str = yyvsp[0].tv_str; + } break; case 303: -#line 2282 "asn1p_y.y" +#line 2279 "asn1p_y.y" { + checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; } break; case 304: -#line 2288 "asn1p_y.y" +#line 2286 "asn1p_y.y" + { yyval.tv_str = 0; } + break; + + case 305: +#line 2287 "asn1p_y.y" + { + yyval.tv_str = yyvsp[0].tv_str; + } + break; + + case 306: +#line 2293 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; @@ -4339,7 +4340,7 @@ yyreduce: } /* Line 1016 of /usr/local/share/bison/yacc.c. */ -#line 4343 "asn1p_y.c" +#line 4344 "asn1p_y.c" yyvsp -= yylen; yyssp -= yylen; @@ -4558,7 +4559,7 @@ yyreturn: } -#line 2294 "asn1p_y.y" +#line 2299 "asn1p_y.y" diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y index a89ba798..7e638534 100644 --- a/libasn1parser/asn1p_y.y +++ b/libasn1parser/asn1p_y.y @@ -250,6 +250,7 @@ static asn1p_module_t *currentModule; %type optImports %type optExports %type ImportsDefinition +%type optImportsBundleSet %type ImportsBundleSet %type ImportsBundle %type ImportsList @@ -606,7 +607,7 @@ optImports: | ImportsDefinition; ImportsDefinition: - TOK_IMPORTS ImportsBundleSet ';' { + TOK_IMPORTS optImportsBundleSet ';' { if(!saved_aid && 0) return yyerror("Unterminated IMPORTS FROM, " "expected semicolon ';'"); @@ -621,6 +622,10 @@ ImportsDefinition: } ; +optImportsBundleSet: + { $$ = asn1p_module_new(); } + | ImportsBundleSet; + ImportsBundleSet: ImportsBundle { $$ = asn1p_module_new(); diff --git a/tests/121-empty-imports-OK.asn1 b/tests/121-empty-imports-OK.asn1 new file mode 100644 index 00000000..bbf1d1ec --- /dev/null +++ b/tests/121-empty-imports-OK.asn1 @@ -0,0 +1,18 @@ + +-- OK: Everything is fine + +-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1) +-- .spelio.software.asn1c.test (9363.1.5.1) +-- .121 + +ModuleEmptyIMPORTS + { iso org(3) dod(6) internet (1) private(4) enterprise(1) + spelio(9363) software(1) asn1c(5) test(1) 121 } + DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + + IMPORTS -- nothing --; + + Type ::= INTEGER + +END diff --git a/tests/121-empty-imports-OK.asn1.-EF b/tests/121-empty-imports-OK.asn1.-EF new file mode 100644 index 00000000..a5ad6816 --- /dev/null +++ b/tests/121-empty-imports-OK.asn1.-EF @@ -0,0 +1,8 @@ +ModuleEmptyIMPORTS { iso org(3) dod(6) internet(1) private(4) enterprise(1) + spelio(9363) software(1) asn1c(5) test(1) 121 } +DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +Type ::= INTEGER + +END