ignoring spaces within tags

git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@613 59561ff5-6e30-0410-9f3c-9617f08c8826
This commit is contained in:
vlm 2005-01-23 09:51:44 +00:00
parent 7b9b508374
commit 2728a8d537
6 changed files with 1868 additions and 1973 deletions

View File

@ -447,9 +447,9 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-rm -f asn1p_l.c
-rm -f asn1p_y.h
-rm -f asn1p_y.c
-rm -f asn1p_y.h
-rm -f asn1p_l.c
clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,7 @@ int asn1p_lexer_pedantic_1990 = 0;
int asn1p_lexer_types_year = 0;
int asn1p_lexer_constructs_year = 0;
static int _check_dashes(char *ptr);
static asn1_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
/*
* Check that the type is defined in the year of the standard choosen.
@ -240,50 +240,6 @@ WSP [\t\r\v\f\n ]
return TOK_number;
}
/*
* Tags
*/
\[(UNIVERSAL[ \t\r\v\f\n]+|APPLICATION[ \t\r\v\f\n]+|PRIVATE[ \t\r\v\f\n]+)?[0-9]+\] {
char *p;
memset(&asn1p_lval.a_tag, 0, sizeof(asn1p_lval.a_tag));
switch(yytext[1]) {
case 'U':
asn1p_lval.a_tag.tag_class = TC_UNIVERSAL;
p = yytext + sizeof("UNIVERSAL") + 1;
break;
case 'A':
asn1p_lval.a_tag.tag_class = TC_APPLICATION;
p = yytext + sizeof("APPLICATION") + 1;
break;
case 'P':
asn1p_lval.a_tag.tag_class = TC_PRIVATE;
p = yytext + sizeof("PRIVATE") + 1;
break;
default:
assert(yytext[1] >= '0' && yytext[1] <= '9');
asn1p_lval.a_tag.tag_class = TC_CONTEXT_SPECIFIC;
p = yytext + 1;
break;
}
asn1p_lval.a_tag.tag_value = asn1p_atoi(p);
if(*p == '0' && asn1p_lval.a_tag.tag_value) {
fprintf(stderr,
"Tag value at line %d "
"cannot start with zero "
"and have multiple digits: \"%s\"\n",
yylineno, yytext);
return -1;
}
return TOK_tag;
}
\[[A-Z]+[ \t\r\v\f\n]+[0-9]+\] {
fprintf(stderr,
"Unsupported tag syntax at line %d: \"%s\"\n",
yylineno, yytext);
return -1;
}
ABSENT return TOK_ABSENT;
/*
ABSTRACT-SYNTAX return TOK_ABSTRACT_SYNTAX;
@ -443,10 +399,10 @@ WITH return TOK_WITH;
"..." return TOK_ThreeDots;
".." return TOK_TwoDots;
[(){},;:|!.&@\[\]] return yytext[0];
{WSP}+ /* Ignore whitespace */
[(){},;:|!.&@\[\]] return yytext[0];
[^A-Za-z0-9:=,{}<.@()[]'\"|&^*;!-] {
if(TYPE_LIFETIME(1994, 0))
fprintf(stderr, "ERROR: ");
@ -550,9 +506,9 @@ _check_dashes(char *ptr) {
return 0;
}
static asn1_integer_t
static asn1c_integer_t
asn1p_atoi(char *ptr) {
asn1_integer_t value;
asn1c_integer_t value;
errno = 0; /* Clear the error code */
if(sizeof(value) <= sizeof(int)) {

View File

@ -109,7 +109,6 @@
#define TOK_UNION 352
#define TOK_TwoDots 353
#define TOK_ThreeDots 354
#define TOK_tag 355
#line 1 "asn1p_y.y"
@ -205,26 +204,26 @@ typedef union {
#define YYFINAL 407
#define YYFINAL 415
#define YYFLAG -32768
#define YYNTBASE 115
#define YYNTBASE 116
#define YYTRANSLATE(x) ((unsigned)(x) <= 355 ? yytranslate[x] : 213)
#define YYTRANSLATE(x) ((unsigned)(x) <= 354 ? yytranslate[x] : 217)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 111, 2, 2, 2, 2, 2, 2, 106,
107, 2, 2, 109, 2, 112, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 110, 108, 113,
2, 2, 2, 114, 2, 2, 2, 2, 2, 2,
2, 2, 110, 2, 2, 2, 2, 2, 2, 105,
106, 2, 2, 108, 2, 111, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 109, 107, 112,
2, 2, 2, 113, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 97, 2, 2, 2, 2, 2, 2,
114, 2, 115, 97, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 104, 99, 105, 2, 2, 2, 2, 2,
2, 2, 103, 99, 104, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@ -247,7 +246,7 @@ static const char yytranslate[] = { 0,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
98, 100, 101, 102, 103
98, 100, 101, 102
};
#if YYDEBUG != 0
@ -277,84 +276,86 @@ static const short yyprhs[] = { 0,
631, 633, 635, 637, 639, 641, 643, 647, 652, 654,
658, 661, 665, 667, 671, 672, 674, 676, 679, 682,
686, 688, 692, 694, 699, 704, 706, 708, 710, 712,
713, 715, 717, 720, 723, 725, 727, 729, 730, 732
713, 715, 718, 723, 724, 726, 728, 730, 731, 733,
735, 737, 739, 741, 742, 744
};
static const short yyrhs[] = { 116,
0, 117, 0, 116, 117, 0, 209, 118, 34, 122,
3, 21, 125, 39, 0, 0, 119, 0, 104, 120,
105, 0, 104, 105, 0, 121, 0, 120, 121, 0,
212, 0, 212, 106, 9, 107, 0, 9, 0, 0,
123, 0, 124, 0, 123, 124, 0, 41, 84, 0,
static const short yyrhs[] = { 117,
0, 118, 0, 117, 118, 0, 213, 119, 34, 123,
3, 21, 126, 39, 0, 0, 120, 0, 103, 121,
104, 0, 103, 104, 0, 122, 0, 121, 122, 0,
216, 0, 216, 105, 9, 106, 0, 9, 0, 0,
124, 0, 125, 0, 124, 125, 0, 41, 84, 0,
52, 84, 0, 20, 84, 0, 43, 53, 0, 12,
57, 0, 0, 126, 0, 127, 0, 126, 127, 0,
129, 0, 134, 0, 142, 0, 169, 0, 137, 0,
0, 38, 12, 128, 0, 177, 0, 54, 130, 108,
0, 54, 46, 0, 131, 0, 130, 131, 0, 132,
46, 209, 118, 0, 133, 0, 132, 109, 133, 0,
209, 0, 209, 104, 105, 0, 212, 0, 42, 135,
108, 0, 42, 17, 108, 0, 42, 108, 0, 136,
0, 135, 109, 136, 0, 209, 0, 209, 104, 105,
0, 212, 0, 209, 138, 3, 104, 139, 105, 0,
164, 0, 174, 0, 0, 140, 0, 141, 0, 140,
109, 141, 0, 102, 0, 185, 0, 209, 3, 207,
87, 0, 209, 3, 162, 0, 209, 3, 152, 0,
209, 104, 143, 105, 3, 162, 0, 144, 0, 143,
109, 144, 0, 209, 0, 209, 110, 212, 0, 174,
110, 212, 0, 146, 0, 145, 109, 146, 0, 162,
0, 212, 0, 0, 148, 0, 149, 0, 148, 109,
149, 0, 212, 162, 201, 0, 30, 68, 162, 0,
161, 0, 151, 0, 150, 109, 151, 0, 212, 162,
0, 161, 0, 28, 104, 154, 105, 156, 0, 0,
88, 0, 155, 0, 154, 109, 155, 0, 167, 201,
0, 167, 162, 153, 201, 0, 167, 167, 153, 201,
0, 0, 157, 0, 0, 95, 82, 104, 158, 159,
105, 0, 160, 0, 159, 160, 0, 4, 0, 167,
0, 102, 0, 102, 111, 172, 0, 102, 111, 206,
0, 207, 163, 181, 0, 176, 0, 177, 0, 27,
104, 150, 105, 0, 78, 104, 147, 105, 0, 79,
104, 147, 105, 0, 78, 181, 68, 211, 207, 163,
0, 79, 181, 68, 211, 207, 163, 0, 18, 0,
18, 35, 25, 212, 0, 209, 104, 145, 105, 0,
164, 0, 56, 68, 164, 0, 11, 0, 11, 112,
209, 0, 210, 112, 209, 0, 11, 112, 212, 0,
210, 0, 210, 112, 165, 0, 166, 0, 165, 112,
166, 0, 168, 0, 168, 0, 13, 0, 14, 0,
212, 138, 3, 170, 0, 212, 110, 170, 0, 0,
104, 171, 173, 0, 63, 0, 45, 0, 86, 0,
5, 0, 7, 0, 6, 0, 206, 0, 172, 0,
212, 0, 209, 112, 212, 0, 4, 0, 173, 4,
0, 24, 0, 63, 0, 76, 0, 175, 0, 67,
57, 0, 0, 127, 0, 128, 0, 127, 128, 0,
130, 0, 135, 0, 143, 0, 170, 0, 138, 0,
0, 38, 12, 129, 0, 178, 0, 54, 131, 107,
0, 54, 46, 0, 132, 0, 131, 132, 0, 133,
46, 213, 119, 0, 134, 0, 133, 108, 134, 0,
213, 0, 213, 103, 104, 0, 216, 0, 42, 136,
107, 0, 42, 17, 107, 0, 42, 107, 0, 137,
0, 136, 108, 137, 0, 213, 0, 213, 103, 104,
0, 216, 0, 213, 139, 3, 103, 140, 104, 0,
165, 0, 175, 0, 0, 141, 0, 142, 0, 141,
108, 142, 0, 102, 0, 186, 0, 213, 3, 208,
87, 0, 213, 3, 163, 0, 213, 3, 153, 0,
213, 103, 144, 104, 3, 163, 0, 145, 0, 144,
108, 145, 0, 213, 0, 213, 109, 216, 0, 175,
109, 216, 0, 147, 0, 146, 108, 147, 0, 163,
0, 216, 0, 0, 149, 0, 150, 0, 149, 108,
150, 0, 216, 163, 202, 0, 30, 68, 163, 0,
162, 0, 152, 0, 151, 108, 152, 0, 216, 163,
0, 162, 0, 28, 103, 155, 104, 157, 0, 0,
88, 0, 156, 0, 155, 108, 156, 0, 168, 202,
0, 168, 163, 154, 202, 0, 168, 168, 154, 202,
0, 0, 158, 0, 0, 95, 82, 103, 159, 160,
104, 0, 161, 0, 160, 161, 0, 4, 0, 168,
0, 102, 0, 102, 110, 173, 0, 102, 110, 207,
0, 208, 164, 182, 0, 177, 0, 178, 0, 27,
103, 151, 104, 0, 78, 103, 148, 104, 0, 79,
103, 148, 104, 0, 78, 182, 68, 215, 208, 164,
0, 79, 182, 68, 215, 208, 164, 0, 18, 0,
18, 35, 25, 216, 0, 213, 103, 146, 104, 0,
165, 0, 56, 68, 165, 0, 11, 0, 11, 111,
213, 0, 214, 111, 213, 0, 11, 111, 216, 0,
214, 0, 214, 111, 166, 0, 167, 0, 166, 111,
167, 0, 169, 0, 169, 0, 13, 0, 14, 0,
216, 139, 3, 171, 0, 216, 109, 171, 0, 0,
103, 172, 174, 0, 63, 0, 45, 0, 86, 0,
5, 0, 7, 0, 6, 0, 207, 0, 173, 0,
216, 0, 213, 111, 216, 0, 4, 0, 174, 4,
0, 24, 0, 63, 0, 76, 0, 176, 0, 67,
81, 0, 65, 51, 0, 77, 0, 44, 0, 36,
71, 0, 26, 81, 0, 91, 0, 47, 0, 58,
0, 40, 0, 22, 81, 0, 174, 0, 175, 203,
0, 40, 0, 22, 81, 0, 175, 0, 176, 204,
0, 23, 0, 48, 0, 49, 0, 50, 0, 59,
0, 64, 0, 74, 0, 83, 0, 85, 0, 90,
0, 92, 0, 93, 0, 94, 0, 66, 0, 99,
0, 100, 0, 97, 0, 98, 0, 96, 0, 0,
182, 0, 183, 0, 80, 106, 184, 107, 0, 106,
184, 107, 0, 183, 106, 184, 107, 0, 185, 0,
185, 109, 102, 0, 185, 109, 102, 109, 185, 0,
186, 0, 185, 178, 186, 0, 185, 179, 186, 0,
186, 180, 186, 0, 188, 106, 184, 107, 0, 106,
184, 107, 0, 189, 0, 189, 187, 189, 0, 61,
187, 189, 0, 189, 187, 60, 0, 61, 187, 60,
0, 195, 0, 190, 0, 101, 0, 101, 113, 0,
113, 101, 0, 113, 101, 113, 0, 80, 0, 46,
0, 206, 0, 212, 0, 6, 0, 45, 0, 86,
0, 95, 30, 104, 191, 105, 0, 192, 0, 191,
109, 192, 0, 102, 0, 212, 181, 193, 0, 0,
194, 0, 73, 0, 15, 0, 69, 0, 196, 0,
197, 0, 104, 209, 105, 0, 196, 104, 198, 105,
0, 199, 0, 198, 109, 199, 0, 114, 200, 0,
114, 112, 200, 0, 212, 0, 200, 112, 212, 0,
0, 202, 0, 69, 0, 33, 170, 0, 104, 105,
0, 104, 204, 105, 0, 205, 0, 204, 109, 205,
0, 212, 0, 212, 106, 206, 107, 0, 212, 106,
172, 107, 0, 206, 0, 102, 0, 9, 0, 10,
0, 0, 208, 0, 103, 0, 103, 52, 0, 103,
41, 0, 11, 0, 12, 0, 12, 0, 0, 212,
0, 8, 0
183, 0, 184, 0, 80, 105, 185, 106, 0, 105,
185, 106, 0, 184, 105, 185, 106, 0, 186, 0,
186, 108, 102, 0, 186, 108, 102, 108, 186, 0,
187, 0, 186, 179, 187, 0, 186, 180, 187, 0,
187, 181, 187, 0, 189, 105, 185, 106, 0, 105,
185, 106, 0, 190, 0, 190, 188, 190, 0, 61,
188, 190, 0, 190, 188, 60, 0, 61, 188, 60,
0, 196, 0, 191, 0, 101, 0, 101, 112, 0,
112, 101, 0, 112, 101, 112, 0, 80, 0, 46,
0, 207, 0, 216, 0, 6, 0, 45, 0, 86,
0, 95, 30, 103, 192, 104, 0, 193, 0, 192,
108, 193, 0, 102, 0, 216, 182, 194, 0, 0,
195, 0, 73, 0, 15, 0, 69, 0, 197, 0,
198, 0, 103, 213, 104, 0, 197, 103, 199, 104,
0, 200, 0, 199, 108, 200, 0, 113, 201, 0,
113, 111, 201, 0, 216, 0, 201, 111, 216, 0,
0, 203, 0, 69, 0, 33, 171, 0, 103, 104,
0, 103, 205, 104, 0, 206, 0, 205, 108, 206,
0, 216, 0, 216, 105, 207, 106, 0, 216, 105,
173, 106, 0, 207, 0, 102, 0, 9, 0, 10,
0, 0, 209, 0, 210, 212, 0, 114, 211, 9,
115, 0, 0, 89, 0, 19, 0, 75, 0, 0,
52, 0, 41, 0, 11, 0, 12, 0, 12, 0,
0, 216, 0, 8, 0
};
#endif
@ -386,7 +387,8 @@ static const short yyrline[] = { 0,
1690, 1693, 1697, 1700, 1705, 1709, 1717, 1732, 1738, 1745,
1758, 1770, 1785, 1789, 1806, 1811, 1814, 1819, 1841, 1846,
1851, 1857, 1863, 1871, 1879, 1887, 1894, 1904, 1909, 1939,
1941, 1944, 1949, 1953, 1959, 1964, 1971, 1978, 1980, 1984
1941, 1944, 1951, 1957, 1959, 1960, 1961, 1964, 1966, 1967,
1970, 1975, 1982, 1989, 1991, 1995
};
#endif
@ -412,7 +414,7 @@ static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ",
"TOK_TRUE","TOK_TYPE_IDENTIFIER","TOK_UNIQUE","TOK_UNIVERSAL","TOK_UniversalString",
"TOK_UTCTime","TOK_UTF8String","TOK_VideotexString","TOK_VisibleString","TOK_WITH",
"TOK_EXCEPT","'^'","TOK_INTERSECTION","'|'","TOK_UNION","TOK_TwoDots","TOK_ThreeDots",
"TOK_tag","'{'","'}'","'('","')'","';'","','","':'","'!'","'.'","'<'","'@'",
"'{'","'}'","'('","')'","';'","','","':'","'!'","'.'","'<'","'@'","'['","']'",
"ParsedGrammar","ModuleList","ModuleSpecification","optObjectIdentifier","ObjectIdentifier",
"ObjectIdentifierBody","ObjectIdentifierElement","optModuleSpecificationFlags",
"ModuleSpecificationFlags","ModuleSpecificationFlag","optModuleSpecificationBody",
@ -433,38 +435,39 @@ static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ",
"WithComponentsElement","optPresenceConstraint","PresenceConstraint","TableConstraint",
"SimpleTableConstraint","ComponentRelationConstraint","AtNotationList","AtNotationElement",
"ComponentIdList","optMarker","Marker","UniverationDefinition","UniverationList",
"UniverationElement","SignedNumber","optTag","Tag","TypeRefName","ObjectClassReference",
"optIdentifier","Identifier", NULL
"UniverationElement","SignedNumber","optTag","Tag","TagTypeValue","TagClass",
"TagPlicit","TypeRefName","ObjectClassReference","optIdentifier","Identifier", NULL
};
#endif
static const short yyr1[] = { 0,
115, 116, 116, 117, 118, 118, 119, 119, 120, 120,
121, 121, 121, 122, 122, 123, 123, 124, 124, 124,
124, 124, 125, 125, 126, 126, 127, 127, 127, 127,
127, 128, 127, 127, 129, 129, 130, 130, 131, 132,
132, 133, 133, 133, 134, 134, 134, 135, 135, 136,
136, 136, 137, 138, 138, 139, 139, 140, 140, 141,
141, 142, 142, 142, 142, 143, 143, 144, 144, 144,
145, 145, 146, 146, 147, 147, 148, 148, 149, 149,
149, 150, 150, 151, 151, 152, 153, 153, 154, 154,
155, 155, 155, 156, 156, 158, 157, 159, 159, 160,
160, 161, 161, 161, 162, 163, 163, 163, 163, 163,
163, 163, 163, 163, 163, 163, 163, 164, 164, 164,
164, 164, 164, 165, 165, 166, 167, 168, 168, 169,
170, 171, 170, 170, 170, 170, 170, 170, 170, 170,
170, 172, 172, 173, 173, 174, 174, 174, 174, 174,
174, 174, 174, 174, 174, 174, 174, 175, 175, 175,
176, 176, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 178, 178, 179, 179,
180, 181, 181, 182, 182, 183, 183, 184, 184, 184,
185, 185, 185, 185, 186, 186, 186, 186, 186, 186,
186, 186, 186, 187, 187, 187, 187, 188, 188, 189,
189, 189, 189, 189, 190, 191, 191, 192, 192, 193,
193, 194, 194, 194, 195, 195, 196, 197, 198, 198,
199, 199, 200, 200, 201, 201, 202, 202, 203, 203,
204, 204, 205, 205, 205, 205, 205, 206, 206, 207,
207, 208, 208, 208, 209, 209, 210, 211, 211, 212
116, 117, 117, 118, 119, 119, 120, 120, 121, 121,
122, 122, 122, 123, 123, 124, 124, 125, 125, 125,
125, 125, 126, 126, 127, 127, 128, 128, 128, 128,
128, 129, 128, 128, 130, 130, 131, 131, 132, 133,
133, 134, 134, 134, 135, 135, 135, 136, 136, 137,
137, 137, 138, 139, 139, 140, 140, 141, 141, 142,
142, 143, 143, 143, 143, 144, 144, 145, 145, 145,
146, 146, 147, 147, 148, 148, 149, 149, 150, 150,
150, 151, 151, 152, 152, 153, 154, 154, 155, 155,
156, 156, 156, 157, 157, 159, 158, 160, 160, 161,
161, 162, 162, 162, 163, 164, 164, 164, 164, 164,
164, 164, 164, 164, 164, 164, 164, 165, 165, 165,
165, 165, 165, 166, 166, 167, 168, 169, 169, 170,
171, 172, 171, 171, 171, 171, 171, 171, 171, 171,
171, 173, 173, 174, 174, 175, 175, 175, 175, 175,
175, 175, 175, 175, 175, 175, 175, 176, 176, 176,
177, 177, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 179, 179, 180, 180,
181, 182, 182, 183, 183, 184, 184, 185, 185, 185,
186, 186, 186, 186, 187, 187, 187, 187, 187, 187,
187, 187, 187, 188, 188, 188, 188, 189, 189, 190,
190, 190, 190, 190, 191, 192, 192, 193, 193, 194,
194, 195, 195, 195, 196, 196, 197, 198, 199, 199,
200, 200, 201, 201, 202, 202, 203, 203, 204, 204,
205, 205, 206, 206, 206, 206, 206, 207, 207, 208,
208, 209, 210, 211, 211, 211, 211, 212, 212, 212,
213, 213, 214, 215, 215, 216
};
static const short yyr2[] = { 0,
@ -493,11 +496,12 @@ static const short yyr2[] = { 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, 1, 2, 2, 1, 1, 1, 0, 1, 1
1, 2, 4, 0, 1, 1, 1, 0, 1, 1,
1, 1, 1, 0, 1, 1
};
static const short yydefact[] = { 0,
255, 256, 1, 2, 5, 3, 0, 0, 6, 260,
261, 262, 1, 2, 5, 3, 0, 0, 6, 266,
13, 8, 0, 9, 11, 14, 7, 10, 0, 0,
0, 0, 0, 0, 0, 15, 16, 0, 22, 20,
18, 21, 19, 0, 17, 12, 23, 163, 0, 0,
@ -505,245 +509,249 @@ static const short yydefact[] = { 0,
172, 173, 174, 175, 0, 24, 25, 27, 28, 31,
29, 30, 34, 0, 0, 32, 0, 47, 0, 48,
50, 52, 36, 0, 37, 0, 40, 42, 44, 4,
26, 250, 118, 257, 0, 146, 0, 0, 159, 153,
26, 250, 118, 263, 0, 146, 0, 0, 159, 153,
157, 158, 147, 0, 0, 148, 152, 156, 0, 0,
54, 55, 149, 122, 0, 33, 46, 45, 0, 0,
35, 38, 0, 0, 0, 0, 252, 64, 63, 0,
251, 0, 160, 155, 154, 151, 150, 0, 66, 0,
68, 0, 0, 0, 49, 51, 5, 41, 43, 0,
254, 253, 118, 257, 113, 0, 0, 182, 182, 62,
182, 116, 161, 149, 106, 107, 0, 119, 121, 0,
0, 0, 0, 56, 128, 129, 123, 124, 126, 120,
137, 139, 138, 248, 249, 135, 134, 136, 132, 130,
141, 140, 0, 142, 39, 0, 89, 250, 127, 0,
0, 0, 0, 75, 0, 0, 183, 184, 75, 0,
105, 0, 162, 250, 250, 67, 70, 69, 212, 213,
209, 0, 208, 214, 0, 60, 0, 0, 0, 57,
58, 61, 191, 0, 197, 203, 202, 225, 226, 210,
211, 0, 0, 0, 0, 94, 0, 0, 237, 87,
87, 91, 236, 0, 0, 102, 0, 82, 85, 250,
117, 0, 0, 0, 76, 77, 81, 250, 0, 188,
258, 0, 0, 258, 247, 239, 0, 241, 246, 243,
0, 71, 73, 74, 65, 204, 0, 0, 0, 0,
0, 53, 0, 179, 180, 177, 178, 0, 0, 181,
0, 0, 0, 0, 125, 144, 133, 143, 131, 0,
86, 95, 90, 238, 88, 235, 235, 114, 0, 108,
0, 84, 0, 250, 109, 0, 235, 186, 0, 250,
259, 0, 110, 250, 240, 0, 0, 115, 250, 205,
206, 201, 199, 0, 227, 196, 59, 192, 193, 194,
0, 200, 198, 0, 0, 229, 145, 0, 92, 93,
103, 104, 142, 83, 185, 80, 78, 79, 189, 0,
187, 0, 242, 0, 0, 72, 207, 218, 0, 216,
182, 195, 0, 231, 233, 228, 0, 96, 0, 111,
112, 245, 244, 215, 0, 220, 232, 0, 230, 0,
190, 217, 223, 224, 222, 219, 221, 234, 100, 0,
98, 101, 97, 99, 0, 0, 0
35, 38, 0, 0, 0, 0, 254, 64, 63, 0,
251, 258, 0, 160, 155, 154, 151, 150, 0, 66,
0, 68, 0, 0, 0, 49, 51, 5, 41, 43,
0, 256, 257, 255, 0, 118, 263, 113, 0, 0,
182, 182, 62, 182, 116, 161, 149, 106, 107, 0,
260, 259, 252, 119, 121, 0, 0, 0, 0, 56,
128, 129, 123, 124, 126, 120, 137, 139, 138, 248,
249, 135, 134, 136, 132, 130, 141, 140, 0, 142,
39, 0, 89, 250, 127, 0, 0, 0, 0, 0,
75, 0, 0, 183, 184, 75, 0, 105, 0, 162,
250, 250, 67, 70, 69, 212, 213, 209, 0, 208,
214, 0, 60, 0, 0, 0, 57, 58, 61, 191,
0, 197, 203, 202, 225, 226, 210, 211, 0, 0,
0, 0, 94, 0, 0, 237, 87, 87, 91, 236,
0, 253, 0, 102, 0, 82, 85, 250, 117, 0,
0, 0, 76, 77, 81, 250, 0, 188, 264, 0,
0, 264, 247, 239, 0, 241, 246, 243, 0, 71,
73, 74, 65, 204, 0, 0, 0, 0, 0, 53,
0, 179, 180, 177, 178, 0, 0, 181, 0, 0,
0, 0, 125, 144, 133, 143, 131, 0, 86, 95,
90, 238, 88, 235, 235, 114, 0, 108, 0, 84,
0, 250, 109, 0, 235, 186, 0, 250, 265, 0,
110, 250, 240, 0, 0, 115, 250, 205, 206, 201,
199, 0, 227, 196, 59, 192, 193, 194, 0, 200,
198, 0, 0, 229, 145, 0, 92, 93, 103, 104,
142, 83, 185, 80, 78, 79, 189, 0, 187, 0,
242, 0, 0, 72, 207, 218, 0, 216, 182, 195,
0, 231, 233, 228, 0, 96, 0, 111, 112, 245,
244, 215, 0, 220, 232, 0, 230, 0, 190, 217,
223, 224, 222, 219, 221, 234, 100, 0, 98, 101,
97, 99, 0, 0, 0
};
static const short yydefgoto[] = { 405,
static const short yydefgoto[] = { 413,
3, 4, 8, 9, 13, 14, 25, 26, 27, 55,
56, 57, 106, 58, 74, 75, 76, 77, 59, 69,
70, 60, 100, 219, 220, 221, 61, 128, 129, 271,
272, 254, 255, 256, 247, 248, 118, 306, 186, 187,
301, 302, 390, 400, 401, 257, 273, 151, 152, 167,
168, 188, 189, 62, 180, 233, 181, 297, 153, 103,
155, 156, 288, 289, 291, 196, 197, 198, 259, 260,
223, 278, 224, 225, 226, 369, 370, 396, 397, 227,
228, 229, 345, 346, 374, 242, 243, 203, 267, 268,
230, 244, 121, 183, 104, 320, 231
70, 60, 100, 226, 227, 228, 61, 129, 130, 279,
280, 262, 263, 264, 255, 256, 118, 314, 192, 193,
309, 310, 398, 408, 409, 265, 281, 154, 155, 173,
174, 194, 195, 62, 186, 240, 187, 305, 156, 103,
158, 159, 296, 297, 299, 203, 204, 205, 267, 268,
230, 286, 231, 232, 233, 377, 378, 404, 405, 234,
235, 236, 353, 354, 382, 249, 250, 210, 275, 276,
237, 251, 121, 122, 145, 163, 189, 104, 328, 238
};
static const short yypact[] = { 244,
-32768,-32768, 244,-32768, -75,-32768, 5, 42,-32768,-32768,
-32768,-32768, 36,-32768, -67, 161,-32768,-32768, 76, 51,
-14, 29, 46, 50, 119, 161,-32768, 39,-32768,-32768,
-32768,-32768,-32768, 141,-32768,-32768, 305,-32768, 168, 11,
-32768,-32768,-32768, 157,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, 167, 305,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 14, 519,-32768, 75,-32768, 197,-32768,
121,-32768,-32768, 23,-32768, -22,-32768, 130,-32768,-32768,
-32768, -8, 111,-32768, 155,-32768, 166, 171,-32768,-32768,
-32768,-32768,-32768, 202, 177,-32768,-32768,-32768, 536, 274,
-32768,-32768,-32768, 154, 285,-32768,-32768,-32768, 174, 185,
-32768,-32768, 244, 174, 193, 196, 108,-32768,-32768, 382,
-32768, 174,-32768,-32768,-32768,-32768,-32768, 58,-32768, 201,
208, 199, 283, 263,-32768,-32768, -75,-32768,-32768, 310,
-32768,-32768, -6, 203, 286, 221, 261, -24, 71,-32768,
-20,-32768,-32768, 235,-32768,-32768, 237,-32768,-32768, 335,
536, 334, 334, 144,-32768,-32768, 232,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768, 233, 236,-32768, 117,-32768, 61,-32768, 323,
19, 324, 245, 43, 206, 282,-32768, 246, 43, 289,
-32768, 38,-32768, 13, 255,-32768,-32768,-32768,-32768,-32768,
-32768, -9,-32768,-32768, 330,-32768, 244, 206, 256, 253,
-32768, 234, 267, 259, -9,-32768,-32768, 264,-32768,-32768,
-32768, 310, 366, 334, 263, 277, 310, 263,-32768, 288,
288,-32768,-32768, 459, 334, 262, 128,-32768,-32768, 255,
-32768, 206, 306, 275, 276,-32768,-32768, 255, 279, 101,
334, 206, 278, 334,-32768,-32768, 140,-32768,-32768, 281,
156,-32768,-32768,-32768,-32768, 269, 290, 254, 280, 284,
294,-32768, 144,-32768,-32768,-32768,-32768, 206, 206,-32768,
206, 206, 270, 293,-32768,-32768, 388,-32768,-32768, 314,
-32768,-32768,-32768,-32768,-32768, 24, 24,-32768, 273,-32768,
19,-32768, 295, 255,-32768, 43, 24,-32768, 301, 255,
-32768, 303,-32768, 255,-32768, 56, 273,-32768, 13,-32768,
298,-32768,-32768, 45,-32768,-32768,-32768,-32768,-32768,-32768,
307,-32768,-32768, 0, 182,-32768,-32768, 308,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 304, 459,
-32768, 459,-32768, 309, 312,-32768,-32768,-32768, 184,-32768,
-20,-32768, 334, 311,-32768,-32768, 293,-32768, 206,-32768,
-32768,-32768,-32768,-32768, 45, 88, 311, 334,-32768, 207,
234,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 28,
-32768,-32768,-32768,-32768, 415, 417,-32768
static const short yypact[] = { 120,
-32768,-32768, 120,-32768, -64,-32768, 38, -5,-32768,-32768,
-32768,-32768, 55,-32768, -25, 165,-32768,-32768, 90, 49,
60, 73, 74, 82, 136, 165,-32768, 54,-32768,-32768,
-32768,-32768,-32768, 151,-32768,-32768, 314,-32768, 177, 23,
-32768,-32768,-32768, 159,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, 187, 314,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 256, 528,-32768, 114,-32768, 76,-32768,
133,-32768,-32768, 42,-32768, -20,-32768, 147,-32768,-32768,
-32768, -3, 144,-32768, 183,-32768, 185, 198,-32768,-32768,
-32768,-32768,-32768, 232, 212,-32768,-32768,-32768, 545, 292,
-32768,-32768,-32768, 186, 295,-32768,-32768,-32768, 101, 195,
-32768,-32768, 120, 101, 197, 199, 3,-32768,-32768, 391,
-32768, 113, 101,-32768,-32768,-32768,-32768,-32768, 78,-32768,
200, 202, 210, 263, 279,-32768,-32768, -64,-32768,-32768,
182,-32768,-32768,-32768, 306, -22, 213, 283, 226, 266,
-12, -8,-32768, -32,-32768,-32768, 228,-32768,-32768, 233,
-32768,-32768,-32768,-32768,-32768, 340, 545, 336, 336, 95,
-32768,-32768, 235,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 238, 239,
-32768, 103,-32768, 29,-32768, 236, 325, 36, 237, 248,
6, 142, 286,-32768, 250, 6, 289,-32768, 51,-32768,
5, 244,-32768,-32768,-32768,-32768,-32768,-32768, 57,-32768,
-32768, 330,-32768, 120, 142, 257, 258,-32768, 241, 271,
265, 57,-32768,-32768, 269,-32768,-32768,-32768, 182, 371,
336, 279, 281, 182, 279,-32768, 291, 291,-32768,-32768,
468,-32768, 336, 267, 108,-32768,-32768, 244,-32768, 142,
313, 280, 275,-32768,-32768, 244, 284, 173, 336, 142,
287, 336,-32768,-32768, 110,-32768,-32768, 282, 116,-32768,
-32768,-32768,-32768, 273, 293, 170, 290, 288, 294,-32768,
95,-32768,-32768,-32768,-32768, 142, 142,-32768, 142, 142,
234, 285,-32768,-32768, 392,-32768,-32768, 319,-32768,-32768,
-32768,-32768,-32768, -17, -17,-32768, 296,-32768, 36,-32768,
299, 244,-32768, 6, -17,-32768, 308, 244,-32768, 305,
-32768, 244,-32768, 61, 296,-32768, 5,-32768, 300,-32768,
-32768, 43,-32768,-32768,-32768,-32768,-32768,-32768, 310,-32768,
-32768, 11, 123,-32768,-32768, 316,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768, 312, 468,-32768, 468,
-32768, 315, 317,-32768,-32768,-32768, 125,-32768, -32,-32768,
336, 311,-32768,-32768, 285,-32768, 142,-32768,-32768,-32768,
-32768,-32768, 43, 17, 311, 336,-32768, 160, 241,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768, 14,-32768,-32768,
-32768,-32768, 395, 424,-32768
};
static const short yypgoto[] = {-32768,
-32768, 418, 287,-32768,-32768, 407,-32768,-32768, 399,-32768,
-32768, 371,-32768,-32768,-32768, 354,-32768, 319,-32768,-32768,
325,-32768, 370,-32768,-32768, 153,-32768,-32768, 291,-32768,
110, 238,-32768, 126,-32768, 132,-32768, 209,-32768, 214,
-32768,-32768,-32768,-32768, 44, -179, -79, -188, -54,-32768,
222, -183, -90,-32768, -99,-32768, -231,-32768, -2, -119,
-32768, 32,-32768,-32768,-32768, -142,-32768,-32768, -74, -160,
-95, 228,-32768, -210,-32768,-32768, 70,-32768,-32768,-32768,
-32768,-32768,-32768, 80, 89, -206,-32768,-32768,-32768, 137,
-118, -80,-32768, 15,-32768, 200, -7
-32768, 422, 298,-32768,-32768, 413,-32768,-32768, 402,-32768,
-32768, 373,-32768,-32768,-32768, 356,-32768, 318,-32768,-32768,
324,-32768, 369,-32768,-32768, 146,-32768,-32768, 276,-32768,
105, 240,-32768, 121,-32768, 129,-32768, 196,-32768, 207,
-32768,-32768,-32768,-32768, 44, -183, -65, -129, -53,-32768,
214, -185, -114,-32768, -160,-32768, -252,-32768, -41, -117,
-32768, 18,-32768,-32768,-32768, -147,-32768,-32768, -204, -168,
-36, 227,-32768, -207,-32768,-32768, 67,-32768,-32768,-32768,
-32768,-32768,-32768, 77, 80, -238,-32768,-32768,-32768, 130,
-125, -74,-32768,-32768,-32768,-32768, 1,-32768, 191, -7
};
#define YYLAST 627
#define YYLAST 636
static const short yytable[] = { 15,
154, 120, 119, 222, 241, 15, 200, 10, 201, 101,
101, 249, 10, 11, 5, 182, 82, 5, 10, 116,
10, 1, 2, 113, 83, 84, 10, 67, 7, 65,
10, 399, 72, 1, 2, 85, 79, 86, 19, 87,
165, 166, 169, 10, 11, 10, 174, 175, 65, 88,
10, 64, 10, 89, 71, 193, 238, 90, 78, 193,
91, 102, 102, 10, 174, 175, 79, 333, 63, 30,
64, 92, 253, 165, 166, 16, 93, 351, 94, 194,
95, 195, 343, 269, 28, 195, 114, 63, 78, 96,
97, 276, 239, 238, 117, 364, 130, -255, 32, 349,
350, 72, 393, 277, 98, 122, 79, 29, 240, 12,
358, 373, 31, 131, 159, 117, 182, 99, 68, 182,
246, 34, 222, 71, 154, 275, 184, 137, 78, 239,
111, 249, 403, 33, 157, 299, 158, 251, 304, 265,
17, 169, 266, 281, 246, 36, 368, 170, 141, 209,
193, 10, 174, 175, 207, 208, 394, 265, 130, 142,
395, 37, 160, 117, 10, -235, 161, 1, 2, -235,
312, 380, 20, 381, 199, 131, 195, 313, 317, 66,
21, 10, 107, 250, 1, 2, 258, 322, 210, 211,
352, 258, 338, 339, 270, 340, 274, 284, 285, 286,
287, 22, 73, 23, 212, 80, 402, 269, 365, 319,
399, 209, 24, 10, 174, 175, 402, 341, 391, 165,
166, 236, 122, 213, 110, 237, 298, 184, 386, 214,
184, 280, 310, 115, 356, 123, 311, 308, 215, 360,
154, 125, 154, 362, 325, 216, 124, 217, 326, 218,
210, 211, 126, 321, 1, 2, 321, 127, 157, 209,
328, 10, 174, 175, 329, 133, 212, 171, 172, 173,
10, 174, 175, 1, 2, 209, 132, 10, 174, 175,
10, 174, 175, 1, 2, 213, 376, 134, 384, 136,
377, 214, 385, 1, 2, 165, 166, 139, 210, 140,
215, 353, 164, 250, 108, 109, -256, 176, 258, 217,
162, 218, 10, 332, 210, 1, 2, 163, 270, 353,
190, 274, 165, 166, 191, 177, 371, 38, 192, 342,
284, 285, 286, 287, 83, 84, 375, 205, 202, 214,
204, 10, 39, 232, 234, 235, 40, 245, 178, 261,
252, 262, 41, 42, 43, 214, 264, 117, 44, 279,
282, 283, 290, 45, 292, 375, 179, 294, 46, 296,
47, 300, 309, 314, 157, 305, 157, 371, 48, 315,
398, 330, 323, 334, 316, 318, 327, 49, 335, 50,
331, 347, 143, 144, 51, 348, 52, 53, 54, 145,
336, 355, 359, 85, 38, 86, 344, 87, 146, 361,
367, 378, 379, 372, 406, 382, 407, 88, 383, 18,
6, 89, 388, 185, 35, 90, 81, 112, 91, 41,
42, 43, 138, 135, 105, 337, 263, 147, 366, 92,
45, 357, 354, 404, 93, 46, 94, 47, 95, 307,
303, 206, 293, 295, 392, 48, 389, 96, 97, 148,
149, 387, 363, 324, 49, 0, 50, 0, 150, 143,
144, 51, 98, 52, 53, 54, 145, 0, 0, 0,
85, 38, 86, 0, 87, 146, 0, 0, 0, 0,
0, 0, 0, 0, 88, 0, 0, 0, 89, 0,
0, 0, 90, 0, 0, 91, 41, 42, 43, 0,
0, 0, 0, 0, 147, 0, 92, 45, 0, 0,
0, 93, 46, 94, 47, 95, 0, 0, 0, 83,
84, 0, 48, 0, 96, 97, 148, 149, 0, 0,
85, 49, 86, 50, 87, 0, 1, 2, 51, 98,
52, 53, 54, 0, 88, 0, 0, 85, 89, 86,
0, 87, 90, 0, 0, 91, 0, 0, 0, 0,
0, 88, 0, 0, 0, 89, 92, 0, 0, 90,
0, 93, 91, 94, 0, 95, 0, 0, 0, 0,
0, 0, 0, 92, 96, 97, 0, 0, 93, 0,
94, 0, 95, 0, 0, 0, 0, 0, 0, 98,
0, 96, 97, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 98
5, 229, 157, 5, 207, 15, 208, 120, 248, 188,
101, 101, 10, 10, 257, 245, 119, 407, 10, 175,
289, 142, 102, 102, 116, 113, 171, 172, 16, 65,
10, 401, 72, 1, 2, 261, 79, 64, 7, 67,
71, 171, 172, 10, 78, 10, 11, 200, 65, 10,
10, 246, 1, 2, 63, 321, 64, 131, 10, 180,
181, 245, 10, 11, 359, 330, 79, 200, 10, 180,
181, 200, 202, 63, 78, 357, 358, 143, 341, 19,
-261, 307, 372, 277, 312, 402, 366, 114, 123, 403,
201, 144, 202, 351, 206, 349, 202, 246, 28, 132,
216, 72, 10, 180, 181, 29, 79, 254, 10, 71,
117, 1, 2, 138, 78, 165, 188, 411, 117, 188,
160, 381, 229, 164, 175, 131, 32, 190, 247, 68,
1, 2, -235, 157, 176, 257, -235, 254, 34, 217,
218, 12, 117, 30, 376, 259, 283, 216, 111, 10,
180, 181, 273, 161, 274, 219, 31, 284, 17, 36,
214, 215, 273, 407, 162, 33, 10, 132, 285, 1,
2, 37, 171, 172, 220, 216, 20, 10, 180, 181,
221, 166, 108, 109, 21, 167, 217, 218, 66, 222,
258, 360, 320, 266, 171, 172, 223, 224, 266, 225,
325, 278, 219, 282, 73, 22, 243, 23, 277, 373,
244, 318, 410, 333, 217, 319, 24, 334, 399, 336,
107, 220, 410, 337, 288, 80, 384, 221, 392, 340,
385, 394, 393, 306, 190, 110, 222, 190, 388, 216,
389, 10, 180, 181, 224, 316, 225, 83, 84, 115,
157, 160, 157, 368, 123, 221, 364, 370, 82, 346,
347, 329, 348, 124, 329, 125, 83, 84, 126, 292,
293, 294, 295, 1, 2, 171, 172, 85, 217, 86,
327, 87, 127, 177, 178, 179, 10, 180, 181, 1,
2, 88, 128, 350, 133, 89, 134, 135, 137, 90,
140, 141, 91, 10, 180, 181, 1, 2, 168, 361,
169, 258, 170, 92, 196, -262, 266, 197, 93, 221,
94, 10, 95, 182, 1, 2, 278, 361, 198, 282,
209, 96, 97, 199, 379, 211, 38, 292, 293, 294,
295, 183, 212, 10, 383, 239, 98, 242, 241, 253,
252, 39, 260, 269, 270, 40, 272, 117, 99, 287,
290, 41, 42, 43, 184, 291, 298, 44, 160, 300,
160, 302, 45, 383, 304, 308, 317, 46, 313, 47,
322, 185, 324, 323, 338, 379, 335, 48, 406, 326,
331, 343, 342, 339, 414, 355, 49, 352, 50, 344,
356, 146, 147, 51, 363, 52, 53, 54, 148, 367,
369, 375, 85, 38, 86, 380, 87, 149, 386, 387,
390, 396, 391, 415, 6, 18, 88, 35, 81, 112,
89, 139, 136, 105, 90, 191, 345, 91, 41, 42,
43, 374, 213, 315, 365, 271, 150, 362, 92, 45,
311, 412, 303, 93, 46, 94, 47, 95, 301, 400,
395, 397, 332, 371, 48, 0, 96, 97, 151, 152,
0, 0, 0, 49, 0, 50, 0, 153, 146, 147,
51, 98, 52, 53, 54, 148, 0, 0, 0, 85,
38, 86, 0, 87, 149, 0, 0, 0, 0, 0,
0, 0, 0, 88, 0, 0, 0, 89, 0, 0,
0, 90, 0, 0, 91, 41, 42, 43, 0, 0,
0, 0, 0, 150, 0, 92, 45, 0, 0, 0,
93, 46, 94, 47, 95, 0, 0, 0, 83, 84,
0, 48, 0, 96, 97, 151, 152, 0, 0, 85,
49, 86, 50, 87, 0, 1, 2, 51, 98, 52,
53, 54, 0, 88, 0, 0, 85, 89, 86, 0,
87, 90, 0, 0, 91, 0, 0, 0, 0, 0,
88, 0, 0, 0, 89, 92, 0, 0, 90, 0,
93, 91, 94, 0, 95, 0, 0, 0, 0, 0,
0, 0, 92, 96, 97, 0, 0, 93, 0, 94,
0, 95, 0, 0, 0, 0, 0, 0, 98, 0,
96, 97, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 98
};
static const short yycheck[] = { 7,
120, 82, 82, 164, 188, 13, 149, 8, 151, 64,
65, 191, 8, 9, 0, 134, 3, 3, 8, 28,
8, 11, 12, 46, 11, 12, 8, 17, 104, 37,
8, 4, 40, 11, 12, 22, 44, 24, 106, 26,
13, 14, 133, 8, 9, 8, 9, 10, 56, 36,
8, 37, 8, 40, 40, 80, 33, 44, 44, 80,
47, 64, 65, 8, 9, 10, 74, 278, 37, 84,
56, 58, 30, 13, 14, 34, 63, 309, 65, 104,
67, 106, 293, 202, 9, 106, 109, 56, 74, 76,
77, 101, 69, 33, 103, 327, 99, 104, 53, 306,
307, 109, 15, 113, 91, 112, 114, 57, 188, 105,
317, 112, 84, 99, 122, 103, 235, 104, 108, 238,
102, 3, 283, 109, 244, 205, 134, 113, 114, 69,
108, 311, 105, 84, 120, 235, 122, 192, 238, 102,
105, 232, 105, 218, 102, 107, 102, 133, 41, 6,
80, 8, 9, 10, 162, 163, 69, 102, 161, 52,
73, 21, 105, 103, 8, 105, 109, 11, 12, 109,
250, 360, 12, 362, 104, 161, 106, 252, 258, 12,
20, 8, 108, 191, 11, 12, 194, 262, 45, 46,
309, 199, 288, 289, 202, 291, 204, 97, 98, 99,
100, 41, 46, 43, 61, 39, 390, 326, 327, 109,
4, 6, 52, 8, 9, 10, 400, 292, 379, 13,
14, 105, 112, 80, 104, 109, 234, 235, 371, 86,
238, 217, 105, 104, 314, 81, 109, 245, 95, 320,
360, 71, 362, 324, 105, 102, 81, 104, 109, 106,
45, 46, 51, 261, 11, 12, 264, 81, 244, 6,
105, 8, 9, 10, 109, 112, 61, 5, 6, 7,
8, 9, 10, 11, 12, 6, 3, 8, 9, 10,
8, 9, 10, 11, 12, 80, 105, 3, 105, 105,
109, 86, 109, 11, 12, 13, 14, 105, 45, 104,
95, 309, 104, 311, 108, 109, 104, 45, 316, 104,
110, 106, 8, 60, 45, 11, 12, 110, 326, 327,
35, 329, 13, 14, 104, 63, 334, 23, 68, 60,
97, 98, 99, 100, 11, 12, 344, 3, 104, 86,
104, 8, 38, 112, 112, 110, 42, 25, 86, 68,
106, 106, 48, 49, 50, 86, 68, 103, 54, 30,
105, 109, 96, 59, 106, 373, 104, 104, 64, 4,
66, 95, 111, 68, 360, 88, 362, 385, 74, 105,
388, 113, 105, 104, 109, 107, 106, 83, 105, 85,
101, 4, 11, 12, 90, 82, 92, 93, 94, 18,
107, 107, 102, 22, 23, 24, 114, 26, 27, 107,
113, 104, 109, 107, 0, 107, 0, 36, 107, 13,
3, 40, 112, 137, 26, 44, 56, 74, 47, 48,
49, 50, 114, 109, 65, 283, 199, 56, 329, 58,
59, 316, 311, 400, 63, 64, 65, 66, 67, 241,
237, 161, 225, 232, 385, 74, 377, 76, 77, 78,
79, 373, 326, 264, 83, -1, 85, -1, 87, 11,
12, 90, 91, 92, 93, 94, 18, -1, -1, -1,
22, 23, 24, -1, 26, 27, -1, -1, -1, -1,
-1, -1, -1, -1, 36, -1, -1, -1, 40, -1,
-1, -1, 44, -1, -1, 47, 48, 49, 50, -1,
-1, -1, -1, -1, 56, -1, 58, 59, -1, -1,
-1, 63, 64, 65, 66, 67, -1, -1, -1, 11,
12, -1, 74, -1, 76, 77, 78, 79, -1, -1,
22, 83, 24, 85, 26, -1, 11, 12, 90, 91,
92, 93, 94, -1, 36, -1, -1, 22, 40, 24,
-1, 26, 44, -1, -1, 47, -1, -1, -1, -1,
-1, 36, -1, -1, -1, 40, 58, -1, -1, 44,
-1, 63, 47, 65, -1, 67, -1, -1, -1, -1,
-1, -1, -1, 58, 76, 77, -1, -1, 63, -1,
65, -1, 67, -1, -1, -1, -1, -1, -1, 91,
-1, 76, 77, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 91
0, 170, 120, 3, 152, 13, 154, 82, 194, 135,
64, 65, 8, 8, 198, 33, 82, 4, 8, 134,
225, 19, 64, 65, 28, 46, 13, 14, 34, 37,
8, 15, 40, 11, 12, 30, 44, 37, 103, 17,
40, 13, 14, 8, 44, 8, 9, 80, 56, 8,
8, 69, 11, 12, 37, 260, 56, 99, 8, 9,
10, 33, 8, 9, 317, 270, 74, 80, 8, 9,
10, 80, 105, 56, 74, 314, 315, 75, 286, 105,
103, 242, 335, 209, 245, 69, 325, 108, 111, 73,
103, 89, 105, 301, 103, 300, 105, 69, 9, 99,
6, 109, 8, 9, 10, 57, 114, 102, 8, 109,
114, 11, 12, 113, 114, 123, 242, 104, 114, 245,
120, 111, 291, 123, 239, 167, 53, 135, 194, 107,
11, 12, 104, 251, 134, 319, 108, 102, 3, 45,
46, 104, 114, 84, 102, 199, 212, 6, 107, 8,
9, 10, 102, 41, 104, 61, 84, 101, 104, 106,
168, 169, 102, 4, 52, 84, 8, 167, 112, 11,
12, 21, 13, 14, 80, 6, 12, 8, 9, 10,
86, 104, 107, 108, 20, 108, 45, 46, 12, 95,
198, 317, 258, 201, 13, 14, 102, 103, 206, 105,
266, 209, 61, 211, 46, 41, 104, 43, 334, 335,
108, 104, 398, 104, 45, 108, 52, 108, 387, 104,
107, 80, 408, 108, 224, 39, 104, 86, 104, 60,
108, 379, 108, 241, 242, 103, 95, 245, 368, 6,
370, 8, 9, 10, 103, 253, 105, 11, 12, 103,
368, 251, 370, 328, 111, 86, 322, 332, 3, 296,
297, 269, 299, 81, 272, 81, 11, 12, 71, 97,
98, 99, 100, 11, 12, 13, 14, 22, 45, 24,
108, 26, 51, 5, 6, 7, 8, 9, 10, 11,
12, 36, 81, 60, 3, 40, 111, 3, 104, 44,
104, 103, 47, 8, 9, 10, 11, 12, 109, 317,
109, 319, 103, 58, 9, 103, 324, 35, 63, 86,
65, 8, 67, 45, 11, 12, 334, 335, 103, 337,
103, 76, 77, 68, 342, 103, 23, 97, 98, 99,
100, 63, 3, 8, 352, 111, 91, 109, 111, 25,
115, 38, 105, 68, 105, 42, 68, 114, 103, 30,
104, 48, 49, 50, 86, 108, 96, 54, 368, 105,
370, 103, 59, 381, 4, 95, 110, 64, 88, 66,
68, 103, 108, 104, 112, 393, 105, 74, 396, 106,
104, 104, 103, 101, 0, 4, 83, 113, 85, 106,
82, 11, 12, 90, 106, 92, 93, 94, 18, 102,
106, 112, 22, 23, 24, 106, 26, 27, 103, 108,
106, 111, 106, 0, 3, 13, 36, 26, 56, 74,
40, 114, 109, 65, 44, 138, 291, 47, 48, 49,
50, 337, 167, 248, 324, 206, 56, 319, 58, 59,
244, 408, 239, 63, 64, 65, 66, 67, 232, 393,
381, 385, 272, 334, 74, -1, 76, 77, 78, 79,
-1, -1, -1, 83, -1, 85, -1, 87, 11, 12,
90, 91, 92, 93, 94, 18, -1, -1, -1, 22,
23, 24, -1, 26, 27, -1, -1, -1, -1, -1,
-1, -1, -1, 36, -1, -1, -1, 40, -1, -1,
-1, 44, -1, -1, 47, 48, 49, 50, -1, -1,
-1, -1, -1, 56, -1, 58, 59, -1, -1, -1,
63, 64, 65, 66, 67, -1, -1, -1, 11, 12,
-1, 74, -1, 76, 77, 78, 79, -1, -1, 22,
83, 24, 85, 26, -1, 11, 12, 90, 91, 92,
93, 94, -1, 36, -1, -1, 22, 40, 24, -1,
26, 44, -1, -1, 47, -1, -1, -1, -1, -1,
36, -1, -1, -1, 40, 58, -1, -1, 44, -1,
63, 47, 65, -1, 67, -1, -1, -1, -1, -1,
-1, -1, 58, 76, 77, -1, -1, 63, -1, 65,
-1, 67, -1, -1, -1, -1, -1, -1, 91, -1,
76, 77, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 91
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/share/bison.simple"
@ -3228,57 +3236,78 @@ case 251:
case 252:
#line 1945 "asn1p_y.y"
{
yyval.a_tag = yyvsp[0].a_tag;
yyval.a_tag.tag_mode = TM_DEFAULT;
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode;
;
break;}
case 253:
#line 1949 "asn1p_y.y"
#line 1952 "asn1p_y.y"
{
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = TM_IMPLICIT;
yyval.a_tag = yyvsp[-2].a_tag;
yyval.a_tag.tag_value = yyvsp[-1].a_int;
;
break;}
case 254:
#line 1953 "asn1p_y.y"
{
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = TM_EXPLICIT;
;
#line 1958 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ;
break;}
case 255:
#line 1960 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
#line 1959 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_UNIVERSAL; ;
break;}
case 256:
#line 1964 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
#line 1960 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_APPLICATION; ;
break;}
case 257:
#line 1972 "asn1p_y.y"
#line 1961 "asn1p_y.y"
{ yyval.a_tag.tag_class = TC_PRIVATE; ;
break;}
case 258:
#line 1965 "asn1p_y.y"
{ yyval.a_tag.tag_mode = TM_DEFAULT; ;
break;}
case 259:
#line 1966 "asn1p_y.y"
{ yyval.a_tag.tag_mode = TM_IMPLICIT; ;
break;}
case 260:
#line 1967 "asn1p_y.y"
{ yyval.a_tag.tag_mode = TM_EXPLICIT; ;
break;}
case 261:
#line 1971 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
case 258:
#line 1979 "asn1p_y.y"
case 262:
#line 1975 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
case 263:
#line 1983 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
case 264:
#line 1990 "asn1p_y.y"
{ yyval.tv_str = 0; ;
break;}
case 259:
#line 1980 "asn1p_y.y"
case 265:
#line 1991 "asn1p_y.y"
{
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
case 260:
#line 1985 "asn1p_y.y"
case 266:
#line 1996 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
@ -3506,7 +3535,7 @@ yyerrhandle:
}
return 1;
}
#line 1991 "asn1p_y.y"
#line 2002 "asn1p_y.y"

View File

@ -128,7 +128,6 @@ typedef union {
#define TOK_UNION 352
#define TOK_TwoDots 353
#define TOK_ThreeDots 354
#define TOK_tag 355
extern YYSTYPE asn1p_lval;

View File

@ -196,7 +196,6 @@ static asn1p_value_t *
/* Misc tags */
%token TOK_TwoDots /* .. */
%token TOK_ThreeDots /* ... */
%token <a_tag> TOK_tag /* [0] */
/*
@ -266,7 +265,8 @@ static asn1p_value_t *
%type <a_type> BasicString
%type <tv_opaque> Opaque
//%type <tv_opaque> StringValue
%type <a_tag> Tag /* [UNIVERSAL 0] IMPLICIT */
%type <a_tag> Tag /* [UNIVERSAL 0] IMPLICIT */
%type <a_tag> TagClass TagTypeValue TagPlicit
%type <a_tag> optTag /* [UNIVERSAL 0] IMPLICIT */
%type <a_constr> optConstraints
%type <a_constr> Constraints
@ -1942,20 +1942,31 @@ optTag:
;
Tag:
TOK_tag {
TagTypeValue TagPlicit {
$$ = $1;
$$.tag_mode = TM_DEFAULT;
}
| TOK_tag TOK_IMPLICIT {
$$ = $1;
$$.tag_mode = TM_IMPLICIT;
}
| TOK_tag TOK_EXPLICIT {
$$ = $1;
$$.tag_mode = TM_EXPLICIT;
$$.tag_mode = $2.tag_mode;
}
;
TagTypeValue:
'[' TagClass TOK_number ']' {
$$ = $2;
$$.tag_value = $3;
};
TagClass:
{ $$.tag_class = TC_CONTEXT_SPECIFIC; }
| TOK_UNIVERSAL { $$.tag_class = TC_UNIVERSAL; }
| TOK_APPLICATION { $$.tag_class = TC_APPLICATION; }
| TOK_PRIVATE { $$.tag_class = TC_PRIVATE; }
;
TagPlicit:
{ $$.tag_mode = TM_DEFAULT; }
| TOK_IMPLICIT { $$.tag_mode = TM_IMPLICIT; }
| TOK_EXPLICIT { $$.tag_mode = TM_EXPLICIT; }
;
TypeRefName:
TOK_typereference {
checkmem($1);