parse advanced WITH COMPONENTS
diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 60860af..5f71f3f 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -319,6 +319,8 @@
void asn1p_lexer_hack_push_encoding_control(void);
#define yylineno asn1p_lineno
extern int asn1p_lineno;
+const char *asn1p_parse_debug_filename;
+#define ASN_FILENAME asn1p_parse_debug_filename
/*
* Process directives as <ASN1C:RepresentAsPointer>
@@ -396,7 +398,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 88 "asn1p_y.y"
+#line 90 "asn1p_y.y"
{
asn1p_t *a_grammar;
asn1p_module_flags_e a_module_flags;
@@ -432,7 +434,7 @@
} tv_nametag;
}
/* Line 193 of yacc.c. */
-#line 436 "asn1p_y.c"
+#line 438 "asn1p_y.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -445,7 +447,7 @@
/* Line 216 of yacc.c. */
-#line 449 "asn1p_y.c"
+#line 451 "asn1p_y.c"
#ifdef short
# undef short
@@ -660,16 +662,16 @@
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 9
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 812
+#define YYLAST 839
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 124
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 124
+#define YYNNTS 131
/* YYNRULES -- Number of rules. */
-#define YYNRULES 317
+#define YYNRULES 325
/* YYNRULES -- Number of states. */
-#define YYNSTATES 479
+#define YYNSTATES 489
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -746,148 +748,152 @@
526, 529, 531, 533, 535, 537, 539, 542, 544, 547,
549, 551, 553, 555, 557, 559, 561, 563, 565, 567,
569, 571, 573, 575, 577, 579, 581, 583, 584, 586,
- 588, 590, 595, 599, 604, 606, 608, 610, 612, 616,
- 622, 624, 628, 630, 634, 636, 640, 642, 646, 651,
- 655, 657, 659, 663, 667, 671, 675, 677, 679, 680,
- 684, 687, 690, 692, 694, 696, 698, 700, 702, 704,
- 706, 708, 710, 712, 716, 722, 724, 728, 730, 734,
- 735, 737, 739, 741, 743, 745, 747, 749, 750, 756,
- 759, 761, 764, 767, 771, 773, 775, 779, 784, 786,
- 790, 793, 797, 799, 803, 804, 806, 808, 811, 814,
- 818, 820, 824, 826, 831, 836, 838, 840, 842, 844,
- 846, 848, 849, 851, 854, 859, 860, 862, 864, 866,
- 867, 869, 871, 873, 875, 877, 878, 880
+ 587, 589, 594, 596, 600, 605, 607, 609, 611, 613,
+ 615, 619, 625, 627, 631, 633, 637, 639, 643, 645,
+ 649, 654, 658, 660, 662, 666, 670, 674, 678, 680,
+ 682, 683, 687, 690, 693, 695, 697, 699, 701, 703,
+ 705, 707, 709, 711, 713, 715, 719, 723, 725, 727,
+ 729, 733, 739, 741, 745, 749, 750, 752, 754, 756,
+ 758, 760, 762, 764, 765, 771, 774, 776, 779, 782,
+ 786, 788, 790, 794, 799, 801, 805, 808, 812, 814,
+ 818, 819, 821, 823, 826, 829, 833, 835, 839, 841,
+ 846, 851, 853, 855, 857, 859, 861, 863, 864, 866,
+ 869, 874, 875, 877, 879, 881, 882, 884, 886, 888,
+ 890, 892, 893, 895, 897, 899
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
125, 0, -1, 103, 126, -1, 126, -1, 127, -1,
- 126, 127, -1, -1, 244, 128, 129, 41, 133, 3,
+ 126, 127, -1, -1, 249, 128, 129, 41, 133, 3,
28, 136, 46, -1, -1, 130, -1, 111, 131, 112,
- -1, 111, 112, -1, 132, -1, 131, 132, -1, 247,
- -1, 247, 113, 12, 114, -1, 12, -1, -1, 134,
+ -1, 111, 112, -1, 132, -1, 131, 132, -1, 252,
+ -1, 252, 113, 12, 114, -1, 12, -1, -1, 134,
-1, 135, -1, 134, 135, -1, 48, 91, -1, 59,
91, -1, 27, 91, -1, 50, 60, -1, 18, 64,
-1, -1, 137, -1, 149, 141, 138, -1, 139, -1,
138, 139, -1, 156, -1, 186, -1, 154, -1, -1,
45, 18, 140, -1, 196, -1, -1, 142, -1, 61,
143, 115, -1, 61, 53, -1, -1, 144, -1, 146,
- -1, 144, 146, -1, -1, 130, -1, 147, 53, 244,
- 145, -1, 148, -1, 147, 116, 148, -1, 244, -1,
- 244, 111, 112, -1, 247, -1, -1, 150, -1, 49,
+ -1, 144, 146, -1, -1, 130, -1, 147, 53, 249,
+ 145, -1, 148, -1, 147, 116, 148, -1, 249, -1,
+ 249, 111, 112, -1, 252, -1, -1, 150, -1, 49,
151, 115, -1, 49, 24, 115, -1, 49, 115, -1,
- 152, -1, 151, 116, 152, -1, 244, -1, 244, 111,
- 112, -1, 247, -1, 111, 204, 112, -1, 244, 155,
+ 152, -1, 151, 116, 152, -1, 249, -1, 249, 111,
+ 112, -1, 252, -1, 111, 205, 112, -1, 249, 155,
3, 153, -1, 195, -1, 180, -1, 180, 111, 159,
- 112, -1, 244, 3, 176, -1, 244, 3, 166, -1,
- 244, 111, 157, 112, 3, 176, -1, 244, 111, 157,
+ 112, -1, 249, 3, 176, -1, 249, 3, 166, -1,
+ 249, 111, 157, 112, 3, 176, -1, 249, 111, 157,
112, 3, 166, -1, 158, -1, 157, 116, 158, -1,
- 244, -1, 244, 117, 247, -1, 244, 117, 244, -1,
- 193, 117, 247, -1, 193, 117, 244, -1, 160, -1,
- 159, 116, 160, -1, 176, -1, 189, -1, 247, -1,
+ 249, -1, 249, 117, 252, -1, 249, 117, 249, -1,
+ 193, 117, 252, -1, 193, 117, 249, -1, 160, -1,
+ 159, 116, 160, -1, 176, -1, 189, -1, 252, -1,
153, -1, -1, 162, -1, 163, -1, 162, 116, 163,
- -1, 162, 116, 4, 162, 5, -1, 247, 176, 232,
- -1, 176, 232, -1, 37, 75, 176, -1, 175, -1,
- 165, -1, 164, 116, 165, -1, 247, 176, -1, 175,
+ -1, 162, 116, 4, 162, 5, -1, 252, 176, 237,
+ -1, 176, 237, -1, 37, 75, 176, -1, 175, -1,
+ 165, -1, 164, 116, 165, -1, 252, 176, -1, 175,
-1, 176, -1, 35, 111, 168, 112, 170, -1, -1,
- 95, -1, 169, -1, 168, 116, 169, -1, 19, 232,
- -1, 20, 176, 167, 232, -1, 20, 184, 232, -1,
- 20, 185, 232, -1, 19, 184, 232, -1, 19, 176,
- 232, -1, 19, 185, 232, -1, -1, 171, -1, -1,
+ 95, -1, 169, -1, 168, 116, 169, -1, 19, 237,
+ -1, 20, 176, 167, 237, -1, 20, 184, 237, -1,
+ 20, 185, 237, -1, 19, 184, 237, -1, 19, 176,
+ 237, -1, 19, 185, 237, -1, -1, 171, -1, -1,
102, 89, 111, 172, 173, 112, -1, 174, -1, 173,
174, -1, 6, -1, 21, -1, 183, -1, 118, 173,
119, -1, 110, -1, 110, 120, 190, -1, 110, 120,
- 237, -1, 239, 178, 199, -1, -1, 177, 179, -1,
+ 242, -1, 244, 178, 199, -1, -1, 177, 179, -1,
155, -1, 34, 111, 164, 112, -1, 85, 111, 161,
- 112, -1, 86, 111, 161, 112, -1, 85, 199, 75,
- 246, 239, 178, -1, 86, 199, 75, 246, 239, 178,
- -1, 25, -1, 25, 42, 32, 247, -1, 63, 75,
- 180, -1, 17, -1, 17, 121, 244, -1, 245, 121,
- 244, -1, 17, 121, 247, -1, 245, -1, 245, 121,
+ 112, -1, 86, 111, 161, 112, -1, 85, 200, 75,
+ 251, 244, 178, -1, 86, 200, 75, 251, 244, 178,
+ -1, 25, -1, 25, 42, 32, 252, -1, 63, 75,
+ 180, -1, 17, -1, 17, 121, 249, -1, 250, 121,
+ 249, -1, 17, 121, 252, -1, 250, -1, 250, 121,
181, -1, 182, -1, 181, 121, 182, -1, 183, -1,
19, -1, 20, -1, 19, -1, 184, 121, 19, -1,
- 184, 121, 20, -1, 18, -1, 247, 176, 3, 187,
- -1, 189, -1, 190, -1, 247, 117, 187, -1, -1,
+ 184, 121, 20, -1, 18, -1, 252, 176, 3, 187,
+ -1, 189, -1, 190, -1, 252, 117, 187, -1, -1,
111, 188, 192, -1, 70, -1, 52, -1, 93, -1,
- 8, -1, 10, -1, 191, -1, 237, -1, 247, -1,
- 244, 121, 247, -1, 9, -1, 15, -1, 16, -1,
+ 8, -1, 10, -1, 191, -1, 242, -1, 252, -1,
+ 249, 121, 252, -1, 9, -1, 15, -1, 16, -1,
7, -1, 192, 7, -1, 31, -1, 70, -1, 83,
-1, 194, -1, 74, 88, -1, 72, 58, -1, 84,
-1, 51, -1, 43, 78, -1, 33, 88, -1, 98,
-1, 54, -1, 196, -1, 65, -1, 47, -1, 29,
- 88, -1, 193, -1, 194, 234, -1, 30, -1, 55,
+ 88, -1, 193, -1, 194, 239, -1, 30, -1, 55,
-1, 56, -1, 57, -1, 66, -1, 71, -1, 81,
-1, 90, -1, 92, -1, 97, -1, 99, -1, 100,
-1, 101, -1, 73, -1, 107, -1, 108, -1, 105,
- -1, 106, -1, -1, 200, -1, 201, -1, 202, -1,
- 87, 113, 203, 114, -1, 113, 203, 114, -1, 202,
- 113, 203, 114, -1, 204, -1, 221, -1, 110, -1,
- 205, -1, 205, 116, 110, -1, 205, 116, 110, 116,
- 205, -1, 206, -1, 24, 104, 209, -1, 207, -1,
- 206, 197, 207, -1, 208, -1, 207, 198, 208, -1,
- 209, -1, 209, 104, 209, -1, 212, 113, 204, 114,
- -1, 113, 204, 114, -1, 213, -1, 215, -1, 213,
- 225, 213, -1, 68, 225, 213, -1, 213, 225, 67,
- -1, 68, 225, 67, -1, 216, -1, 211, -1, -1,
- 111, 210, 192, -1, 77, 9, -1, 77, 247, -1,
- 87, -1, 53, -1, 52, -1, 93, -1, 238, -1,
- 191, -1, 214, -1, 247, -1, 8, -1, 10, -1,
- 180, -1, 102, 36, 202, -1, 102, 37, 111, 217,
- 112, -1, 218, -1, 217, 116, 218, -1, 110, -1,
- 247, 199, 219, -1, -1, 220, -1, 80, -1, 22,
- -1, 76, -1, 222, -1, 226, -1, 224, -1, -1,
- 38, 32, 111, 223, 192, -1, 39, 176, -1, 109,
- -1, 109, 122, -1, 122, 109, -1, 122, 109, 122,
- -1, 227, -1, 228, -1, 111, 244, 112, -1, 227,
- 111, 229, 112, -1, 230, -1, 229, 116, 230, -1,
- 123, 231, -1, 123, 121, 231, -1, 247, -1, 231,
- 121, 247, -1, -1, 233, -1, 76, -1, 40, 187,
- -1, 111, 112, -1, 111, 235, 112, -1, 236, -1,
- 235, 116, 236, -1, 247, -1, 247, 113, 237, 114,
- -1, 247, 113, 190, 114, -1, 237, -1, 110, -1,
- 12, -1, 13, -1, 237, -1, 14, -1, -1, 240,
- -1, 241, 243, -1, 118, 242, 12, 119, -1, -1,
- 96, -1, 26, -1, 82, -1, -1, 59, -1, 48,
- -1, 17, -1, 18, -1, 18, -1, -1, 247, -1,
- 11, -1
+ -1, 106, -1, -1, 201, -1, -1, 201, -1, 87,
+ 113, 203, 114, -1, 202, -1, 113, 203, 114, -1,
+ 202, 113, 203, 114, -1, 204, -1, 226, -1, 205,
+ -1, 110, -1, 206, -1, 206, 116, 110, -1, 206,
+ 116, 110, 116, 206, -1, 207, -1, 24, 104, 210,
+ -1, 208, -1, 207, 197, 208, -1, 209, -1, 208,
+ 198, 209, -1, 210, -1, 210, 104, 210, -1, 213,
+ 113, 205, 114, -1, 113, 205, 114, -1, 214, -1,
+ 216, -1, 214, 230, 214, -1, 68, 230, 214, -1,
+ 214, 230, 67, -1, 68, 230, 67, -1, 217, -1,
+ 212, -1, -1, 111, 211, 192, -1, 77, 9, -1,
+ 77, 252, -1, 87, -1, 53, -1, 52, -1, 93,
+ -1, 243, -1, 191, -1, 215, -1, 252, -1, 8,
+ -1, 10, -1, 176, -1, 102, 36, 218, -1, 102,
+ 37, 219, -1, 201, -1, 220, -1, 221, -1, 111,
+ 222, 112, -1, 111, 110, 116, 222, 112, -1, 223,
+ -1, 222, 116, 223, -1, 254, 199, 224, -1, -1,
+ 225, -1, 80, -1, 22, -1, 76, -1, 227, -1,
+ 231, -1, 229, -1, -1, 38, 32, 111, 228, 192,
+ -1, 39, 176, -1, 109, -1, 109, 122, -1, 122,
+ 109, -1, 122, 109, 122, -1, 232, -1, 233, -1,
+ 111, 249, 112, -1, 232, 111, 234, 112, -1, 235,
+ -1, 234, 116, 235, -1, 123, 236, -1, 123, 121,
+ 236, -1, 252, -1, 236, 121, 252, -1, -1, 238,
+ -1, 76, -1, 40, 187, -1, 111, 112, -1, 111,
+ 240, 112, -1, 241, -1, 240, 116, 241, -1, 252,
+ -1, 252, 113, 242, 114, -1, 252, 113, 190, 114,
+ -1, 242, -1, 110, -1, 12, -1, 13, -1, 242,
+ -1, 14, -1, -1, 245, -1, 246, 248, -1, 118,
+ 247, 12, 119, -1, -1, 96, -1, 26, -1, 82,
+ -1, -1, 59, -1, 48, -1, 17, -1, 18, -1,
+ 18, -1, -1, 252, -1, 11, -1, 252, -1, 253,
+ -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 358, 358, 361, 367, 372, 389, 389, 418, 419,
- 423, 426, 432, 438, 447, 451, 455, 465, 466, 475,
- 478, 487, 490, 493, 496, 500, 521, 522, 531, 544,
- 547, 564, 571, 585, 593, 592, 606, 619, 620, 623,
- 633, 639, 640, 643, 648, 655, 656, 660, 671, 676,
- 683, 689, 695, 705, 706, 718, 721, 724, 732, 737,
- 744, 750, 756, 765, 768, 778, 791, 801, 821, 827,
- 843, 849, 857, 866, 877, 881, 889, 897, 905, 916,
- 921, 928, 931, 939, 950, 973, 974, 977, 982, 986,
- 994, 1001, 1007, 1014, 1020, 1025, 1032, 1037, 1040, 1047,
- 1057, 1058, 1062, 1069, 1079, 1089, 1100, 1110, 1121, 1131,
- 1142, 1154, 1155, 1162, 1161, 1170, 1174, 1181, 1185, 1188,
- 1192, 1198, 1206, 1215, 1227, 1251, 1258, 1277, 1280, 1286,
- 1292, 1298, 1308, 1318, 1324, 1336, 1351, 1359, 1370, 1381,
- 1392, 1400, 1422, 1430, 1439, 1443, 1448, 1457, 1462, 1467,
- 1475, 1498, 1508, 1509, 1510, 1517, 1517, 1522, 1530, 1535,
- 1540, 1545, 1550, 1553, 1559, 1570, 1588, 1592, 1597, 1605,
- 1614, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637,
- 1638, 1639, 1640, 1641, 1648, 1649, 1650, 1654, 1660, 1673,
- 1674, 1678, 1682, 1683, 1684, 1685, 1686, 1690, 1691, 1692,
- 1693, 1697, 1698, 1705, 1705, 1706, 1706, 1709, 1710, 1716,
- 1720, 1723, 1733, 1736, 1742, 1745, 1751, 1755, 1758, 1764,
- 1775, 1776, 1782, 1783, 1789, 1790, 1797, 1798, 1804, 1812,
- 1820, 1826, 1832, 1839, 1847, 1855, 1864, 1867, 1870, 1870,
- 1880, 1885, 1897, 1900, 1906, 1911, 1916, 1917, 1918, 1919,
- 1933, 1938, 1946, 1966, 1969, 1975, 1978, 1984, 1990, 2004,
- 2005, 2009, 2012, 2015, 2023, 2024, 2025, 2030, 2029, 2041,
- 2050, 2051, 2052, 2053, 2056, 2059, 2068, 2084, 2090, 2096,
- 2110, 2121, 2137, 2140, 2160, 2164, 2168, 2172, 2195, 2199,
- 2205, 2210, 2217, 2224, 2232, 2240, 2247, 2258, 2262, 2269,
- 2270, 2301, 2302, 2306, 2313, 2319, 2320, 2321, 2322, 2326,
- 2327, 2328, 2332, 2336, 2344, 2351, 2352, 2358
+ 0, 367, 367, 370, 376, 381, 398, 398, 427, 428,
+ 432, 435, 441, 447, 456, 460, 464, 474, 475, 484,
+ 487, 496, 499, 502, 505, 509, 530, 531, 540, 553,
+ 556, 573, 580, 594, 602, 601, 615, 628, 629, 632,
+ 642, 648, 649, 652, 657, 664, 665, 669, 680, 685,
+ 692, 698, 704, 714, 715, 727, 730, 733, 741, 746,
+ 753, 759, 765, 774, 777, 787, 800, 810, 830, 836,
+ 852, 858, 866, 875, 886, 890, 898, 906, 914, 925,
+ 930, 937, 940, 948, 959, 982, 983, 986, 991, 995,
+ 1003, 1010, 1016, 1023, 1029, 1034, 1041, 1046, 1049, 1056,
+ 1066, 1067, 1071, 1078, 1088, 1098, 1109, 1119, 1130, 1140,
+ 1151, 1163, 1164, 1171, 1170, 1179, 1183, 1190, 1194, 1197,
+ 1201, 1207, 1215, 1224, 1236, 1260, 1267, 1286, 1289, 1295,
+ 1301, 1307, 1317, 1327, 1333, 1345, 1360, 1368, 1379, 1390,
+ 1401, 1409, 1431, 1439, 1448, 1452, 1457, 1466, 1471, 1476,
+ 1484, 1507, 1517, 1518, 1519, 1526, 1526, 1531, 1539, 1544,
+ 1549, 1554, 1559, 1562, 1568, 1579, 1597, 1601, 1606, 1614,
+ 1623, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646,
+ 1647, 1648, 1649, 1650, 1657, 1658, 1659, 1663, 1669, 1682,
+ 1683, 1687, 1691, 1692, 1693, 1694, 1695, 1699, 1700, 1701,
+ 1702, 1706, 1707, 1714, 1714, 1715, 1715, 1719, 1720, 1724,
+ 1725, 1726, 1732, 1738, 1741, 1746, 1746, 1748, 1751, 1755,
+ 1756, 1762, 1773, 1774, 1780, 1781, 1787, 1788, 1795, 1796,
+ 1802, 1810, 1818, 1824, 1830, 1837, 1845, 1853, 1862, 1863,
+ 1864, 1864, 1874, 1879, 1891, 1894, 1900, 1905, 1910, 1911,
+ 1912, 1913, 1927, 1932, 1940, 1951, 1954, 1960, 1961, 1961,
+ 1962, 1964, 1977, 1982, 1988, 2002, 2003, 2007, 2010, 2013,
+ 2021, 2022, 2023, 2028, 2027, 2039, 2048, 2049, 2050, 2051,
+ 2054, 2057, 2066, 2082, 2088, 2094, 2108, 2119, 2135, 2138,
+ 2158, 2162, 2166, 2170, 2193, 2197, 2203, 2208, 2215, 2222,
+ 2230, 2238, 2245, 2256, 2260, 2267, 2268, 2299, 2300, 2304,
+ 2311, 2317, 2318, 2319, 2320, 2324, 2325, 2326, 2330, 2334,
+ 2342, 2349, 2350, 2356, 2363, 2369
};
#endif
@@ -946,20 +952,22 @@
"ValueAssignment", "Value", "@4", "SimpleValue", "DefinedValue",
"RestrictedCharacterStringValue", "Opaque", "BasicTypeId",
"BasicTypeId_UniverationCompatible", "BasicType", "BasicString",
- "UnionMark", "IntersectionMark", "optConstraints", "Constraint",
- "SubtypeConstraint", "SetOfConstraints", "ConstraintSpecs",
+ "UnionMark", "IntersectionMark", "optConstraints", "optSizeConstraints",
+ "Constraint", "SetOfConstraints", "ConstraintSpec", "SubtypeConstraint",
"ElementSetSpecs", "ElementSetSpec", "Unions", "Intersections",
"IntersectionElements", "ConstraintSubtypeElement", "@5",
- "PatternConstraint", "ConstraintSpec", "SingleValue", "BitStringValue",
- "ContainedSubtype", "InnerTypeConstraint", "WithComponentsList",
- "WithComponentsElement", "optPresenceConstraint", "PresenceConstraint",
- "GeneralConstraint", "UserDefinedConstraint", "@6", "ContentsConstraint",
- "ConstraintRangeSpec", "TableConstraint", "SimpleTableConstraint",
- "ComponentRelationConstraint", "AtNotationList", "AtNotationElement",
- "ComponentIdList", "optMarker", "Marker", "UniverationDefinition",
- "UniverationList", "UniverationElement", "SignedNumber", "RealValue",
- "optTag", "Tag", "TagTypeValue", "TagClass", "TagPlicit", "TypeRefName",
- "ObjectClassReference", "optIdentifier", "Identifier", 0
+ "PatternConstraint", "ConstraintType", "SingleValue", "BitStringValue",
+ "ContainedSubtype", "InnerTypeConstraint", "SingleTypeConstraint",
+ "MultipleTypeConstraints", "FullSpecification", "PartialSpecification",
+ "TypeConstraints", "NamedConstraint", "optPresenceConstraint",
+ "PresenceConstraint", "GeneralConstraint", "UserDefinedConstraint", "@6",
+ "ContentsConstraint", "ConstraintRangeSpec", "TableConstraint",
+ "SimpleTableConstraint", "ComponentRelationConstraint", "AtNotationList",
+ "AtNotationElement", "ComponentIdList", "optMarker", "Marker",
+ "UniverationDefinition", "UniverationList", "UniverationElement",
+ "SignedNumber", "RealValue", "optTag", "Tag", "TagTypeValue", "TagClass",
+ "TagPlicit", "TypeRefName", "ObjectClassReference", "optIdentifier",
+ "Identifier", "IdentifierAsReference", "IdentifierAsValue", 0
};
#endif
@@ -1008,17 +1016,18 @@
193, 193, 193, 193, 194, 194, 194, 195, 195, 196,
196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
196, 196, 196, 197, 197, 198, 198, 199, 199, 200,
- 201, 201, 202, 202, 203, 203, 204, 204, 204, 204,
+ 200, 200, 201, 202, 202, 203, 203, 204, 205, 205,
205, 205, 206, 206, 207, 207, 208, 208, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 210, 209,
- 211, 211, 212, 212, 213, 213, 213, 213, 213, 213,
- 214, 214, 215, 216, 216, 217, 217, 218, 218, 219,
- 219, 220, 220, 220, 221, 221, 221, 223, 222, 224,
- 225, 225, 225, 225, 226, 226, 227, 228, 229, 229,
- 230, 230, 231, 231, 232, 232, 233, 233, 234, 234,
- 235, 235, 236, 236, 236, 236, 236, 237, 237, 238,
- 238, 239, 239, 240, 241, 242, 242, 242, 242, 243,
- 243, 243, 244, 244, 245, 246, 246, 247
+ 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
+ 211, 210, 212, 212, 213, 213, 214, 214, 214, 214,
+ 214, 214, 215, 215, 216, 217, 217, 218, 219, 219,
+ 220, 221, 222, 222, 223, 224, 224, 225, 225, 225,
+ 226, 226, 226, 228, 227, 229, 230, 230, 230, 230,
+ 231, 231, 232, 233, 234, 234, 235, 235, 236, 236,
+ 237, 237, 238, 238, 239, 239, 240, 240, 241, 241,
+ 241, 241, 241, 242, 242, 243, 243, 244, 244, 245,
+ 246, 247, 247, 247, 247, 248, 248, 248, 249, 249,
+ 250, 251, 251, 252, 253, 254
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1044,18 +1053,19 @@
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, 1, 1, 0, 1, 1,
- 1, 4, 3, 4, 1, 1, 1, 1, 3, 5,
- 1, 3, 1, 3, 1, 3, 1, 3, 4, 3,
- 1, 1, 3, 3, 3, 3, 1, 1, 0, 3,
- 2, 2, 1, 1, 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, 1, 1, 0, 1, 0,
+ 1, 4, 1, 3, 4, 1, 1, 1, 1, 1,
+ 3, 5, 1, 3, 1, 3, 1, 3, 1, 3,
+ 4, 3, 1, 1, 3, 3, 3, 3, 1, 1,
+ 0, 3, 2, 2, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 3, 3, 1, 1, 1,
+ 3, 5, 1, 3, 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
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1063,8 +1073,8 @@
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 0, 312, 313, 0, 0, 3, 4, 6, 2, 1,
- 5, 8, 0, 0, 9, 317, 16, 11, 0, 12,
+ 0, 318, 319, 0, 0, 3, 4, 6, 2, 1,
+ 5, 8, 0, 0, 9, 323, 16, 11, 0, 12,
14, 17, 10, 13, 0, 0, 0, 0, 0, 0,
0, 18, 19, 0, 25, 23, 21, 24, 22, 0,
20, 15, 53, 0, 0, 27, 37, 54, 0, 57,
@@ -1072,45 +1082,46 @@
0, 0, 40, 0, 42, 43, 0, 48, 50, 52,
189, 0, 190, 191, 192, 193, 194, 202, 195, 196,
197, 198, 199, 200, 201, 28, 29, 33, 31, 32,
- 36, 0, 301, 59, 61, 39, 44, 0, 0, 0,
- 34, 30, 301, 136, 314, 0, 171, 0, 0, 185,
+ 36, 0, 307, 59, 61, 39, 44, 0, 0, 0,
+ 34, 30, 307, 136, 320, 0, 171, 0, 0, 185,
178, 182, 184, 172, 0, 0, 173, 177, 181, 0,
- 0, 66, 187, 174, 65, 183, 140, 305, 0, 125,
- 302, 309, 45, 49, 51, 35, 0, 69, 68, 0,
+ 0, 66, 187, 174, 65, 183, 140, 311, 0, 125,
+ 308, 315, 45, 49, 51, 35, 0, 69, 68, 0,
186, 180, 179, 176, 175, 0, 72, 0, 174, 74,
- 0, 301, 0, 188, 0, 307, 308, 306, 0, 0,
- 0, 207, 311, 310, 303, 46, 47, 0, 137, 139,
- 0, 0, 0, 0, 0, 64, 160, 166, 161, 297,
- 298, 167, 168, 158, 159, 84, 0, 79, 81, 82,
- 162, 163, 83, 296, 288, 0, 290, 295, 292, 145,
+ 0, 307, 0, 188, 0, 313, 314, 312, 0, 0,
+ 0, 207, 317, 316, 309, 46, 47, 0, 137, 139,
+ 0, 0, 0, 0, 307, 64, 160, 166, 161, 303,
+ 304, 167, 168, 158, 159, 84, 0, 79, 81, 82,
+ 162, 163, 83, 302, 294, 0, 296, 301, 298, 145,
146, 141, 142, 144, 138, 0, 157, 155, 151, 152,
- 153, 0, 164, 133, 0, 0, 207, 207, 127, 126,
- 0, 0, 124, 208, 209, 210, 301, 301, 0, 102,
- 301, 73, 78, 77, 76, 75, 250, 251, 300, 0,
- 244, 243, 0, 0, 242, 245, 0, 216, 238, 0,
- 252, 247, 0, 217, 220, 222, 224, 226, 237, 0,
- 230, 248, 231, 236, 299, 246, 249, 67, 301, 289,
- 0, 0, 0, 304, 0, 0, 0, 0, 301, 0,
- 301, 0, 301, 0, 0, 0, 301, 238, 0, 214,
- 215, 264, 266, 265, 274, 275, 0, 150, 147, 0,
- 286, 284, 284, 284, 104, 285, 100, 284, 284, 111,
- 0, 71, 70, 0, 270, 0, 0, 240, 241, 0,
- 0, 0, 0, 63, 0, 203, 204, 0, 205, 206,
- 0, 0, 0, 0, 80, 291, 0, 0, 164, 143,
+ 153, 0, 164, 133, 0, 0, 209, 209, 127, 126,
+ 307, 124, 208, 212, 307, 307, 0, 102, 307, 73,
+ 78, 77, 76, 75, 252, 253, 306, 0, 246, 245,
+ 0, 0, 244, 247, 0, 218, 240, 307, 254, 249,
+ 0, 219, 222, 224, 226, 228, 239, 0, 232, 250,
+ 233, 238, 305, 248, 251, 67, 307, 295, 0, 0,
+ 0, 310, 0, 0, 0, 0, 307, 0, 0, 307,
+ 0, 210, 307, 0, 0, 307, 240, 0, 215, 217,
+ 216, 270, 272, 271, 280, 281, 307, 150, 147, 0,
+ 292, 290, 290, 290, 104, 291, 100, 290, 290, 111,
+ 0, 71, 70, 307, 276, 0, 0, 242, 243, 0,
+ 0, 0, 0, 63, 0, 203, 204, 307, 205, 206,
+ 307, 307, 307, 0, 80, 297, 0, 0, 164, 143,
169, 156, 165, 154, 0, 121, 0, 94, 97, 98,
- 301, 135, 0, 0, 86, 87, 93, 284, 301, 315,
- 0, 315, 0, 0, 269, 0, 212, 0, 0, 287,
- 109, 0, 108, 110, 101, 284, 106, 107, 0, 99,
- 112, 103, 221, 271, 272, 235, 233, 253, 0, 239,
- 229, 218, 223, 225, 227, 0, 234, 232, 294, 293,
- 170, 134, 0, 128, 301, 96, 301, 129, 301, 91,
- 284, 301, 316, 130, 301, 211, 267, 276, 0, 0,
- 278, 213, 148, 149, 105, 0, 273, 257, 0, 255,
- 207, 0, 228, 122, 123, 95, 92, 301, 88, 90,
- 125, 125, 0, 0, 280, 282, 277, 0, 113, 254,
- 0, 259, 219, 0, 131, 132, 268, 281, 0, 279,
- 0, 256, 262, 263, 261, 258, 260, 89, 283, 117,
- 118, 0, 0, 115, 119, 0, 114, 116, 120
+ 307, 135, 307, 0, 0, 86, 87, 93, 290, 307,
+ 321, 0, 321, 0, 275, 0, 213, 0, 0, 293,
+ 109, 0, 108, 110, 101, 290, 106, 107, 0, 99,
+ 112, 103, 223, 277, 278, 237, 235, 257, 255, 0,
+ 256, 258, 259, 241, 231, 220, 225, 227, 229, 0,
+ 236, 234, 300, 299, 170, 134, 0, 128, 307, 96,
+ 0, 307, 129, 307, 91, 290, 307, 322, 130, 307,
+ 273, 282, 0, 0, 284, 214, 148, 149, 105, 0,
+ 279, 0, 0, 262, 324, 325, 207, 307, 230, 122,
+ 123, 95, 211, 92, 307, 88, 90, 125, 125, 0,
+ 0, 286, 288, 283, 0, 113, 0, 260, 0, 265,
+ 221, 0, 131, 132, 274, 287, 0, 285, 0, 0,
+ 263, 268, 269, 267, 264, 266, 89, 289, 117, 118,
+ 0, 0, 115, 119, 261, 0, 114, 116, 120
};
/* YYDEFGOTO[NTERM-NUM]. */
@@ -1119,320 +1130,328 @@
-1, 4, 5, 6, 11, 13, 14, 18, 19, 30,
31, 32, 44, 45, 85, 86, 135, 56, 57, 63,
64, 166, 65, 66, 67, 46, 47, 50, 51, 185,
- 87, 120, 88, 145, 146, 186, 187, 353, 354, 355,
- 346, 347, 137, 375, 228, 229, 379, 380, 460, 472,
- 473, 356, 357, 160, 161, 219, 250, 201, 202, 474,
- 302, 303, 89, 208, 274, 209, 210, 251, 341, 122,
- 123, 124, 125, 327, 330, 222, 223, 224, 225, 288,
- 289, 253, 254, 255, 256, 257, 321, 258, 259, 260,
- 261, 262, 263, 428, 429, 465, 466, 290, 291, 442,
- 292, 316, 293, 294, 295, 419, 420, 444, 304, 305,
- 153, 195, 196, 264, 265, 129, 130, 131, 158, 164,
- 211, 126, 411, 266
+ 87, 120, 88, 145, 146, 186, 187, 354, 355, 356,
+ 346, 347, 137, 375, 226, 227, 379, 380, 468, 481,
+ 482, 357, 248, 160, 161, 219, 121, 201, 202, 483,
+ 302, 303, 89, 208, 272, 209, 210, 249, 341, 122,
+ 123, 124, 125, 327, 330, 221, 280, 222, 223, 287,
+ 288, 289, 251, 252, 253, 254, 255, 321, 256, 257,
+ 258, 259, 260, 261, 388, 390, 391, 392, 432, 433,
+ 474, 475, 290, 291, 449, 292, 316, 293, 294, 295,
+ 423, 424, 451, 304, 305, 153, 195, 196, 262, 263,
+ 129, 130, 131, 158, 164, 211, 126, 416, 264, 435,
+ 436
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -312
+#define YYPACT_NINF -320
static const yytype_int16 yypact[] =
{
- 97, -312, -312, 275, 72, 275, -312, -312, 275, -312,
- -312, 1, 39, 62, -312, -312, -312, -312, 83, -312,
- 51, 343, -312, -312, 159, 134, 144, 169, 154, 174,
- 247, 343, -312, 171, -312, -312, -312, -312, -312, 245,
- -312, -312, 187, 52, 237, -312, 240, -312, 191, -312,
- 2, -312, 202, -312, -312, 185, 558, -312, -312, -312,
- 228, 208, -312, 211, 228, -312, -8, -312, 258, -312,
- -312, 357, -312, -312, -312, -312, -312, -312, -312, -312,
- -312, -312, -312, -312, -312, 558, -312, -312, -312, -312,
- -312, 224, 230, -312, -312, -312, -312, 275, 228, 265,
- -312, -312, -11, 262, -312, 290, -312, 291, 306, -312,
- -312, -312, -312, -312, 327, 298, -312, -312, -312, 711,
- 384, 277, -312, 278, -312, -312, 279, 155, 395, -312,
- -312, 181, 1, -312, -312, -312, 288, -312, -312, 228,
- -312, -312, -312, -312, -312, -75, -312, 284, -312, 286,
- 293, 69, 80, -312, 292, -312, -312, -312, 393, 584,
- 635, 104, -312, -312, -312, -312, -312, 299, -312, -312,
- 404, 711, 228, 228, 448, -312, -312, -312, -312, -312,
- -312, -312, -312, -312, -312, -312, 100, -312, -312, -312,
- -312, -312, -312, -312, -312, 118, -312, -312, 295, -312,
- -312, 296, -312, -312, -312, 297, -312, -312, -312, -312,
- -312, 300, 301, 367, 302, 336, 98, 161, -312, -312,
- 307, 342, -312, -312, -312, 309, 92, 47, 131, -312,
- -11, -312, -312, -312, -312, -312, -312, -312, -312, 308,
- -312, -312, -13, 173, -312, -312, 294, -312, -312, 448,
- -312, -312, 303, 310, 229, 257, -312, 320, -312, 314,
- -13, -312, -312, -312, -312, -312, -312, -312, 69, -312,
- 45, 316, 345, -312, 407, 417, 584, 398, 6, 350,
- 76, 358, 76, 359, 342, 400, 230, 275, 322, -312,
- -312, -312, -312, -312, 326, -312, 342, -312, -312, 584,
- -312, 129, 123, 129, -312, -312, 344, 123, 129, 338,
- 299, -312, -312, 496, 319, 333, 210, -312, -312, 332,
- 337, 407, 329, -312, 339, -312, -312, 496, -312, -312,
- 496, 496, 448, 330, -312, -312, 340, 353, -312, -312,
- -312, 440, -312, -312, 417, 331, 170, -312, -312, -312,
- 230, -312, 375, 356, 354, -312, -312, 129, 230, 417,
- 361, 417, 355, 360, -312, 362, -312, 365, 376, -312,
- -312, 352, -312, -312, -312, 129, -312, -312, 386, -312,
- -312, -312, -312, -312, 369, -312, -312, 309, 19, 440,
- -312, 373, 257, -312, -312, 378, -312, -312, -312, -312,
- -312, -312, 316, -312, 6, -312, 230, -312, 38, -312,
- 129, 230, -312, -312, 230, -312, -312, -312, 9, 172,
- -312, -312, -312, -312, -312, 383, -312, -312, 188, -312,
- 104, 469, -312, -312, -312, -312, -312, 60, -312, -312,
- -312, -312, 407, 417, 374, -312, -312, 365, -312, -312,
- 19, 152, -312, 41, -312, -312, 440, 374, 417, -312,
- 15, -312, -312, -312, -312, -312, -312, -312, -312, -312,
- -312, 15, 8, -312, -312, 34, -312, -312, -312
+ 70, -320, -320, 95, 24, 95, -320, -320, 95, -320,
+ -320, -81, 46, 4, -320, -320, -320, -320, 64, -320,
+ -52, 199, -320, -320, 93, 86, 68, 74, 149, 123,
+ 224, 199, -320, 159, -320, -320, -320, -320, -320, 214,
+ -320, -320, 246, 72, 202, -320, 222, -320, 138, -320,
+ 150, -320, 180, -320, -320, 92, 585, -320, -320, -320,
+ 207, 209, -320, 220, 207, -320, 53, -320, 231, -320,
+ -320, 301, -320, -320, -320, -320, -320, -320, -320, -320,
+ -320, -320, -320, -320, -320, 585, -320, -320, -320, -320,
+ -320, 535, 226, -320, -320, -320, -320, 95, 207, 233,
+ -320, -320, -16, 228, -320, 258, -320, 259, 273, -320,
+ -320, -320, -320, -320, 294, 266, -320, -320, -320, 738,
+ 361, 254, -320, 255, -320, -320, 248, 90, 367, -320,
+ -320, 164, -81, -320, -320, -320, 261, -320, -320, 207,
+ -320, -320, -320, -320, -320, 77, -320, 256, -320, 257,
+ 264, 225, 80, -320, 280, -320, -320, -320, 364, 469,
+ 662, 265, -320, -320, -320, -320, -320, 252, -320, -320,
+ 376, 738, 207, 207, 315, -320, -320, -320, -320, -320,
+ -320, -320, -320, -320, -320, -320, 99, -320, -320, -320,
+ -320, -320, -320, -320, -320, 116, -320, -320, 267, -320,
+ -320, 260, -320, -320, -320, 268, -320, -320, -320, -320,
+ -320, 269, 272, 340, 274, 309, 108, 109, -320, -320,
+ 192, -320, -320, 275, 134, 62, 127, -320, -16, -320,
+ -320, -320, -320, -320, -320, -320, -320, 282, -320, -320,
+ 29, 188, -320, -320, 271, -320, -320, 315, -320, -320,
+ 279, 277, 204, 208, -320, 291, -320, 284, 29, -320,
+ -320, -320, -320, -320, -320, -320, 225, -320, 88, 263,
+ 314, -320, 391, 392, 469, 372, 60, 298, 292, 45,
+ 331, -320, 45, 332, 377, 226, 95, 297, -320, -320,
+ -320, -320, -320, -320, 302, -320, 192, -320, -320, 469,
+ -320, 39, -17, 39, -320, -320, 317, -17, 39, 312,
+ 252, -320, -320, 458, 299, 307, 480, -320, -320, 265,
+ 308, 391, 304, -320, 310, -320, -320, 458, -320, -320,
+ 458, 458, 315, 490, -320, -320, 313, 316, -320, -320,
+ -320, 415, -320, -320, 392, 303, 139, -320, -320, -320,
+ 226, -320, 192, 354, 319, 320, -320, -320, 39, 226,
+ 392, 323, 392, 326, -320, 327, -320, 322, 328, -320,
+ -320, 318, -320, -320, -320, 39, -320, -320, 352, -320,
+ -320, -320, -320, -320, 321, -320, -320, -320, -320, 67,
+ -320, -320, -320, 415, -320, 334, 208, -320, -320, 333,
+ -320, -320, -320, -320, -320, -320, 263, -320, 60, -320,
+ 337, 226, -320, 18, -320, 39, 226, -320, -320, 226,
+ -320, -320, 23, 166, -320, -320, -320, -320, -320, 341,
+ -320, 339, 172, -320, -320, -320, 265, 347, -320, -320,
+ -320, -320, -320, -320, 61, -320, -320, -320, -320, 391,
+ 392, 335, -320, -320, 322, -320, 392, -320, 392, 41,
+ -320, 16, -320, -320, 415, 335, 392, -320, 30, 174,
+ -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+ 30, 6, -320, -320, -320, 48, -320, -320, -320
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -312, -312, 473, 117, -312, -312, 364, -312, 479, -312,
- -312, 467, -312, -312, -312, 414, -312, -312, -312, -312,
- -312, -312, 438, -312, 405, -312, -312, -312, 455, 368,
- -312, 363, -312, -312, 346, -312, 251, 238, 87, 119,
- -312, 122, 304, -312, -312, 218, -312, -312, -312, 58,
- -223, -255, -89, -312, -67, -312, -86, -312, 259, -138,
- 305, 311, -312, -93, -312, -133, -256, -140, -311, -81,
- -52, -312, -24, -312, -312, -215, -312, -312, 214, -83,
- -166, 99, -312, 209, 212, -225, -312, -312, -312, -294,
- -312, -312, -312, -312, 89, -312, -312, -312, -312, -312,
- -312, 280, -312, -312, -312, -312, 96, 101, -203, -312,
- -312, -312, 281, -126, -312, -112, -312, -312, -312, -312,
- 4, -312, 184, -12
+ -320, -320, 445, 296, -320, -320, 325, -320, 435, -320,
+ -320, 428, -320, -320, -320, 378, -320, -320, -320, -320,
+ -320, -320, 397, -320, 366, -320, -320, -320, 402, 357,
+ -320, 348, -320, -320, 305, -320, 217, 193, 65, 84,
+ -320, 104, 285, -320, -320, 205, -320, -320, -320, 34,
+ -192, -262, -91, -320, -107, -320, 239, -320, 247, -151,
+ 293, 295, -320, -237, -320, -144, -264, -131, -319, -87,
+ -86, -320, 128, -320, -320, 83, 306, -178, -320, -232,
+ -320, -170, 85, -320, 197, 195, -296, -320, -320, -320,
+ -222, -320, -320, -320, -320, -320, -320, -320, 71, 73,
+ -320, -320, -320, -320, -320, -320, 270, -320, -320, -320,
+ -320, 75, 87, -261, -320, -320, -320, 262, -143, -320,
+ -110, -320, -320, -320, -320, 10, -320, 171, -12, -320,
+ -320
};
/* 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, syntax error. */
-#define YYTABLE_NINF -285
+#define YYTABLE_NINF -291
static const yytype_int16 yytable[] =
{
- 20, 281, 283, 128, 7, 121, 20, 7, 252, 7,
- 389, 190, 7, 138, 469, 336, 203, 15, 189, 190,
- 15, 469, 386, 348, 136, 191, 197, 199, 200, 470,
- 15, 53, 90, 191, 199, 200, 470, 170, 147, 397,
- 469, 171, 437, 69, 92, 97, 467, 52, 53, 15,
- 15, 16, 69, 199, 200, 470, 15, 179, 180, 68,
- 91, 90, 188, 15, 52, 297, 298, 148, 68, 1,
- 2, 15, 9, 92, 121, 352, 48, 176, 177, 178,
- 15, 179, 180, 322, 181, 182, 69, 15, 382, 91,
- 147, 15, 179, 180, 15, 16, 314, 352, 370, 372,
- 373, 132, 68, 21, 376, 377, 394, 127, 98, 315,
- 297, 298, 12, 352, 1, 2, 345, 59, 60, 148,
- 476, 183, 10, 149, 127, 10, 471, 169, 190, 427,
- 443, 456, 299, 471, 203, 189, 190, 301, 306, 192,
- 198, 312, 191, 168, 197, 337, 433, 212, 345, 348,
- 191, 17, 471, 478, 409, 193, 127, 408, 204, 190,
- 233, 235, 184, 299, 24, 127, 395, 49, 300, 299,
- 345, 33, 424, 191, 462, 149, 232, 234, 127, 188,
- 174, 155, 317, 343, 15, 220, 345, 127, -85, 349,
- 193, 220, 194, 351, 127, 22, 15, 364, 34, 300,
- 3, 362, 1, 2, -284, 300, 369, 439, -284, 280,
- 127, 221, 267, 368, 37, 451, 268, 221, 236, 177,
- 237, 15, 179, 180, 238, 181, 182, 102, 463, 162,
- 269, 318, 464, -26, 270, 35, 43, 156, 62, 15,
- 163, 103, 104, 309, 371, 1, 2, 310, 220, 477,
- 39, 157, 477, 105, 70, 106, 192, 107, 198, 338,
- 36, 405, 240, 342, 212, 38, 350, 108, 358, 410,
- 358, 109, 282, 42, 221, 110, 434, 385, 111, 72,
- 73, 74, 403, 54, 446, 41, 404, 212, 447, 112,
- 75, 365, 1, 2, 113, 76, 114, 77, 115, 440,
- 449, 55, 441, 245, 450, 78, 58, 116, 117, 1,
- 2, 199, 200, 61, 79, 349, 80, 436, 226, 227,
- 94, 81, 118, 82, 83, 84, 95, 15, 179, 180,
- 319, 320, 401, 1, 2, 119, 325, 326, 236, 177,
- 237, 15, 179, 180, 238, 181, 182, 412, 127, 412,
- 236, 177, 237, 15, 179, 180, 238, 181, 182, 103,
- 104, 25, 328, 329, 199, 200, 239, 103, 104, 99,
- 26, 422, 423, 454, 455, 100, 430, 134, 140, 141,
- 285, 286, 240, 139, 142, 143, 144, 150, 151, 152,
- 338, 27, 350, 28, 240, 241, 358, 396, 159, 167,
- 154, 172, 29, 173, 174, 205, 445, 230, 271, 277,
- 242, 279, 313, 278, 340, 323, 273, 272, 276, 243,
- 284, 275, 296, 245, 331, 358, 324, 332, 15, 244,
- 344, 445, 363, 359, 361, 245, 366, 367, 430, 374,
- 378, 383, 384, 390, 246, 221, 468, 400, 388, 391,
- 406, 402, 247, 287, 398, 249, 236, 177, 237, 15,
- 179, 180, 238, 181, 182, 103, 104, 399, 407, 415,
- 408, 416, 239, 413, 417, 425, 8, 236, 177, 237,
- 15, 179, 180, 238, 181, 182, 103, 104, 418, 431,
- 421, 426, 432, 239, 448, 458, 165, 23, 40, 101,
- 240, 241, 96, 133, 236, 177, 237, 15, 179, 180,
- 238, 181, 182, 103, 104, 93, 242, 231, 175, 334,
- 360, 240, 241, 218, 453, 243, 435, 438, 381, 475,
- 452, 339, 307, 387, 311, 244, 392, 242, 308, 461,
- 333, 245, 393, 459, 457, 414, 243, 0, 240, 241,
- 246, 335, 0, 0, 0, 0, 244, 0, 247, 248,
- 0, 249, 245, 0, 242, 0, 0, 0, 0, 15,
- 0, 246, 0, 243, 0, 1, 2, 0, 0, 0,
- 248, 0, 249, 244, 0, 0, 0, 0, 70, 245,
- 0, 0, 176, 177, 178, 15, 179, 180, 246, 181,
- 182, 1, 2, 71, 0, 0, 0, 248, 0, 249,
- 0, 0, 0, 72, 73, 74, 0, 0, 0, 0,
- 0, 0, 0, 0, 75, 0, 0, 0, 0, 76,
- 0, 77, 0, 0, 0, 0, 183, 0, 0, 78,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 0,
- 80, 0, 103, 104, 206, 81, 0, 82, 83, 84,
- 213, 0, 0, 0, 105, 70, 106, 0, 107, 214,
- 0, 0, 0, 0, 0, 0, 0, 184, 108, 0,
- 0, 0, 109, 0, 0, 0, 110, 0, 0, 111,
- 72, 73, 74, 0, 0, 207, 0, 0, 215, 0,
- 112, 75, 0, 0, 0, 113, 76, 114, 77, 115,
- 0, 0, 0, 0, 0, 0, 78, 0, 116, 117,
- 216, 217, 0, 0, 0, 79, 0, 80, 1, 2,
- 0, 0, 81, 118, 82, 83, 84, 0, 0, 0,
- 105, 70, 106, 0, 107, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 108, 0, 0, 0, 109, 0,
- 0, 0, 110, 0, 0, 111, 72, 73, 74, 0,
- 0, 0, 0, 0, 0, 0, 112, 75, 0, 0,
- 0, 113, 76, 114, 77, 115, 0, 0, 0, 0,
- 0, 0, 78, 0, 116, 117, 0, 0, 0, 0,
- 0, 79, 0, 80, 0, 0, 0, 0, 81, 118,
- 82, 83, 84
+ 20, 128, 393, 203, 250, 336, 20, 189, 191, 197,
+ 7, 138, 478, 7, 348, 7, 191, 382, 7, 136,
+ 190, 476, 444, 299, 9, 199, 200, 479, 190, 15,
+ 12, 53, 147, 148, 15, 398, 478, 343, 281, 281,
+ 370, 372, 373, 69, 92, 21, 376, 377, 53, 199,
+ 200, 479, 69, 52, 478, 353, 15, 15, 16, 300,
+ 188, 24, 369, 471, 368, 68, 91, 199, 200, 479,
+ 52, 15, 15, 92, 68, 15, 16, 322, 15, 299,
+ 297, 298, 353, 15, 147, 148, 69, 1, 2, 1,
+ 2, 15, 179, 180, 386, 91, 48, 414, 353, 15,
+ 179, 180, 127, 15, 371, 33, 97, 132, 68, 1,
+ 2, 401, 1, 2, 428, 300, 155, 472, 486, 203,
+ 410, 473, 189, 191, 480, 197, 337, 169, 345, 149,
+ 464, 191, 413, 301, 306, 190, 127, 312, 314, 192,
+ 198, 387, 439, 190, 450, 62, 348, 212, 480, 168,
+ 34, 315, 297, 298, 446, 345, 191, -85, 17, 35,
+ 231, 233, 399, 127, 204, 36, 480, 488, 190, 98,
+ 345, 345, 156, 3, 299, 188, 22, 431, 127, 127,
+ 127, 149, 230, 232, 90, 349, 157, 49, 358, 170,
+ 193, 358, 194, 171, 364, 278, 278, 317, 193, 15,
+ 234, 177, 235, 15, 179, 180, 236, 181, 182, 37,
+ 300, 265, 162, 90, 38, 266, 237, 25, 15, 279,
+ 282, 220, 220, 163, 1, 2, 26, 39, 267, 318,
+ 284, 285, 268, 176, 177, 178, 15, 179, 180, 309,
+ 181, 182, 42, 310, 238, 239, -290, 27, 54, 28,
+ -290, 407, 127, 58, 192, 408, 198, 338, 29, 409,
+ 240, 342, 212, 440, 350, 59, 60, 359, 415, 241,
+ 359, 224, 225, 41, 15, 179, 180, 183, 453, 242,
+ 1, 2, 454, 55, 457, 243, 484, 212, 458, 487,
+ 458, 61, -26, 487, 244, 43, 365, 1, 2, 199,
+ 200, 10, 245, 286, 10, 247, 447, 319, 320, 448,
+ 127, 325, 326, 328, 329, 103, 104, 349, 184, 100,
+ 443, 94, 358, 234, 177, 235, 15, 179, 180, 236,
+ 181, 182, 405, 199, 200, 95, 174, 426, 427, 237,
+ 462, 463, 99, 127, 127, 134, 140, 141, 417, 139,
+ 417, 142, 143, 358, 144, 234, 177, 235, 15, 179,
+ 180, 236, 181, 182, 150, 151, 152, 238, 239, 154,
+ 159, 237, 167, 172, 173, 174, 205, 434, 220, 228,
+ 269, 270, 275, 240, 277, 276, 313, 271, 296, 274,
+ 273, 323, 241, 324, 338, 331, 350, 332, 340, 238,
+ 239, 359, 242, 15, 344, 352, 360, 362, 243, 363,
+ 452, 366, 374, 367, 378, 240, 384, 244, 394, 389,
+ 395, 383, 404, 406, 241, 245, 246, 402, 247, 411,
+ 403, 412, 359, 127, 242, 418, 413, 420, 452, 421,
+ 243, 429, 425, 430, 434, 422, 434, 438, 8, 244,
+ 437, 442, 455, 23, 477, 456, 466, 165, 246, 40,
+ 247, 96, 93, 101, 133, 127, 234, 177, 235, 15,
+ 179, 180, 236, 181, 182, 361, 229, 176, 177, 178,
+ 15, 179, 180, 334, 181, 182, 1, 2, 234, 177,
+ 235, 15, 179, 180, 236, 181, 182, 445, 234, 177,
+ 235, 15, 179, 180, 236, 181, 182, 175, 218, 461,
+ 238, 239, 441, 311, 485, 381, 351, 339, 307, 459,
+ 308, 183, 460, 283, 396, 397, 240, 469, 333, 467,
+ 335, 470, 238, 419, 0, 241, 0, 465, 102, 206,
+ 0, 0, 238, 0, 0, 242, 0, 385, 0, 0,
+ 0, 243, 103, 104, 0, 0, 0, 400, 0, 0,
+ 244, 0, 184, 0, 105, 70, 106, 0, 107, 246,
+ 0, 247, 0, 243, 0, 0, 127, 0, 108, 0,
+ 207, 0, 109, 243, 0, 0, 110, 0, 0, 111,
+ 72, 73, 74, 0, 0, 0, 15, 0, 0, 0,
+ 112, 75, 1, 2, 0, 113, 76, 114, 77, 115,
+ 0, 0, 0, 0, 0, 70, 78, 0, 116, 117,
+ 0, 0, 0, 0, 0, 79, 0, 80, 0, 0,
+ 71, 0, 81, 118, 82, 83, 84, 0, 0, 0,
+ 72, 73, 74, 0, 0, 0, 119, 0, 0, 0,
+ 0, 75, 0, 0, 0, 0, 76, 0, 77, 0,
+ 0, 0, 0, 0, 0, 0, 78, 0, 0, 0,
+ 0, 0, 0, 0, 0, 79, 0, 80, 0, 103,
+ 104, 0, 81, 0, 82, 83, 84, 213, 0, 0,
+ 0, 105, 70, 106, 0, 107, 214, 0, 0, 0,
+ 0, 0, 0, 0, 0, 108, 0, 0, 0, 109,
+ 0, 0, 0, 110, 0, 0, 111, 72, 73, 74,
+ 0, 0, 0, 0, 0, 215, 0, 112, 75, 0,
+ 0, 0, 113, 76, 114, 77, 115, 0, 0, 0,
+ 0, 0, 0, 78, 0, 116, 117, 216, 217, 0,
+ 0, 0, 79, 0, 80, 1, 2, 0, 0, 81,
+ 118, 82, 83, 84, 0, 0, 0, 105, 70, 106,
+ 0, 107, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 108, 0, 0, 0, 109, 0, 0, 0, 110,
+ 0, 0, 111, 72, 73, 74, 0, 0, 0, 0,
+ 0, 0, 0, 112, 75, 0, 0, 0, 113, 76,
+ 114, 77, 115, 0, 0, 0, 0, 0, 0, 78,
+ 0, 116, 117, 0, 0, 0, 0, 0, 79, 0,
+ 80, 0, 0, 0, 0, 81, 118, 82, 83, 84
};
static const yytype_int16 yycheck[] =
{
- 12, 216, 217, 92, 0, 91, 18, 3, 174, 5,
- 321, 151, 8, 102, 6, 271, 154, 11, 151, 159,
- 11, 6, 316, 278, 35, 151, 152, 19, 20, 21,
- 11, 43, 56, 159, 19, 20, 21, 112, 119, 333,
- 6, 116, 4, 55, 56, 53, 5, 43, 60, 11,
- 11, 12, 64, 19, 20, 21, 11, 12, 13, 55,
- 56, 85, 151, 11, 60, 18, 19, 119, 64, 17,
- 18, 11, 0, 85, 160, 37, 24, 8, 9, 10,
- 11, 12, 13, 249, 15, 16, 98, 11, 313, 85,
- 171, 11, 12, 13, 11, 12, 109, 37, 301, 302,
- 303, 97, 98, 41, 307, 308, 331, 118, 116, 122,
- 18, 19, 111, 37, 17, 18, 110, 115, 116, 171,
- 112, 52, 5, 119, 118, 8, 118, 139, 268, 110,
- 121, 442, 40, 118, 272, 268, 276, 226, 227, 151,
- 152, 230, 268, 139, 270, 271, 402, 159, 110, 404,
- 276, 112, 118, 119, 357, 110, 118, 116, 154, 299,
- 172, 173, 93, 40, 113, 118, 332, 115, 76, 40,
- 110, 12, 375, 299, 22, 171, 172, 173, 118, 268,
- 111, 26, 9, 276, 11, 87, 110, 118, 112, 278,
- 110, 87, 112, 279, 118, 112, 11, 286, 64, 76,
- 103, 284, 17, 18, 112, 76, 299, 410, 116, 111,
- 118, 113, 112, 296, 60, 430, 116, 113, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 3, 76, 48,
- 112, 243, 80, 46, 116, 91, 49, 82, 53, 11,
- 59, 17, 18, 112, 121, 17, 18, 116, 87, 472,
- 3, 96, 475, 29, 30, 31, 268, 33, 270, 271,
- 91, 350, 52, 275, 276, 91, 278, 43, 280, 358,
- 282, 47, 111, 28, 113, 51, 402, 67, 54, 55,
- 56, 57, 112, 46, 112, 114, 116, 299, 116, 65,
- 66, 287, 17, 18, 70, 71, 72, 73, 74, 411,
- 112, 61, 414, 93, 116, 81, 115, 83, 84, 17,
- 18, 19, 20, 111, 90, 404, 92, 406, 19, 20,
- 112, 97, 98, 99, 100, 101, 115, 11, 12, 13,
- 36, 37, 344, 17, 18, 111, 107, 108, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 359, 118, 361,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 18, 105, 106, 19, 20, 24, 17, 18, 111,
- 27, 19, 20, 440, 441, 18, 388, 112, 88, 88,
- 38, 39, 52, 121, 78, 58, 88, 3, 111, 111,
- 402, 48, 404, 50, 52, 53, 408, 67, 3, 111,
- 121, 117, 59, 117, 111, 12, 418, 3, 113, 42,
- 68, 75, 104, 111, 7, 112, 119, 121, 117, 77,
- 113, 121, 113, 93, 104, 437, 116, 113, 11, 87,
- 32, 443, 32, 75, 75, 93, 114, 111, 450, 95,
- 102, 122, 109, 114, 102, 113, 458, 7, 111, 110,
- 75, 120, 110, 111, 114, 113, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 114, 112, 114,
- 116, 111, 24, 112, 112, 89, 3, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 123, 116,
- 114, 122, 114, 24, 111, 121, 132, 18, 31, 85,
- 52, 53, 64, 98, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 60, 68, 171, 150, 268,
- 282, 52, 53, 160, 437, 77, 404, 408, 310, 471,
- 431, 272, 227, 319, 230, 87, 327, 68, 227, 450,
- 260, 93, 330, 447, 443, 361, 77, -1, 52, 53,
- 102, 270, -1, -1, -1, -1, 87, -1, 110, 111,
- -1, 113, 93, -1, 68, -1, -1, -1, -1, 11,
- -1, 102, -1, 77, -1, 17, 18, -1, -1, -1,
- 111, -1, 113, 87, -1, -1, -1, -1, 30, 93,
- -1, -1, 8, 9, 10, 11, 12, 13, 102, 15,
- 16, 17, 18, 45, -1, -1, -1, 111, -1, 113,
- -1, -1, -1, 55, 56, 57, -1, -1, -1, -1,
- -1, -1, -1, -1, 66, -1, -1, -1, -1, 71,
- -1, 73, -1, -1, -1, -1, 52, -1, -1, 81,
- -1, -1, -1, -1, -1, -1, -1, -1, 90, -1,
- 92, -1, 17, 18, 70, 97, -1, 99, 100, 101,
- 25, -1, -1, -1, 29, 30, 31, -1, 33, 34,
- -1, -1, -1, -1, -1, -1, -1, 93, 43, -1,
- -1, -1, 47, -1, -1, -1, 51, -1, -1, 54,
- 55, 56, 57, -1, -1, 111, -1, -1, 63, -1,
- 65, 66, -1, -1, -1, 70, 71, 72, 73, 74,
- -1, -1, -1, -1, -1, -1, 81, -1, 83, 84,
- 85, 86, -1, -1, -1, 90, -1, 92, 17, 18,
- -1, -1, 97, 98, 99, 100, 101, -1, -1, -1,
- 29, 30, 31, -1, 33, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 43, -1, -1, -1, 47, -1,
- -1, -1, 51, -1, -1, 54, 55, 56, 57, -1,
- -1, -1, -1, -1, -1, -1, 65, 66, -1, -1,
- -1, 70, 71, 72, 73, 74, -1, -1, -1, -1,
- -1, -1, 81, -1, 83, 84, -1, -1, -1, -1,
- -1, 90, -1, 92, -1, -1, -1, -1, 97, 98,
- 99, 100, 101
+ 12, 92, 321, 154, 174, 269, 18, 151, 151, 152,
+ 0, 102, 6, 3, 276, 5, 159, 313, 8, 35,
+ 151, 5, 4, 40, 0, 19, 20, 21, 159, 11,
+ 111, 43, 119, 119, 11, 331, 6, 274, 216, 217,
+ 301, 302, 303, 55, 56, 41, 307, 308, 60, 19,
+ 20, 21, 64, 43, 6, 37, 11, 11, 12, 76,
+ 151, 113, 299, 22, 296, 55, 56, 19, 20, 21,
+ 60, 11, 11, 85, 64, 11, 12, 247, 11, 40,
+ 18, 19, 37, 11, 171, 171, 98, 17, 18, 17,
+ 18, 11, 12, 13, 316, 85, 24, 358, 37, 11,
+ 12, 13, 118, 11, 121, 12, 53, 97, 98, 17,
+ 18, 333, 17, 18, 375, 76, 26, 76, 112, 270,
+ 352, 80, 266, 266, 118, 268, 269, 139, 110, 119,
+ 449, 274, 116, 224, 225, 266, 118, 228, 109, 151,
+ 152, 319, 406, 274, 121, 53, 408, 159, 118, 139,
+ 64, 122, 18, 19, 415, 110, 299, 112, 112, 91,
+ 172, 173, 332, 118, 154, 91, 118, 119, 299, 116,
+ 110, 110, 82, 103, 40, 266, 112, 110, 118, 118,
+ 118, 171, 172, 173, 56, 276, 96, 115, 279, 112,
+ 110, 282, 112, 116, 285, 87, 87, 9, 110, 11,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 60,
+ 76, 112, 48, 85, 91, 116, 24, 18, 11, 111,
+ 111, 113, 113, 59, 17, 18, 27, 3, 112, 241,
+ 38, 39, 116, 8, 9, 10, 11, 12, 13, 112,
+ 15, 16, 28, 116, 52, 53, 112, 48, 46, 50,
+ 116, 112, 118, 115, 266, 116, 268, 269, 59, 350,
+ 68, 273, 274, 406, 276, 115, 116, 279, 359, 77,
+ 282, 19, 20, 114, 11, 12, 13, 52, 112, 87,
+ 17, 18, 116, 61, 112, 93, 112, 299, 116, 481,
+ 116, 111, 46, 485, 102, 49, 286, 17, 18, 19,
+ 20, 5, 110, 111, 8, 113, 416, 36, 37, 419,
+ 118, 107, 108, 105, 106, 17, 18, 408, 93, 18,
+ 411, 112, 413, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 344, 19, 20, 115, 111, 19, 20, 24,
+ 447, 448, 111, 118, 118, 112, 88, 88, 360, 121,
+ 362, 78, 58, 444, 88, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 3, 111, 111, 52, 53, 121,
+ 3, 24, 111, 117, 117, 111, 12, 389, 113, 3,
+ 113, 121, 42, 68, 75, 111, 104, 119, 113, 117,
+ 121, 112, 77, 116, 406, 104, 408, 113, 7, 52,
+ 53, 413, 87, 11, 32, 113, 75, 75, 93, 32,
+ 422, 114, 95, 111, 102, 68, 109, 102, 114, 111,
+ 110, 122, 7, 120, 77, 110, 111, 114, 113, 75,
+ 114, 112, 444, 118, 87, 112, 116, 111, 450, 112,
+ 93, 89, 114, 122, 456, 123, 458, 114, 3, 102,
+ 116, 114, 111, 18, 466, 116, 121, 132, 111, 31,
+ 113, 64, 60, 85, 98, 118, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 282, 171, 8, 9, 10,
+ 11, 12, 13, 266, 15, 16, 17, 18, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 413, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 150, 160, 444,
+ 52, 53, 408, 228, 480, 310, 277, 270, 225, 436,
+ 225, 52, 437, 217, 327, 330, 68, 456, 258, 454,
+ 268, 458, 52, 362, -1, 77, -1, 450, 3, 70,
+ -1, -1, 52, -1, -1, 87, -1, 67, -1, -1,
+ -1, 93, 17, 18, -1, -1, -1, 67, -1, -1,
+ 102, -1, 93, -1, 29, 30, 31, -1, 33, 111,
+ -1, 113, -1, 93, -1, -1, 118, -1, 43, -1,
+ 111, -1, 47, 93, -1, -1, 51, -1, -1, 54,
+ 55, 56, 57, -1, -1, -1, 11, -1, -1, -1,
+ 65, 66, 17, 18, -1, 70, 71, 72, 73, 74,
+ -1, -1, -1, -1, -1, 30, 81, -1, 83, 84,
+ -1, -1, -1, -1, -1, 90, -1, 92, -1, -1,
+ 45, -1, 97, 98, 99, 100, 101, -1, -1, -1,
+ 55, 56, 57, -1, -1, -1, 111, -1, -1, -1,
+ -1, 66, -1, -1, -1, -1, 71, -1, 73, -1,
+ -1, -1, -1, -1, -1, -1, 81, -1, -1, -1,
+ -1, -1, -1, -1, -1, 90, -1, 92, -1, 17,
+ 18, -1, 97, -1, 99, 100, 101, 25, -1, -1,
+ -1, 29, 30, 31, -1, 33, 34, -1, -1, -1,
+ -1, -1, -1, -1, -1, 43, -1, -1, -1, 47,
+ -1, -1, -1, 51, -1, -1, 54, 55, 56, 57,
+ -1, -1, -1, -1, -1, 63, -1, 65, 66, -1,
+ -1, -1, 70, 71, 72, 73, 74, -1, -1, -1,
+ -1, -1, -1, 81, -1, 83, 84, 85, 86, -1,
+ -1, -1, 90, -1, 92, 17, 18, -1, -1, 97,
+ 98, 99, 100, 101, -1, -1, -1, 29, 30, 31,
+ -1, 33, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 43, -1, -1, -1, 47, -1, -1, -1, 51,
+ -1, -1, 54, 55, 56, 57, -1, -1, -1, -1,
+ -1, -1, -1, 65, 66, -1, -1, -1, 70, 71,
+ 72, 73, 74, -1, -1, -1, -1, -1, -1, 81,
+ -1, 83, 84, -1, -1, -1, -1, -1, 90, -1,
+ 92, -1, -1, -1, -1, 97, 98, 99, 100, 101
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 17, 18, 103, 125, 126, 127, 244, 126, 0,
+ 0, 17, 18, 103, 125, 126, 127, 249, 126, 0,
127, 128, 111, 129, 130, 11, 12, 112, 131, 132,
- 247, 41, 112, 132, 113, 18, 27, 48, 50, 59,
+ 252, 41, 112, 132, 113, 18, 27, 48, 50, 59,
133, 134, 135, 12, 64, 91, 91, 60, 91, 3,
135, 114, 28, 49, 136, 137, 149, 150, 24, 115,
- 151, 152, 244, 247, 46, 61, 141, 142, 115, 115,
- 116, 111, 53, 143, 144, 146, 147, 148, 244, 247,
+ 151, 152, 249, 252, 46, 61, 141, 142, 115, 115,
+ 116, 111, 53, 143, 144, 146, 147, 148, 249, 252,
30, 45, 55, 56, 57, 66, 71, 73, 81, 90,
92, 97, 99, 100, 101, 138, 139, 154, 156, 186,
- 196, 244, 247, 152, 112, 115, 146, 53, 116, 111,
+ 196, 249, 252, 152, 112, 115, 146, 53, 116, 111,
18, 139, 3, 17, 18, 29, 31, 33, 43, 47,
51, 54, 65, 70, 72, 74, 83, 84, 98, 111,
- 155, 180, 193, 194, 195, 196, 245, 118, 176, 239,
- 240, 241, 244, 148, 112, 140, 35, 166, 176, 121,
- 88, 88, 78, 58, 88, 157, 158, 193, 194, 244,
- 3, 111, 111, 234, 121, 26, 82, 96, 242, 3,
- 177, 178, 48, 59, 243, 130, 145, 111, 244, 247,
+ 155, 180, 193, 194, 195, 196, 250, 118, 176, 244,
+ 245, 246, 249, 148, 112, 140, 35, 166, 176, 121,
+ 88, 88, 78, 58, 88, 157, 158, 193, 194, 249,
+ 3, 111, 111, 239, 121, 26, 82, 96, 247, 3,
+ 177, 178, 48, 59, 248, 130, 145, 111, 249, 252,
112, 116, 117, 117, 111, 153, 8, 9, 10, 12,
13, 15, 16, 52, 93, 153, 159, 160, 176, 189,
- 191, 237, 247, 110, 112, 235, 236, 237, 247, 19,
- 20, 181, 182, 183, 244, 12, 70, 111, 187, 189,
- 190, 244, 247, 25, 34, 63, 85, 86, 155, 179,
- 87, 113, 199, 200, 201, 202, 19, 20, 168, 169,
- 3, 158, 244, 247, 244, 247, 8, 10, 14, 24,
- 52, 53, 68, 77, 87, 93, 102, 110, 111, 113,
- 180, 191, 204, 205, 206, 207, 208, 209, 211, 212,
- 213, 214, 215, 216, 237, 238, 247, 112, 116, 112,
- 116, 113, 121, 119, 188, 121, 117, 42, 111, 75,
- 111, 199, 111, 199, 113, 38, 39, 111, 203, 204,
- 221, 222, 224, 226, 227, 228, 113, 18, 19, 40,
- 76, 176, 184, 185, 232, 233, 176, 184, 185, 112,
- 116, 166, 176, 104, 109, 122, 225, 9, 247, 36,
- 37, 210, 204, 112, 116, 107, 108, 197, 105, 106,
- 198, 104, 113, 225, 160, 236, 190, 237, 247, 182,
- 7, 192, 247, 187, 32, 110, 164, 165, 175, 176,
- 247, 180, 37, 161, 162, 163, 175, 176, 247, 75,
- 161, 75, 203, 32, 176, 244, 114, 111, 203, 187,
- 232, 121, 232, 232, 95, 167, 232, 232, 102, 170,
- 171, 169, 209, 122, 109, 67, 213, 202, 111, 192,
- 114, 110, 207, 208, 209, 204, 67, 213, 114, 114,
- 7, 247, 120, 112, 116, 176, 75, 112, 116, 232,
- 176, 246, 247, 112, 246, 114, 111, 112, 123, 229,
- 230, 114, 19, 20, 232, 89, 122, 110, 217, 218,
- 247, 116, 114, 190, 237, 165, 176, 4, 163, 232,
- 239, 239, 223, 121, 231, 247, 112, 116, 111, 112,
- 116, 199, 205, 162, 178, 178, 192, 231, 121, 230,
- 172, 218, 22, 76, 80, 219, 220, 5, 247, 6,
- 21, 118, 173, 174, 183, 173, 112, 174, 119
+ 191, 242, 252, 110, 112, 240, 241, 242, 252, 19,
+ 20, 181, 182, 183, 249, 12, 70, 111, 187, 189,
+ 190, 249, 252, 25, 34, 63, 85, 86, 155, 179,
+ 113, 199, 201, 202, 19, 20, 168, 169, 3, 158,
+ 249, 252, 249, 252, 8, 10, 14, 24, 52, 53,
+ 68, 77, 87, 93, 102, 110, 111, 113, 176, 191,
+ 205, 206, 207, 208, 209, 210, 212, 213, 214, 215,
+ 216, 217, 242, 243, 252, 112, 116, 112, 116, 113,
+ 121, 119, 188, 121, 117, 42, 111, 75, 87, 111,
+ 200, 201, 111, 200, 38, 39, 111, 203, 204, 205,
+ 226, 227, 229, 231, 232, 233, 113, 18, 19, 40,
+ 76, 176, 184, 185, 237, 238, 176, 184, 185, 112,
+ 116, 166, 176, 104, 109, 122, 230, 9, 252, 36,
+ 37, 211, 205, 112, 116, 107, 108, 197, 105, 106,
+ 198, 104, 113, 230, 160, 241, 190, 242, 252, 182,
+ 7, 192, 252, 187, 32, 110, 164, 165, 175, 176,
+ 252, 180, 113, 37, 161, 162, 163, 175, 176, 252,
+ 75, 161, 75, 32, 176, 249, 114, 111, 203, 187,
+ 237, 121, 237, 237, 95, 167, 237, 237, 102, 170,
+ 171, 169, 210, 122, 109, 67, 214, 201, 218, 111,
+ 219, 220, 221, 192, 114, 110, 208, 209, 210, 205,
+ 67, 214, 114, 114, 7, 252, 120, 112, 116, 176,
+ 203, 75, 112, 116, 237, 176, 251, 252, 112, 251,
+ 111, 112, 123, 234, 235, 114, 19, 20, 237, 89,
+ 122, 110, 222, 223, 252, 253, 254, 116, 114, 190,
+ 242, 165, 114, 176, 4, 163, 237, 244, 244, 228,
+ 121, 236, 252, 112, 116, 111, 116, 112, 116, 199,
+ 206, 162, 178, 178, 192, 236, 121, 235, 172, 222,
+ 223, 22, 76, 80, 224, 225, 5, 252, 6, 21,
+ 118, 173, 174, 183, 112, 173, 112, 174, 119
};
#define yyerrok (yyerrstatus = 0)
@@ -2247,21 +2266,21 @@
switch (yyn)
{
case 2:
-#line 358 "asn1p_y.y"
+#line 367 "asn1p_y.y"
{
*(void **)param = (yyvsp[(2) - (2)].a_grammar);
}
break;
case 3:
-#line 361 "asn1p_y.y"
+#line 370 "asn1p_y.y"
{
*(void **)param = (yyvsp[(1) - (1)].a_grammar);
}
break;
case 4:
-#line 367 "asn1p_y.y"
+#line 376 "asn1p_y.y"
{
(yyval.a_grammar) = asn1p_new();
checkmem((yyval.a_grammar));
@@ -2270,7 +2289,7 @@
break;
case 5:
-#line 372 "asn1p_y.y"
+#line 381 "asn1p_y.y"
{
(yyval.a_grammar) = (yyvsp[(1) - (2)].a_grammar);
TQ_ADD(&((yyval.a_grammar)->modules), (yyvsp[(2) - (2)].a_module), mod_next);
@@ -2278,12 +2297,12 @@
break;
case 6:
-#line 389 "asn1p_y.y"
+#line 398 "asn1p_y.y"
{ currentModule = asn1p_module_new(); }
break;
case 7:
-#line 394 "asn1p_y.y"
+#line 403 "asn1p_y.y"
{
(yyval.a_module) = currentModule;
@@ -2304,31 +2323,31 @@
break;
case 8:
-#line 418 "asn1p_y.y"
+#line 427 "asn1p_y.y"
{ (yyval.a_oid) = 0; }
break;
case 9:
-#line 419 "asn1p_y.y"
+#line 428 "asn1p_y.y"
{ (yyval.a_oid) = (yyvsp[(1) - (1)].a_oid); }
break;
case 10:
-#line 423 "asn1p_y.y"
+#line 432 "asn1p_y.y"
{
(yyval.a_oid) = (yyvsp[(2) - (3)].a_oid);
}
break;
case 11:
-#line 426 "asn1p_y.y"
+#line 435 "asn1p_y.y"
{
(yyval.a_oid) = 0;
}
break;
case 12:
-#line 432 "asn1p_y.y"
+#line 441 "asn1p_y.y"
{
(yyval.a_oid) = asn1p_oid_new();
asn1p_oid_add_arc((yyval.a_oid), &(yyvsp[(1) - (1)].a_oid_arc));
@@ -2338,7 +2357,7 @@
break;
case 13:
-#line 438 "asn1p_y.y"
+#line 447 "asn1p_y.y"
{
(yyval.a_oid) = (yyvsp[(1) - (2)].a_oid);
asn1p_oid_add_arc((yyval.a_oid), &(yyvsp[(2) - (2)].a_oid_arc));
@@ -2348,7 +2367,7 @@
break;
case 14:
-#line 447 "asn1p_y.y"
+#line 456 "asn1p_y.y"
{ /* iso */
(yyval.a_oid_arc).name = (yyvsp[(1) - (1)].tv_str);
(yyval.a_oid_arc).number = -1;
@@ -2356,7 +2375,7 @@
break;
case 15:
-#line 451 "asn1p_y.y"
+#line 460 "asn1p_y.y"
{ /* iso(1) */
(yyval.a_oid_arc).name = (yyvsp[(1) - (4)].tv_str);
(yyval.a_oid_arc).number = (yyvsp[(3) - (4)].a_int);
@@ -2364,7 +2383,7 @@
break;
case 16:
-#line 455 "asn1p_y.y"
+#line 464 "asn1p_y.y"
{ /* 1 */
(yyval.a_oid_arc).name = 0;
(yyval.a_oid_arc).number = (yyvsp[(1) - (1)].a_int);
@@ -2372,61 +2391,61 @@
break;
case 17:
-#line 465 "asn1p_y.y"
+#line 474 "asn1p_y.y"
{ (yyval.a_module_flags) = MSF_NOFLAGS; }
break;
case 18:
-#line 466 "asn1p_y.y"
- {
- (yyval.a_module_flags) = (yyvsp[(1) - (1)].a_module_flags);
- }
- break;
-
- case 19:
#line 475 "asn1p_y.y"
{
(yyval.a_module_flags) = (yyvsp[(1) - (1)].a_module_flags);
}
break;
+ case 19:
+#line 484 "asn1p_y.y"
+ {
+ (yyval.a_module_flags) = (yyvsp[(1) - (1)].a_module_flags);
+ }
+ break;
+
case 20:
-#line 478 "asn1p_y.y"
+#line 487 "asn1p_y.y"
{
(yyval.a_module_flags) = (yyvsp[(1) - (2)].a_module_flags) | (yyvsp[(2) - (2)].a_module_flags);
}
break;
case 21:
-#line 487 "asn1p_y.y"
+#line 496 "asn1p_y.y"
{
(yyval.a_module_flags) = MSF_EXPLICIT_TAGS;
}
break;
case 22:
-#line 490 "asn1p_y.y"
+#line 499 "asn1p_y.y"
{
(yyval.a_module_flags) = MSF_IMPLICIT_TAGS;
}
break;
case 23:
-#line 493 "asn1p_y.y"
+#line 502 "asn1p_y.y"
{
(yyval.a_module_flags) = MSF_AUTOMATIC_TAGS;
}
break;
case 24:
-#line 496 "asn1p_y.y"
+#line 505 "asn1p_y.y"
{
(yyval.a_module_flags) = MSF_EXTENSIBILITY_IMPLIED;
}
break;
case 25:
-#line 500 "asn1p_y.y"
+#line 509 "asn1p_y.y"
{
/* X.680Amd1 specifies TAG and XER */
if(strcmp((yyvsp[(1) - (2)].tv_str), "TAG") == 0) {
@@ -2435,9 +2454,9 @@
(yyval.a_module_flags) = MSF_XER_INSTRUCTIONS;
} else {
fprintf(stderr,
- "WARNING: %s INSTRUCTIONS at line %d: "
+ "WARNING: %s INSTRUCTIONS at %s:%d: "
"Unrecognized encoding reference\n",
- (yyvsp[(1) - (2)].tv_str), yylineno);
+ (yyvsp[(1) - (2)].tv_str), ASN_FILENAME, yylineno);
(yyval.a_module_flags) = MSF_unk_INSTRUCTIONS;
}
free((yyvsp[(1) - (2)].tv_str));
@@ -2445,19 +2464,19 @@
break;
case 26:
-#line 521 "asn1p_y.y"
+#line 530 "asn1p_y.y"
{ (yyval.a_module) = 0; }
break;
case 27:
-#line 522 "asn1p_y.y"
+#line 531 "asn1p_y.y"
{
(yyval.a_module) = (yyvsp[(1) - (1)].a_module);
}
break;
case 28:
-#line 531 "asn1p_y.y"
+#line 540 "asn1p_y.y"
{
(yyval.a_module) = asn1p_module_new();
AL_IMPORT((yyval.a_module), exports, (yyvsp[(1) - (3)].a_module), xp_next);
@@ -2471,14 +2490,14 @@
break;
case 29:
-#line 544 "asn1p_y.y"
+#line 553 "asn1p_y.y"
{
(yyval.a_module) = (yyvsp[(1) - (1)].a_module);
}
break;
case 30:
-#line 547 "asn1p_y.y"
+#line 556 "asn1p_y.y"
{
if((yyvsp[(1) - (2)].a_module)) {
(yyval.a_module) = (yyvsp[(1) - (2)].a_module);
@@ -2492,7 +2511,7 @@
break;
case 31:
-#line 564 "asn1p_y.y"
+#line 573 "asn1p_y.y"
{
(yyval.a_module) = asn1p_module_new();
checkmem((yyval.a_module));
@@ -2503,7 +2522,7 @@
break;
case 32:
-#line 571 "asn1p_y.y"
+#line 580 "asn1p_y.y"
{
(yyval.a_module) = asn1p_module_new();
checkmem((yyval.a_module));
@@ -2514,7 +2533,7 @@
break;
case 33:
-#line 585 "asn1p_y.y"
+#line 594 "asn1p_y.y"
{
(yyval.a_module) = asn1p_module_new();
checkmem((yyval.a_module));
@@ -2525,24 +2544,24 @@
break;
case 34:
-#line 593 "asn1p_y.y"
+#line 602 "asn1p_y.y"
{ asn1p_lexer_hack_push_encoding_control(); }
break;
case 35:
-#line 594 "asn1p_y.y"
+#line 603 "asn1p_y.y"
{
fprintf(stderr,
"WARNING: ENCODING-CONTROL %s "
- "specification at line %d ignored\n",
- (yyvsp[(2) - (3)].tv_str), yylineno);
+ "specification at %s:%d ignored\n",
+ (yyvsp[(2) - (3)].tv_str), ASN_FILENAME, yylineno);
free((yyvsp[(2) - (3)].tv_str));
(yyval.a_module) = 0;
}
break;
case 36:
-#line 606 "asn1p_y.y"
+#line 615 "asn1p_y.y"
{
return yyerror(
"Attempt to redefine a standard basic string type, "
@@ -2551,12 +2570,12 @@
break;
case 37:
-#line 619 "asn1p_y.y"
+#line 628 "asn1p_y.y"
{ (yyval.a_module) = 0; }
break;
case 39:
-#line 623 "asn1p_y.y"
+#line 632 "asn1p_y.y"
{
if(!saved_aid && 0)
return yyerror("Unterminated IMPORTS FROM, "
@@ -2567,19 +2586,19 @@
break;
case 40:
-#line 633 "asn1p_y.y"
+#line 642 "asn1p_y.y"
{
return yyerror("Empty IMPORTS list");
}
break;
case 41:
-#line 639 "asn1p_y.y"
+#line 648 "asn1p_y.y"
{ (yyval.a_module) = asn1p_module_new(); }
break;
case 43:
-#line 643 "asn1p_y.y"
+#line 652 "asn1p_y.y"
{
(yyval.a_module) = asn1p_module_new();
checkmem((yyval.a_module));
@@ -2588,7 +2607,7 @@
break;
case 44:
-#line 648 "asn1p_y.y"
+#line 657 "asn1p_y.y"
{
(yyval.a_module) = (yyvsp[(1) - (2)].a_module);
TQ_ADD(&((yyval.a_module)->imports), (yyvsp[(2) - (2)].a_xports), xp_next);
@@ -2596,17 +2615,17 @@
break;
case 45:
-#line 655 "asn1p_y.y"
+#line 664 "asn1p_y.y"
{ memset(&(yyval.a_aid), 0, sizeof((yyval.a_aid))); }
break;
case 46:
-#line 656 "asn1p_y.y"
+#line 665 "asn1p_y.y"
{ (yyval.a_aid).oid = (yyvsp[(1) - (1)].a_oid); }
break;
case 47:
-#line 660 "asn1p_y.y"
+#line 669 "asn1p_y.y"
{
(yyval.a_xports) = (yyvsp[(1) - (4)].a_xports);
(yyval.a_xports)->fromModuleName = (yyvsp[(3) - (4)].tv_str);
@@ -2618,7 +2637,7 @@
break;
case 48:
-#line 671 "asn1p_y.y"
+#line 680 "asn1p_y.y"
{
(yyval.a_xports) = asn1p_xports_new();
checkmem((yyval.a_xports));
@@ -2627,7 +2646,7 @@
break;
case 49:
-#line 676 "asn1p_y.y"
+#line 685 "asn1p_y.y"
{
(yyval.a_xports) = (yyvsp[(1) - (3)].a_xports);
TQ_ADD(&((yyval.a_xports)->members), (yyvsp[(3) - (3)].a_expr), next);
@@ -2635,7 +2654,7 @@
break;
case 50:
-#line 683 "asn1p_y.y"
+#line 692 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2645,7 +2664,7 @@
break;
case 51:
-#line 689 "asn1p_y.y"
+#line 698 "asn1p_y.y"
{ /* Completely equivalent to above */
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2655,7 +2674,7 @@
break;
case 52:
-#line 695 "asn1p_y.y"
+#line 704 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2665,12 +2684,12 @@
break;
case 53:
-#line 705 "asn1p_y.y"
+#line 714 "asn1p_y.y"
{ (yyval.a_module) = 0; }
break;
case 54:
-#line 706 "asn1p_y.y"
+#line 715 "asn1p_y.y"
{
(yyval.a_module) = asn1p_module_new();
checkmem((yyval.a_module));
@@ -2683,21 +2702,21 @@
break;
case 55:
-#line 718 "asn1p_y.y"
+#line 727 "asn1p_y.y"
{
(yyval.a_xports) = (yyvsp[(2) - (3)].a_xports);
}
break;
case 56:
-#line 721 "asn1p_y.y"
+#line 730 "asn1p_y.y"
{
(yyval.a_xports) = 0;
}
break;
case 57:
-#line 724 "asn1p_y.y"
+#line 733 "asn1p_y.y"
{
/* Empty EXPORTS clause effectively prohibits export. */
(yyval.a_xports) = asn1p_xports_new();
@@ -2706,7 +2725,7 @@
break;
case 58:
-#line 732 "asn1p_y.y"
+#line 741 "asn1p_y.y"
{
(yyval.a_xports) = asn1p_xports_new();
assert((yyval.a_xports));
@@ -2715,7 +2734,7 @@
break;
case 59:
-#line 737 "asn1p_y.y"
+#line 746 "asn1p_y.y"
{
(yyval.a_xports) = (yyvsp[(1) - (3)].a_xports);
TQ_ADD(&((yyval.a_xports)->members), (yyvsp[(3) - (3)].a_expr), next);
@@ -2723,7 +2742,7 @@
break;
case 60:
-#line 744 "asn1p_y.y"
+#line 753 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2733,7 +2752,7 @@
break;
case 61:
-#line 750 "asn1p_y.y"
+#line 759 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2743,7 +2762,7 @@
break;
case 62:
-#line 756 "asn1p_y.y"
+#line 765 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2753,12 +2772,12 @@
break;
case 63:
-#line 765 "asn1p_y.y"
+#line 774 "asn1p_y.y"
{ (yyval.a_constr) = (yyvsp[(2) - (3)].a_constr); }
break;
case 64:
-#line 768 "asn1p_y.y"
+#line 777 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(2) - (4)].a_expr);
assert((yyval.a_expr)->Identifier == 0);
@@ -2769,14 +2788,14 @@
break;
case 65:
-#line 778 "asn1p_y.y"
+#line 787 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (1)].a_expr);
}
break;
case 66:
-#line 791 "asn1p_y.y"
+#line 800 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2787,7 +2806,7 @@
break;
case 67:
-#line 801 "asn1p_y.y"
+#line 810 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2799,7 +2818,7 @@
break;
case 68:
-#line 821 "asn1p_y.y"
+#line 830 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(3) - (3)].a_expr);
(yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str);
@@ -2809,7 +2828,7 @@
break;
case 69:
-#line 827 "asn1p_y.y"
+#line 836 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(3) - (3)].a_expr);
(yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str);
@@ -2819,7 +2838,7 @@
break;
case 70:
-#line 843 "asn1p_y.y"
+#line 852 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(6) - (6)].a_expr);
(yyval.a_expr)->Identifier = (yyvsp[(1) - (6)].tv_str);
@@ -2828,7 +2847,7 @@
break;
case 71:
-#line 849 "asn1p_y.y"
+#line 858 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(6) - (6)].a_expr);
(yyval.a_expr)->Identifier = (yyvsp[(1) - (6)].tv_str);
@@ -2837,7 +2856,7 @@
break;
case 72:
-#line 857 "asn1p_y.y"
+#line 866 "asn1p_y.y"
{
int ret;
(yyval.a_plist) = asn1p_paramlist_new(yylineno);
@@ -2850,7 +2869,7 @@
break;
case 73:
-#line 866 "asn1p_y.y"
+#line 875 "asn1p_y.y"
{
int ret;
(yyval.a_plist) = (yyvsp[(1) - (3)].a_plist);
@@ -2862,7 +2881,7 @@
break;
case 74:
-#line 877 "asn1p_y.y"
+#line 886 "asn1p_y.y"
{
(yyval.a_parg).governor = NULL;
(yyval.a_parg).argument = (yyvsp[(1) - (1)].tv_str);
@@ -2870,7 +2889,7 @@
break;
case 75:
-#line 881 "asn1p_y.y"
+#line 890 "asn1p_y.y"
{
int ret;
(yyval.a_parg).governor = asn1p_ref_new(yylineno, currentModule);
@@ -2882,7 +2901,7 @@
break;
case 76:
-#line 889 "asn1p_y.y"
+#line 898 "asn1p_y.y"
{
int ret;
(yyval.a_parg).governor = asn1p_ref_new(yylineno, currentModule);
@@ -2894,7 +2913,7 @@
break;
case 77:
-#line 897 "asn1p_y.y"
+#line 906 "asn1p_y.y"
{
int ret;
(yyval.a_parg).governor = asn1p_ref_new(yylineno, currentModule);
@@ -2906,7 +2925,7 @@
break;
case 78:
-#line 905 "asn1p_y.y"
+#line 914 "asn1p_y.y"
{
int ret;
(yyval.a_parg).governor = asn1p_ref_new(yylineno, currentModule);
@@ -2918,7 +2937,7 @@
break;
case 79:
-#line 916 "asn1p_y.y"
+#line 925 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2927,7 +2946,7 @@
break;
case 80:
-#line 921 "asn1p_y.y"
+#line 930 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (3)].a_expr);
asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr));
@@ -2935,14 +2954,14 @@
break;
case 81:
-#line 928 "asn1p_y.y"
+#line 937 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (1)].a_expr);
}
break;
case 82:
-#line 931 "asn1p_y.y"
+#line 940 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2954,7 +2973,7 @@
break;
case 83:
-#line 939 "asn1p_y.y"
+#line 948 "asn1p_y.y"
{
asn1p_ref_t *ref;
(yyval.a_expr) = NEW_EXPR();
@@ -2969,7 +2988,7 @@
break;
case 84:
-#line 950 "asn1p_y.y"
+#line 959 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
(yyval.a_expr)->expr_type = A1TC_VALUESET;
@@ -2979,17 +2998,17 @@
break;
case 85:
-#line 973 "asn1p_y.y"
+#line 982 "asn1p_y.y"
{ (yyval.a_expr) = NEW_EXPR(); }
break;
case 86:
-#line 974 "asn1p_y.y"
+#line 983 "asn1p_y.y"
{ (yyval.a_expr) = (yyvsp[(1) - (1)].a_expr); }
break;
case 87:
-#line 977 "asn1p_y.y"
+#line 986 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -2998,7 +3017,7 @@
break;
case 88:
-#line 982 "asn1p_y.y"
+#line 991 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (3)].a_expr);
asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr));
@@ -3006,7 +3025,7 @@
break;
case 89:
-#line 986 "asn1p_y.y"
+#line 995 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (5)].a_expr);
asn1p_expr_add_many((yyval.a_expr), (yyvsp[(4) - (5)].a_expr));
@@ -3015,7 +3034,7 @@
break;
case 90:
-#line 994 "asn1p_y.y"
+#line 1003 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(2) - (3)].a_expr);
assert((yyval.a_expr)->Identifier == 0);
@@ -3026,7 +3045,7 @@
break;
case 91:
-#line 1001 "asn1p_y.y"
+#line 1010 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (2)].a_expr);
(yyvsp[(2) - (2)].a_marker).flags |= (yyval.a_expr)->marker.flags;
@@ -3036,7 +3055,7 @@
break;
case 92:
-#line 1007 "asn1p_y.y"
+#line 1016 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3047,14 +3066,14 @@
break;
case 93:
-#line 1014 "asn1p_y.y"
+#line 1023 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (1)].a_expr);
}
break;
case 94:
-#line 1020 "asn1p_y.y"
+#line 1029 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3063,7 +3082,7 @@
break;
case 95:
-#line 1025 "asn1p_y.y"
+#line 1034 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (3)].a_expr);
asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr));
@@ -3071,7 +3090,7 @@
break;
case 96:
-#line 1032 "asn1p_y.y"
+#line 1041 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(2) - (2)].a_expr);
assert((yyval.a_expr)->Identifier == 0);
@@ -3080,14 +3099,14 @@
break;
case 97:
-#line 1037 "asn1p_y.y"
+#line 1046 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (1)].a_expr);
}
break;
case 98:
-#line 1040 "asn1p_y.y"
+#line 1049 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (1)].a_expr);
_fixup_anonymous_identifier((yyval.a_expr));
@@ -3095,7 +3114,7 @@
break;
case 99:
-#line 1047 "asn1p_y.y"
+#line 1056 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(3) - (5)].a_expr);
checkmem((yyval.a_expr));
@@ -3106,17 +3125,17 @@
break;
case 100:
-#line 1057 "asn1p_y.y"
+#line 1066 "asn1p_y.y"
{ (yyval.a_int) = 0; }
break;
case 101:
-#line 1058 "asn1p_y.y"
+#line 1067 "asn1p_y.y"
{ (yyval.a_int) = 1; }
break;
case 102:
-#line 1062 "asn1p_y.y"
+#line 1071 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3127,7 +3146,7 @@
break;
case 103:
-#line 1069 "asn1p_y.y"
+#line 1078 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (3)].a_expr);
asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr));
@@ -3135,7 +3154,7 @@
break;
case 104:
-#line 1079 "asn1p_y.y"
+#line 1088 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3147,7 +3166,7 @@
break;
case 105:
-#line 1089 "asn1p_y.y"
+#line 1098 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
(yyval.a_expr)->Identifier = (yyvsp[(1) - (4)].tv_str);
@@ -3160,7 +3179,7 @@
break;
case 106:
-#line 1100 "asn1p_y.y"
+#line 1109 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
(yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str);
@@ -3172,7 +3191,7 @@
break;
case 107:
-#line 1110 "asn1p_y.y"
+#line 1119 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3185,7 +3204,7 @@
break;
case 108:
-#line 1121 "asn1p_y.y"
+#line 1130 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
(yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str);
@@ -3197,7 +3216,7 @@
break;
case 109:
-#line 1131 "asn1p_y.y"
+#line 1140 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3210,7 +3229,7 @@
break;
case 110:
-#line 1142 "asn1p_y.y"
+#line 1151 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3223,31 +3242,31 @@
break;
case 111:
-#line 1154 "asn1p_y.y"
+#line 1163 "asn1p_y.y"
{ (yyval.a_wsynt) = 0; }
break;
case 112:
-#line 1155 "asn1p_y.y"
+#line 1164 "asn1p_y.y"
{
(yyval.a_wsynt) = (yyvsp[(1) - (1)].a_wsynt);
}
break;
case 113:
-#line 1162 "asn1p_y.y"
+#line 1171 "asn1p_y.y"
{ asn1p_lexer_hack_enable_with_syntax(); }
break;
case 114:
-#line 1164 "asn1p_y.y"
+#line 1173 "asn1p_y.y"
{
(yyval.a_wsynt) = (yyvsp[(5) - (6)].a_wsynt);
}
break;
case 115:
-#line 1170 "asn1p_y.y"
+#line 1179 "asn1p_y.y"
{
(yyval.a_wsynt) = asn1p_wsyntx_new();
TQ_ADD(&((yyval.a_wsynt)->chunks), (yyvsp[(1) - (1)].a_wchunk), next);
@@ -3255,7 +3274,7 @@
break;
case 116:
-#line 1174 "asn1p_y.y"
+#line 1183 "asn1p_y.y"
{
(yyval.a_wsynt) = (yyvsp[(1) - (2)].a_wsynt);
TQ_ADD(&((yyval.a_wsynt)->chunks), (yyvsp[(2) - (2)].a_wchunk), next);
@@ -3263,7 +3282,7 @@
break;
case 117:
-#line 1181 "asn1p_y.y"
+#line 1190 "asn1p_y.y"
{
(yyval.a_wchunk) = asn1p_wsyntx_chunk_fromstring((yyvsp[(1) - (1)].tv_opaque).buf, 0);
(yyval.a_wchunk)->type = WC_WHITESPACE;
@@ -3271,14 +3290,14 @@
break;
case 118:
-#line 1185 "asn1p_y.y"
+#line 1194 "asn1p_y.y"
{
(yyval.a_wchunk) = asn1p_wsyntx_chunk_fromstring((yyvsp[(1) - (1)].tv_str), 0);
}
break;
case 119:
-#line 1188 "asn1p_y.y"
+#line 1197 "asn1p_y.y"
{
(yyval.a_wchunk) = asn1p_wsyntx_chunk_fromstring((yyvsp[(1) - (1)].a_refcomp).name, 0);
(yyval.a_wchunk)->type = WC_FIELD;
@@ -3286,14 +3305,14 @@
break;
case 120:
-#line 1192 "asn1p_y.y"
+#line 1201 "asn1p_y.y"
{
(yyval.a_wchunk) = asn1p_wsyntx_chunk_fromsyntax((yyvsp[(2) - (3)].a_wsynt));
}
break;
case 121:
-#line 1198 "asn1p_y.y"
+#line 1207 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3305,7 +3324,7 @@
break;
case 122:
-#line 1206 "asn1p_y.y"
+#line 1215 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3318,7 +3337,7 @@
break;
case 123:
-#line 1215 "asn1p_y.y"
+#line 1224 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3331,7 +3350,7 @@
break;
case 124:
-#line 1227 "asn1p_y.y"
+#line 1236 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(2) - (3)].a_expr);
(yyval.a_expr)->tag = (yyvsp[(1) - (3)].a_tag);
@@ -3356,7 +3375,7 @@
break;
case 125:
-#line 1251 "asn1p_y.y"
+#line 1260 "asn1p_y.y"
{
(yyval.a_int) = asn1p_as_pointer ? EM_INDIRECT : 0;
asn1p_as_pointer = 0;
@@ -3364,7 +3383,7 @@
break;
case 126:
-#line 1258 "asn1p_y.y"
+#line 1267 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(2) - (2)].a_expr);
(yyval.a_expr)->marker.flags |= (yyvsp[(1) - (2)].a_int);
@@ -3373,25 +3392,25 @@
&& ((yyval.a_expr)->marker.flags & EM_OPTIONAL) != EM_OPTIONAL) {
fprintf(stderr,
"INFO: Directive <ASN1C:RepresentAsPointer> "
- "applied to %s at line %d\n",
+ "applied to %s at %s:%d\n",
ASN_EXPR_TYPE2STR((yyval.a_expr)->expr_type)
? ASN_EXPR_TYPE2STR((yyval.a_expr)->expr_type)
: "member",
- (yyval.a_expr)->_lineno
+ ASN_FILENAME, (yyval.a_expr)->_lineno
);
}
}
break;
case 127:
-#line 1277 "asn1p_y.y"
+#line 1286 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (1)].a_expr);
}
break;
case 128:
-#line 1280 "asn1p_y.y"
+#line 1289 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(3) - (4)].a_expr);
assert((yyval.a_expr)->expr_type == A1TC_INVALID);
@@ -3401,7 +3420,7 @@
break;
case 129:
-#line 1286 "asn1p_y.y"
+#line 1295 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(3) - (4)].a_expr);
assert((yyval.a_expr)->expr_type == A1TC_INVALID);
@@ -3411,7 +3430,7 @@
break;
case 130:
-#line 1292 "asn1p_y.y"
+#line 1301 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(3) - (4)].a_expr);
assert((yyval.a_expr)->expr_type == A1TC_INVALID);
@@ -3421,7 +3440,7 @@
break;
case 131:
-#line 1298 "asn1p_y.y"
+#line 1307 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3435,7 +3454,7 @@
break;
case 132:
-#line 1308 "asn1p_y.y"
+#line 1317 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3449,7 +3468,7 @@
break;
case 133:
-#line 1318 "asn1p_y.y"
+#line 1327 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3459,7 +3478,7 @@
break;
case 134:
-#line 1324 "asn1p_y.y"
+#line 1333 "asn1p_y.y"
{
int ret;
(yyval.a_expr) = NEW_EXPR();
@@ -3475,7 +3494,7 @@
break;
case 135:
-#line 1336 "asn1p_y.y"
+#line 1345 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3486,7 +3505,7 @@
break;
case 136:
-#line 1351 "asn1p_y.y"
+#line 1360 "asn1p_y.y"
{
int ret;
(yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
@@ -3498,7 +3517,7 @@
break;
case 137:
-#line 1359 "asn1p_y.y"
+#line 1368 "asn1p_y.y"
{
int ret;
(yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
@@ -3513,7 +3532,7 @@
break;
case 138:
-#line 1370 "asn1p_y.y"
+#line 1379 "asn1p_y.y"
{
int ret;
(yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
@@ -3528,7 +3547,7 @@
break;
case 139:
-#line 1381 "asn1p_y.y"
+#line 1390 "asn1p_y.y"
{
int ret;
(yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
@@ -3543,7 +3562,7 @@
break;
case 140:
-#line 1392 "asn1p_y.y"
+#line 1401 "asn1p_y.y"
{
int ret;
(yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
@@ -3555,7 +3574,7 @@
break;
case 141:
-#line 1400 "asn1p_y.y"
+#line 1409 "asn1p_y.y"
{
int ret;
(yyval.a_ref) = (yyvsp[(3) - (3)].a_ref);
@@ -3578,7 +3597,7 @@
break;
case 142:
-#line 1422 "asn1p_y.y"
+#line 1431 "asn1p_y.y"
{
int ret;
(yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
@@ -3590,7 +3609,7 @@
break;
case 143:
-#line 1430 "asn1p_y.y"
+#line 1439 "asn1p_y.y"
{
int ret;
(yyval.a_ref) = (yyvsp[(1) - (3)].a_ref);
@@ -3601,7 +3620,7 @@
break;
case 145:
-#line 1443 "asn1p_y.y"
+#line 1452 "asn1p_y.y"
{
(yyval.a_refcomp).lex_type = RLT_AmpUppercase;
(yyval.a_refcomp).name = (yyvsp[(1) - (1)].tv_str);
@@ -3609,7 +3628,7 @@
break;
case 146:
-#line 1448 "asn1p_y.y"
+#line 1457 "asn1p_y.y"
{
(yyval.a_refcomp).lex_type = RLT_Amplowercase;
(yyval.a_refcomp).name = (yyvsp[(1) - (1)].tv_str);
@@ -3617,7 +3636,7 @@
break;
case 147:
-#line 1457 "asn1p_y.y"
+#line 1466 "asn1p_y.y"
{
(yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (1)].tv_str), RLT_AmpUppercase);
@@ -3626,7 +3645,7 @@
break;
case 148:
-#line 1462 "asn1p_y.y"
+#line 1471 "asn1p_y.y"
{
(yyval.a_ref) = (yyval.a_ref);
asn1p_ref_add_component((yyval.a_ref), (yyvsp[(3) - (3)].tv_str), RLT_AmpUppercase);
@@ -3635,7 +3654,7 @@
break;
case 149:
-#line 1467 "asn1p_y.y"
+#line 1476 "asn1p_y.y"
{
(yyval.a_ref) = (yyval.a_ref);
asn1p_ref_add_component((yyval.a_ref), (yyvsp[(3) - (3)].tv_str), RLT_Amplowercase);
@@ -3644,7 +3663,7 @@
break;
case 150:
-#line 1475 "asn1p_y.y"
+#line 1484 "asn1p_y.y"
{
(yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (1)].tv_str), RLT_CAPITALS);
@@ -3653,7 +3672,7 @@
break;
case 151:
-#line 1498 "asn1p_y.y"
+#line 1507 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(2) - (4)].a_expr);
assert((yyval.a_expr)->Identifier == NULL);
@@ -3664,7 +3683,7 @@
break;
case 154:
-#line 1510 "asn1p_y.y"
+#line 1519 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint(0);
checkmem((yyval.a_value));
@@ -3675,12 +3694,12 @@
break;
case 155:
-#line 1517 "asn1p_y.y"
+#line 1526 "asn1p_y.y"
{ asn1p_lexer_hack_push_opaque_state(); }
break;
case 156:
-#line 1517 "asn1p_y.y"
+#line 1526 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_frombuf((yyvsp[(3) - (3)].tv_opaque).buf, (yyvsp[(3) - (3)].tv_opaque).len, 0);
checkmem((yyval.a_value));
@@ -3689,7 +3708,7 @@
break;
case 157:
-#line 1522 "asn1p_y.y"
+#line 1531 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint(0);
checkmem((yyval.a_value));
@@ -3698,7 +3717,7 @@
break;
case 158:
-#line 1530 "asn1p_y.y"
+#line 1539 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint(0);
checkmem((yyval.a_value));
@@ -3707,7 +3726,7 @@
break;
case 159:
-#line 1535 "asn1p_y.y"
+#line 1544 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint(0);
checkmem((yyval.a_value));
@@ -3716,7 +3735,7 @@
break;
case 160:
-#line 1540 "asn1p_y.y"
+#line 1549 "asn1p_y.y"
{
(yyval.a_value) = _convert_bitstring2binary((yyvsp[(1) - (1)].tv_str), 'B');
checkmem((yyval.a_value));
@@ -3725,7 +3744,7 @@
break;
case 161:
-#line 1545 "asn1p_y.y"
+#line 1554 "asn1p_y.y"
{
(yyval.a_value) = _convert_bitstring2binary((yyvsp[(1) - (1)].tv_str), 'H');
checkmem((yyval.a_value));
@@ -3734,21 +3753,21 @@
break;
case 162:
-#line 1550 "asn1p_y.y"
+#line 1559 "asn1p_y.y"
{
(yyval.a_value) = (yyval.a_value);
}
break;
case 163:
-#line 1553 "asn1p_y.y"
+#line 1562 "asn1p_y.y"
{
(yyval.a_value) = (yyvsp[(1) - (1)].a_value);
}
break;
case 164:
-#line 1559 "asn1p_y.y"
+#line 1568 "asn1p_y.y"
{
asn1p_ref_t *ref;
int ret;
@@ -3763,7 +3782,7 @@
break;
case 165:
-#line 1570 "asn1p_y.y"
+#line 1579 "asn1p_y.y"
{
asn1p_ref_t *ref;
int ret;
@@ -3781,7 +3800,7 @@
break;
case 166:
-#line 1588 "asn1p_y.y"
+#line 1597 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_frombuf((yyvsp[(1) - (1)].tv_opaque).buf, (yyvsp[(1) - (1)].tv_opaque).len, 0);
checkmem((yyval.a_value));
@@ -3789,7 +3808,7 @@
break;
case 167:
-#line 1592 "asn1p_y.y"
+#line 1601 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint((yyvsp[(1) - (1)].a_int));
checkmem((yyval.a_value));
@@ -3798,7 +3817,7 @@
break;
case 168:
-#line 1597 "asn1p_y.y"
+#line 1606 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint((yyvsp[(1) - (1)].a_int));
checkmem((yyval.a_value));
@@ -3807,7 +3826,7 @@
break;
case 169:
-#line 1605 "asn1p_y.y"
+#line 1614 "asn1p_y.y"
{
(yyval.tv_opaque).len = (yyvsp[(1) - (1)].tv_opaque).len + 1;
(yyval.tv_opaque).buf = malloc((yyval.tv_opaque).len + 1);
@@ -3820,7 +3839,7 @@
break;
case 170:
-#line 1614 "asn1p_y.y"
+#line 1623 "asn1p_y.y"
{
int newsize = (yyvsp[(1) - (2)].tv_opaque).len + (yyvsp[(2) - (2)].tv_opaque).len;
char *p = malloc(newsize + 1);
@@ -3836,87 +3855,87 @@
break;
case 171:
-#line 1629 "asn1p_y.y"
+#line 1638 "asn1p_y.y"
{ (yyval.a_type) = ASN_BASIC_BOOLEAN; }
break;
case 172:
-#line 1630 "asn1p_y.y"
+#line 1639 "asn1p_y.y"
{ (yyval.a_type) = ASN_BASIC_NULL; }
break;
case 173:
-#line 1631 "asn1p_y.y"
+#line 1640 "asn1p_y.y"
{ (yyval.a_type) = ASN_BASIC_REAL; }
break;
case 174:
-#line 1632 "asn1p_y.y"
- { (yyval.a_type) = (yyvsp[(1) - (1)].a_type); }
- break;
-
- case 175:
-#line 1633 "asn1p_y.y"
- { (yyval.a_type) = ASN_BASIC_OCTET_STRING; }
- break;
-
- case 176:
-#line 1634 "asn1p_y.y"
- { (yyval.a_type) = ASN_BASIC_OBJECT_IDENTIFIER; }
- break;
-
- case 177:
-#line 1635 "asn1p_y.y"
- { (yyval.a_type) = ASN_BASIC_RELATIVE_OID; }
- break;
-
- case 178:
-#line 1636 "asn1p_y.y"
- { (yyval.a_type) = ASN_BASIC_EXTERNAL; }
- break;
-
- case 179:
-#line 1637 "asn1p_y.y"
- { (yyval.a_type) = ASN_BASIC_EMBEDDED_PDV; }
- break;
-
- case 180:
-#line 1638 "asn1p_y.y"
- { (yyval.a_type) = ASN_BASIC_CHARACTER_STRING; }
- break;
-
- case 181:
-#line 1639 "asn1p_y.y"
- { (yyval.a_type) = ASN_BASIC_UTCTime; }
- break;
-
- case 182:
-#line 1640 "asn1p_y.y"
- { (yyval.a_type) = ASN_BASIC_GeneralizedTime; }
- break;
-
- case 183:
#line 1641 "asn1p_y.y"
{ (yyval.a_type) = (yyvsp[(1) - (1)].a_type); }
break;
- case 184:
+ case 175:
+#line 1642 "asn1p_y.y"
+ { (yyval.a_type) = ASN_BASIC_OCTET_STRING; }
+ break;
+
+ case 176:
+#line 1643 "asn1p_y.y"
+ { (yyval.a_type) = ASN_BASIC_OBJECT_IDENTIFIER; }
+ break;
+
+ case 177:
+#line 1644 "asn1p_y.y"
+ { (yyval.a_type) = ASN_BASIC_RELATIVE_OID; }
+ break;
+
+ case 178:
+#line 1645 "asn1p_y.y"
+ { (yyval.a_type) = ASN_BASIC_EXTERNAL; }
+ break;
+
+ case 179:
+#line 1646 "asn1p_y.y"
+ { (yyval.a_type) = ASN_BASIC_EMBEDDED_PDV; }
+ break;
+
+ case 180:
+#line 1647 "asn1p_y.y"
+ { (yyval.a_type) = ASN_BASIC_CHARACTER_STRING; }
+ break;
+
+ case 181:
#line 1648 "asn1p_y.y"
+ { (yyval.a_type) = ASN_BASIC_UTCTime; }
+ break;
+
+ case 182:
+#line 1649 "asn1p_y.y"
+ { (yyval.a_type) = ASN_BASIC_GeneralizedTime; }
+ break;
+
+ case 183:
+#line 1650 "asn1p_y.y"
+ { (yyval.a_type) = (yyvsp[(1) - (1)].a_type); }
+ break;
+
+ case 184:
+#line 1657 "asn1p_y.y"
{ (yyval.a_type) = ASN_BASIC_INTEGER; }
break;
case 185:
-#line 1649 "asn1p_y.y"
+#line 1658 "asn1p_y.y"
{ (yyval.a_type) = ASN_BASIC_ENUMERATED; }
break;
case 186:
-#line 1650 "asn1p_y.y"
+#line 1659 "asn1p_y.y"
{ (yyval.a_type) = ASN_BASIC_BIT_STRING; }
break;
case 187:
-#line 1654 "asn1p_y.y"
+#line 1663 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -3926,7 +3945,7 @@
break;
case 188:
-#line 1660 "asn1p_y.y"
+#line 1669 "asn1p_y.y"
{
if((yyvsp[(2) - (2)].a_expr)) {
(yyval.a_expr) = (yyvsp[(2) - (2)].a_expr);
@@ -3940,12 +3959,12 @@
break;
case 189:
-#line 1673 "asn1p_y.y"
+#line 1682 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_BMPString; }
break;
case 190:
-#line 1674 "asn1p_y.y"
+#line 1683 "asn1p_y.y"
{
(yyval.a_type) = ASN_STRING_GeneralString;
fprintf(stderr, "WARNING: GeneralString is not fully supported\n");
@@ -3953,7 +3972,7 @@
break;
case 191:
-#line 1678 "asn1p_y.y"
+#line 1687 "asn1p_y.y"
{
(yyval.a_type) = ASN_STRING_GraphicString;
fprintf(stderr, "WARNING: GraphicString is not fully supported\n");
@@ -3961,27 +3980,27 @@
break;
case 192:
-#line 1682 "asn1p_y.y"
+#line 1691 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_IA5String; }
break;
case 193:
-#line 1683 "asn1p_y.y"
+#line 1692 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_ISO646String; }
break;
case 194:
-#line 1684 "asn1p_y.y"
+#line 1693 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_NumericString; }
break;
case 195:
-#line 1685 "asn1p_y.y"
+#line 1694 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_PrintableString; }
break;
case 196:
-#line 1686 "asn1p_y.y"
+#line 1695 "asn1p_y.y"
{
(yyval.a_type) = ASN_STRING_T61String;
fprintf(stderr, "WARNING: T61String is not fully supported\n");
@@ -3989,22 +4008,22 @@
break;
case 197:
-#line 1690 "asn1p_y.y"
+#line 1699 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_TeletexString; }
break;
case 198:
-#line 1691 "asn1p_y.y"
+#line 1700 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_UniversalString; }
break;
case 199:
-#line 1692 "asn1p_y.y"
+#line 1701 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_UTF8String; }
break;
case 200:
-#line 1693 "asn1p_y.y"
+#line 1702 "asn1p_y.y"
{
(yyval.a_type) = ASN_STRING_VideotexString;
fprintf(stderr, "WARNING: VideotexString is not fully supported\n");
@@ -4012,74 +4031,54 @@
break;
case 201:
-#line 1697 "asn1p_y.y"
+#line 1706 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_VisibleString; }
break;
case 202:
-#line 1698 "asn1p_y.y"
+#line 1707 "asn1p_y.y"
{ (yyval.a_type) = ASN_STRING_ObjectDescriptor; }
break;
case 207:
-#line 1709 "asn1p_y.y"
+#line 1719 "asn1p_y.y"
{ (yyval.a_constr) = 0; }
break;
- case 208:
-#line 1710 "asn1p_y.y"
- {
- (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr);
- }
- break;
-
- case 210:
-#line 1720 "asn1p_y.y"
- {
- CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_SET, (yyvsp[(1) - (1)].a_constr), 0);
- }
+ case 209:
+#line 1724 "asn1p_y.y"
+ { (yyval.a_constr) = 0; }
break;
case 211:
-#line 1723 "asn1p_y.y"
+#line 1726 "asn1p_y.y"
{
- /*
- * This is a special case, for compatibility purposes.
- * It goes without parentheses.
- */
CONSTRAINT_INSERT((yyval.a_constr), ACT_CT_SIZE, (yyvsp[(3) - (4)].a_constr), 0);
}
break;
case 212:
-#line 1733 "asn1p_y.y"
+#line 1732 "asn1p_y.y"
+ {
+ CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_SET, (yyvsp[(1) - (1)].a_constr), 0);
+ }
+ break;
+
+ case 213:
+#line 1738 "asn1p_y.y"
{
(yyval.a_constr) = (yyvsp[(2) - (3)].a_constr);
}
break;
- case 213:
-#line 1736 "asn1p_y.y"
+ case 214:
+#line 1741 "asn1p_y.y"
{
CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_SET, (yyvsp[(1) - (4)].a_constr), (yyvsp[(3) - (4)].a_constr));
}
break;
- case 214:
-#line 1742 "asn1p_y.y"
- {
- (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr);
- }
- break;
-
- case 215:
-#line 1745 "asn1p_y.y"
- {
- (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr);
- }
- break;
-
- case 216:
+ case 218:
#line 1751 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
@@ -4087,15 +4086,8 @@
}
break;
- case 217:
-#line 1755 "asn1p_y.y"
- {
- (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr);
- }
- break;
-
- case 218:
-#line 1758 "asn1p_y.y"
+ case 220:
+#line 1756 "asn1p_y.y"
{
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno, currentModule);
@@ -4104,8 +4096,8 @@
}
break;
- case 219:
-#line 1764 "asn1p_y.y"
+ case 221:
+#line 1762 "asn1p_y.y"
{
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno, currentModule);
@@ -4116,36 +4108,36 @@
}
break;
- case 221:
-#line 1776 "asn1p_y.y"
+ case 223:
+#line 1774 "asn1p_y.y"
{
CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_AEX, (yyvsp[(3) - (3)].a_constr), 0);
}
break;
- case 223:
-#line 1783 "asn1p_y.y"
+ case 225:
+#line 1781 "asn1p_y.y"
{
CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_UNI, (yyvsp[(1) - (3)].a_constr), (yyvsp[(3) - (3)].a_constr));
}
break;
- case 225:
-#line 1790 "asn1p_y.y"
+ case 227:
+#line 1788 "asn1p_y.y"
{
CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_INT, (yyvsp[(1) - (3)].a_constr), (yyvsp[(3) - (3)].a_constr));
}
break;
- case 227:
-#line 1798 "asn1p_y.y"
+ case 229:
+#line 1796 "asn1p_y.y"
{
CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_EXC, (yyvsp[(1) - (3)].a_constr), (yyvsp[(3) - (3)].a_constr));
}
break;
- case 228:
-#line 1804 "asn1p_y.y"
+ case 230:
+#line 1802 "asn1p_y.y"
{
int ret;
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
@@ -4156,8 +4148,8 @@
}
break;
- case 229:
-#line 1812 "asn1p_y.y"
+ case 231:
+#line 1810 "asn1p_y.y"
{
int ret;
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
@@ -4168,8 +4160,8 @@
}
break;
- case 230:
-#line 1820 "asn1p_y.y"
+ case 232:
+#line 1818 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
checkmem((yyval.a_constr));
@@ -4178,8 +4170,8 @@
}
break;
- case 231:
-#line 1826 "asn1p_y.y"
+ case 233:
+#line 1824 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
checkmem((yyval.a_constr));
@@ -4188,43 +4180,43 @@
}
break;
- case 232:
-#line 1832 "asn1p_y.y"
- {
- (yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
- checkmem((yyval.a_constr));
- (yyval.a_constr)->type = (yyvsp[(2) - (3)].a_ctype);
- (yyval.a_constr)->range_start = (yyvsp[(1) - (3)].a_value);
- (yyval.a_constr)->range_stop = (yyvsp[(3) - (3)].a_value);
- }
- break;
-
- case 233:
-#line 1839 "asn1p_y.y"
- {
- (yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
- checkmem((yyval.a_constr));
- (yyval.a_constr)->type = (yyvsp[(2) - (3)].a_ctype);
- (yyval.a_constr)->range_start = asn1p_value_fromint(-123);
- (yyval.a_constr)->range_stop = (yyvsp[(3) - (3)].a_value);
- (yyval.a_constr)->range_start->type = ATV_MIN;
- }
- break;
-
case 234:
-#line 1847 "asn1p_y.y"
+#line 1830 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
checkmem((yyval.a_constr));
(yyval.a_constr)->type = (yyvsp[(2) - (3)].a_ctype);
(yyval.a_constr)->range_start = (yyvsp[(1) - (3)].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[(3) - (3)].a_value);
}
break;
case 235:
-#line 1855 "asn1p_y.y"
+#line 1837 "asn1p_y.y"
+ {
+ (yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
+ checkmem((yyval.a_constr));
+ (yyval.a_constr)->type = (yyvsp[(2) - (3)].a_ctype);
+ (yyval.a_constr)->range_start = asn1p_value_fromint(-123);
+ (yyval.a_constr)->range_stop = (yyvsp[(3) - (3)].a_value);
+ (yyval.a_constr)->range_start->type = ATV_MIN;
+ }
+ break;
+
+ case 236:
+#line 1845 "asn1p_y.y"
+ {
+ (yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
+ checkmem((yyval.a_constr));
+ (yyval.a_constr)->type = (yyvsp[(2) - (3)].a_ctype);
+ (yyval.a_constr)->range_start = (yyvsp[(1) - (3)].a_value);
+ (yyval.a_constr)->range_stop = asn1p_value_fromint(321);
+ (yyval.a_constr)->range_stop->type = ATV_MAX;
+ }
+ break;
+
+ case 237:
+#line 1853 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
checkmem((yyval.a_constr));
@@ -4236,27 +4228,13 @@
}
break;
- case 236:
+ case 240:
#line 1864 "asn1p_y.y"
- {
- (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr);
- }
- break;
-
- case 237:
-#line 1867 "asn1p_y.y"
- {
- (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr);
- }
- break;
-
- case 238:
-#line 1870 "asn1p_y.y"
{ asn1p_lexer_hack_push_opaque_state(); }
break;
- case 239:
-#line 1870 "asn1p_y.y"
+ case 241:
+#line 1864 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
checkmem((yyval.a_constr));
@@ -4266,8 +4244,8 @@
}
break;
- case 240:
-#line 1880 "asn1p_y.y"
+ case 242:
+#line 1874 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
(yyval.a_constr)->type = ACT_CT_PATTERN;
@@ -4275,8 +4253,8 @@
}
break;
- case 241:
-#line 1885 "asn1p_y.y"
+ case 243:
+#line 1879 "asn1p_y.y"
{
asn1p_ref_t *ref;
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
@@ -4288,22 +4266,22 @@
}
break;
- case 242:
-#line 1897 "asn1p_y.y"
+ case 244:
+#line 1891 "asn1p_y.y"
{
(yyval.a_ctype) = ACT_CT_SIZE;
}
break;
- case 243:
-#line 1900 "asn1p_y.y"
+ case 245:
+#line 1894 "asn1p_y.y"
{
(yyval.a_ctype) = ACT_CT_FROM;
}
break;
- case 244:
-#line 1906 "asn1p_y.y"
+ case 246:
+#line 1900 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint(0);
checkmem((yyval.a_value));
@@ -4311,8 +4289,8 @@
}
break;
- case 245:
-#line 1911 "asn1p_y.y"
+ case 247:
+#line 1905 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint(1);
checkmem((yyval.a_value));
@@ -4320,8 +4298,8 @@
}
break;
- case 249:
-#line 1919 "asn1p_y.y"
+ case 251:
+#line 1913 "asn1p_y.y"
{
asn1p_ref_t *ref;
int ret;
@@ -4335,8 +4313,8 @@
}
break;
- case 250:
-#line 1933 "asn1p_y.y"
+ case 252:
+#line 1927 "asn1p_y.y"
{
(yyval.a_value) = _convert_bitstring2binary((yyvsp[(1) - (1)].tv_str), 'B');
checkmem((yyval.a_value));
@@ -4344,8 +4322,8 @@
}
break;
- case 251:
-#line 1938 "asn1p_y.y"
+ case 253:
+#line 1932 "asn1p_y.y"
{
(yyval.a_value) = _convert_bitstring2binary((yyvsp[(1) - (1)].tv_str), 'H');
checkmem((yyval.a_value));
@@ -4353,102 +4331,118 @@
}
break;
- case 252:
-#line 1946 "asn1p_y.y"
+ case 254:
+#line 1940 "asn1p_y.y"
{
- (yyval.a_value) = asn1p_value_fromref((yyvsp[(1) - (1)].a_ref), 0);
+ (yyval.a_value) = asn1p_value_fromtype((yyvsp[(1) - (1)].a_expr));
checkmem((yyval.a_value));
- }
+ }
break;
- case 253:
-#line 1966 "asn1p_y.y"
+ case 255:
+#line 1951 "asn1p_y.y"
{
CONSTRAINT_INSERT((yyval.a_constr), ACT_CT_WCOMP, (yyvsp[(3) - (3)].a_constr), 0);
}
break;
- case 254:
-#line 1969 "asn1p_y.y"
- {
- CONSTRAINT_INSERT((yyval.a_constr), ACT_CT_WCOMPS, (yyvsp[(4) - (5)].a_constr), 0);
- }
- break;
-
- case 255:
-#line 1975 "asn1p_y.y"
- {
- (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr);
- }
- break;
-
case 256:
-#line 1978 "asn1p_y.y"
+#line 1954 "asn1p_y.y"
{
- CONSTRAINT_INSERT((yyval.a_constr), ACT_CT_WCOMPS, (yyvsp[(1) - (3)].a_constr), (yyvsp[(3) - (3)].a_constr));
+ assert((yyvsp[(3) - (3)].a_constr)->type == ACT_CA_CSV);
+ (yyvsp[(3) - (3)].a_constr)->type = ACT_CT_WCOMPS;
+ (yyval.a_constr) = (yyvsp[(3) - (3)].a_constr);
}
break;
- case 257:
-#line 1984 "asn1p_y.y"
- {
- (yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
- checkmem((yyval.a_constr));
- (yyval.a_constr)->type = ACT_EL_EXT;
- (yyval.a_constr)->value = asn1p_value_frombuf("...", 3, 1);
- }
- break;
-
- case 258:
-#line 1990 "asn1p_y.y"
- {
- (yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
- checkmem((yyval.a_constr));
- (yyval.a_constr)->type = ACT_EL_VALUE;
- (yyval.a_constr)->value = asn1p_value_frombuf((yyvsp[(1) - (3)].tv_str), strlen((yyvsp[(1) - (3)].tv_str)), 0);
- (yyval.a_constr)->presence = (yyvsp[(3) - (3)].a_pres);
- if((yyvsp[(2) - (3)].a_constr)) asn1p_constraint_insert((yyval.a_constr), (yyvsp[(2) - (3)].a_constr));
- }
- break;
-
- case 259:
-#line 2004 "asn1p_y.y"
- { (yyval.a_pres) = ACPRES_DEFAULT; }
- break;
-
case 260:
-#line 2005 "asn1p_y.y"
- { (yyval.a_pres) = (yyvsp[(1) - (1)].a_pres); }
+#line 1962 "asn1p_y.y"
+ { (yyval.a_constr) = (yyvsp[(2) - (3)].a_constr); }
break;
case 261:
-#line 2009 "asn1p_y.y"
+#line 1964 "asn1p_y.y"
+ {
+ assert((yyvsp[(4) - (5)].a_constr)->type == ACT_CA_CSV);
+ (yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
+ (yyval.a_constr)->type = ACT_CA_CSV;
+ asn1p_constraint_t *ct = asn1p_constraint_new(yylineno, currentModule);
+ checkmem((yyval.a_constr));
+ ct->type = ACT_EL_EXT;
+ asn1p_constraint_insert((yyval.a_constr), ct);
+ for(unsigned i = 0; i < (yyvsp[(4) - (5)].a_constr)->el_count; i++) {
+ asn1p_constraint_insert((yyval.a_constr), (yyvsp[(4) - (5)].a_constr)->elements[i]);
+ }
+ }
+ break;
+
+ case 262:
+#line 1977 "asn1p_y.y"
+ {
+ (yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
+ (yyval.a_constr)->type = ACT_CA_CSV;
+ asn1p_constraint_insert((yyval.a_constr), (yyvsp[(1) - (1)].a_constr));
+ }
+ break;
+
+ case 263:
+#line 1982 "asn1p_y.y"
+ {
+ (yyval.a_constr) = (yyvsp[(1) - (3)].a_constr);
+ asn1p_constraint_insert((yyval.a_constr), (yyvsp[(3) - (3)].a_constr));
+ }
+ break;
+
+ case 264:
+#line 1988 "asn1p_y.y"
+ {
+ (yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
+ checkmem((yyval.a_constr));
+ (yyval.a_constr)->type = ACT_EL_VALUE;
+ (yyval.a_constr)->value = (yyvsp[(1) - (3)].a_value);
+ if((yyvsp[(2) - (3)].a_constr)) asn1p_constraint_insert((yyval.a_constr), (yyvsp[(2) - (3)].a_constr));
+ (yyval.a_constr)->presence = (yyvsp[(3) - (3)].a_pres);
+ }
+ break;
+
+ case 265:
+#line 2002 "asn1p_y.y"
+ { (yyval.a_pres) = ACPRES_DEFAULT; }
+ break;
+
+ case 266:
+#line 2003 "asn1p_y.y"
+ { (yyval.a_pres) = (yyvsp[(1) - (1)].a_pres); }
+ break;
+
+ case 267:
+#line 2007 "asn1p_y.y"
{
(yyval.a_pres) = ACPRES_PRESENT;
}
break;
- case 262:
-#line 2012 "asn1p_y.y"
+ case 268:
+#line 2010 "asn1p_y.y"
{
(yyval.a_pres) = ACPRES_ABSENT;
}
break;
- case 263:
-#line 2015 "asn1p_y.y"
+ case 269:
+#line 2013 "asn1p_y.y"
{
(yyval.a_pres) = ACPRES_OPTIONAL;
}
break;
- case 267:
-#line 2030 "asn1p_y.y"
+ case 273:
+#line 2028 "asn1p_y.y"
{ asn1p_lexer_hack_push_opaque_state(); }
break;
- case 268:
-#line 2030 "asn1p_y.y"
+ case 274:
+#line 2028 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
checkmem((yyval.a_constr));
@@ -4459,8 +4453,8 @@
}
break;
- case 269:
-#line 2041 "asn1p_y.y"
+ case 275:
+#line 2039 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
(yyval.a_constr)->type = ACT_CT_CTNG;
@@ -4469,42 +4463,42 @@
}
break;
- case 270:
-#line 2050 "asn1p_y.y"
+ case 276:
+#line 2048 "asn1p_y.y"
{ (yyval.a_ctype) = ACT_EL_RANGE; }
break;
- case 271:
-#line 2051 "asn1p_y.y"
+ case 277:
+#line 2049 "asn1p_y.y"
{ (yyval.a_ctype) = ACT_EL_RLRANGE; }
break;
- case 272:
-#line 2052 "asn1p_y.y"
+ case 278:
+#line 2050 "asn1p_y.y"
{ (yyval.a_ctype) = ACT_EL_LLRANGE; }
break;
- case 273:
-#line 2053 "asn1p_y.y"
+ case 279:
+#line 2051 "asn1p_y.y"
{ (yyval.a_ctype) = ACT_EL_ULRANGE; }
break;
- case 274:
-#line 2056 "asn1p_y.y"
+ case 280:
+#line 2054 "asn1p_y.y"
{
(yyval.a_constr) = (yyvsp[(1) - (1)].a_constr);
}
break;
- case 275:
-#line 2059 "asn1p_y.y"
+ case 281:
+#line 2057 "asn1p_y.y"
{
(yyval.a_constr) = (yyvsp[(1) - (1)].a_constr);
}
break;
- case 276:
-#line 2068 "asn1p_y.y"
+ case 282:
+#line 2066 "asn1p_y.y"
{
asn1p_ref_t *ref = asn1p_ref_new(yylineno, currentModule);
asn1p_constraint_t *ct;
@@ -4520,15 +4514,15 @@
}
break;
- case 277:
-#line 2084 "asn1p_y.y"
+ case 283:
+#line 2082 "asn1p_y.y"
{
CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_CRC, (yyvsp[(1) - (4)].a_constr), (yyvsp[(3) - (4)].a_constr));
}
break;
- case 278:
-#line 2090 "asn1p_y.y"
+ case 284:
+#line 2088 "asn1p_y.y"
{
(yyval.a_constr) = asn1p_constraint_new(yylineno, currentModule);
checkmem((yyval.a_constr));
@@ -4537,8 +4531,8 @@
}
break;
- case 279:
-#line 2096 "asn1p_y.y"
+ case 285:
+#line 2094 "asn1p_y.y"
{
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno, currentModule);
@@ -4549,8 +4543,8 @@
}
break;
- case 280:
-#line 2110 "asn1p_y.y"
+ case 286:
+#line 2108 "asn1p_y.y"
{
char *p = malloc(strlen((yyvsp[(2) - (2)].tv_str)) + 2);
int ret;
@@ -4564,8 +4558,8 @@
}
break;
- case 281:
-#line 2121 "asn1p_y.y"
+ case 287:
+#line 2119 "asn1p_y.y"
{
char *p = malloc(strlen((yyvsp[(3) - (3)].tv_str)) + 3);
int ret;
@@ -4580,15 +4574,15 @@
}
break;
- case 282:
-#line 2137 "asn1p_y.y"
+ case 288:
+#line 2135 "asn1p_y.y"
{
(yyval.tv_str) = (yyvsp[(1) - (1)].tv_str);
}
break;
- case 283:
-#line 2140 "asn1p_y.y"
+ case 289:
+#line 2138 "asn1p_y.y"
{
int l1 = strlen((yyvsp[(1) - (3)].tv_str));
int l3 = strlen((yyvsp[(3) - (3)].tv_str));
@@ -4602,52 +4596,52 @@
}
break;
- case 284:
-#line 2160 "asn1p_y.y"
+ case 290:
+#line 2158 "asn1p_y.y"
{
(yyval.a_marker).flags = EM_NOMARK;
(yyval.a_marker).default_value = 0;
}
break;
- case 285:
-#line 2164 "asn1p_y.y"
+ case 291:
+#line 2162 "asn1p_y.y"
{ (yyval.a_marker) = (yyvsp[(1) - (1)].a_marker); }
break;
- case 286:
-#line 2168 "asn1p_y.y"
+ case 292:
+#line 2166 "asn1p_y.y"
{
(yyval.a_marker).flags = EM_OPTIONAL | EM_INDIRECT;
(yyval.a_marker).default_value = 0;
}
break;
- case 287:
-#line 2172 "asn1p_y.y"
+ case 293:
+#line 2170 "asn1p_y.y"
{
(yyval.a_marker).flags = EM_DEFAULT;
(yyval.a_marker).default_value = (yyvsp[(2) - (2)].a_value);
}
break;
- case 288:
-#line 2195 "asn1p_y.y"
+ case 294:
+#line 2193 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
}
break;
- case 289:
-#line 2199 "asn1p_y.y"
+ case 295:
+#line 2197 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(2) - (3)].a_expr);
}
break;
- case 290:
-#line 2205 "asn1p_y.y"
+ case 296:
+#line 2203 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -4655,16 +4649,16 @@
}
break;
- case 291:
-#line 2210 "asn1p_y.y"
+ case 297:
+#line 2208 "asn1p_y.y"
{
(yyval.a_expr) = (yyvsp[(1) - (3)].a_expr);
asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr));
}
break;
- case 292:
-#line 2217 "asn1p_y.y"
+ case 298:
+#line 2215 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -4674,8 +4668,8 @@
}
break;
- case 293:
-#line 2224 "asn1p_y.y"
+ case 299:
+#line 2222 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -4686,8 +4680,8 @@
}
break;
- case 294:
-#line 2232 "asn1p_y.y"
+ case 300:
+#line 2230 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -4698,8 +4692,8 @@
}
break;
- case 295:
-#line 2240 "asn1p_y.y"
+ case 301:
+#line 2238 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -4709,8 +4703,8 @@
}
break;
- case 296:
-#line 2247 "asn1p_y.y"
+ case 302:
+#line 2245 "asn1p_y.y"
{
(yyval.a_expr) = NEW_EXPR();
checkmem((yyval.a_expr));
@@ -4721,138 +4715,153 @@
}
break;
- case 297:
-#line 2258 "asn1p_y.y"
+ case 303:
+#line 2256 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint((yyvsp[(1) - (1)].a_int));
checkmem((yyval.a_value));
}
break;
- case 298:
-#line 2262 "asn1p_y.y"
+ case 304:
+#line 2260 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromint((yyvsp[(1) - (1)].a_int));
checkmem((yyval.a_value));
}
break;
- case 300:
-#line 2270 "asn1p_y.y"
+ case 306:
+#line 2268 "asn1p_y.y"
{
(yyval.a_value) = asn1p_value_fromdouble((yyvsp[(1) - (1)].a_dbl));
checkmem((yyval.a_value));
}
break;
- case 301:
-#line 2301 "asn1p_y.y"
+ case 307:
+#line 2299 "asn1p_y.y"
{ memset(&(yyval.a_tag), 0, sizeof((yyval.a_tag))); }
break;
- case 302:
-#line 2302 "asn1p_y.y"
+ case 308:
+#line 2300 "asn1p_y.y"
{ (yyval.a_tag) = (yyvsp[(1) - (1)].a_tag); }
break;
- case 303:
-#line 2306 "asn1p_y.y"
+ case 309:
+#line 2304 "asn1p_y.y"
{
(yyval.a_tag) = (yyvsp[(1) - (2)].a_tag);
(yyval.a_tag).tag_mode = (yyvsp[(2) - (2)].a_tag).tag_mode;
}
break;
- case 304:
-#line 2313 "asn1p_y.y"
+ case 310:
+#line 2311 "asn1p_y.y"
{
(yyval.a_tag) = (yyvsp[(2) - (4)].a_tag);
(yyval.a_tag).tag_value = (yyvsp[(3) - (4)].a_int);
}
break;
- case 305:
-#line 2319 "asn1p_y.y"
+ case 311:
+#line 2317 "asn1p_y.y"
{ (yyval.a_tag).tag_class = TC_CONTEXT_SPECIFIC; }
break;
- case 306:
-#line 2320 "asn1p_y.y"
+ case 312:
+#line 2318 "asn1p_y.y"
{ (yyval.a_tag).tag_class = TC_UNIVERSAL; }
break;
- case 307:
-#line 2321 "asn1p_y.y"
+ case 313:
+#line 2319 "asn1p_y.y"
{ (yyval.a_tag).tag_class = TC_APPLICATION; }
break;
- case 308:
-#line 2322 "asn1p_y.y"
+ case 314:
+#line 2320 "asn1p_y.y"
{ (yyval.a_tag).tag_class = TC_PRIVATE; }
break;
- case 309:
-#line 2326 "asn1p_y.y"
+ case 315:
+#line 2324 "asn1p_y.y"
{ (yyval.a_tag).tag_mode = TM_DEFAULT; }
break;
- case 310:
-#line 2327 "asn1p_y.y"
+ case 316:
+#line 2325 "asn1p_y.y"
{ (yyval.a_tag).tag_mode = TM_IMPLICIT; }
break;
- case 311:
-#line 2328 "asn1p_y.y"
+ case 317:
+#line 2326 "asn1p_y.y"
{ (yyval.a_tag).tag_mode = TM_EXPLICIT; }
break;
- case 312:
-#line 2332 "asn1p_y.y"
+ case 318:
+#line 2330 "asn1p_y.y"
{
checkmem((yyvsp[(1) - (1)].tv_str));
(yyval.tv_str) = (yyvsp[(1) - (1)].tv_str);
}
break;
- case 313:
-#line 2336 "asn1p_y.y"
+ case 319:
+#line 2334 "asn1p_y.y"
{
checkmem((yyvsp[(1) - (1)].tv_str));
(yyval.tv_str) = (yyvsp[(1) - (1)].tv_str);
}
break;
- case 314:
-#line 2344 "asn1p_y.y"
+ case 320:
+#line 2342 "asn1p_y.y"
{
checkmem((yyvsp[(1) - (1)].tv_str));
(yyval.tv_str) = (yyvsp[(1) - (1)].tv_str);
}
break;
- case 315:
-#line 2351 "asn1p_y.y"
+ case 321:
+#line 2349 "asn1p_y.y"
{ (yyval.tv_str) = 0; }
break;
- case 316:
-#line 2352 "asn1p_y.y"
+ case 322:
+#line 2350 "asn1p_y.y"
{
(yyval.tv_str) = (yyvsp[(1) - (1)].tv_str);
}
break;
- case 317:
-#line 2358 "asn1p_y.y"
+ case 323:
+#line 2356 "asn1p_y.y"
{
checkmem((yyvsp[(1) - (1)].tv_str));
(yyval.tv_str) = (yyvsp[(1) - (1)].tv_str);
}
break;
+ case 324:
+#line 2363 "asn1p_y.y"
+ {
+ (yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
+ asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (1)].tv_str), RLT_lowercase);
+ }
+ break;
+
+ case 325:
+#line 2369 "asn1p_y.y"
+ {
+ (yyval.a_value) = asn1p_value_fromref((yyvsp[(1) - (1)].a_ref), 0);
+ }
+ break;
+
/* Line 1267 of yacc.c. */
-#line 4856 "asn1p_y.c"
+#line 4865 "asn1p_y.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5066,7 +5075,7 @@
}
-#line 2364 "asn1p_y.y"
+#line 2373 "asn1p_y.y"
@@ -5211,8 +5220,8 @@
extern char *asn1p_text;
fprintf(stderr,
"ASN.1 grammar parse error "
- "near line %d (token \"%s\"): %s\n",
- yylineno, asn1p_text, msg);
+ "near %s:%d (token \"%s\"): %s\n",
+ ASN_FILENAME, yylineno, asn1p_text, msg);
return -1;
}
diff --git a/libasn1parser/asn1p_y.h b/libasn1parser/asn1p_y.h
index b47dea4..65b7d6b 100644
--- a/libasn1parser/asn1p_y.h
+++ b/libasn1parser/asn1p_y.h
@@ -260,7 +260,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 88 "asn1p_y.y"
+#line 90 "asn1p_y.y"
{
asn1p_t *a_grammar;
asn1p_module_flags_e a_module_flags;
diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y
index 88d5a2c..4cd3879 100644
--- a/libasn1parser/asn1p_y.y
+++ b/libasn1parser/asn1p_y.y
@@ -22,6 +22,8 @@
void asn1p_lexer_hack_push_encoding_control(void);
#define yylineno asn1p_lineno
extern int asn1p_lineno;
+const char *asn1p_parse_debug_filename;
+#define ASN_FILENAME asn1p_parse_debug_filename
/*
* Process directives as <ASN1C:RepresentAsPointer>
@@ -295,6 +297,8 @@
%type <tv_str> TypeRefName
%type <tv_str> ObjectClassReference
%type <tv_str> Identifier
+%type <a_ref> IdentifierAsReference
+%type <a_value> IdentifierAsValue
%type <tv_str> optIdentifier
%type <a_parg> ParameterArgumentName
%type <a_plist> ParameterArgumentList
@@ -314,9 +318,16 @@
%type <a_tag> TagClass TagTypeValue TagPlicit
%type <a_tag> optTag /* [UNIVERSAL 0] IMPLICIT */
%type <a_constr> optConstraints
+%type <a_constr> optSizeConstraints
%type <a_constr> Constraint
+%type <a_constr> SingleTypeConstraint
+%type <a_constr> MultipleTypeConstraints
+%type <a_constr> NamedConstraint
+%type <a_constr> FullSpecification
+%type <a_constr> PartialSpecification
+%type <a_constr> TypeConstraints
+%type <a_constr> ConstraintSpec
%type <a_constr> SubtypeConstraint
-%type <a_constr> ConstraintSpecs
%type <a_constr> GeneralConstraint
%type <a_constr> SetOfConstraints
%type <a_constr> ElementSetSpecs /* 1..2,...,3 */
@@ -331,14 +342,12 @@
%type <a_constr> ContentsConstraint
%type <a_constr> PatternConstraint
%type <a_constr> InnerTypeConstraint
-%type <a_constr> WithComponentsList
-%type <a_constr> WithComponentsElement
%type <a_constr> ComponentRelationConstraint
%type <a_constr> AtNotationList
%type <a_ref> AtNotationElement
%type <a_value> SingleValue
%type <a_value> ContainedSubtype
-%type <a_ctype> ConstraintSpec
+%type <a_ctype> ConstraintType
%type <a_ctype> ConstraintRangeSpec
%type <a_value> RestrictedCharacterStringValue
%type <a_wsynt> optWithSyntax
@@ -505,9 +514,9 @@
$$ = MSF_XER_INSTRUCTIONS;
} else {
fprintf(stderr,
- "WARNING: %s INSTRUCTIONS at line %d: "
+ "WARNING: %s INSTRUCTIONS at %s:%d: "
"Unrecognized encoding reference\n",
- $1, yylineno);
+ $1, ASN_FILENAME, yylineno);
$$ = MSF_unk_INSTRUCTIONS;
}
free($1);
@@ -594,8 +603,8 @@
{
fprintf(stderr,
"WARNING: ENCODING-CONTROL %s "
- "specification at line %d ignored\n",
- $2, yylineno);
+ "specification at %s:%d ignored\n",
+ $2, ASN_FILENAME, yylineno);
free($2);
$$ = 0;
}
@@ -1263,11 +1272,11 @@
&& ($$->marker.flags & EM_OPTIONAL) != EM_OPTIONAL) {
fprintf(stderr,
"INFO: Directive <ASN1C:RepresentAsPointer> "
- "applied to %s at line %d\n",
+ "applied to %s at %s:%d\n",
ASN_EXPR_TYPE2STR($$->expr_type)
? ASN_EXPR_TYPE2STR($$->expr_type)
: "member",
- $$->_lineno
+ ASN_FILENAME, $$->_lineno
);
}
}
@@ -1295,7 +1304,7 @@
$$->expr_type = ASN_CONSTR_SET;
$$->meta_type = AMT_TYPE;
}
- | TOK_SEQUENCE optConstraints TOK_OF optIdentifier optTag TypeDeclaration {
+ | TOK_SEQUENCE optSizeConstraints TOK_OF optIdentifier optTag TypeDeclaration {
$$ = NEW_EXPR();
checkmem($$);
$$->constraints = $2;
@@ -1305,7 +1314,7 @@
$6->tag = $5;
asn1p_expr_add($$, $6);
}
- | TOK_SET optConstraints TOK_OF optIdentifier optTag TypeDeclaration {
+ | TOK_SET optSizeConstraints TOK_OF optIdentifier optTag TypeDeclaration {
$$ = NEW_EXPR();
checkmem($$);
$$->constraints = $2;
@@ -1705,56 +1714,45 @@
UnionMark: '|' | TOK_UNION;
IntersectionMark: '^' | TOK_INTERSECTION;
+/* empty | Constraint */
optConstraints:
{ $$ = 0; }
- | Constraint {
- $$ = $1;
- }
- ;
+ | Constraint;
-Constraint:
- SubtypeConstraint
- ;
-
-SubtypeConstraint:
- SetOfConstraints {
- CONSTRAINT_INSERT($$, ACT_CA_SET, $1, 0);
- }
- | TOK_SIZE '(' ConstraintSpecs ')' {
- /*
- * This is a special case, for compatibility purposes.
- * It goes without parentheses.
- */
+/* empty | Constraint | SIZE(...) */
+optSizeConstraints:
+ { $$ = 0; }
+ | Constraint
+ | TOK_SIZE '(' ConstraintSpec ')' {
CONSTRAINT_INSERT($$, ACT_CT_SIZE, $3, 0);
}
;
+Constraint:
+ SetOfConstraints {
+ CONSTRAINT_INSERT($$, ACT_CA_SET, $1, 0);
+ }
+ ;
+
SetOfConstraints:
- '(' ConstraintSpecs ')' {
+ '(' ConstraintSpec ')' {
$$ = $2;
}
- | SetOfConstraints '(' ConstraintSpecs ')' {
+ | SetOfConstraints '(' ConstraintSpec ')' {
CONSTRAINT_INSERT($$, ACT_CA_SET, $1, $3);
}
;
-ConstraintSpecs:
- ElementSetSpecs {
- $$ = $1;
- }
- | GeneralConstraint {
- $$ = $1;
- }
- ;
+ConstraintSpec: SubtypeConstraint | GeneralConstraint;
+
+SubtypeConstraint: ElementSetSpecs;
ElementSetSpecs:
TOK_ThreeDots {
$$ = asn1p_constraint_new(yylineno, currentModule);
$$->type = ACT_EL_EXT;
}
- | ElementSetSpec {
- $$ = $1;
- }
+ | ElementSetSpec
| ElementSetSpec ',' TOK_ThreeDots {
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno, currentModule);
@@ -1801,7 +1799,7 @@
;
ConstraintSubtypeElement:
- ConstraintSpec '(' ElementSetSpecs ')' {
+ ConstraintType '(' ElementSetSpecs ')' {
int ret;
$$ = asn1p_constraint_new(yylineno, currentModule);
checkmem($$);
@@ -1861,12 +1859,8 @@
$$->range_start->type = ATV_MIN;
$$->range_stop->type = ATV_MAX;
}
- | InnerTypeConstraint {
- $$ = $1;
- }
- | PatternConstraint {
- $$ = $1;
- }
+ | InnerTypeConstraint
+ | PatternConstraint
| '{' { asn1p_lexer_hack_push_opaque_state(); } Opaque /* '}' */ {
$$ = asn1p_constraint_new(yylineno, currentModule);
checkmem($$);
@@ -1893,7 +1887,7 @@
}
;
-ConstraintSpec:
+ConstraintType:
TOK_SIZE {
$$ = ACT_CT_SIZE;
}
@@ -1943,62 +1937,66 @@
;
ContainedSubtype:
- ComplexTypeReference {
- $$ = asn1p_value_fromref($1, 0);
+ Type {
+ $$ = asn1p_value_fromtype($1);
checkmem($$);
- }
-/*
- TypeRefName {
- asn1p_ref_t *ref;
- int ret;
- ref = asn1p_ref_new(yylineno, currentModule);
- checkmem(ref);
- ret = asn1p_ref_add_component(ref, $1, RLT_UNKNOWN);
- checkmem(ret == 0);
- $$ = asn1p_value_fromref(ref, 0);
- checkmem($$);
- free($1);
- }
-*/
+ }
;
+/*
+ * X.680 08/2015
+ * #51.8.5
+ */
InnerTypeConstraint:
- TOK_WITH TOK_COMPONENT SetOfConstraints {
+ TOK_WITH TOK_COMPONENT SingleTypeConstraint {
CONSTRAINT_INSERT($$, ACT_CT_WCOMP, $3, 0);
}
- | TOK_WITH TOK_COMPONENTS '{' WithComponentsList '}' {
- CONSTRAINT_INSERT($$, ACT_CT_WCOMPS, $4, 0);
+ | TOK_WITH TOK_COMPONENTS MultipleTypeConstraints {
+ assert($3->type == ACT_CA_CSV);
+ $3->type = ACT_CT_WCOMPS;
+ $$ = $3;
}
;
-
-WithComponentsList:
- WithComponentsElement {
- $$ = $1;
- }
- | WithComponentsList ',' WithComponentsElement {
- CONSTRAINT_INSERT($$, ACT_CT_WCOMPS, $1, $3);
- }
- ;
-
-WithComponentsElement:
- TOK_ThreeDots {
+SingleTypeConstraint: Constraint;
+MultipleTypeConstraints: FullSpecification | PartialSpecification;
+FullSpecification: '{' TypeConstraints '}' { $$ = $2; };
+PartialSpecification:
+ '{' TOK_ThreeDots ',' TypeConstraints '}' {
+ assert($4->type == ACT_CA_CSV);
$$ = asn1p_constraint_new(yylineno, currentModule);
+ $$->type = ACT_CA_CSV;
+ asn1p_constraint_t *ct = asn1p_constraint_new(yylineno, currentModule);
checkmem($$);
- $$->type = ACT_EL_EXT;
- $$->value = asn1p_value_frombuf("...", 3, 1);
- }
- | Identifier optConstraints optPresenceConstraint {
- $$ = asn1p_constraint_new(yylineno, currentModule);
- checkmem($$);
- $$->type = ACT_EL_VALUE;
- $$->value = asn1p_value_frombuf($1, strlen($1), 0);
- $$->presence = $3;
- if($2) asn1p_constraint_insert($$, $2);
+ ct->type = ACT_EL_EXT;
+ asn1p_constraint_insert($$, ct);
+ for(unsigned i = 0; i < $4->el_count; i++) {
+ asn1p_constraint_insert($$, $4->elements[i]);
+ }
+ };
+TypeConstraints:
+ NamedConstraint {
+ $$ = asn1p_constraint_new(yylineno, currentModule);
+ $$->type = ACT_CA_CSV;
+ asn1p_constraint_insert($$, $1);
+ }
+ | TypeConstraints ',' NamedConstraint {
+ $$ = $1;
+ asn1p_constraint_insert($$, $3);
}
;
+NamedConstraint:
+ IdentifierAsValue optConstraints optPresenceConstraint {
+ $$ = asn1p_constraint_new(yylineno, currentModule);
+ checkmem($$);
+ $$->type = ACT_EL_VALUE;
+ $$->value = $1;
+ if($2) asn1p_constraint_insert($$, $2);
+ $$->presence = $3;
+ }
+ ;
/*
- * presence constraint for WithComponents
+ * presence constraint for NamedConstraint
*/
optPresenceConstraint:
{ $$ = ACPRES_DEFAULT; }
@@ -2361,6 +2359,17 @@
}
;
+IdentifierAsReference:
+ Identifier {
+ $$ = asn1p_ref_new(yylineno, currentModule);
+ asn1p_ref_add_component($$, $1, RLT_lowercase);
+ };
+
+IdentifierAsValue:
+ IdentifierAsReference {
+ $$ = asn1p_value_fromref($1, 0);
+ };
+
%%
@@ -2505,8 +2514,8 @@
extern char *asn1p_text;
fprintf(stderr,
"ASN.1 grammar parse error "
- "near line %d (token \"%s\"): %s\n",
- yylineno, asn1p_text, msg);
+ "near %s:%d (token \"%s\"): %s\n",
+ ASN_FILENAME, yylineno, asn1p_text, msg);
return -1;
}
diff --git a/libasn1parser/asn1parser.c b/libasn1parser/asn1parser.c
index 405c880..374f68e 100644
--- a/libasn1parser/asn1parser.c
+++ b/libasn1parser/asn1parser.c
@@ -38,7 +38,9 @@
if(size < 0)
size = (int)strlen(buffer);
+ asn1p_parse_debug_filename = "<stdin>";
ybuf = asn1p__scan_bytes(buffer, size);
+ asn1p_parse_debug_filename = NULL;
if(!ybuf) {
assert(ybuf);
return 0;
@@ -106,7 +108,9 @@
asn1p_restart(fp);
ap = (void *)&a;
+ asn1p_parse_debug_filename = filename;
ret = asn1p_parse(ap);
+ asn1p_parse_debug_filename = NULL;
fclose(fp);
diff --git a/libasn1parser/asn1parser.h b/libasn1parser/asn1parser.h
index 3388fa6..584a3dc 100644
--- a/libasn1parser/asn1parser.h
+++ b/libasn1parser/asn1parser.h
@@ -43,6 +43,8 @@
asn1p_t *asn1p_parse_buffer(const char *buffer, int size /* = -1 */,
enum asn1p_flags);
+extern const char *asn1p_parse_debug_filename;
+
int asn1p_lex_destroy();
#endif /* ASN1PARSER_H */