Commit e596bf05 authored by Lev Walkin's avatar Lev Walkin

WITH COMPONENT[S] pretty-printing

parent 8638f0d6
0.9.13: 2005-Mar-24
0.9.13: 2005-Mar-28
* Added extra const qualifiers into the support code.
* More RFC variations supported in crfc2asn1.pl.
......@@ -8,6 +8,7 @@
* Parsing support for CONSTRAINED BY. (Test case 79).
* Support for CharsDefn (Quadruple and Tuple, most used in
ASN1-CHARACTER-MODULE) (Test case 80).
* Pretty-printing support for WITH COMPONENT[S]. (Test case 82).
0.9.12: 2005-Mar-10
......
......@@ -206,7 +206,7 @@ typedef union {
#define YYFINAL 429
#define YYFINAL 431
#define YYFLAG -32768
#define YYNTBASE 118
......@@ -275,12 +275,12 @@ static const short yyprhs[] = { 0,
534, 539, 541, 545, 551, 553, 557, 561, 565, 569,
574, 578, 580, 582, 586, 590, 594, 598, 600, 602,
603, 609, 611, 614, 617, 621, 623, 625, 627, 629,
631, 633, 635, 637, 643, 645, 649, 651, 655, 656,
658, 660, 662, 664, 666, 668, 672, 677, 679, 683,
686, 690, 692, 696, 697, 699, 701, 704, 707, 711,
713, 717, 719, 724, 729, 731, 733, 735, 737, 738,
740, 743, 748, 749, 751, 753, 755, 756, 758, 760,
762, 764, 766, 767, 769
631, 633, 635, 637, 641, 647, 649, 653, 655, 659,
660, 662, 664, 666, 668, 670, 672, 676, 681, 683,
687, 690, 694, 696, 700, 701, 703, 705, 708, 711,
715, 717, 721, 723, 728, 733, 735, 737, 739, 741,
742, 744, 747, 752, 753, 755, 757, 759, 760, 762,
764, 766, 768, 770, 771, 773
};
static const short yyrhs[] = { 119,
......@@ -347,20 +347,21 @@ static const short yyrhs[] = { 119,
0, 0, 33, 27, 105, 191, 177, 0, 103, 0,
103, 114, 0, 114, 103, 0, 114, 103, 114, 0,
82, 0, 48, 0, 47, 0, 88, 0, 212, 0,
176, 0, 221, 0, 218, 0, 97, 32, 105, 197,
106, 0, 198, 0, 197, 110, 198, 0, 104, 0,
221, 185, 199, 0, 0, 200, 0, 75, 0, 17,
0, 71, 0, 202, 0, 203, 0, 105, 218, 106,
0, 202, 105, 204, 106, 0, 205, 0, 204, 110,
205, 0, 115, 206, 0, 115, 113, 206, 0, 221,
0, 206, 113, 221, 0, 0, 208, 0, 71, 0,
35, 173, 0, 105, 106, 0, 105, 210, 106, 0,
211, 0, 210, 110, 211, 0, 221, 0, 221, 107,
212, 108, 0, 221, 107, 175, 108, 0, 212, 0,
104, 0, 9, 0, 12, 0, 0, 214, 0, 215,
217, 0, 116, 216, 9, 117, 0, 0, 91, 0,
21, 0, 77, 0, 0, 54, 0, 43, 0, 13,
0, 14, 0, 14, 0, 0, 221, 0, 8, 0
176, 0, 221, 0, 218, 0, 97, 31, 187, 0,
97, 32, 105, 197, 106, 0, 198, 0, 197, 110,
198, 0, 104, 0, 221, 185, 199, 0, 0, 200,
0, 75, 0, 17, 0, 71, 0, 202, 0, 203,
0, 105, 218, 106, 0, 202, 105, 204, 106, 0,
205, 0, 204, 110, 205, 0, 115, 206, 0, 115,
113, 206, 0, 221, 0, 206, 113, 221, 0, 0,
208, 0, 71, 0, 35, 173, 0, 105, 106, 0,
105, 210, 106, 0, 211, 0, 210, 110, 211, 0,
221, 0, 221, 107, 212, 108, 0, 221, 107, 175,
108, 0, 212, 0, 104, 0, 9, 0, 12, 0,
0, 214, 0, 215, 217, 0, 116, 216, 9, 117,
0, 0, 91, 0, 21, 0, 77, 0, 0, 54,
0, 43, 0, 13, 0, 14, 0, 14, 0, 0,
221, 0, 8, 0
};
#endif
......@@ -389,12 +390,12 @@ static const short yyrline[] = { 0,
1564, 1569, 1573, 1579, 1589, 1593, 1596, 1599, 1602, 1607,
1616, 1624, 1630, 1636, 1643, 1651, 1659, 1668, 1671, 1674,
1675, 1685, 1687, 1688, 1689, 1692, 1696, 1701, 1707, 1712,
1715, 1718, 1731, 1745, 1751, 1755, 1760, 1766, 1778, 1780,
1783, 1787, 1790, 1795, 1799, 1807, 1822, 1828, 1835, 1848,
1860, 1875, 1879, 1896, 1901, 1904, 1909, 1931, 1936, 1941,
1947, 1953, 1961, 1969, 1977, 1984, 1994, 1999, 2029, 2031,
2034, 2041, 2047, 2049, 2050, 2051, 2054, 2056, 2057, 2060,
2065, 2072, 2079, 2081, 2085
1715, 1718, 1731, 1745, 1749, 1754, 1758, 1763, 1770, 1783,
1785, 1788, 1792, 1795, 1800, 1804, 1812, 1827, 1833, 1840,
1853, 1865, 1880, 1884, 1901, 1906, 1909, 1914, 1936, 1941,
1946, 1952, 1958, 1966, 1974, 1982, 1989, 1999, 2004, 2034,
2036, 2039, 2046, 2052, 2054, 2055, 2056, 2059, 2061, 2062,
2065, 2070, 2077, 2084, 2086, 2090
};
#endif
......@@ -438,12 +439,12 @@ static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ",
"BasicTypeId_UniverationCompatible","BasicType","BasicString","Union","Intersection",
"Except","optConstraints","Constraints","SetOfConstraints","ElementSetSpecs",
"ElementSetSpec","ConstraintSubtypeElement","@4","ConstraintRangeSpec","ConstraintSpec",
"SingleValue","ContainedSubtype","WithComponents","WithComponentsList","WithComponentsElement",
"optPresenceConstraint","PresenceConstraint","TableConstraint","SimpleTableConstraint",
"ComponentRelationConstraint","AtNotationList","AtNotationElement","ComponentIdList",
"optMarker","Marker","UniverationDefinition","UniverationList","UniverationElement",
"SignedNumber","optTag","Tag","TagTypeValue","TagClass","TagPlicit","TypeRefName",
"ObjectClassReference","optIdentifier","Identifier", NULL
"SingleValue","ContainedSubtype","InnerTypeConstraint","WithComponentsList",
"WithComponentsElement","optPresenceConstraint","PresenceConstraint","TableConstraint",
"SimpleTableConstraint","ComponentRelationConstraint","AtNotationList","AtNotationElement",
"ComponentIdList","optMarker","Marker","UniverationDefinition","UniverationList",
"UniverationElement","SignedNumber","optTag","Tag","TagTypeValue","TagClass",
"TagPlicit","TypeRefName","ObjectClassReference","optIdentifier","Identifier", NULL
};
#endif
......@@ -470,12 +471,12 @@ static const short yyr1[] = { 0,
187, 188, 188, 188, 189, 189, 189, 189, 189, 190,
190, 190, 190, 190, 190, 190, 190, 190, 190, 191,
190, 192, 192, 192, 192, 193, 193, 194, 194, 194,
194, 194, 195, 196, 197, 197, 198, 198, 199, 199,
200, 200, 200, 201, 201, 202, 203, 204, 204, 205,
205, 206, 206, 207, 207, 208, 208, 209, 209, 210,
210, 211, 211, 211, 211, 211, 212, 212, 213, 213,
214, 215, 216, 216, 216, 216, 217, 217, 217, 218,
218, 219, 220, 220, 221
194, 194, 195, 196, 196, 197, 197, 198, 198, 199,
199, 200, 200, 200, 201, 201, 202, 203, 204, 204,
205, 205, 206, 206, 207, 207, 208, 208, 209, 209,
210, 210, 211, 211, 211, 211, 211, 212, 212, 213,
213, 214, 215, 216, 216, 216, 216, 217, 217, 217,
218, 218, 219, 220, 220, 221
};
static const short yyr2[] = { 0,
......@@ -501,16 +502,16 @@ static const short yyr2[] = { 0,
4, 1, 3, 5, 1, 3, 3, 3, 3, 4,
3, 1, 1, 3, 3, 3, 3, 1, 1, 0,
5, 1, 2, 2, 3, 1, 1, 1, 1, 1,
1, 1, 1, 5, 1, 3, 1, 3, 0, 1,
1, 1, 1, 1, 1, 3, 4, 1, 3, 2,
3, 1, 3, 0, 1, 1, 2, 2, 3, 1,
3, 1, 4, 4, 1, 1, 1, 1, 0, 1,
2, 4, 0, 1, 1, 1, 0, 1, 1, 1,
1, 1, 0, 1, 1
1, 1, 1, 3, 5, 1, 3, 1, 3, 0,
1, 1, 1, 1, 1, 1, 3, 4, 1, 3,
2, 3, 1, 3, 0, 1, 1, 2, 2, 3,
1, 3, 1, 4, 4, 1, 1, 1, 1, 0,
1, 2, 4, 0, 1, 1, 1, 0, 1, 1,
1, 1, 1, 0, 1, 1
};
static const short yydefact[] = { 0,
270, 271, 1, 2, 5, 3, 0, 0, 6, 275,
271, 272, 1, 2, 5, 3, 0, 0, 6, 276,
13, 8, 0, 9, 11, 14, 7, 10, 0, 0,
0, 0, 0, 0, 0, 15, 16, 0, 22, 20,
18, 21, 19, 0, 17, 12, 23, 167, 0, 0,
......@@ -518,180 +519,181 @@ static const short yydefact[] = { 0,
176, 177, 178, 179, 0, 24, 25, 27, 28, 31,
29, 30, 34, 0, 0, 32, 0, 47, 0, 48,
50, 52, 36, 0, 37, 0, 40, 42, 44, 4,
26, 259, 118, 272, 0, 149, 0, 0, 163, 156,
26, 260, 118, 273, 0, 149, 0, 0, 163, 156,
160, 162, 150, 0, 0, 151, 155, 159, 0, 0,
54, 55, 152, 161, 122, 0, 33, 46, 45, 0,
0, 35, 38, 0, 0, 0, 0, 263, 64, 63,
0, 260, 267, 0, 164, 158, 157, 154, 153, 0,
0, 35, 38, 0, 0, 0, 0, 264, 64, 63,
0, 261, 268, 0, 164, 158, 157, 154, 153, 0,
66, 0, 68, 0, 0, 0, 49, 51, 5, 41,
43, 0, 265, 266, 264, 0, 118, 272, 113, 0,
43, 0, 266, 267, 265, 0, 118, 273, 113, 0,
0, 186, 186, 62, 186, 116, 165, 152, 107, 0,
269, 268, 261, 119, 121, 0, 0, 0, 0, 56,
128, 129, 123, 124, 126, 120, 137, 144, 138, 257,
145, 146, 258, 135, 134, 136, 132, 130, 141, 139,
140, 0, 142, 39, 0, 90, 259, 127, 0, 0,
270, 269, 262, 119, 121, 0, 0, 0, 0, 56,
128, 129, 123, 124, 126, 120, 137, 144, 138, 258,
145, 146, 259, 135, 134, 136, 132, 130, 141, 139,
140, 0, 142, 39, 0, 90, 260, 127, 0, 0,
0, 0, 0, 76, 0, 0, 187, 188, 76, 0,
106, 0, 166, 259, 259, 67, 71, 70, 69, 0,
106, 0, 166, 260, 260, 67, 71, 70, 69, 0,
0, 218, 217, 0, 216, 219, 0, 60, 0, 0,
0, 57, 58, 221, 61, 195, 0, 202, 203, 209,
208, 234, 235, 220, 223, 222, 0, 0, 0, 0,
95, 0, 0, 246, 88, 88, 92, 245, 0, 262,
0, 103, 0, 83, 86, 259, 117, 0, 0, 0,
77, 78, 82, 259, 0, 192, 273, 0, 0, 273,
256, 248, 0, 250, 255, 252, 0, 72, 74, 75,
65, 0, 0, 212, 0, 0, 0, 0, 0, 53,
0, 183, 184, 181, 182, 0, 0, 185, 0, 0,
0, 0, 125, 147, 133, 143, 131, 0, 87, 96,
91, 247, 89, 244, 244, 114, 0, 108, 0, 85,
0, 259, 109, 0, 244, 190, 0, 259, 274, 0,
110, 259, 249, 0, 0, 115, 259, 196, 210, 213,
214, 207, 205, 0, 236, 201, 59, 197, 198, 199,
0, 206, 204, 0, 0, 238, 148, 0, 93, 94,
104, 105, 142, 84, 189, 81, 79, 80, 193, 0,
191, 0, 251, 0, 0, 73, 0, 215, 227, 0,
225, 186, 200, 0, 240, 242, 237, 0, 97, 0,
111, 112, 254, 253, 211, 224, 0, 229, 241, 0,
239, 0, 194, 226, 232, 233, 231, 228, 230, 243,
101, 0, 99, 102, 98, 100, 0, 0, 0
208, 235, 236, 220, 223, 222, 0, 0, 0, 0,
95, 0, 0, 247, 88, 88, 92, 246, 0, 263,
0, 103, 0, 83, 86, 260, 117, 0, 0, 0,
77, 78, 82, 260, 0, 192, 274, 0, 0, 274,
257, 249, 0, 251, 256, 253, 0, 72, 74, 75,
65, 0, 0, 212, 0, 0, 0, 0, 0, 0,
53, 0, 183, 184, 181, 182, 0, 0, 185, 0,
0, 0, 0, 125, 147, 133, 143, 131, 0, 87,
96, 91, 248, 89, 245, 245, 114, 0, 108, 0,
85, 0, 260, 109, 0, 245, 190, 0, 260, 275,
0, 110, 260, 250, 0, 0, 115, 260, 196, 210,
213, 214, 207, 205, 224, 0, 237, 201, 59, 197,
198, 199, 0, 206, 204, 0, 0, 239, 148, 0,
93, 94, 104, 105, 142, 84, 189, 81, 79, 80,
193, 0, 191, 0, 252, 0, 0, 73, 0, 215,
228, 0, 226, 186, 200, 0, 241, 243, 238, 0,
97, 0, 111, 112, 255, 254, 211, 225, 0, 230,
242, 0, 240, 0, 194, 227, 233, 234, 232, 229,
231, 244, 101, 0, 99, 102, 98, 100, 0, 0,
0
};
static const short yydefgoto[] = { 427,
static const short yydefgoto[] = { 429,
3, 4, 8, 9, 13, 14, 25, 26, 27, 55,
56, 57, 107, 58, 74, 75, 76, 77, 59, 69,
70, 60, 100, 231, 232, 233, 61, 130, 131, 287,
288, 270, 271, 272, 263, 264, 119, 324, 195, 196,
319, 320, 412, 422, 423, 273, 289, 155, 156, 173,
174, 197, 198, 62, 188, 248, 189, 234, 315, 157,
103, 159, 104, 306, 307, 309, 206, 207, 208, 275,
276, 236, 387, 296, 237, 238, 239, 240, 390, 391,
418, 419, 241, 242, 243, 365, 366, 395, 257, 258,
288, 270, 271, 272, 263, 264, 119, 325, 195, 196,
320, 321, 414, 424, 425, 273, 289, 155, 156, 173,
174, 197, 198, 62, 188, 248, 189, 234, 316, 157,
103, 159, 104, 307, 308, 310, 206, 207, 208, 275,
276, 236, 389, 296, 237, 238, 239, 240, 392, 393,
420, 421, 241, 242, 243, 367, 368, 397, 257, 258,
213, 283, 284, 244, 259, 122, 123, 146, 163, 245,
105, 338, 246
105, 339, 246
};
static const short yypact[] = { 131,
-32768,-32768, 131,-32768, -60,-32768, 15, 25,-32768,-32768,
-32768,-32768, 27,-32768, -1, 141,-32768,-32768, 88, 79,
62, 71, 65, 89, 188, 141,-32768, 101,-32768,-32768,
-32768,-32768,-32768, 200,-32768,-32768, 517,-32768, 215, 38,
-32768,-32768,-32768, 61,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, 190, 517,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 355, 746,-32768, 146,-32768, 72,-32768,
152,-32768,-32768, 34,-32768, -10,-32768, 156,-32768,-32768,
-32768, -3, 158,-32768, 182,-32768, 189, 216,-32768,-32768,
-32768,-32768,-32768, 242, 213,-32768,-32768,-32768, 821, 294,
-32768,-32768,-32768,-32768, 185, 296,-32768,-32768,-32768, 145,
194,-32768,-32768, 131, 145, 196, 198, 5,-32768,-32768,
594,-32768, 64, 145,-32768,-32768,-32768,-32768,-32768, -66,
-32768, 193, 195, 202, 235, 159,-32768,-32768, -60,-32768,
-32768, 237,-32768,-32768,-32768, 299, -11, 204, 273, 206,
243, -27, -12,-32768, -6,-32768,-32768, 207,-32768, 209,
-32768,-32768,-32768,-32768,-32768, 302, 821, 309, 145, 268,
-32768,-32768, 205,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
static const short yypact[] = { 166,
-32768,-32768, 166,-32768, -69,-32768, 32, 14,-32768,-32768,
-32768,-32768, 60,-32768, -62, 132,-32768,-32768, 55, 42,
-13, 58, 65, 64, 125, 132,-32768, 96,-32768,-32768,
-32768,-32768,-32768, 135,-32768,-32768, 507,-32768, 158, 9,
-32768,-32768,-32768, 38,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, 122, 507,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 357, 736,-32768, 100,-32768, 80,-32768,
146,-32768,-32768, 34,-32768, -17,-32768, 147,-32768,-32768,
-32768, -4, 140,-32768, 178,-32768, 184, 159,-32768,-32768,
-32768,-32768,-32768, 215, 188,-32768,-32768,-32768, 811, 269,
-32768,-32768,-32768,-32768, 170, 282,-32768,-32768,-32768, 168,
180,-32768,-32768, 166, 168, 182, 186, 8,-32768,-32768,
584,-32768, 44, 168,-32768,-32768,-32768,-32768,-32768, -10,
-32768, 189, 191, 198, 225, 465,-32768,-32768, -69,-32768,
-32768, 204,-32768,-32768,-32768, 280, -8, 199, 256, 200,
238, -25, -24,-32768, -44,-32768,-32768, 205,-32768, 206,
-32768,-32768,-32768,-32768,-32768, 309, 811, 305, 168, 202,
-32768,-32768, 201,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768, 208, 212,-32768, -19,-32768, 6,-32768, 211, 292,
42, 254, 217, 7, 453, 255,-32768, 219, 7, 260,
-32768, 50,-32768, 12, 218,-32768,-32768,-32768,-32768, 234,
306,-32768,-32768, -4,-32768,-32768, 303,-32768, 131, 453,
230, 229,-32768,-32768, 184, 244, 238, -4,-32768,-32768,
-32768, 236,-32768,-32768,-32768,-32768, 237, 342, 309, 159,
251, 237, 159,-32768, 259, 259,-32768,-32768, 671,-32768,
309, 239, 83,-32768,-32768, 218,-32768, 453, 283, 246,
245,-32768,-32768, 218, 252, 126, 309, 453, 248, 309,
-32768,-32768, 102,-32768,-32768, 256, 110,-32768,-32768,-32768,
-32768, 465, 257, 250, 263, 168, 262, 253, 266,-32768,
268,-32768,-32768,-32768,-32768, 465, 465,-32768, 465, 453,
282, 261,-32768,-32768, 367,-32768,-32768, 293,-32768,-32768,
-32768,-32768,-32768, 8, 8,-32768, 225,-32768, 42,-32768,
270, 218,-32768, 7, 8,-32768, 278, 218,-32768, 276,
-32768, 218,-32768, 56, 225,-32768, 12,-32768,-32768,-32768,
271,-32768,-32768, 46,-32768,-32768,-32768,-32768,-32768,-32768,
280,-32768,-32768, 1, 111,-32768,-32768, 281,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 279, 671,
-32768, 671,-32768, 284, 286,-32768, 342,-32768,-32768, 134,
-32768, -6,-32768, 309, 277,-32768,-32768, 261,-32768, 453,
-32768,-32768,-32768,-32768, 367,-32768, 46, 17, 277, 309,
-32768, 183, 184,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768, 13,-32768,-32768,-32768,-32768, 391, 395,-32768
-32768, 207, 208,-32768, 50,-32768, 39,-32768, 209, 290,
12, 217, 211, 7, 268, 252,-32768, 218, 7, 254,
-32768, 53,-32768, 5, 213,-32768,-32768,-32768,-32768, 229,
303,-32768,-32768, -1,-32768,-32768, 216,-32768, 166, 268,
226, 224,-32768,-32768, 156, 237, 230, -1,-32768,-32768,
-32768, 231,-32768,-32768,-32768,-32768, 204, 336, 305, 465,
245, 204, 465,-32768, 253, 253,-32768,-32768, 661,-32768,
305, 233, 81,-32768,-32768, 213,-32768, 268, 276, 241,
242,-32768,-32768, 213, 243, 68, 305, 268, 247, 305,
-32768,-32768, 82,-32768,-32768, 248, 89,-32768,-32768,-32768,
-32768, 455, 249, 244, 258, 286, 250, 259, 257, 260,
-32768, 202,-32768,-32768,-32768,-32768, 455, 455,-32768, 455,
268, 448, 251,-32768,-32768, 363,-32768,-32768, 285,-32768,
-32768,-32768,-32768,-32768, 0, 0,-32768, 214,-32768, 12,
-32768, 264, 213,-32768, 7, 0,-32768, 272, 213,-32768,
270,-32768, 213,-32768, 67, 214,-32768, 5,-32768,-32768,
-32768, 263,-32768,-32768, 218, 19,-32768,-32768,-32768,-32768,
-32768,-32768, 271,-32768,-32768, 6, 119,-32768,-32768, 275,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
274, 661,-32768, 661,-32768, 278, 279,-32768, 336,-32768,
-32768, 127,-32768, -44,-32768, 305, 277,-32768,-32768, 251,
-32768, 268,-32768,-32768,-32768,-32768, 363,-32768, 19, 17,
277, 305,-32768, 149, 156,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 28,-32768,-32768,-32768,-32768, 388, 391,
-32768
};
static const short yypgoto[] = {-32768,
-32768, 396, 269,-32768,-32768, 389,-32768,-32768, 383,-32768,
-32768, 354,-32768,-32768,-32768, 337,-32768, 297,-32768,-32768,
304,-32768, 348,-32768,-32768, 116,-32768,-32768, 258,-32768,
80, 210,-32768, 84,-32768, 97,-32768, 172,-32768, 177,
-32768,-32768,-32768,-32768, 10, -187, -74, -192, -53,-32768,
191, -190, -122,-32768, -169,-32768, -256, -118, 43, -33,
-120,-32768, 48,-32768,-32768,-32768, -151,-32768,-32768, -205,
-165, -96,-32768, 197,-32768, -213,-32768,-32768,-32768, 29,
-32768,-32768,-32768,-32768,-32768,-32768, 39, 45, -121,-32768,
-32768,-32768, 99, -126, -79,-32768,-32768,-32768,-32768, 16,
-32768, 161, -7
-32768, 389, 255,-32768,-32768, 380,-32768,-32768, 370,-32768,
-32768, 341,-32768,-32768,-32768, 327,-32768, 289,-32768,-32768,
300,-32768, 346,-32768,-32768, 110,-32768,-32768, 246,-32768,
66, 210,-32768, 85,-32768, 86,-32768, 165,-32768, 163,
-32768,-32768,-32768,-32768, 3, -189, -73, -186, -54,-32768,
181, -190, -114,-32768, -47,-32768, -251, -118, 40, -40,
-120,-32768, 33,-32768,-32768,-32768, -150,-32768, 133, -164,
-166, -201,-32768, 193,-32768, -218,-32768,-32768,-32768, 23,
-32768,-32768,-32768,-32768,-32768,-32768, 37, 43, -152,-32768,
-32768,-32768, 93, -128, -80,-32768,-32768,-32768,-32768, 16,
-32768, 154, -7
};
#define YYLAST 917
#define YYLAST 907
static const short yytable[] = { 15,
158, 210, 121, 211, 235, 15, 256, 120, 10, 191,
101, 101, 175, 265, 10, 5, 421, 190, 5, 10,
171, 172, 10, 11, 299, 143, 117, 171, 172, 65,
102, 102, 72, 415, 10, 11, 79, 114, 269, 166,
253, 10, 253, 167, 7, 10, 1, 2, 65, 10,
1, 2, 64, 10, 203, 71, 67, 10, 180, 78,
16, 183, 331, 10, 180, 132, 79, 183, 10, 203,
371, 64, 340, 1, 2, 203, 254, 204, 254, 205,
317, 144, 353, 322, 63, 285, 251, 416, 384, 78,
252, 417, 209, -270, 205, 145, 28, 363, 294, 115,
205, 124, 72, 63, 361, 19, 161, 79, 73, 295,
262, -244, 118, 394, 133, -244, 165, 162, 425, 32,
12, 118, 255, 191, 175, 71, 191, 118, 193, 139,
78, 190, 17, 132, 190, 235, 160, 29, 158, 164,
291, 265, 112, 1, 2, 262, 68, 30, 267, 389,
176, 192, 10, 281, 20, 282, 31, 1, 2, 281,
217, 219, 21, 177, 178, 179, 10, 180, 181, 182,
183, 1, 2, 178, 33, 10, 180, 181, 182, 183,
109, 110, 133, 22, 218, 23, 421, 401, 328, 402,
34, 330, 329, 266, 24, 348, 274, 171, 172, 335,
372, 274, 369, 370, 286, 184, 290, 343, 36, 358,
359, 344, 360, 378, 222, 346, 397, 285, 385, 347,
398, 424, 37, 185, 302, 303, 304, 305, 66, 352,
80, 424, 10, 180, 413, 337, 183, 1, 2, 406,
408, 316, 193, 407, 298, 193, 186, 1, 2, 171,
172, 171, 172, 326, 108, 226, 111, 376, 380, 158,
116, 158, 382, 187, 125, 192, 83, 84, 192, 339,
124, 126, 339, 178, 160, 10, 180, 181, 182, 183,
1, 2, 302, 303, 304, 305, 220, 178, 127, 10,
180, 181, 182, 183, 128, 129, 134, 135, 136, 138,
221, 141, 142, 168, 215, 169, 170, 199, -271, 200,
201, 212, 202, 214, 222, 223, 10, 247, 261, 373,
249, 266, 250, 268, 277, 278, 274, 260, 222, 280,
224, 292, 293, 118, 297, 300, 286, 373, 301, 290,
312, 308, 192, 362, 310, 314, 392, 318, 323, 225,
327, 333, 332, 341, 334, 226, 396, 82, 355, 336,
192, 349, 345, 350, 227, 351, 354, 83, 84, 226,
367, 228, 229, 356, 230, 364, 368, 375, 85, 38,
86, 379, 87, 381, 388, 399, 396, 393, 400, 410,
428, 403, 88, 404, 429, 160, 89, 160, 6, 392,
90, 18, 420, 91, 41, 42, 43, 194, 35, 81,
113, 140, 106, 137, 92, 45, 357, 377, 279, 93,
46, 94, 47, 95, 216, 374, 386, 325, 321, 405,
48, 426, 96, 97, 311, 414, 411, 313, 409, 49,
342, 50, 383, 0, 0, 0, 51, 98, 52, 53,
54, 0, 0, 0, 0, 0, 0, 0, 178, 99,
10, 180, 181, 182, 183, 1, 2, 0, 0, 0,
178, 220, 10, 180, 181, 182, 183, 1, 2, 0,
0, 0, 0, 0, 0, 221, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 221, 0, 222,
223, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 222, 223, 0, 0, 224, 0, 0, 0, 0,
0, 0, 0, 0, 10, 0, 0, 224, 0, 1,
2, 0, 0, 0, 225, 0, 0, 0, 0, 0,
226, 38, 0, 0, 0, 0, 225, 0, 0, 227,
0, 0, 226, 0, 0, 0, 39, 229, 0, 230,
40, 227, 0, 0, 0, 0, 41, 42, 43, 229,
0, 230, 44, 0, 0, 0, 0, 45, 0, 0,
158, 121, 210, 235, 211, 15, 256, 191, 120, 101,
101, 265, 10, 10, 10, 5, 10, 190, 5, 10,
175, 1, 2, 102, 102, 117, 10, 67, 143, 65,
114, 423, 72, 417, 253, 7, 79, 203, 269, 10,
11, 10, 171, 172, 19, 10, 1, 2, 65, 16,
1, 2, 64, 171, 172, 71, 203, 203, 132, 78,
10, 180, 205, 28, 183, 300, 79, 10, 11, 63,
254, 64, 30, 253, 10, 180, 373, 354, 183, 204,
209, 205, 205, 285, 144, 73, 161, 418, 63, 78,
349, 419, 115, 365, 386, 166, -271, 162, 145, 167,
29, 294, 72, 332, 124, 360, 361, 79, 362, 254,
262, 118, 295, 341, 133, 262, 165, 68, 396, 32,
118, 191, 391, 255, 191, 71, 132, 34, 193, 139,
78, 190, 175, 427, 190, 235, 160, 12, 158, 164,
265, 291, 112, 31, -245, 20, 363, 267, -245, 33,
176, 192, 423, 21, 118, 251, 281, 37, 282, 252,
217, 219, 80, 171, 172, 17, 303, 304, 305, 306,
281, 66, 371, 372, 22, 10, 23, 338, 1, 2,
1, 2, 133, 380, 218, 24, 329, 344, 109, 110,
330, 345, 331, 266, 347, 403, 274, 404, 348, 374,
336, 274, 318, 36, 286, 323, 290, 178, 108, 10,
180, 181, 182, 183, 1, 2, 285, 387, 171, 172,
220, 10, 180, 426, 399, 183, 1, 2, 400, 83,
84, 127, 408, 426, 221, 415, 409, 1, 2, 171,
172, 317, 193, 410, 299, 193, 297, 298, 222, 223,
111, 116, 124, 327, 303, 304, 305, 306, 382, 378,
125, 158, 384, 158, 224, 192, 126, 128, 192, 340,
129, 134, 340, 178, 160, 10, 180, 181, 182, 183,
1, 2, 135, 225, 136, 138, 220, 141, 199, 226,
142, 178, 200, 10, 180, 181, 182, 183, 227, 168,
221, 169, 170, -272, 201, 228, 229, 202, 230, 212,
214, 215, 10, 247, 222, 223, 261, 268, 250, 249,
375, 277, 266, 280, 278, 260, 292, 274, 118, 293,
224, 301, 222, 302, 309, 313, 311, 286, 375, 315,
290, 319, 324, 192, 328, 333, 334, 353, 394, 225,
337, 335, 342, 350, 346, 226, 205, 351, 398, 82,
352, 192, 357, 356, 227, 366, 369, 358, 370, 83,
84, 377, 229, 226, 230, 381, 390, 383, 395, 401,
85, 38, 86, 402, 87, 405, 406, 430, 398, 412,
431, 6, 18, 194, 88, 35, 81, 160, 89, 160,
113, 394, 90, 140, 422, 91, 41, 42, 43, 137,
106, 359, 216, 388, 322, 376, 92, 45, 279, 379,
326, 93, 46, 94, 47, 95, 428, 314, 407, 355,
312, 416, 48, 343, 96, 97, 413, 385, 411, 0,
0, 49, 0, 50, 0, 0, 0, 0, 51, 98,
52, 53, 54, 178, 0, 10, 180, 181, 182, 183,
178, 99, 10, 180, 181, 182, 183, 1, 2, 177,
178, 179, 10, 180, 181, 182, 183, 1, 2, 0,
0, 0, 0, 0, 0, 0, 0, 221, 0, 0,
0, 0, 0, 0, 222, 0, 0, 0, 0, 0,
0, 222, 223, 0, 0, 0, 0, 0, 0, 364,
0, 184, 0, 0, 10, 0, 0, 224, 0, 1,
2, 0, 0, 0, 0, 0, 0, 0, 0, 185,
0, 38, 0, 0, 0, 226, 225, 0, 0, 0,
0, 0, 226, 0, 0, 0, 39, 0, 0, 0,
40, 227, 186, 0, 0, 0, 41, 42, 43, 229,
0, 230, 44, 0, 0, 0, 0, 45, 0, 187,
0, 0, 46, 0, 47, 0, 0, 0, 0, 0,
0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
0, 49, 0, 50, 0, 0, 147, 148, 51, 0,
......@@ -729,64 +731,63 @@ static const short yytable[] = { 15,
};
static const short yycheck[] = { 7,
121, 153, 82, 155, 170, 13, 197, 82, 8, 136,
64, 65, 135, 201, 8, 0, 4, 136, 3, 8,
15, 16, 8, 9, 230, 21, 30, 15, 16, 37,
64, 65, 40, 17, 8, 9, 44, 48, 32, 106,
35, 8, 35, 110, 105, 8, 13, 14, 56, 8,
13, 14, 37, 8, 82, 40, 19, 8, 9, 44,
36, 12, 268, 8, 9, 99, 74, 12, 8, 82,
327, 56, 278, 13, 14, 82, 71, 105, 71, 107,
250, 77, 296, 253, 37, 212, 106, 71, 345, 74,
110, 75, 105, 105, 107, 91, 9, 311, 103, 110,
107, 113, 110, 56, 310, 107, 43, 115, 48, 114,
104, 106, 116, 113, 99, 110, 124, 54, 106, 55,
106, 116, 197, 250, 247, 110, 253, 116, 136, 114,
115, 250, 106, 167, 253, 301, 121, 59, 259, 124,
215, 329, 109, 13, 14, 104, 109, 86, 202, 104,
135, 136, 8, 104, 14, 106, 86, 13, 14, 104,
168, 169, 22, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 6, 86, 8, 9, 10, 11, 12,
109, 110, 167, 43, 169, 45, 4, 380, 106, 382,
3, 266, 110, 201, 54, 292, 204, 15, 16, 274,
327, 209, 324, 325, 212, 47, 214, 106, 108, 306,
307, 110, 309, 335, 47, 106, 106, 344, 345, 110,
110, 412, 23, 65, 99, 100, 101, 102, 14, 62,
41, 422, 8, 9, 400, 110, 12, 13, 14, 106,
392, 249, 250, 110, 229, 253, 88, 13, 14, 15,
16, 15, 16, 261, 109, 88, 105, 332, 338, 380,
105, 382, 342, 105, 83, 250, 13, 14, 253, 277,
113, 83, 280, 6, 259, 8, 9, 10, 11, 12,
13, 14, 99, 100, 101, 102, 19, 6, 73, 8,
9, 10, 11, 12, 53, 83, 3, 113, 3, 106,
33, 106, 105, 111, 3, 111, 105, 9, 105, 37,
105, 105, 70, 105, 47, 48, 8, 113, 27, 327,
113, 329, 111, 107, 70, 107, 334, 117, 47, 70,
63, 98, 27, 116, 32, 106, 344, 345, 110, 347,
105, 98, 327, 62, 107, 4, 354, 97, 90, 82,
112, 106, 70, 106, 110, 88, 364, 3, 106, 108,
345, 105, 107, 114, 97, 103, 105, 13, 14, 88,
4, 104, 105, 108, 107, 115, 84, 108, 24, 25,
26, 104, 28, 108, 114, 105, 394, 108, 110, 113,
0, 108, 38, 108, 0, 380, 42, 382, 3, 407,
46, 13, 410, 49, 50, 51, 52, 139, 26, 56,
74, 115, 65, 110, 60, 61, 301, 334, 209, 65,
66, 67, 68, 69, 167, 329, 347, 256, 252, 387,
76, 422, 78, 79, 238, 407, 398, 247, 394, 85,
280, 87, 344, -1, -1, -1, 92, 93, 94, 95,
96, -1, -1, -1, -1, -1, -1, -1, 6, 105,
8, 9, 10, 11, 12, 13, 14, -1, -1, -1,
6, 19, 8, 9, 10, 11, 12, 13, 14, -1,
-1, -1, -1, -1, -1, 33, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 33, -1, 47,
48, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 47, 48, -1, -1, 63, -1, -1, -1, -1,
-1, -1, -1, -1, 8, -1, -1, 63, -1, 13,
14, -1, -1, -1, 82, -1, -1, -1, -1, -1,
88, 25, -1, -1, -1, -1, 82, -1, -1, 97,
-1, -1, 88, -1, -1, -1, 40, 105, -1, 107,
44, 97, -1, -1, -1, -1, 50, 51, 52, 105,
-1, 107, 56, -1, -1, -1, -1, 61, -1, -1,
121, 82, 153, 170, 155, 13, 197, 136, 82, 64,
65, 201, 8, 8, 8, 0, 8, 136, 3, 8,
135, 13, 14, 64, 65, 30, 8, 19, 21, 37,
48, 4, 40, 17, 35, 105, 44, 82, 32, 8,
9, 8, 15, 16, 107, 8, 13, 14, 56, 36,
13, 14, 37, 15, 16, 40, 82, 82, 99, 44,
8, 9, 107, 9, 12, 230, 74, 8, 9, 37,
71, 56, 86, 35, 8, 9, 328, 296, 12, 105,
105, 107, 107, 212, 77, 48, 43, 71, 56, 74,
292, 75, 110, 312, 346, 106, 105, 54, 91, 110,
59, 103, 110, 268, 113, 307, 308, 115, 310, 71,
104, 116, 114, 278, 99, 104, 124, 109, 113, 55,
116, 250, 104, 197, 253, 110, 167, 3, 136, 114,
115, 250, 247, 106, 253, 302, 121, 106, 259, 124,
330, 215, 109, 86, 106, 14, 311, 202, 110, 86,
135, 136, 4, 22, 116, 106, 104, 23, 106, 110,
168, 169, 41, 15, 16, 106, 99, 100, 101, 102,
104, 14, 325, 326, 43, 8, 45, 110, 13, 14,
13, 14, 167, 336, 169, 54, 106, 106, 109, 110,
110, 110, 266, 201, 106, 382, 204, 384, 110, 328,
274, 209, 250, 108, 212, 253, 214, 6, 109, 8,
9, 10, 11, 12, 13, 14, 345, 346, 15, 16,
19, 8, 9, 414, 106, 12, 13, 14, 110, 13,
14, 73, 106, 424, 33, 402, 110, 13, 14, 15,
16, 249, 250, 394, 229, 253, 31, 32, 47, 48,
105, 105, 113, 261, 99, 100, 101, 102, 339, 333,
83, 382, 343, 384, 63, 250, 83, 53, 253, 277,
83, 3, 280, 6, 259, 8, 9, 10, 11, 12,
13, 14, 113, 82, 3, 106, 19, 106, 9, 88,
105, 6, 37, 8, 9, 10, 11, 12, 97, 111,
33, 111, 105, 105, 105, 104, 105, 70, 107, 105,
105, 3, 8, 113, 47, 48, 27, 107, 111, 113,
328, 70, 330, 70, 107, 117, 98, 335, 116, 27,
63, 106, 47, 110, 98, 105, 107, 345, 346, 4,
348, 97, 90, 328, 112, 70, 106, 62, 356, 82,
108, 110, 106, 105, 107, 88, 107, 114, 366, 3,
103, 346, 106, 105, 97, 115, 4, 108, 84, 13,
14, 108, 105, 88, 107, 104, 114, 108, 108, 105,
24, 25, 26, 110, 28, 108, 108, 0, 396, 113,
0, 3, 13, 139, 38, 26, 56, 382, 42, 384,
74, 409, 46, 115, 412, 49, 50, 51, 52, 110,
65, 302, 167, 348, 252, 330, 60, 61, 209, 335,
256, 65, 66, 67, 68, 69, 424, 247, 389, 297,
238, 409, 76, 280, 78, 79, 400, 345, 396, -1,
-1, 85, -1, 87, -1, -1, -1, -1, 92, 93,
94, 95, 96, 6, -1, 8, 9, 10, 11, 12,
6, 105, 8, 9, 10, 11, 12, 13, 14, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, -1,
-1, -1, -1, -1, -1, -1, -1, 33, -1, -1,
-1, -1, -1, -1, 47, -1, -1, -1, -1, -1,
-1, 47, 48, -1, -1, -1, -1, -1, -1, 62,
-1, 47, -1, -1, 8, -1, -1, 63, -1, 13,
14, -1, -1, -1, -1, -1, -1, -1, -1, 65,
-1, 25, -1, -1, -1, 88, 82, -1, -1, -1,
-1, -1, 88, -1, -1, -1, 40, -1, -1, -1,
44, 97, 88, -1, -1, -1, 50, 51, 52, 105,
-1, 107, 56, -1, -1, -1, -1, 61, -1, 105,
-1, -1, 66, -1, 68, -1, -1, -1, -1, -1,
-1, -1, 76, -1, -1, -1, -1, -1, -1, -1,
-1, 85, -1, 87, -1, -1, 13, 14, 92, -1,
......@@ -3084,79 +3085,87 @@ case 223:
case 224:
#line 1746 "asn1p_y.y"
{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0);
;
break;}
case 225:
#line 1752 "asn1p_y.y"
#line 1749 "asn1p_y.y"
{
yyval.a_constr = yyvsp[0].a_constr;
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
;
break;}
case 226:
#line 1755 "asn1p_y.y"
{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
yyval.a_constr = yyvsp[0].a_constr;
;
break;}
case 227:
#line 1761 "asn1p_y.y"
#line 1758 "asn1p_y.y"
{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
;
break;}
case 228:
#line 1764 "asn1p_y.y"
{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_EXT;
yyval.a_constr->value = asn1p_value_frombuf("...", 3, 0);
;
break;}
case 228:
#line 1766 "asn1p_y.y"
case 229:
#line 1770 "asn1p_y.y"
{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_VALUE;
yyval.a_constr->value = asn1p_value_frombuf(yyvsp[-2].tv_str, strlen(yyvsp[-2].tv_str), 0);
yyval.a_constr->presence = yyvsp[0].a_pres;
if(yyvsp[-1].a_constr) asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr);
;
break;}
case 229:
#line 1779 "asn1p_y.y"
case 230:
#line 1784 "asn1p_y.y"
{ yyval.a_pres = ACPRES_DEFAULT; ;
break;}
case 230:
#line 1780 "asn1p_y.y"
case 231:
#line 1785 "asn1p_y.y"
{ yyval.a_pres = yyvsp[0].a_pres; ;
break;}
case 231:
#line 1784 "asn1p_y.y"
case 232:
#line 1789 "asn1p_y.y"
{
yyval.a_pres = ACPRES_PRESENT;
;
break;}
case 232:
#line 1787 "asn1p_y.y"
case 233:
#line 1792 "asn1p_y.y"
{
yyval.a_pres = ACPRES_ABSENT;
;
break;}
case 233:
#line 1790 "asn1p_y.y"
case 234:
#line 1795 "asn1p_y.y"
{
yyval.a_pres = ACPRES_OPTIONAL;
;
break;}
case 234:
#line 1796 "asn1p_y.y"
case 235:
#line 1801 "asn1p_y.y"
{
yyval.a_constr = yyvsp[0].a_constr;
;
break;}
case 235:
#line 1799 "asn1p_y.y"
case 236:
#line 1804 "asn1p_y.y"
{
yyval.a_constr = yyvsp[0].a_constr;
;
break;}
case 236:
#line 1808 "asn1p_y.y"
case 237:
#line 1813 "asn1p_y.y"
{
asn1p_ref_t *ref = asn1p_ref_new(yylineno);
asn1p_constraint_t *ct;
......@@ -3170,14 +3179,14 @@ case 236:
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, ct, 0);
;
break;}
case 237:
#line 1823 "asn1p_y.y"
case 238:
#line 1828 "asn1p_y.y"
{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
;
break;}
case 238:
#line 1829 "asn1p_y.y"
case 239:
#line 1834 "asn1p_y.y"
{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
......@@ -3185,8 +3194,8 @@ case 238:
yyval.a_constr->value = asn1p_value_fromref(yyvsp[0].a_ref, 0);
;
break;}
case 239:
#line 1835 "asn1p_y.y"
case 240:
#line 1840 "asn1p_y.y"
{
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
......@@ -3196,8 +3205,8 @@ case 239:
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
;
break;}
case 240:
#line 1849 "asn1p_y.y"
case 241:
#line 1854 "asn1p_y.y"
{
char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
int ret;
......@@ -3210,8 +3219,8 @@ case 240:
free(yyvsp[0].tv_str);
;
break;}
case 241:
#line 1860 "asn1p_y.y"
case 242:
#line 1865 "asn1p_y.y"
{
char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
int ret;
......@@ -3225,14 +3234,14 @@ case 241:
free(yyvsp[0].tv_str);
;
break;}
case 242:
#line 1876 "asn1p_y.y"
case 243:
#line 1881 "asn1p_y.y"
{
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
case 243:
#line 1879 "asn1p_y.y"
case 244:
#line 1884 "asn1p_y.y"
{
int l1 = strlen(yyvsp[-2].tv_str);
int l3 = strlen(yyvsp[0].tv_str);
......@@ -3243,61 +3252,61 @@ case 243:
yyval.tv_str[l1 + 1 + l3] = '\0';
;
break;}
case 244:
#line 1897 "asn1p_y.y"
case 245:
#line 1902 "asn1p_y.y"
{
yyval.a_marker.flags = EM_NOMARK;
yyval.a_marker.default_value = 0;
;
break;}
case 245:
#line 1901 "asn1p_y.y"
case 246:
#line 1906 "asn1p_y.y"
{ yyval.a_marker = yyvsp[0].a_marker; ;
break;}
case 246:
#line 1905 "asn1p_y.y"
case 247:
#line 1910 "asn1p_y.y"
{
yyval.a_marker.flags = EM_OPTIONAL;
yyval.a_marker.default_value = 0;
;
break;}
case 247:
#line 1909 "asn1p_y.y"
case 248:
#line 1914 "asn1p_y.y"
{
yyval.a_marker.flags = EM_DEFAULT;
yyval.a_marker.default_value = yyvsp[0].a_value;
;
break;}
case 248:
#line 1932 "asn1p_y.y"
case 249:
#line 1937 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
;
break;}
case 249:
#line 1936 "asn1p_y.y"
case 250:
#line 1941 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-1].a_expr;
;
break;}
case 250:
#line 1942 "asn1p_y.y"
case 251:
#line 1947 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
;
break;}
case 251:
#line 1947 "asn1p_y.y"
case 252:
#line 1952 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-2].a_expr;
asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
;
break;}
case 252:
#line 1954 "asn1p_y.y"
case 253:
#line 1959 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
......@@ -3306,8 +3315,8 @@ case 252:
yyval.a_expr->Identifier = yyvsp[0].tv_str;
;
break;}
case 253:
#line 1961 "asn1p_y.y"
case 254:
#line 1966 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
......@@ -3317,8 +3326,8 @@ case 253:
yyval.a_expr->value = yyvsp[-1].a_value;
;
break;}
case 254:
#line 1969 "asn1p_y.y"
case 255:
#line 1974 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
......@@ -3328,8 +3337,8 @@ case 254:
yyval.a_expr->value = yyvsp[-1].a_value;
;
break;}
case 255:
#line 1977 "asn1p_y.y"
case 256:
#line 1982 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
......@@ -3338,8 +3347,8 @@ case 255:
yyval.a_expr->value = yyvsp[0].a_value;
;
break;}
case 256:
#line 1984 "asn1p_y.y"
case 257:
#line 1989 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
......@@ -3349,103 +3358,103 @@ case 256:
yyval.a_expr->meta_type = AMT_VALUE;
;
break;}
case 257:
#line 1995 "asn1p_y.y"
case 258:
#line 2000 "asn1p_y.y"
{
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value);
;
break;}
case 258:
#line 1999 "asn1p_y.y"
case 259:
#line 2004 "asn1p_y.y"
{
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value);
;
break;}
case 259:
#line 2030 "asn1p_y.y"
case 260:
#line 2035 "asn1p_y.y"
{ memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
break;}
case 260:
#line 2031 "asn1p_y.y"
case 261:
#line 2036 "asn1p_y.y"
{ yyval.a_tag = yyvsp[0].a_tag; ;
break;}
case 261:
#line 2035 "asn1p_y.y"
case 262:
#line 2040 "asn1p_y.y"
{
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode;
;
break;}
case 262:
#line 2042 "asn1p_y.y"
case 263:
#line 2047 "asn1p_y.y"
{
yyval.a_tag = yyvsp[-2].a_tag;
yyval.a_tag.tag_value = yyvsp[-1].a_int;
;
break;}
case 263:
#line 2048 "asn1p_y.y"
case 264:
#line 2053 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ;
break;}
case 264:
#line 2049 "asn1p_y.y"
case 265:
#line 2054 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_UNIVERSAL; ;
break;}
case 265:
#line 2050 "asn1p_y.y"
case 266:
#line 2055 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_APPLICATION; ;
break;}
case 266:
#line 2051 "asn1p_y.y"
case 267:
#line 2056 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_PRIVATE; ;
break;}
case 267:
#line 2055 "asn1p_y.y"
case 268:
#line 2060 "asn1p_y.y"
{ yyval.a_tag.tag_mode = TM_DEFAULT; ;
break;}
case 268:
#line 2056 "asn1p_y.y"
case 269:
#line 2061 "asn1p_y.y"
{ yyval.a_tag.tag_mode = TM_IMPLICIT; ;
break;}
case 269:
#line 2057 "asn1p_y.y"
case 270:
#line 2062 "asn1p_y.y"
{ yyval.a_tag.tag_mode = TM_EXPLICIT; ;
break;}
case 270:
#line 2061 "asn1p_y.y"
case 271:
#line 2066 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
case 271:
#line 2065 "asn1p_y.y"
case 272:
#line 2070 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
case 272:
#line 2073 "asn1p_y.y"
case 273:
#line 2078 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
case 273:
#line 2080 "asn1p_y.y"
case 274:
#line 2085 "asn1p_y.y"
{ yyval.tv_str = 0; ;
break;}
case 274:
#line 2081 "asn1p_y.y"
case 275:
#line 2086 "asn1p_y.y"
{
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
case 275:
#line 2086 "asn1p_y.y"
case 276:
#line 2091 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
......@@ -3673,7 +3682,7 @@ yyerrhandle:
}
return 1;
}
#line 2092 "asn1p_y.y"
#line 2097 "asn1p_y.y"
......
......@@ -278,7 +278,7 @@ static asn1p_value_t *
%type <a_constr> ConstraintSubtypeElement /* 1..2 */
%type <a_constr> SimpleTableConstraint
%type <a_constr> TableConstraint
%type <a_constr> WithComponents
%type <a_constr> InnerTypeConstraint
%type <a_constr> WithComponentsList
%type <a_constr> WithComponentsElement
%type <a_constr> ComponentRelationConstraint
......@@ -1668,7 +1668,7 @@ ConstraintSubtypeElement:
| TableConstraint {
$$ = $1;
}
| WithComponents {
| InnerTypeConstraint {
$$ = $1;
}
| TOK_CONSTRAINED TOK_BY '{'
......@@ -1742,8 +1742,11 @@ ContainedSubtype:
}
;
WithComponents:
TOK_WITH TOK_COMPONENTS '{' WithComponentsList '}' {
InnerTypeConstraint:
TOK_WITH TOK_COMPONENT SetOfConstraints {
CONSTRAINT_INSERT($$, ACT_CT_WCOMP, $3, 0);
}
| TOK_WITH TOK_COMPONENTS '{' WithComponentsList '}' {
CONSTRAINT_INSERT($$, ACT_CT_WCOMPS, $4, 0);
}
;
......@@ -1762,6 +1765,7 @@ WithComponentsElement:
$$ = asn1p_constraint_new(yylineno);
checkmem($$);
$$->type = ACT_EL_EXT;
$$->value = asn1p_value_frombuf("...", 3, 0);
}
| Identifier optConstraints optPresenceConstraint {
$$ = asn1p_constraint_new(yylineno);
......@@ -1769,6 +1773,7 @@ WithComponentsElement:
$$->type = ACT_EL_VALUE;
$$->value = asn1p_value_frombuf($1, strlen($1), 0);
$$->presence = $3;
if($2) asn1p_constraint_insert($$, $2);
}
;
......
......@@ -333,10 +333,36 @@ asn1print_constraint(asn1p_constraint_t *ct, enum asn1print_flags flags) {
printf(")");
break;
case ACT_CT_WCOMP:
printf("WITH COMPONENT ???");
assert(ct->el_count != 0);
assert(ct->el_count == 1);
printf("WITH COMPONENT (");
asn1print_constraint(ct->elements[0], flags);
printf(")");
break;
case ACT_CT_WCOMPS:
printf("WITH COMPONENTS { ??? }");
case ACT_CT_WCOMPS: {
unsigned int i;
printf("WITH COMPONENTS { ");
for(i = 0; i < ct->el_count; i++) {
asn1p_constraint_t *cel = ct->elements[i];
if(i) printf(", ");
fwrite(cel->value->value.string.buf,
1, cel->value->value.string.size,
stdout);
if(cel->el_count) {
assert(cel->el_count == 1);
printf(" ");
asn1print_constraint(cel->elements[0],
flags);
}
switch(cel->presence) {
case ACPRES_DEFAULT: break;
case ACPRES_PRESENT: printf(" PRESENT"); break;
case ACPRES_ABSENT: printf(" ABSENT"); break;
case ACPRES_OPTIONAL: printf(" OPTIONAL");break;
}
}
printf(" }");
}
break;
case ACT_CT_CTDBY:
printf("CONSTRAINED BY ");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment