From 57074f10d3e9b089582dde25e0d3ae33be913302 Mon Sep 17 00:00:00 2001 From: Lev Walkin Date: Thu, 16 Mar 2006 05:11:14 +0000 Subject: more distinction --- examples/sample.source.PKIX1/Makefile | 6 + libasn1parser/asn1p_class.c | 6 +- libasn1parser/asn1p_class.h | 4 +- libasn1parser/asn1p_l.c | 2 +- libasn1parser/asn1p_l.l | 2 +- libasn1parser/asn1p_y.c | 1480 +++++++++++++++++---------------- libasn1parser/asn1p_y.h | 201 ++--- libasn1parser/asn1p_y.y | 4 +- libasn1print/asn1print.c | 1 + 9 files changed, 866 insertions(+), 840 deletions(-) diff --git a/examples/sample.source.PKIX1/Makefile b/examples/sample.source.PKIX1/Makefile index 0a04ba94..8fecc54d 100644 --- a/examples/sample.source.PKIX1/Makefile +++ b/examples/sample.source.PKIX1/Makefile @@ -264,11 +264,13 @@ ASN_MODULE_SOURCES+=BOOLEAN.c ASN_MODULE_HEADERS+=ENUMERATED.h ASN_MODULE_SOURCES+=ENUMERATED.c ASN_MODULE_HEADERS+=INTEGER.h +ASN_MODULE_HEADERS+=NativeEnumerated.h ASN_MODULE_HEADERS+=GeneralizedTime.h ASN_MODULE_SOURCES+=GeneralizedTime.c ASN_MODULE_HEADERS+=IA5String.h ASN_MODULE_SOURCES+=IA5String.c ASN_MODULE_SOURCES+=INTEGER.c +ASN_MODULE_SOURCES+=NativeEnumerated.c ASN_MODULE_HEADERS+=NativeInteger.h ASN_MODULE_SOURCES+=NativeInteger.c ASN_MODULE_HEADERS+=NumericString.h @@ -328,6 +330,10 @@ ASN_MODULE_HEADERS+=xer_decoder.h ASN_MODULE_SOURCES+=xer_decoder.c ASN_MODULE_HEADERS+=xer_encoder.h ASN_MODULE_SOURCES+=xer_encoder.c +ASN_MODULE_HEADERS+=per_support.h +ASN_MODULE_SOURCES+=per_support.c +ASN_MODULE_HEADERS+=per_decoder.h +ASN_MODULE_SOURCES+=per_decoder.c lib_LTLIBRARIES=libsomething.la diff --git a/libasn1parser/asn1p_class.c b/libasn1parser/asn1p_class.c index 741d98e1..c9065f66 100644 --- a/libasn1parser/asn1p_class.c +++ b/libasn1parser/asn1p_class.c @@ -19,7 +19,9 @@ void asn1p_wsyntx_chunk_free(asn1p_wsyntx_chunk_t *wc) { if(wc) { switch(wc->type) { - case WC_LITERAL: free(wc->content.token); break; + case WC_LITERAL: + case WC_WHITESPACE: + free(wc->content.token); break; case WC_REFERENCE: asn1p_ref_free(wc->content.ref); break; case WC_OPTIONALGROUP: asn1p_wsyntx_free(wc->content.syntax); @@ -35,8 +37,10 @@ asn1p_wsyntx_chunk_clone(asn1p_wsyntx_chunk_t *wc) { nc = asn1p_wsyntx_chunk_new(); if(nc) { + nc->type = wc->type; switch(wc->type) { case WC_LITERAL: + case WC_WHITESPACE: nc->content.token = malloc(strlen(wc->content.token)+1); strcpy(nc->content.token, wc->content.token); break; diff --git a/libasn1parser/asn1p_class.h b/libasn1parser/asn1p_class.h index ca311fe3..06db2d12 100644 --- a/libasn1parser/asn1p_class.h +++ b/libasn1parser/asn1p_class.h @@ -12,11 +12,13 @@ typedef struct asn1p_wsyntx_chunk_s { enum { WC_LITERAL, + WC_WHITESPACE, WC_REFERENCE, WC_OPTIONALGROUP } type; /* - * WC_LITERAL -> {buf, len} + * WC_LITERAL -> {token} + * WC_WHITESPACE -> {token} * WC_REFERENCE -> {ref} * WC_OPTIONALGROUP -> {syntax} */ diff --git a/libasn1parser/asn1p_l.c b/libasn1parser/asn1p_l.c index 9eea6cad..569bc73d 100644 --- a/libasn1parser/asn1p_l.c +++ b/libasn1parser/asn1p_l.c @@ -2946,7 +2946,7 @@ YY_RULE_SETUP { asn1p_lval.tv_opaque.buf = strdup(yytext); asn1p_lval.tv_opaque.len = yyleng; - return TOK_opaque; + return TOK_whitespace; } YY_BREAK case 130: diff --git a/libasn1parser/asn1p_l.l b/libasn1parser/asn1p_l.l index a327277f..e440d421 100644 --- a/libasn1parser/asn1p_l.l +++ b/libasn1parser/asn1p_l.l @@ -413,7 +413,7 @@ WITH return TOK_WITH; {WSP}+ { asn1p_lval.tv_opaque.buf = strdup(yytext); asn1p_lval.tv_opaque.len = yyleng; - return TOK_opaque; + return TOK_whitespace; } "}" { diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c index b5c62562..b00f051d 100644 --- a/libasn1parser/asn1p_y.c +++ b/libasn1parser/asn1p_y.c @@ -12,106 +12,107 @@ #define yydebug asn1p_debug #define yynerrs asn1p_nerrs #define TOK_PPEQ 257 -#define TOK_opaque 258 -#define TOK_bstring 259 -#define TOK_cstring 260 -#define TOK_hstring 261 -#define TOK_identifier 262 -#define TOK_number 263 -#define TOK_tuple 264 -#define TOK_quadruple 265 -#define TOK_number_negative 266 -#define TOK_typereference 267 -#define TOK_capitalreference 268 -#define TOK_typefieldreference 269 -#define TOK_valuefieldreference 270 -#define TOK_Literal 271 -#define TOK_ABSENT 272 -#define TOK_ABSTRACT_SYNTAX 273 -#define TOK_ALL 274 -#define TOK_ANY 275 -#define TOK_APPLICATION 276 -#define TOK_AUTOMATIC 277 -#define TOK_BEGIN 278 -#define TOK_BIT 279 -#define TOK_BMPString 280 -#define TOK_BOOLEAN 281 -#define TOK_BY 282 -#define TOK_CHARACTER 283 -#define TOK_CHOICE 284 -#define TOK_CLASS 285 -#define TOK_COMPONENT 286 -#define TOK_COMPONENTS 287 -#define TOK_CONSTRAINED 288 -#define TOK_CONTAINING 289 -#define TOK_DEFAULT 290 -#define TOK_DEFINITIONS 291 -#define TOK_DEFINED 292 -#define TOK_EMBEDDED 293 -#define TOK_ENCODED 294 -#define TOK_ENCODING_CONTROL 295 -#define TOK_END 296 -#define TOK_ENUMERATED 297 -#define TOK_EXPLICIT 298 -#define TOK_EXPORTS 299 -#define TOK_EXTENSIBILITY 300 -#define TOK_EXTERNAL 301 -#define TOK_FALSE 302 -#define TOK_FROM 303 -#define TOK_GeneralizedTime 304 -#define TOK_GeneralString 305 -#define TOK_GraphicString 306 -#define TOK_IA5String 307 -#define TOK_IDENTIFIER 308 -#define TOK_IMPLICIT 309 -#define TOK_IMPLIED 310 -#define TOK_IMPORTS 311 -#define TOK_INCLUDES 312 -#define TOK_INSTANCE 313 -#define TOK_INSTRUCTIONS 314 -#define TOK_INTEGER 315 -#define TOK_ISO646String 316 -#define TOK_MAX 317 -#define TOK_MIN 318 -#define TOK_MINUS_INFINITY 319 -#define TOK_NULL 320 -#define TOK_NumericString 321 -#define TOK_OBJECT 322 -#define TOK_ObjectDescriptor 323 -#define TOK_OCTET 324 -#define TOK_OF 325 -#define TOK_OPTIONAL 326 -#define TOK_PATTERN 327 -#define TOK_PDV 328 -#define TOK_PLUS_INFINITY 329 -#define TOK_PRESENT 330 -#define TOK_PrintableString 331 -#define TOK_PRIVATE 332 -#define TOK_REAL 333 -#define TOK_RELATIVE_OID 334 -#define TOK_SEQUENCE 335 -#define TOK_SET 336 -#define TOK_SIZE 337 -#define TOK_STRING 338 -#define TOK_SYNTAX 339 -#define TOK_T61String 340 -#define TOK_TAGS 341 -#define TOK_TeletexString 342 -#define TOK_TRUE 343 -#define TOK_TYPE_IDENTIFIER 344 -#define TOK_UNIQUE 345 -#define TOK_UNIVERSAL 346 -#define TOK_UniversalString 347 -#define TOK_UTCTime 348 -#define TOK_UTF8String 349 -#define TOK_VideotexString 350 -#define TOK_VisibleString 351 -#define TOK_WITH 352 -#define TOK_EXCEPT 353 -#define TOK_INTERSECTION 354 -#define TOK_UNION 355 -#define TOK_TwoDots 356 -#define TOK_ThreeDots 357 +#define TOK_whitespace 258 +#define TOK_opaque 259 +#define TOK_bstring 260 +#define TOK_cstring 261 +#define TOK_hstring 262 +#define TOK_identifier 263 +#define TOK_number 264 +#define TOK_tuple 265 +#define TOK_quadruple 266 +#define TOK_number_negative 267 +#define TOK_typereference 268 +#define TOK_capitalreference 269 +#define TOK_typefieldreference 270 +#define TOK_valuefieldreference 271 +#define TOK_Literal 272 +#define TOK_ABSENT 273 +#define TOK_ABSTRACT_SYNTAX 274 +#define TOK_ALL 275 +#define TOK_ANY 276 +#define TOK_APPLICATION 277 +#define TOK_AUTOMATIC 278 +#define TOK_BEGIN 279 +#define TOK_BIT 280 +#define TOK_BMPString 281 +#define TOK_BOOLEAN 282 +#define TOK_BY 283 +#define TOK_CHARACTER 284 +#define TOK_CHOICE 285 +#define TOK_CLASS 286 +#define TOK_COMPONENT 287 +#define TOK_COMPONENTS 288 +#define TOK_CONSTRAINED 289 +#define TOK_CONTAINING 290 +#define TOK_DEFAULT 291 +#define TOK_DEFINITIONS 292 +#define TOK_DEFINED 293 +#define TOK_EMBEDDED 294 +#define TOK_ENCODED 295 +#define TOK_ENCODING_CONTROL 296 +#define TOK_END 297 +#define TOK_ENUMERATED 298 +#define TOK_EXPLICIT 299 +#define TOK_EXPORTS 300 +#define TOK_EXTENSIBILITY 301 +#define TOK_EXTERNAL 302 +#define TOK_FALSE 303 +#define TOK_FROM 304 +#define TOK_GeneralizedTime 305 +#define TOK_GeneralString 306 +#define TOK_GraphicString 307 +#define TOK_IA5String 308 +#define TOK_IDENTIFIER 309 +#define TOK_IMPLICIT 310 +#define TOK_IMPLIED 311 +#define TOK_IMPORTS 312 +#define TOK_INCLUDES 313 +#define TOK_INSTANCE 314 +#define TOK_INSTRUCTIONS 315 +#define TOK_INTEGER 316 +#define TOK_ISO646String 317 +#define TOK_MAX 318 +#define TOK_MIN 319 +#define TOK_MINUS_INFINITY 320 +#define TOK_NULL 321 +#define TOK_NumericString 322 +#define TOK_OBJECT 323 +#define TOK_ObjectDescriptor 324 +#define TOK_OCTET 325 +#define TOK_OF 326 +#define TOK_OPTIONAL 327 +#define TOK_PATTERN 328 +#define TOK_PDV 329 +#define TOK_PLUS_INFINITY 330 +#define TOK_PRESENT 331 +#define TOK_PrintableString 332 +#define TOK_PRIVATE 333 +#define TOK_REAL 334 +#define TOK_RELATIVE_OID 335 +#define TOK_SEQUENCE 336 +#define TOK_SET 337 +#define TOK_SIZE 338 +#define TOK_STRING 339 +#define TOK_SYNTAX 340 +#define TOK_T61String 341 +#define TOK_TAGS 342 +#define TOK_TeletexString 343 +#define TOK_TRUE 344 +#define TOK_TYPE_IDENTIFIER 345 +#define TOK_UNIQUE 346 +#define TOK_UNIVERSAL 347 +#define TOK_UniversalString 348 +#define TOK_UTCTime 349 +#define TOK_UTF8String 350 +#define TOK_VideotexString 351 +#define TOK_VisibleString 352 +#define TOK_WITH 353 +#define TOK_EXCEPT 354 +#define TOK_INTERSECTION 355 +#define TOK_UNION 356 +#define TOK_TwoDots 357 +#define TOK_ThreeDots 358 #line 1 "asn1p_y.y" @@ -224,24 +225,24 @@ typedef union { #define YYFINAL 446 #define YYFLAG -32768 -#define YYNTBASE 119 +#define YYNTBASE 120 -#define YYTRANSLATE(x) ((unsigned)(x) <= 357 ? yytranslate[x] : 226) +#define YYTRANSLATE(x) ((unsigned)(x) <= 358 ? yytranslate[x] : 227) 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, 115, 2, 2, 2, 2, 2, 2, 108, - 109, 2, 2, 111, 2, 116, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 112, 110, 117, - 2, 2, 2, 118, 2, 2, 2, 2, 2, 2, + 2, 2, 116, 2, 2, 2, 2, 2, 2, 109, + 110, 2, 2, 112, 2, 117, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 113, 111, 118, + 2, 2, 2, 119, 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, - 113, 2, 114, 100, 2, 2, 2, 2, 2, 2, + 114, 2, 115, 101, 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, 106, 102, 107, 2, 2, 2, 2, 2, + 2, 2, 107, 103, 108, 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, @@ -264,7 +265,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, - 97, 98, 99, 101, 103, 104, 105 + 97, 98, 99, 100, 102, 104, 105, 106 }; #if YYDEBUG != 0 @@ -300,123 +301,123 @@ static const short yyprhs[] = { 0, 792, 794, 796, 798, 799, 801 }; -static const short yyrhs[] = { 120, - 0, 121, 0, 120, 121, 0, 222, 122, 37, 126, - 3, 24, 129, 42, 0, 0, 123, 0, 106, 124, - 107, 0, 106, 107, 0, 125, 0, 124, 125, 0, - 225, 0, 225, 108, 9, 109, 0, 9, 0, 0, - 127, 0, 128, 0, 127, 128, 0, 44, 87, 0, - 55, 87, 0, 23, 87, 0, 46, 56, 0, 14, - 60, 0, 0, 130, 0, 131, 0, 130, 131, 0, - 133, 0, 139, 0, 145, 0, 176, 0, 142, 0, - 0, 41, 14, 132, 0, 185, 0, 57, 134, 110, - 0, 57, 49, 0, 136, 0, 134, 136, 0, 0, - 123, 0, 137, 49, 222, 135, 0, 138, 0, 137, - 111, 138, 0, 222, 0, 222, 106, 107, 0, 225, - 0, 45, 140, 110, 0, 45, 20, 110, 0, 45, - 110, 0, 141, 0, 140, 111, 141, 0, 222, 0, - 222, 106, 107, 0, 225, 0, 0, 222, 144, 3, - 106, 143, 181, 0, 169, 0, 182, 0, 222, 3, - 165, 0, 222, 3, 155, 0, 222, 106, 146, 107, - 3, 165, 0, 147, 0, 146, 111, 147, 0, 222, - 0, 222, 112, 225, 0, 222, 112, 222, 0, 182, - 112, 225, 0, 149, 0, 148, 111, 149, 0, 165, - 0, 225, 0, 0, 151, 0, 152, 0, 151, 111, - 152, 0, 225, 165, 211, 0, 165, 211, 0, 33, - 71, 165, 0, 164, 0, 154, 0, 153, 111, 154, - 0, 225, 165, 0, 164, 0, 165, 0, 31, 106, - 157, 107, 159, 0, 0, 91, 0, 158, 0, 157, - 111, 158, 0, 15, 211, 0, 16, 165, 156, 211, - 0, 16, 174, 211, 0, 16, 175, 211, 0, 15, - 174, 211, 0, 15, 165, 211, 0, 15, 175, 211, - 0, 0, 160, 0, 0, 98, 85, 106, 161, 162, - 107, 0, 163, 0, 162, 163, 0, 4, 0, 17, - 0, 172, 0, 113, 162, 114, 0, 105, 0, 105, - 115, 179, 0, 105, 115, 216, 0, 217, 167, 189, - 0, 0, 166, 168, 0, 184, 0, 30, 106, 153, - 107, 0, 81, 106, 150, 107, 0, 82, 106, 150, - 107, 0, 81, 189, 71, 224, 217, 167, 0, 82, - 189, 71, 224, 217, 167, 0, 21, 0, 21, 38, - 28, 225, 0, 222, 106, 148, 107, 0, 169, 0, - 59, 71, 169, 0, 13, 0, 13, 116, 222, 0, - 223, 116, 222, 0, 13, 116, 225, 0, 223, 0, - 223, 116, 170, 0, 171, 0, 170, 116, 171, 0, - 173, 0, 173, 0, 15, 0, 16, 0, 15, 0, - 174, 116, 15, 0, 174, 116, 16, 0, 14, 0, - 225, 144, 3, 177, 0, 225, 112, 177, 0, 0, - 106, 178, 181, 0, 66, 0, 48, 0, 89, 0, - 5, 0, 7, 0, 180, 0, 216, 0, 179, 0, - 225, 0, 222, 116, 225, 0, 6, 0, 10, 0, - 11, 0, 4, 0, 181, 4, 0, 27, 0, 66, - 0, 79, 0, 183, 0, 70, 84, 0, 68, 54, - 0, 80, 0, 47, 0, 39, 74, 0, 29, 84, - 0, 94, 0, 50, 0, 185, 0, 61, 0, 43, - 0, 25, 84, 0, 182, 0, 183, 213, 0, 26, - 0, 51, 0, 52, 0, 53, 0, 62, 0, 67, - 0, 77, 0, 86, 0, 88, 0, 93, 0, 95, - 0, 96, 0, 97, 0, 69, 0, 102, 0, 103, - 0, 100, 0, 101, 0, 99, 0, 0, 190, 0, - 191, 0, 83, 108, 192, 109, 0, 108, 192, 109, - 0, 191, 108, 192, 109, 0, 193, 0, 193, 111, - 105, 0, 193, 111, 105, 111, 193, 0, 194, 0, - 20, 99, 194, 0, 193, 186, 194, 0, 193, 187, - 194, 0, 194, 188, 194, 0, 197, 108, 192, 109, - 0, 108, 192, 109, 0, 198, 0, 199, 0, 198, - 196, 198, 0, 64, 196, 198, 0, 198, 196, 63, - 0, 64, 196, 63, 0, 205, 0, 200, 0, 0, - 34, 28, 106, 195, 181, 0, 104, 0, 104, 117, - 0, 117, 104, 0, 117, 104, 117, 0, 83, 0, - 49, 0, 48, 0, 89, 0, 216, 0, 180, 0, - 225, 0, 222, 0, 98, 32, 191, 0, 98, 33, - 106, 201, 107, 0, 202, 0, 201, 111, 202, 0, - 105, 0, 225, 189, 203, 0, 0, 204, 0, 76, - 0, 18, 0, 72, 0, 206, 0, 207, 0, 106, - 222, 107, 0, 206, 106, 208, 107, 0, 209, 0, - 208, 111, 209, 0, 118, 210, 0, 118, 116, 210, - 0, 225, 0, 210, 116, 225, 0, 0, 212, 0, - 72, 0, 36, 177, 0, 106, 107, 0, 106, 214, - 107, 0, 215, 0, 214, 111, 215, 0, 225, 0, - 225, 108, 216, 109, 0, 225, 108, 179, 109, 0, - 216, 0, 105, 0, 9, 0, 12, 0, 0, 218, - 0, 219, 221, 0, 113, 220, 9, 114, 0, 0, - 92, 0, 22, 0, 78, 0, 0, 55, 0, 44, - 0, 13, 0, 14, 0, 14, 0, 0, 225, 0, - 8, 0 +static const short yyrhs[] = { 121, + 0, 122, 0, 121, 122, 0, 223, 123, 38, 127, + 3, 25, 130, 43, 0, 0, 124, 0, 107, 125, + 108, 0, 107, 108, 0, 126, 0, 125, 126, 0, + 226, 0, 226, 109, 10, 110, 0, 10, 0, 0, + 128, 0, 129, 0, 128, 129, 0, 45, 88, 0, + 56, 88, 0, 24, 88, 0, 47, 57, 0, 15, + 61, 0, 0, 131, 0, 132, 0, 131, 132, 0, + 134, 0, 140, 0, 146, 0, 177, 0, 143, 0, + 0, 42, 15, 133, 0, 186, 0, 58, 135, 111, + 0, 58, 50, 0, 137, 0, 135, 137, 0, 0, + 124, 0, 138, 50, 223, 136, 0, 139, 0, 138, + 112, 139, 0, 223, 0, 223, 107, 108, 0, 226, + 0, 46, 141, 111, 0, 46, 21, 111, 0, 46, + 111, 0, 142, 0, 141, 112, 142, 0, 223, 0, + 223, 107, 108, 0, 226, 0, 0, 223, 145, 3, + 107, 144, 182, 0, 170, 0, 183, 0, 223, 3, + 166, 0, 223, 3, 156, 0, 223, 107, 147, 108, + 3, 166, 0, 148, 0, 147, 112, 148, 0, 223, + 0, 223, 113, 226, 0, 223, 113, 223, 0, 183, + 113, 226, 0, 150, 0, 149, 112, 150, 0, 166, + 0, 226, 0, 0, 152, 0, 153, 0, 152, 112, + 153, 0, 226, 166, 212, 0, 166, 212, 0, 34, + 72, 166, 0, 165, 0, 155, 0, 154, 112, 155, + 0, 226, 166, 0, 165, 0, 166, 0, 32, 107, + 158, 108, 160, 0, 0, 92, 0, 159, 0, 158, + 112, 159, 0, 16, 212, 0, 17, 166, 157, 212, + 0, 17, 175, 212, 0, 17, 176, 212, 0, 16, + 175, 212, 0, 16, 166, 212, 0, 16, 176, 212, + 0, 0, 161, 0, 0, 99, 86, 107, 162, 163, + 108, 0, 164, 0, 163, 164, 0, 4, 0, 18, + 0, 173, 0, 114, 163, 115, 0, 106, 0, 106, + 116, 180, 0, 106, 116, 217, 0, 218, 168, 190, + 0, 0, 167, 169, 0, 185, 0, 31, 107, 154, + 108, 0, 82, 107, 151, 108, 0, 83, 107, 151, + 108, 0, 82, 190, 72, 225, 218, 168, 0, 83, + 190, 72, 225, 218, 168, 0, 22, 0, 22, 39, + 29, 226, 0, 223, 107, 149, 108, 0, 170, 0, + 60, 72, 170, 0, 14, 0, 14, 117, 223, 0, + 224, 117, 223, 0, 14, 117, 226, 0, 224, 0, + 224, 117, 171, 0, 172, 0, 171, 117, 172, 0, + 174, 0, 174, 0, 16, 0, 17, 0, 16, 0, + 175, 117, 16, 0, 175, 117, 17, 0, 15, 0, + 226, 145, 3, 178, 0, 226, 113, 178, 0, 0, + 107, 179, 182, 0, 67, 0, 49, 0, 90, 0, + 6, 0, 8, 0, 181, 0, 217, 0, 180, 0, + 226, 0, 223, 117, 226, 0, 7, 0, 11, 0, + 12, 0, 5, 0, 182, 5, 0, 28, 0, 67, + 0, 80, 0, 184, 0, 71, 85, 0, 69, 55, + 0, 81, 0, 48, 0, 40, 75, 0, 30, 85, + 0, 95, 0, 51, 0, 186, 0, 62, 0, 44, + 0, 26, 85, 0, 183, 0, 184, 214, 0, 27, + 0, 52, 0, 53, 0, 54, 0, 63, 0, 68, + 0, 78, 0, 87, 0, 89, 0, 94, 0, 96, + 0, 97, 0, 98, 0, 70, 0, 103, 0, 104, + 0, 101, 0, 102, 0, 100, 0, 0, 191, 0, + 192, 0, 84, 109, 193, 110, 0, 109, 193, 110, + 0, 192, 109, 193, 110, 0, 194, 0, 194, 112, + 106, 0, 194, 112, 106, 112, 194, 0, 195, 0, + 21, 100, 195, 0, 194, 187, 195, 0, 194, 188, + 195, 0, 195, 189, 195, 0, 198, 109, 193, 110, + 0, 109, 193, 110, 0, 199, 0, 200, 0, 199, + 197, 199, 0, 65, 197, 199, 0, 199, 197, 64, + 0, 65, 197, 64, 0, 206, 0, 201, 0, 0, + 35, 29, 107, 196, 182, 0, 105, 0, 105, 118, + 0, 118, 105, 0, 118, 105, 118, 0, 84, 0, + 50, 0, 49, 0, 90, 0, 217, 0, 181, 0, + 226, 0, 223, 0, 99, 33, 192, 0, 99, 34, + 107, 202, 108, 0, 203, 0, 202, 112, 203, 0, + 106, 0, 226, 190, 204, 0, 0, 205, 0, 77, + 0, 19, 0, 73, 0, 207, 0, 208, 0, 107, + 223, 108, 0, 207, 107, 209, 108, 0, 210, 0, + 209, 112, 210, 0, 119, 211, 0, 119, 117, 211, + 0, 226, 0, 211, 117, 226, 0, 0, 213, 0, + 73, 0, 37, 178, 0, 107, 108, 0, 107, 215, + 108, 0, 216, 0, 215, 112, 216, 0, 226, 0, + 226, 109, 217, 110, 0, 226, 109, 180, 110, 0, + 217, 0, 106, 0, 10, 0, 13, 0, 0, 219, + 0, 220, 222, 0, 114, 221, 10, 115, 0, 0, + 93, 0, 23, 0, 79, 0, 0, 56, 0, 45, + 0, 14, 0, 15, 0, 15, 0, 0, 226, 0, + 9, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 323, 329, 335, 351, 376, 378, 381, 385, 390, 397, - 405, 410, 414, 423, 425, 433, 437, 445, 449, 452, - 455, 459, 479, 481, 489, 493, 525, 529, 538, 545, - 558, 565, 567, 579, 591, 602, 607, 613, 619, 621, - 624, 635, 641, 647, 654, 660, 668, 672, 675, 682, - 688, 694, 701, 707, 716, 718, 727, 735, 749, 759, - 775, 784, 794, 804, 809, 816, 823, 833, 839, 845, - 849, 872, 874, 876, 882, 888, 896, 902, 909, 914, - 920, 926, 932, 935, 941, 951, 953, 956, 964, 971, - 984, 995, 1005, 1016, 1026, 1037, 1048, 1050, 1055, 1059, - 1064, 1069, 1075, 1079, 1082, 1091, 1096, 1105, 1114, 1125, - 1147, 1154, 1173, 1177, 1183, 1189, 1195, 1205, 1215, 1221, - 1235, 1259, 1266, 1280, 1289, 1299, 1309, 1319, 1327, 1348, - 1357, 1366, 1367, 1369, 1376, 1383, 1389, 1393, 1399, 1419, - 1429, 1437, 1437, 1442, 1447, 1452, 1457, 1461, 1465, 1468, - 1471, 1476, 1488, 1505, 1510, 1515, 1548, 1558, 1572, 1574, - 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, - 1585, 1591, 1593, 1594, 1597, 1604, 1616, 1618, 1622, 1626, - 1627, 1628, 1629, 1630, 1634, 1635, 1636, 1637, 1641, 1642, - 1649, 1649, 1650, 1650, 1651, 1653, 1655, 1660, 1664, 1673, - 1677, 1682, 1686, 1692, 1702, 1706, 1709, 1712, 1715, 1720, - 1729, 1737, 1743, 1749, 1756, 1764, 1772, 1781, 1784, 1787, - 1788, 1798, 1800, 1801, 1802, 1805, 1809, 1814, 1820, 1825, - 1828, 1831, 1844, 1858, 1862, 1867, 1871, 1876, 1883, 1896, - 1898, 1901, 1905, 1908, 1913, 1917, 1925, 1940, 1946, 1953, - 1966, 1978, 1993, 1997, 2014, 2019, 2022, 2027, 2049, 2054, - 2059, 2065, 2071, 2079, 2087, 2095, 2102, 2112, 2117, 2147, - 2149, 2152, 2159, 2165, 2167, 2168, 2169, 2172, 2174, 2175, - 2178, 2183, 2190, 2197, 2199, 2204 + 324, 330, 336, 352, 377, 379, 382, 386, 391, 398, + 406, 411, 415, 424, 426, 434, 438, 446, 450, 453, + 456, 460, 480, 482, 490, 494, 526, 530, 539, 546, + 559, 566, 568, 580, 592, 603, 608, 614, 620, 622, + 625, 636, 642, 648, 655, 661, 669, 673, 676, 683, + 689, 695, 702, 708, 717, 719, 728, 736, 750, 760, + 776, 785, 795, 805, 810, 817, 824, 834, 840, 846, + 850, 873, 875, 877, 883, 889, 897, 903, 910, 915, + 921, 927, 933, 936, 942, 952, 954, 957, 965, 972, + 985, 996, 1006, 1017, 1027, 1038, 1049, 1051, 1056, 1060, + 1065, 1070, 1076, 1081, 1084, 1093, 1098, 1107, 1116, 1127, + 1149, 1156, 1175, 1179, 1185, 1191, 1197, 1207, 1217, 1223, + 1237, 1261, 1268, 1282, 1291, 1301, 1311, 1321, 1329, 1350, + 1359, 1368, 1369, 1371, 1378, 1385, 1391, 1395, 1401, 1421, + 1431, 1439, 1439, 1444, 1449, 1454, 1459, 1463, 1467, 1470, + 1473, 1478, 1490, 1507, 1512, 1517, 1550, 1560, 1574, 1576, + 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, + 1587, 1593, 1595, 1596, 1599, 1606, 1618, 1620, 1624, 1628, + 1629, 1630, 1631, 1632, 1636, 1637, 1638, 1639, 1643, 1644, + 1651, 1651, 1652, 1652, 1653, 1655, 1657, 1662, 1666, 1675, + 1679, 1684, 1688, 1694, 1704, 1708, 1711, 1714, 1717, 1722, + 1731, 1739, 1745, 1751, 1758, 1766, 1774, 1783, 1786, 1789, + 1790, 1800, 1802, 1803, 1804, 1807, 1811, 1816, 1822, 1827, + 1830, 1833, 1846, 1860, 1864, 1869, 1873, 1878, 1885, 1898, + 1900, 1903, 1907, 1910, 1915, 1919, 1927, 1942, 1948, 1955, + 1968, 1980, 1995, 1999, 2016, 2021, 2024, 2029, 2051, 2056, + 2061, 2067, 2073, 2081, 2089, 2097, 2104, 2114, 2119, 2149, + 2151, 2154, 2161, 2167, 2169, 2170, 2171, 2174, 2176, 2177, + 2180, 2185, 2192, 2199, 2201, 2206 }; #endif @@ -424,10 +425,10 @@ static const short yyrline[] = { 0, #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ", -"TOK_opaque","TOK_bstring","TOK_cstring","TOK_hstring","TOK_identifier","TOK_number", -"TOK_tuple","TOK_quadruple","TOK_number_negative","TOK_typereference","TOK_capitalreference", -"TOK_typefieldreference","TOK_valuefieldreference","TOK_Literal","TOK_ABSENT", -"TOK_ABSTRACT_SYNTAX","TOK_ALL","TOK_ANY","TOK_APPLICATION","TOK_AUTOMATIC", +"TOK_whitespace","TOK_opaque","TOK_bstring","TOK_cstring","TOK_hstring","TOK_identifier", +"TOK_number","TOK_tuple","TOK_quadruple","TOK_number_negative","TOK_typereference", +"TOK_capitalreference","TOK_typefieldreference","TOK_valuefieldreference","TOK_Literal", +"TOK_ABSENT","TOK_ABSTRACT_SYNTAX","TOK_ALL","TOK_ANY","TOK_APPLICATION","TOK_AUTOMATIC", "TOK_BEGIN","TOK_BIT","TOK_BMPString","TOK_BOOLEAN","TOK_BY","TOK_CHARACTER", "TOK_CHOICE","TOK_CLASS","TOK_COMPONENT","TOK_COMPONENTS","TOK_CONSTRAINED", "TOK_CONTAINING","TOK_DEFAULT","TOK_DEFINITIONS","TOK_DEFINED","TOK_EMBEDDED", @@ -471,35 +472,35 @@ static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ", #endif static const short yyr1[] = { 0, - 119, 120, 120, 121, 122, 122, 123, 123, 124, 124, - 125, 125, 125, 126, 126, 127, 127, 128, 128, 128, - 128, 128, 129, 129, 130, 130, 131, 131, 131, 131, - 131, 132, 131, 131, 133, 133, 134, 134, 135, 135, - 136, 137, 137, 138, 138, 138, 139, 139, 139, 140, - 140, 141, 141, 141, 143, 142, 144, 144, 145, 145, - 145, 146, 146, 147, 147, 147, 147, 148, 148, 149, - 149, 150, 150, 151, 151, 152, 152, 152, 152, 153, - 153, 154, 154, 154, 155, 156, 156, 157, 157, 158, - 158, 158, 158, 158, 158, 158, 159, 159, 161, 160, - 162, 162, 163, 163, 163, 163, 164, 164, 164, 165, - 166, 167, 168, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 168, 169, 169, 169, 169, 169, 169, 170, - 170, 171, 172, 173, 173, 174, 174, 174, 175, 176, - 177, 178, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 179, 179, 180, 180, 180, 181, 181, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 183, 183, 183, 184, 184, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 186, 186, 187, 187, 188, 189, 189, 190, 190, 191, - 191, 192, 192, 192, 193, 193, 193, 193, 193, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 195, - 194, 196, 196, 196, 196, 197, 197, 198, 198, 198, - 198, 198, 199, 200, 200, 201, 201, 202, 202, 203, - 203, 204, 204, 204, 205, 205, 206, 207, 208, 208, - 209, 209, 210, 210, 211, 211, 212, 212, 213, 213, - 214, 214, 215, 215, 215, 215, 215, 216, 216, 217, - 217, 218, 219, 220, 220, 220, 220, 221, 221, 221, - 222, 222, 223, 224, 224, 225 + 120, 121, 121, 122, 123, 123, 124, 124, 125, 125, + 126, 126, 126, 127, 127, 128, 128, 129, 129, 129, + 129, 129, 130, 130, 131, 131, 132, 132, 132, 132, + 132, 133, 132, 132, 134, 134, 135, 135, 136, 136, + 137, 138, 138, 139, 139, 139, 140, 140, 140, 141, + 141, 142, 142, 142, 144, 143, 145, 145, 146, 146, + 146, 147, 147, 148, 148, 148, 148, 149, 149, 150, + 150, 151, 151, 152, 152, 153, 153, 153, 153, 154, + 154, 155, 155, 155, 156, 157, 157, 158, 158, 159, + 159, 159, 159, 159, 159, 159, 160, 160, 162, 161, + 163, 163, 164, 164, 164, 164, 165, 165, 165, 166, + 167, 168, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 170, 170, 170, 170, 170, 170, 171, + 171, 172, 173, 174, 174, 175, 175, 175, 176, 177, + 178, 179, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 180, 180, 181, 181, 181, 182, 182, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 184, 184, 184, 185, 185, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 187, 187, 188, 188, 189, 190, 190, 191, 191, 192, + 192, 193, 193, 193, 194, 194, 194, 194, 194, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 196, + 195, 197, 197, 197, 197, 198, 198, 199, 199, 199, + 199, 199, 200, 201, 201, 202, 202, 203, 203, 204, + 204, 205, 205, 205, 206, 206, 207, 208, 209, 209, + 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, + 215, 215, 216, 216, 216, 216, 216, 217, 217, 218, + 218, 219, 220, 221, 221, 221, 221, 222, 222, 222, + 223, 223, 224, 225, 225, 226 }; static const short yyr2[] = { 0, @@ -596,220 +597,228 @@ static const short yydefgoto[] = { 444, 146, 151, 265, 105, 355, 266 }; -static const short yypact[] = { 76, --32768,-32768, 76,-32768, -55,-32768, 23, 59,-32768,-32768, --32768,-32768, 31,-32768, 32, 350,-32768,-32768, 101, 120, - 136, 144, 131, 152, 192, 350,-32768, 139,-32768,-32768, --32768,-32768,-32768, 233,-32768,-32768, 394,-32768, 275, 34, --32768,-32768,-32768, 133,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 258, 394,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 224, 547,-32768, 197,-32768, 63,-32768, - 203,-32768,-32768, 45,-32768, 24,-32768, 205,-32768,-32768, --32768, 21, 206,-32768, 240,-32768, 254, 266,-32768,-32768, --32768,-32768,-32768, 288, 260,-32768,-32768,-32768, 623, 343, --32768,-32768,-32768,-32768, 236, 352,-32768,-32768,-32768, 248, - 251,-32768,-32768, 76, 248, 252, 257, 106,-32768,-32768, --32768,-32768, 43, 248,-32768,-32768,-32768,-32768,-32768, 100, --32768, 249, 256, 261, 300, 158,-32768,-32768, -55,-32768, --32768, 189,-32768,-32768,-32768, 351, 471, -27,-32768,-32768, --32768,-32768,-32768, 363, 623, 361, 248,-32768,-32768,-32768, - 269,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 277, - 262,-32768,-32768, 70, 62, 108,-32768, 263, 80, 264, - 357, 291, 327, -13, -9,-32768,-32768,-32768, 293,-32768, - 294, 295, 323,-32768,-32768, 301, 297,-32768,-32768,-32768, --32768, 407, 250, 407, 361, 158,-32768,-32768, 158,-32768, - 14, 7, 14,-32768,-32768, 324, 7, 14, 316, 189, --32768, 388, 8, 265, 47, 353, 47, 354, 52,-32768, - 9, 323, 328, 395,-32768,-32768, -16,-32768,-32768, 255, - 76, 323,-32768, 313, 99, 331, 318, -16,-32768,-32768, --32768, 326,-32768,-32768,-32768,-32768, 323,-32768,-32768, 429, --32768, 429,-32768,-32768,-32768,-32768, 333,-32768,-32768,-32768, - 14,-32768,-32768, 355,-32768,-32768,-32768, 361, 321, 118, --32768,-32768,-32768, 297,-32768, 366, 334, 337,-32768,-32768, - 14, 297, 361, 335, 361,-32768,-32768, 162,-32768,-32768, - 330, 173,-32768,-32768,-32768, 340, 370, 338, 341, 346, - 234, 344, 348, 358, 364,-32768,-32768,-32768,-32768,-32768, - 359, 370, 370,-32768, 370, 323, 380, 339, 365,-32768, --32768,-32768,-32768, 349,-32768, 246,-32768, 8,-32768, 297, --32768, 38,-32768, 14, 297,-32768,-32768, 297,-32768, 57, - 246,-32768, 9,-32768,-32768,-32768,-32768, 345,-32768,-32768, - 301, 2,-32768,-32768, 356,-32768,-32768,-32768, 368,-32768, --32768, 17, 188,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 372, 374,-32768, 407, --32768,-32768, 195,-32768, -27, 323,-32768, 361, 377,-32768, --32768, 339, 11,-32768,-32768,-32768,-32768, 429,-32768, 2, - 121, 225, 377, 361,-32768,-32768,-32768, 11, 19,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 5, --32768,-32768,-32768, 460, 466,-32768 +static const short yypact[] = { 223, +-32768,-32768, 223,-32768, -76,-32768, 30, 24,-32768,-32768, +-32768,-32768, 34,-32768, -61, 247,-32768,-32768, 61, 27, + 52, 71, 55, 77, 99, 247,-32768, 76,-32768,-32768, +-32768,-32768,-32768, 181,-32768,-32768, 428,-32768, 187, 49, +-32768,-32768,-32768, 154,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 176, 428,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 352, 581,-32768, 102,-32768, 199,-32768, + 117,-32768,-32768, 59,-32768, -26,-32768, 120,-32768,-32768, +-32768, -15, 112,-32768, 179,-32768, 193, 165,-32768,-32768, +-32768,-32768,-32768, 211, 208,-32768,-32768,-32768, 657, 266, +-32768,-32768,-32768,-32768, 169, 299,-32768,-32768,-32768, 286, + 200,-32768,-32768, 223, 286, 206, 210, 3,-32768,-32768, +-32768,-32768, 45, 286,-32768,-32768,-32768,-32768,-32768, -23, +-32768, 224, 227, 239, 319, 184,-32768,-32768, -76,-32768, +-32768, 312,-32768,-32768,-32768, 340, 505, 57,-32768,-32768, +-32768,-32768,-32768, 354, 657, 355, 286,-32768,-32768,-32768, + 246,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 259, + 264,-32768,-32768, 168, 37, 35,-32768, 268, 65, 274, + 345, 278, 314, 116, 170,-32768,-32768,-32768, 280,-32768, + 281, 282, 166,-32768,-32768, 285, 275,-32768,-32768,-32768, +-32768, 385, 326, 385, 355, 184,-32768,-32768, 184,-32768, + 98, 94, 98,-32768,-32768, 303, 94, 98, 298, 312, +-32768, 369, 7, 334, 16, 330, 16, 335, 56,-32768, + 14, 166, 310, 380,-32768,-32768, -25,-32768,-32768, 318, + 223, 166,-32768, 301, 203, 324, 316, -25,-32768,-32768, +-32768, 305,-32768,-32768,-32768,-32768, 166,-32768,-32768, 421, +-32768, 421,-32768,-32768,-32768,-32768, 344,-32768,-32768,-32768, + 98,-32768,-32768, 341,-32768,-32768,-32768, 355, 313, 131, +-32768,-32768,-32768, 275,-32768, 356, 323, 322,-32768,-32768, + 98, 275, 355, 327, 355,-32768,-32768, 141,-32768,-32768, + 329, 155,-32768,-32768,-32768, 342, 309, 333, 336, 331, + 235, 347, 337, 343, 348,-32768,-32768,-32768,-32768,-32768, + 339, 309, 309,-32768, 309, 166, 248, 338, 350,-32768, +-32768,-32768,-32768, 346,-32768, 317,-32768, 7,-32768, 275, +-32768, 12,-32768, 98, 275,-32768,-32768, 275,-32768, 68, + 317,-32768, 14,-32768,-32768,-32768,-32768, 349,-32768,-32768, + 285, 0,-32768,-32768, 351,-32768,-32768,-32768, 358,-32768, +-32768, 6, 177,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 359, 361,-32768, 385, +-32768,-32768, 201,-32768, 57, 166,-32768, 355, 360,-32768, +-32768, 338, 43,-32768,-32768,-32768,-32768, 421,-32768, 0, + 10, 267, 360, 355,-32768,-32768,-32768, 43, 38,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 18, +-32768,-32768,-32768, 461, 462,-32768 }; static const short yypgoto[] = {-32768, --32768, 467,-32768, 336,-32768, 459,-32768,-32768, 453,-32768, --32768, 430,-32768,-32768,-32768,-32768, 414,-32768, 379,-32768, --32768, 385,-32768,-32768, 434,-32768,-32768, 347,-32768, 140, - 267,-32768, 153,-32768, 159,-32768,-32768,-32768, 276,-32768, --32768,-32768, 81, -250, -228, -80,-32768, -44,-32768, -103, --32768, 298,-32768, -111, 332, 342,-32768, -3,-32768, -278, - -107, -211, 86, 369,-32768, 26,-32768,-32768,-32768, -187, --32768, 186, -64, 107, -141,-32768, 268,-32768, -259,-32768, --32768,-32768, 92,-32768,-32768,-32768,-32768,-32768,-32768, 103, - 111, -209,-32768,-32768,-32768, 160, -125, -50,-32768,-32768, --32768,-32768, 1,-32768, 220, -7 +-32768, 463,-32768, 325,-32768, 452,-32768,-32768, 446,-32768, +-32768, 417,-32768,-32768,-32768,-32768, 401,-32768, 363,-32768, +-32768, 366,-32768,-32768, 414,-32768,-32768, 328,-32768, 121, + 250,-32768, 133,-32768, 140,-32768,-32768,-32768, 260,-32768, +-32768,-32768, 64, -285, -228, -80,-32768, -22,-32768, -137, +-32768, 276,-32768, -115, 308, 315,-32768, -31,-32768, -207, + -109, -211, -71, 357,-32768, -5,-32768,-32768,-32768, -187, +-32768, 172, -133, 89, -45,-32768, 241,-32768, -242,-32768, +-32768,-32768, 81,-32768,-32768,-32768,-32768,-32768,-32768, 85, + 95, -209,-32768,-32768,-32768, 142, -125, -148,-32768,-32768, +-32768,-32768, 1,-32768, 202, -7 }; -#define YYLAST 720 +#define YYLAST 755 static const short yytable[] = { 15, - 5, 120, 272, 5, 292, 15, 236, 238, 426, 10, - 179, 276, 278, 279, 426, 10, 10, 282, 283, 159, - 160, 427, 426, 163, 10, 159, 160, 427, 178, 65, - 10, 11, 72, 159, 160, 427, 79, 64, 10, 11, - 71, 10, 219, 197, 78, 10, 1, 2, 65, 219, - 7, 117, 10, 67, 10, 202, 64, 1, 2, 10, - 168, 370, 63, 171, 10, 168, 79, 387, 171, 202, - 296, 343, 114, 202, 78, 217, 218, 381, 220, 296, - 203, 63, 397, 217, 218, 220, 149, 319, 1, 2, - 179, 353, 235, 179, 203, 16, 237, 150, 203, 133, - 320, 163, 72, 221, 226, 219, 402, 79, 178, 28, - 71, 178, 289, 310, 139, 78, 153, 428, 443, 292, - 118, 118, 277, 428, 152, 441, 268, 143, 181, 12, - 295, 428, 408, 118, 115, 164, 180, 17, 434, 19, - 10, 220, 289, 68, 393, 1, 2, 201, 209, 211, - 118, 289, 293, -72, 112, 133, 306, 210, 307, 118, - 314, 306, 165, 166, 167, 10, 168, 169, 170, 171, - 1, 2, 109, 110, 118, 365, -255, 316, 442, 29, - -255, 73, 118, 144, 132, -281, 32, 325, 418, 442, - 376, 377, 435, 378, 34, 124, 436, 145, 327, 328, - 329, 330, 339, 184, 185, 172, 154, 273, 181, 331, - 155, 181, 274, 349, 229, 275, 180, 421, 230, 180, - 388, 354, 30, 173, 347, 294, 82, 302, 348, 302, - 31, 311, 198, 315, 310, 398, 83, 84, 33, 166, - 132, 10, 168, 169, 170, 171, 174, 36, 85, 38, - 86, 324, 87, 10, 168, 10, 37, 171, 1, 2, - 1, 2, 88, 175, 159, 160, 89, 293, 359, 391, - 90, 379, 360, 91, 41, 42, 43, 83, 84, 362, - 345, 245, 314, 363, 92, 45, 322, 323, 66, 93, - 46, 94, 47, 95, 411, 356, 369, 356, 412, 80, - 48, 419, 96, 97, 394, 420, 108, 395, 111, 49, - 116, 50, 1, 2, 159, 160, 51, 98, 52, 53, - 54, 124, 249, 125, 327, 328, 329, 330, 166, 99, - 10, 168, 169, 170, 171, 1, 2, 126, 389, 127, - 294, 128, 243, 129, 302, 134, 180, 341, 342, 414, - 415, 135, 311, 389, 136, 315, 244, 138, 141, 188, - 156, 180, 142, 20, 405, 207, 158, 157, 10, -282, - 245, 246, 21, 216, 410, 166, 231, 10, 168, 169, - 170, 171, 1, 2, 213, 166, 247, 10, 168, 169, - 170, 171, 215, 22, 232, 23, 233, 234, 239, 241, - 410, 10, 242, 244, 24, 248, 1, 2, 267, 118, - 269, 249, 405, 284, 280, 288, 439, 245, 246, 38, - 250, 326, 318, 303, 305, 336, 317, 245, 251, 334, - 252, 338, 340, 247, 39, 346, 350, 361, 40, 344, - 351, 357, 380, 366, 41, 42, 43, 352, 364, 368, - 44, 203, 248, 372, 386, 45, 382, 367, 249, 445, - 46, 401, 47, 375, 373, 446, 406, 250, 249, 6, - 48, 18, 374, 385, 182, 251, 407, 252, 35, 49, - 416, 50, 417, 189, 190, 81, 51, 113, 52, 53, - 54, 191, 424, 140, 137, 85, 38, 86, 106, 87, - 192, 208, 399, 304, 392, 287, 390, 371, 440, 88, - 271, 433, 422, 89, 425, 199, 227, 90, 423, 396, - 91, 41, 42, 43, 358, 337, 228, 0, 0, 193, - 0, 92, 45, 0, 0, 0, 93, 46, 94, 47, - 95, 0, 0, 0, 0, 0, 0, 48, 0, 96, - 97, 194, 195, 0, 0, 0, 49, 0, 50, 83, - 84, 0, 0, 51, 98, 52, 53, 54, 0, 0, - 0, 85, 38, 86, 0, 87, 0, 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, 0, 0, 92, 45, 0, - 0, 0, 93, 46, 94, 47, 95, 0, 0, 0, - 0, 0, 0, 48, 0, 96, 97, 0, 0, 0, - 0, 0, 49, 0, 50, 1, 2, 0, 0, 51, - 98, 52, 53, 54, 0, 0, 0, 85, 38, 86, - 0, 87, 0, 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, 0, 0, 92, 45, 0, 0, 0, 93, 46, - 94, 47, 95, 0, 0, 0, 0, 0, 0, 48, - 0, 96, 97, 0, 0, 0, 0, 0, 49, 0, - 50, 0, 0, 0, 0, 51, 98, 52, 53, 54 + 5, 120, 272, 5, 292, 15, 236, 238, 10, 197, + 179, 276, 278, 279, 10, 10, 117, 282, 283, 163, + 10, 426, 10, 114, 10, 143, 178, 132, 434, 65, + 7, 63, 72, 159, 160, 427, 79, 64, 10, 11, + 71, 426, 10, 11, 78, 296, 426, 19, 65, 296, + 63, 217, 218, 159, 160, 427, 64, 10, 159, 160, + 427, 16, 1, 2, 10, 168, 79, 10, 171, 67, + 28, 343, 1, 2, 78, 198, 10, 168, 370, 319, + 171, 144, 435, 132, 154, 115, 436, 29, 155, 149, + 179, 353, 320, 179, 381, 145, 295, 163, 118, 133, + 150, 34, 72, 221, 226, 402, 178, 79, 316, 178, + 71, 32, 289, 310, 139, 78, 153, 289, 325, 292, + 118, 289, 408, -72, 152, 118, 268, 118, 181, 118, + 219, 428, 443, 339, 219, 164, 180, 12, 387, 30, + 202, 17, 229, 442, 393, 441, 230, 201, 209, 211, + 118, 428, 293, 397, 442, 133, 428, 210, 31, 68, + 314, 306, 10, 307, 33, 203, 220, 1, 2, 112, + 220, -281, 166, 306, 10, 168, 169, 170, 171, 1, + 2, 124, 217, 218, 274, 36, 243, 275, 418, 165, + 166, 167, 10, 168, 169, 170, 171, 1, 2, 202, + 244, 66, 379, 73, 219, 37, 394, 273, 181, 395, + 277, 181, 108, 349, 245, 246, 180, 421, 80, 180, + 388, 354, 235, 111, 203, 294, 116, 302, 124, 302, + 247, 311, 172, 315, 310, 398, 1, 2, 347, 127, + 220, 166, 348, 10, 168, 169, 170, 171, 359, 248, + 173, 324, 360, 202, 166, 249, 10, 168, 169, 170, + 171, 20, 362, 125, 250, 128, 363, 293, 134, 391, + 21, 365, 251, 174, 252, -255, 237, 126, 203, -255, + 345, 118, 314, 245, 411, 135, 376, 377, 412, 378, + 175, 22, 129, 23, 10, 356, 245, 356, 369, 1, + 2, 136, 24, 327, 328, 329, 330, 138, 419, 109, + 110, 380, 420, 141, 331, 166, 142, 10, 168, 169, + 170, 171, 1, 2, 249, 10, 168, 184, 185, 171, + 1, 2, 1, 2, 159, 160, 156, 249, 389, 157, + 294, 159, 160, 244, 302, 158, 180, 83, 84, 188, + 322, 323, 311, 389, 82, 315, 207, 245, 246, 341, + 342, 180, 213, 10, 405, 83, 84, 327, 328, 329, + 330, 414, 415, 247, 410, 215, 216, 85, 38, 86, + -282, 87, 231, 232, 233, 234, 239, 241, 118, 269, + 242, 88, 248, 267, 280, 89, 284, 288, 249, 90, + 410, 303, 91, 41, 42, 43, 305, 250, 318, 317, + 326, 338, 405, 92, 45, 251, 439, 252, 93, 46, + 94, 47, 95, 334, 336, 340, 344, 350, 346, 48, + 351, 96, 97, 352, 357, 368, 10, 361, 49, 366, + 50, 1, 2, 372, 375, 51, 98, 52, 53, 54, + 373, 364, 386, 367, 38, 203, 382, 374, 99, 385, + 445, 446, 406, 182, 18, 6, 401, 407, 416, 39, + 417, 35, 81, 40, 113, 137, 424, 140, 106, 41, + 42, 43, 208, 399, 392, 44, 304, 390, 271, 287, + 45, 440, 227, 371, 422, 46, 425, 47, 337, 228, + 433, 396, 423, 199, 0, 48, 358, 0, 0, 0, + 0, 0, 0, 0, 49, 0, 50, 0, 189, 190, + 0, 51, 0, 52, 53, 54, 191, 0, 0, 0, + 85, 38, 86, 0, 87, 192, 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, 193, 0, 92, 45, 0, 0, + 0, 93, 46, 94, 47, 95, 0, 0, 0, 0, + 0, 0, 48, 0, 96, 97, 194, 195, 0, 0, + 0, 49, 0, 50, 83, 84, 0, 0, 51, 98, + 52, 53, 54, 0, 0, 0, 85, 38, 86, 0, + 87, 0, 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, + 0, 0, 92, 45, 0, 0, 0, 93, 46, 94, + 47, 95, 0, 0, 0, 0, 0, 0, 48, 0, + 96, 97, 0, 0, 0, 0, 0, 49, 0, 50, + 1, 2, 0, 0, 51, 98, 52, 53, 54, 0, + 0, 0, 85, 38, 86, 0, 87, 0, 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, 0, 0, 92, 45, + 0, 0, 0, 93, 46, 94, 47, 95, 0, 0, + 0, 0, 0, 0, 48, 0, 96, 97, 0, 0, + 0, 0, 0, 49, 0, 50, 0, 0, 0, 0, + 51, 98, 52, 53, 54 }; static const short yycheck[] = { 7, - 0, 82, 214, 3, 233, 13, 194, 195, 4, 8, - 136, 221, 222, 223, 4, 8, 8, 227, 228, 15, - 16, 17, 4, 135, 8, 15, 16, 17, 136, 37, - 8, 9, 40, 15, 16, 17, 44, 37, 8, 9, - 40, 8, 36, 147, 44, 8, 13, 14, 56, 36, - 106, 31, 8, 20, 8, 83, 56, 13, 14, 8, - 9, 321, 37, 12, 8, 9, 74, 346, 12, 83, - 33, 281, 49, 83, 74, 14, 15, 337, 72, 33, - 108, 56, 361, 14, 15, 72, 44, 104, 13, 14, - 216, 301, 106, 219, 108, 37, 106, 55, 108, 99, - 117, 213, 110, 184, 185, 36, 105, 115, 216, 9, - 110, 219, 105, 239, 114, 115, 124, 113, 114, 348, - 113, 113, 116, 113, 124, 107, 207, 22, 136, 107, - 234, 113, 116, 113, 111, 135, 136, 107, 18, 108, - 8, 72, 105, 110, 354, 13, 14, 147, 156, 157, - 113, 105, 233, 107, 110, 155, 105, 157, 107, 113, - 241, 105, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 110, 111, 113, 317, 107, 242, 429, 60, - 111, 49, 113, 78, 99, 106, 56, 252, 400, 440, - 332, 333, 72, 335, 3, 116, 76, 92, 100, 101, - 102, 103, 267, 15, 16, 48, 107, 215, 216, 111, - 111, 219, 216, 294, 107, 219, 216, 405, 111, 219, - 346, 302, 87, 66, 107, 233, 3, 235, 111, 237, - 87, 239, 147, 241, 360, 361, 13, 14, 87, 6, - 155, 8, 9, 10, 11, 12, 89, 109, 25, 26, - 27, 251, 29, 8, 9, 8, 24, 12, 13, 14, - 13, 14, 39, 106, 15, 16, 43, 348, 107, 350, - 47, 336, 111, 50, 51, 52, 53, 13, 14, 107, - 288, 48, 363, 111, 61, 62, 32, 33, 14, 66, - 67, 68, 69, 70, 107, 303, 63, 305, 111, 42, - 77, 107, 79, 80, 355, 111, 110, 358, 106, 86, - 106, 88, 13, 14, 15, 16, 93, 94, 95, 96, - 97, 116, 89, 84, 100, 101, 102, 103, 6, 106, - 8, 9, 10, 11, 12, 13, 14, 84, 346, 74, - 348, 54, 20, 84, 352, 3, 346, 15, 16, 394, - 395, 116, 360, 361, 3, 363, 34, 107, 107, 9, - 112, 361, 106, 14, 372, 3, 106, 112, 8, 106, - 48, 49, 23, 112, 382, 6, 114, 8, 9, 10, - 11, 12, 13, 14, 116, 6, 64, 8, 9, 10, - 11, 12, 116, 44, 38, 46, 106, 71, 106, 106, - 408, 8, 108, 34, 55, 83, 13, 14, 108, 113, - 4, 89, 420, 98, 91, 28, 424, 48, 49, 26, - 98, 109, 28, 71, 71, 108, 99, 48, 106, 99, - 108, 106, 4, 64, 41, 115, 71, 108, 45, 85, - 107, 107, 63, 106, 51, 52, 53, 111, 109, 104, - 57, 108, 83, 106, 106, 62, 118, 117, 89, 0, - 67, 117, 69, 105, 107, 0, 111, 98, 89, 3, - 77, 13, 109, 109, 139, 106, 109, 108, 26, 86, - 109, 88, 109, 13, 14, 56, 93, 74, 95, 96, - 97, 21, 116, 115, 110, 25, 26, 27, 65, 29, - 30, 155, 363, 237, 352, 230, 348, 322, 428, 39, - 213, 420, 406, 43, 412, 147, 185, 47, 408, 360, - 50, 51, 52, 53, 305, 258, 185, -1, -1, 59, - -1, 61, 62, -1, -1, -1, 66, 67, 68, 69, - 70, -1, -1, -1, -1, -1, -1, 77, -1, 79, - 80, 81, 82, -1, -1, -1, 86, -1, 88, 13, - 14, -1, -1, 93, 94, 95, 96, 97, -1, -1, - -1, 25, 26, 27, -1, 29, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 39, -1, -1, -1, 43, - -1, -1, -1, 47, -1, -1, 50, 51, 52, 53, - -1, -1, -1, -1, -1, -1, -1, 61, 62, -1, - -1, -1, 66, 67, 68, 69, 70, -1, -1, -1, - -1, -1, -1, 77, -1, 79, 80, -1, -1, -1, - -1, -1, 86, -1, 88, 13, 14, -1, -1, 93, - 94, 95, 96, 97, -1, -1, -1, 25, 26, 27, - -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 39, -1, -1, -1, 43, -1, -1, -1, 47, - -1, -1, 50, 51, 52, 53, -1, -1, -1, -1, - -1, -1, -1, 61, 62, -1, -1, -1, 66, 67, - 68, 69, 70, -1, -1, -1, -1, -1, -1, 77, - -1, 79, 80, -1, -1, -1, -1, -1, 86, -1, - 88, -1, -1, -1, -1, 93, 94, 95, 96, 97 + 0, 82, 214, 3, 233, 13, 194, 195, 9, 147, + 136, 221, 222, 223, 9, 9, 32, 227, 228, 135, + 9, 4, 9, 50, 9, 23, 136, 99, 19, 37, + 107, 37, 40, 16, 17, 18, 44, 37, 9, 10, + 40, 4, 9, 10, 44, 34, 4, 109, 56, 34, + 56, 15, 16, 16, 17, 18, 56, 9, 16, 17, + 18, 38, 14, 15, 9, 10, 74, 9, 13, 21, + 10, 281, 14, 15, 74, 147, 9, 10, 321, 105, + 13, 79, 73, 155, 108, 112, 77, 61, 112, 45, + 216, 301, 118, 219, 337, 93, 234, 213, 114, 99, + 56, 3, 110, 184, 185, 106, 216, 115, 242, 219, + 110, 57, 106, 239, 114, 115, 124, 106, 252, 348, + 114, 106, 117, 108, 124, 114, 207, 114, 136, 114, + 37, 114, 115, 267, 37, 135, 136, 108, 346, 88, + 84, 108, 108, 429, 354, 108, 112, 147, 156, 157, + 114, 114, 233, 361, 440, 155, 114, 157, 88, 111, + 241, 106, 9, 108, 88, 109, 73, 14, 15, 111, + 73, 107, 7, 106, 9, 10, 11, 12, 13, 14, + 15, 117, 15, 16, 216, 110, 21, 219, 400, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 84, + 35, 15, 336, 50, 37, 25, 355, 215, 216, 358, + 117, 219, 111, 294, 49, 50, 216, 405, 43, 219, + 346, 302, 107, 107, 109, 233, 107, 235, 117, 237, + 65, 239, 49, 241, 360, 361, 14, 15, 108, 75, + 73, 7, 112, 9, 10, 11, 12, 13, 108, 84, + 67, 251, 112, 84, 7, 90, 9, 10, 11, 12, + 13, 15, 108, 85, 99, 55, 112, 348, 3, 350, + 24, 317, 107, 90, 109, 108, 107, 85, 109, 112, + 288, 114, 363, 49, 108, 117, 332, 333, 112, 335, + 107, 45, 85, 47, 9, 303, 49, 305, 64, 14, + 15, 3, 56, 101, 102, 103, 104, 108, 108, 111, + 112, 64, 112, 108, 112, 7, 107, 9, 10, 11, + 12, 13, 14, 15, 90, 9, 10, 16, 17, 13, + 14, 15, 14, 15, 16, 17, 113, 90, 346, 113, + 348, 16, 17, 35, 352, 107, 346, 14, 15, 10, + 33, 34, 360, 361, 3, 363, 3, 49, 50, 16, + 17, 361, 117, 9, 372, 14, 15, 101, 102, 103, + 104, 394, 395, 65, 382, 117, 113, 26, 27, 28, + 107, 30, 115, 39, 107, 72, 107, 107, 114, 5, + 109, 40, 84, 109, 92, 44, 99, 29, 90, 48, + 408, 72, 51, 52, 53, 54, 72, 99, 29, 100, + 110, 107, 420, 62, 63, 107, 424, 109, 67, 68, + 69, 70, 71, 100, 109, 5, 86, 72, 116, 78, + 108, 80, 81, 112, 108, 105, 9, 109, 87, 107, + 89, 14, 15, 107, 106, 94, 95, 96, 97, 98, + 108, 110, 107, 118, 27, 109, 119, 110, 107, 110, + 0, 0, 112, 139, 13, 3, 118, 110, 110, 42, + 110, 26, 56, 46, 74, 110, 117, 115, 65, 52, + 53, 54, 155, 363, 352, 58, 237, 348, 213, 230, + 63, 428, 185, 322, 406, 68, 412, 70, 258, 185, + 420, 360, 408, 147, -1, 78, 305, -1, -1, -1, + -1, -1, -1, -1, 87, -1, 89, -1, 14, 15, + -1, 94, -1, 96, 97, 98, 22, -1, -1, -1, + 26, 27, 28, -1, 30, 31, -1, -1, -1, -1, + -1, -1, -1, -1, 40, -1, -1, -1, 44, -1, + -1, -1, 48, -1, -1, 51, 52, 53, 54, -1, + -1, -1, -1, -1, 60, -1, 62, 63, -1, -1, + -1, 67, 68, 69, 70, 71, -1, -1, -1, -1, + -1, -1, 78, -1, 80, 81, 82, 83, -1, -1, + -1, 87, -1, 89, 14, 15, -1, -1, 94, 95, + 96, 97, 98, -1, -1, -1, 26, 27, 28, -1, + 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 40, -1, -1, -1, 44, -1, -1, -1, 48, -1, + -1, 51, 52, 53, 54, -1, -1, -1, -1, -1, + -1, -1, 62, 63, -1, -1, -1, 67, 68, 69, + 70, 71, -1, -1, -1, -1, -1, -1, 78, -1, + 80, 81, -1, -1, -1, -1, -1, 87, -1, 89, + 14, 15, -1, -1, 94, 95, 96, 97, 98, -1, + -1, -1, 26, 27, 28, -1, 30, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, + 44, -1, -1, -1, 48, -1, -1, 51, 52, 53, + 54, -1, -1, -1, -1, -1, -1, -1, 62, 63, + -1, -1, -1, 67, 68, 69, 70, 71, -1, -1, + -1, -1, -1, -1, 78, -1, 80, 81, -1, -1, + -1, -1, -1, 87, -1, 89, -1, -1, -1, -1, + 94, 95, 96, 97, 98 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" @@ -1355,13 +1364,13 @@ yyreduce: switch (yyn) { case 1: -#line 324 "asn1p_y.y" +#line 325 "asn1p_y.y" { *(void **)param = yyvsp[0].a_grammar; ; break;} case 2: -#line 330 "asn1p_y.y" +#line 331 "asn1p_y.y" { yyval.a_grammar = asn1p_new(); checkmem(yyval.a_grammar); @@ -1369,14 +1378,14 @@ case 2: ; break;} case 3: -#line 335 "asn1p_y.y" +#line 336 "asn1p_y.y" { yyval.a_grammar = yyvsp[-1].a_grammar; TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next); ; break;} case 4: -#line 356 "asn1p_y.y" +#line 357 "asn1p_y.y" { if(yyvsp[-1].a_module) { @@ -1393,27 +1402,27 @@ case 4: ; break;} case 5: -#line 377 "asn1p_y.y" +#line 378 "asn1p_y.y" { yyval.a_oid = 0; ; break;} case 6: -#line 378 "asn1p_y.y" +#line 379 "asn1p_y.y" { yyval.a_oid = yyvsp[0].a_oid; ; break;} case 7: -#line 382 "asn1p_y.y" +#line 383 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; ; break;} case 8: -#line 385 "asn1p_y.y" +#line 386 "asn1p_y.y" { yyval.a_oid = 0; ; break;} case 9: -#line 391 "asn1p_y.y" +#line 392 "asn1p_y.y" { yyval.a_oid = asn1p_oid_new(); asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1422,7 +1431,7 @@ case 9: ; break;} case 10: -#line 397 "asn1p_y.y" +#line 398 "asn1p_y.y" { yyval.a_oid = yyvsp[-1].a_oid; asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); @@ -1431,74 +1440,74 @@ case 10: ; break;} case 11: -#line 406 "asn1p_y.y" +#line 407 "asn1p_y.y" { /* iso */ yyval.a_oid_arc.name = yyvsp[0].tv_str; yyval.a_oid_arc.number = -1; ; break;} case 12: -#line 410 "asn1p_y.y" +#line 411 "asn1p_y.y" { /* iso(1) */ yyval.a_oid_arc.name = yyvsp[-3].tv_str; yyval.a_oid_arc.number = yyvsp[-1].a_int; ; break;} case 13: -#line 414 "asn1p_y.y" +#line 415 "asn1p_y.y" { /* 1 */ yyval.a_oid_arc.name = 0; yyval.a_oid_arc.number = yyvsp[0].a_int; ; break;} case 14: -#line 424 "asn1p_y.y" +#line 425 "asn1p_y.y" { yyval.a_module_flags = MSF_NOFLAGS; ; break;} case 15: -#line 425 "asn1p_y.y" +#line 426 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; ; break;} case 16: -#line 434 "asn1p_y.y" +#line 435 "asn1p_y.y" { yyval.a_module_flags = yyvsp[0].a_module_flags; ; break;} case 17: -#line 437 "asn1p_y.y" +#line 438 "asn1p_y.y" { yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags; ; break;} case 18: -#line 446 "asn1p_y.y" +#line 447 "asn1p_y.y" { yyval.a_module_flags = MSF_EXPLICIT_TAGS; ; break;} case 19: -#line 449 "asn1p_y.y" +#line 450 "asn1p_y.y" { yyval.a_module_flags = MSF_IMPLICIT_TAGS; ; break;} case 20: -#line 452 "asn1p_y.y" +#line 453 "asn1p_y.y" { yyval.a_module_flags = MSF_AUTOMATIC_TAGS; ; break;} case 21: -#line 455 "asn1p_y.y" +#line 456 "asn1p_y.y" { yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED; ; break;} case 22: -#line 459 "asn1p_y.y" +#line 460 "asn1p_y.y" { /* X.680Amd1 specifies TAG and XER */ if(strcmp(yyvsp[-1].tv_str, "TAG") == 0) { @@ -1516,23 +1525,23 @@ case 22: ; break;} case 23: -#line 480 "asn1p_y.y" +#line 481 "asn1p_y.y" { yyval.a_module = 0; ; break;} case 24: -#line 481 "asn1p_y.y" +#line 482 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; ; break;} case 25: -#line 490 "asn1p_y.y" +#line 491 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; ; break;} case 26: -#line 493 "asn1p_y.y" +#line 494 "asn1p_y.y" { yyval.a_module = yyvsp[-1].a_module; @@ -1562,13 +1571,13 @@ case 26: ; break;} case 27: -#line 526 "asn1p_y.y" +#line 527 "asn1p_y.y" { yyval.a_module = yyvsp[0].a_module; ; break;} case 28: -#line 529 "asn1p_y.y" +#line 530 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1580,7 +1589,7 @@ case 28: ; break;} case 29: -#line 538 "asn1p_y.y" +#line 539 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1590,7 +1599,7 @@ case 29: ; break;} case 30: -#line 545 "asn1p_y.y" +#line 546 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1600,7 +1609,7 @@ case 30: ; break;} case 31: -#line 558 "asn1p_y.y" +#line 559 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1610,11 +1619,11 @@ case 31: ; break;} case 32: -#line 566 "asn1p_y.y" +#line 567 "asn1p_y.y" { asn1p_lexer_hack_push_encoding_control(); ; break;} case 33: -#line 567 "asn1p_y.y" +#line 568 "asn1p_y.y" { fprintf(stderr, "WARNING: ENCODING-CONTROL %s " @@ -1625,7 +1634,7 @@ case 33: ; break;} case 34: -#line 579 "asn1p_y.y" +#line 580 "asn1p_y.y" { return yyerror( "Attempt to redefine a standard basic string type, " @@ -1633,7 +1642,7 @@ case 34: ; break;} case 35: -#line 592 "asn1p_y.y" +#line 593 "asn1p_y.y" { if(!saved_aid && 0) return yyerror("Unterminated IMPORTS FROM, " @@ -1643,13 +1652,13 @@ case 35: ; break;} case 36: -#line 602 "asn1p_y.y" +#line 603 "asn1p_y.y" { return yyerror("Empty IMPORTS list"); ; break;} case 37: -#line 608 "asn1p_y.y" +#line 609 "asn1p_y.y" { yyval.a_module = asn1p_module_new(); checkmem(yyval.a_module); @@ -1657,22 +1666,22 @@ case 37: ; break;} case 38: -#line 613 "asn1p_y.y" +#line 614 "asn1p_y.y" { yyval.a_module = yyvsp[-1].a_module; TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next); ; break;} case 39: -#line 620 "asn1p_y.y" +#line 621 "asn1p_y.y" { memset(&yyval.a_aid, 0, sizeof(yyval.a_aid)); ; break;} case 40: -#line 621 "asn1p_y.y" +#line 622 "asn1p_y.y" { yyval.a_aid.oid = yyvsp[0].a_oid; ; break;} case 41: -#line 625 "asn1p_y.y" +#line 626 "asn1p_y.y" { yyval.a_xports = yyvsp[-3].a_xports; yyval.a_xports->fromModuleName = yyvsp[-1].tv_str; @@ -1683,7 +1692,7 @@ case 41: ; break;} case 42: -#line 636 "asn1p_y.y" +#line 637 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); checkmem(yyval.a_xports); @@ -1691,14 +1700,14 @@ case 42: ; break;} case 43: -#line 641 "asn1p_y.y" +#line 642 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); ; break;} case 44: -#line 648 "asn1p_y.y" +#line 649 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1707,7 +1716,7 @@ case 44: ; break;} case 45: -#line 654 "asn1p_y.y" +#line 655 "asn1p_y.y" { /* Completely equivalent to above */ yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1716,7 +1725,7 @@ case 45: ; break;} case 46: -#line 660 "asn1p_y.y" +#line 661 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1725,19 +1734,19 @@ case 46: ; break;} case 47: -#line 669 "asn1p_y.y" +#line 670 "asn1p_y.y" { yyval.a_xports = yyvsp[-1].a_xports; ; break;} case 48: -#line 672 "asn1p_y.y" +#line 673 "asn1p_y.y" { yyval.a_xports = 0; ; break;} case 49: -#line 675 "asn1p_y.y" +#line 676 "asn1p_y.y" { /* Empty EXPORTS clause effectively prohibits export. */ yyval.a_xports = asn1p_xports_new(); @@ -1745,7 +1754,7 @@ case 49: ; break;} case 50: -#line 683 "asn1p_y.y" +#line 684 "asn1p_y.y" { yyval.a_xports = asn1p_xports_new(); assert(yyval.a_xports); @@ -1753,14 +1762,14 @@ case 50: ; break;} case 51: -#line 688 "asn1p_y.y" +#line 689 "asn1p_y.y" { yyval.a_xports = yyvsp[-2].a_xports; TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); ; break;} case 52: -#line 695 "asn1p_y.y" +#line 696 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1769,7 +1778,7 @@ case 52: ; break;} case 53: -#line 701 "asn1p_y.y" +#line 702 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1778,7 +1787,7 @@ case 53: ; break;} case 54: -#line 707 "asn1p_y.y" +#line 708 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1787,11 +1796,11 @@ case 54: ; break;} case 55: -#line 718 "asn1p_y.y" +#line 719 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); ; break;} case 56: -#line 718 "asn1p_y.y" +#line 719 "asn1p_y.y" { yyval.a_expr = yyvsp[-4].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -1801,7 +1810,7 @@ case 56: ; break;} case 57: -#line 728 "asn1p_y.y" +#line 729 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1811,7 +1820,7 @@ case 57: ; break;} case 58: -#line 735 "asn1p_y.y" +#line 736 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1820,7 +1829,7 @@ case 58: ; break;} case 59: -#line 753 "asn1p_y.y" +#line 754 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -1829,7 +1838,7 @@ case 59: ; break;} case 60: -#line 759 "asn1p_y.y" +#line 760 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -1838,7 +1847,7 @@ case 60: ; break;} case 61: -#line 775 "asn1p_y.y" +#line 776 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -1848,7 +1857,7 @@ case 61: ; break;} case 62: -#line 785 "asn1p_y.y" +#line 786 "asn1p_y.y" { int ret; yyval.a_plist = asn1p_paramlist_new(yylineno); @@ -1860,7 +1869,7 @@ case 62: ; break;} case 63: -#line 794 "asn1p_y.y" +#line 795 "asn1p_y.y" { int ret; yyval.a_plist = yyvsp[-2].a_plist; @@ -1871,14 +1880,14 @@ case 63: ; break;} case 64: -#line 805 "asn1p_y.y" +#line 806 "asn1p_y.y" { yyval.a_parg.governor = NULL; yyval.a_parg.argument = yyvsp[0].tv_str; ; break;} case 65: -#line 809 "asn1p_y.y" +#line 810 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -1888,7 +1897,7 @@ case 65: ; break;} case 66: -#line 816 "asn1p_y.y" +#line 817 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -1898,7 +1907,7 @@ case 66: ; break;} case 67: -#line 823 "asn1p_y.y" +#line 824 "asn1p_y.y" { int ret; yyval.a_parg.governor = asn1p_ref_new(yylineno); @@ -1909,7 +1918,7 @@ case 67: ; break;} case 68: -#line 834 "asn1p_y.y" +#line 835 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1917,20 +1926,20 @@ case 68: ; break;} case 69: -#line 839 "asn1p_y.y" +#line 840 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 70: -#line 846 "asn1p_y.y" +#line 847 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 71: -#line 849 "asn1p_y.y" +#line 850 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1940,15 +1949,15 @@ case 71: ; break;} case 72: -#line 873 "asn1p_y.y" +#line 874 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); ; break;} case 73: -#line 874 "asn1p_y.y" +#line 875 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 74: -#line 877 "asn1p_y.y" +#line 878 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1956,14 +1965,14 @@ case 74: ; break;} case 75: -#line 882 "asn1p_y.y" +#line 883 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 76: -#line 889 "asn1p_y.y" +#line 890 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -1973,7 +1982,7 @@ case 76: ; break;} case 77: -#line 896 "asn1p_y.y" +#line 897 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; yyvsp[0].a_marker.flags |= yyval.a_expr->marker.flags; @@ -1982,7 +1991,7 @@ case 77: ; break;} case 78: -#line 902 "asn1p_y.y" +#line 903 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -1992,13 +2001,13 @@ case 78: ; break;} case 79: -#line 909 "asn1p_y.y" +#line 910 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 80: -#line 915 "asn1p_y.y" +#line 916 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2006,14 +2015,14 @@ case 80: ; break;} case 81: -#line 920 "asn1p_y.y" +#line 921 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 82: -#line 927 "asn1p_y.y" +#line 928 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; assert(yyval.a_expr->Identifier == 0); @@ -2021,20 +2030,20 @@ case 82: ; break;} case 83: -#line 932 "asn1p_y.y" +#line 933 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 84: -#line 935 "asn1p_y.y" +#line 936 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; _fixup_anonymous_identifier(yyval.a_expr); ; break;} case 85: -#line 942 "asn1p_y.y" +#line 943 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; checkmem(yyval.a_expr); @@ -2044,15 +2053,15 @@ case 85: ; break;} case 86: -#line 952 "asn1p_y.y" +#line 953 "asn1p_y.y" { yyval.a_int = 0; ; break;} case 87: -#line 953 "asn1p_y.y" +#line 954 "asn1p_y.y" { yyval.a_int = 1; ; break;} case 88: -#line 957 "asn1p_y.y" +#line 958 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2062,14 +2071,14 @@ case 88: ; break;} case 89: -#line 964 "asn1p_y.y" +#line 965 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 90: -#line 974 "asn1p_y.y" +#line 975 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2080,7 +2089,7 @@ case 90: ; break;} case 91: -#line 984 "asn1p_y.y" +#line 985 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr->Identifier = yyvsp[-3].tv_str; @@ -2092,7 +2101,7 @@ case 91: ; break;} case 92: -#line 995 "asn1p_y.y" +#line 996 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2103,7 +2112,7 @@ case 92: ; break;} case 93: -#line 1005 "asn1p_y.y" +#line 1006 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2115,7 +2124,7 @@ case 93: ; break;} case 94: -#line 1016 "asn1p_y.y" +#line 1017 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); yyval.a_expr->Identifier = yyvsp[-2].tv_str; @@ -2126,7 +2135,7 @@ case 94: ; break;} case 95: -#line 1026 "asn1p_y.y" +#line 1027 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2138,7 +2147,7 @@ case 95: ; break;} case 96: -#line 1037 "asn1p_y.y" +#line 1038 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2150,53 +2159,54 @@ case 96: ; break;} case 97: -#line 1049 "asn1p_y.y" +#line 1050 "asn1p_y.y" { yyval.a_wsynt = 0; ; break;} case 98: -#line 1050 "asn1p_y.y" +#line 1051 "asn1p_y.y" { yyval.a_wsynt = yyvsp[0].a_wsynt; ; break;} case 99: -#line 1057 "asn1p_y.y" +#line 1058 "asn1p_y.y" { asn1p_lexer_hack_enable_with_syntax(); ; break;} case 100: -#line 1059 "asn1p_y.y" +#line 1060 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; ; break;} case 101: -#line 1065 "asn1p_y.y" +#line 1066 "asn1p_y.y" { yyval.a_wsynt = asn1p_wsyntx_new(); TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); ; break;} case 102: -#line 1069 "asn1p_y.y" +#line 1070 "asn1p_y.y" { yyval.a_wsynt = yyvsp[-1].a_wsynt; TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); ; break;} case 103: -#line 1076 "asn1p_y.y" +#line 1077 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); + yyval.a_wchunk->type = WC_WHITESPACE; ; break;} case 104: -#line 1079 "asn1p_y.y" +#line 1081 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_str, strlen(yyvsp[0].tv_str), 0); ; break;} case 105: -#line 1082 "asn1p_y.y" +#line 1084 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -2208,13 +2218,13 @@ case 105: ; break;} case 106: -#line 1091 "asn1p_y.y" +#line 1093 "asn1p_y.y" { yyval.a_wchunk = asn1p_wsyntx_chunk_fromsyntax(yyvsp[-1].a_wsynt); ; break;} case 107: -#line 1097 "asn1p_y.y" +#line 1099 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2225,7 +2235,7 @@ case 107: ; break;} case 108: -#line 1105 "asn1p_y.y" +#line 1107 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2237,7 +2247,7 @@ case 108: ; break;} case 109: -#line 1114 "asn1p_y.y" +#line 1116 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2249,7 +2259,7 @@ case 109: ; break;} case 110: -#line 1126 "asn1p_y.y" +#line 1128 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; yyval.a_expr->tag = yyvsp[-2].a_tag; @@ -2271,14 +2281,14 @@ case 110: ; break;} case 111: -#line 1148 "asn1p_y.y" +#line 1150 "asn1p_y.y" { yyval.a_int = asn1p_as_pointer ? EM_INDIRECT : 0; asn1p_as_pointer = 0; ; break;} case 112: -#line 1155 "asn1p_y.y" +#line 1157 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; yyval.a_expr->marker.flags |= yyvsp[-1].a_int; @@ -2297,13 +2307,13 @@ case 112: ; break;} case 113: -#line 1174 "asn1p_y.y" +#line 1176 "asn1p_y.y" { yyval.a_expr = yyvsp[0].a_expr; ; break;} case 114: -#line 1177 "asn1p_y.y" +#line 1179 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2312,7 +2322,7 @@ case 114: ; break;} case 115: -#line 1183 "asn1p_y.y" +#line 1185 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2321,7 +2331,7 @@ case 115: ; break;} case 116: -#line 1189 "asn1p_y.y" +#line 1191 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; assert(yyval.a_expr->expr_type == A1TC_INVALID); @@ -2330,7 +2340,7 @@ case 116: ; break;} case 117: -#line 1195 "asn1p_y.y" +#line 1197 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2343,7 +2353,7 @@ case 117: ; break;} case 118: -#line 1205 "asn1p_y.y" +#line 1207 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2356,7 +2366,7 @@ case 118: ; break;} case 119: -#line 1215 "asn1p_y.y" +#line 1217 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2365,7 +2375,7 @@ case 119: ; break;} case 120: -#line 1221 "asn1p_y.y" +#line 1223 "asn1p_y.y" { int ret; yyval.a_expr = asn1p_expr_new(yylineno); @@ -2379,7 +2389,7 @@ case 120: ; break;} case 121: -#line 1235 "asn1p_y.y" +#line 1237 "asn1p_y.y" { int ret; yyval.a_expr = yyvsp[-1].a_expr; @@ -2396,7 +2406,7 @@ case 121: ; break;} case 122: -#line 1259 "asn1p_y.y" +#line 1261 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2406,7 +2416,7 @@ case 122: ; break;} case 123: -#line 1266 "asn1p_y.y" +#line 1268 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2416,7 +2426,7 @@ case 123: ; break;} case 124: -#line 1281 "asn1p_y.y" +#line 1283 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2427,7 +2437,7 @@ case 124: ; break;} case 125: -#line 1289 "asn1p_y.y" +#line 1291 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2440,7 +2450,7 @@ case 125: ; break;} case 126: -#line 1299 "asn1p_y.y" +#line 1301 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2453,7 +2463,7 @@ case 126: ; break;} case 127: -#line 1309 "asn1p_y.y" +#line 1311 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2466,7 +2476,7 @@ case 127: ; break;} case 128: -#line 1319 "asn1p_y.y" +#line 1321 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2477,7 +2487,7 @@ case 128: ; break;} case 129: -#line 1327 "asn1p_y.y" +#line 1329 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[0].a_ref; @@ -2499,7 +2509,7 @@ case 129: ; break;} case 130: -#line 1349 "asn1p_y.y" +#line 1351 "asn1p_y.y" { int ret; yyval.a_ref = asn1p_ref_new(yylineno); @@ -2510,7 +2520,7 @@ case 130: ; break;} case 131: -#line 1357 "asn1p_y.y" +#line 1359 "asn1p_y.y" { int ret; yyval.a_ref = yyvsp[-2].a_ref; @@ -2520,49 +2530,49 @@ case 131: ; break;} case 134: -#line 1371 "asn1p_y.y" +#line 1373 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_AmpUppercase; yyval.a_refcomp.name = yyvsp[0].tv_str; ; break;} case 135: -#line 1376 "asn1p_y.y" +#line 1378 "asn1p_y.y" { yyval.a_refcomp.lex_type = RLT_Amplowercase; yyval.a_refcomp.name = yyvsp[0].tv_str; ; break;} case 136: -#line 1385 "asn1p_y.y" +#line 1387 "asn1p_y.y" { yyval.a_ref = asn1p_ref_new(yylineno); asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); ; break;} case 137: -#line 1389 "asn1p_y.y" +#line 1391 "asn1p_y.y" { yyval.a_ref = yyval.a_ref; asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); ; break;} case 138: -#line 1393 "asn1p_y.y" +#line 1395 "asn1p_y.y" { yyval.a_ref = yyval.a_ref; asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_Amplowercase); ; break;} case 139: -#line 1400 "asn1p_y.y" +#line 1402 "asn1p_y.y" { yyval.a_ref = asn1p_ref_new(yylineno); asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_CAPITALS); ; break;} case 140: -#line 1420 "asn1p_y.y" +#line 1422 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; assert(yyval.a_expr->Identifier == NULL); @@ -2572,7 +2582,7 @@ case 140: ; break;} case 141: -#line 1430 "asn1p_y.y" +#line 1432 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -2582,11 +2592,11 @@ case 141: ; break;} case 142: -#line 1437 "asn1p_y.y" +#line 1439 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); ; break;} case 143: -#line 1437 "asn1p_y.y" +#line 1439 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); @@ -2594,7 +2604,7 @@ case 143: ; break;} case 144: -#line 1442 "asn1p_y.y" +#line 1444 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -2602,7 +2612,7 @@ case 144: ; break;} case 145: -#line 1447 "asn1p_y.y" +#line 1449 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -2610,7 +2620,7 @@ case 145: ; break;} case 146: -#line 1452 "asn1p_y.y" +#line 1454 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -2618,39 +2628,39 @@ case 146: ; break;} case 147: -#line 1457 "asn1p_y.y" +#line 1459 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B'); checkmem(yyval.a_value); ; break;} case 148: -#line 1461 "asn1p_y.y" +#line 1463 "asn1p_y.y" { yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H'); checkmem(yyval.a_value); ; break;} case 149: -#line 1465 "asn1p_y.y" +#line 1467 "asn1p_y.y" { yyval.a_value = yyval.a_value; ; break;} case 150: -#line 1468 "asn1p_y.y" +#line 1470 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; ; break;} case 151: -#line 1471 "asn1p_y.y" +#line 1473 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; ; break;} case 152: -#line 1477 "asn1p_y.y" +#line 1479 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -2664,7 +2674,7 @@ case 152: ; break;} case 153: -#line 1488 "asn1p_y.y" +#line 1490 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -2681,14 +2691,14 @@ case 153: ; break;} case 154: -#line 1506 "asn1p_y.y" +#line 1508 "asn1p_y.y" { yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); checkmem(yyval.a_value); ; break;} case 155: -#line 1510 "asn1p_y.y" +#line 1512 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -2696,7 +2706,7 @@ case 155: ; break;} case 156: -#line 1515 "asn1p_y.y" +#line 1517 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); @@ -2704,7 +2714,7 @@ case 156: ; break;} case 157: -#line 1549 "asn1p_y.y" +#line 1551 "asn1p_y.y" { yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 1; yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1); @@ -2716,7 +2726,7 @@ case 157: ; break;} case 158: -#line 1558 "asn1p_y.y" +#line 1560 "asn1p_y.y" { int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len; char *p = malloc(newsize + 1); @@ -2731,71 +2741,71 @@ case 158: ; break;} case 159: -#line 1573 "asn1p_y.y" +#line 1575 "asn1p_y.y" { yyval.a_type = ASN_BASIC_BOOLEAN; ; break;} case 160: -#line 1574 "asn1p_y.y" +#line 1576 "asn1p_y.y" { yyval.a_type = ASN_BASIC_NULL; ; break;} case 161: -#line 1575 "asn1p_y.y" +#line 1577 "asn1p_y.y" { yyval.a_type = ASN_BASIC_REAL; ; break;} case 162: -#line 1576 "asn1p_y.y" +#line 1578 "asn1p_y.y" { yyval.a_type = yyvsp[0].a_type; ; break;} case 163: -#line 1577 "asn1p_y.y" +#line 1579 "asn1p_y.y" { yyval.a_type = ASN_BASIC_OCTET_STRING; ; break;} case 164: -#line 1578 "asn1p_y.y" +#line 1580 "asn1p_y.y" { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ; break;} case 165: -#line 1579 "asn1p_y.y" +#line 1581 "asn1p_y.y" { yyval.a_type = ASN_BASIC_RELATIVE_OID; ; break;} case 166: -#line 1580 "asn1p_y.y" +#line 1582 "asn1p_y.y" { yyval.a_type = ASN_BASIC_EXTERNAL; ; break;} case 167: -#line 1581 "asn1p_y.y" +#line 1583 "asn1p_y.y" { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ; break;} case 168: -#line 1582 "asn1p_y.y" +#line 1584 "asn1p_y.y" { yyval.a_type = ASN_BASIC_CHARACTER_STRING; ; break;} case 169: -#line 1583 "asn1p_y.y" +#line 1585 "asn1p_y.y" { yyval.a_type = ASN_BASIC_UTCTime; ; break;} case 170: -#line 1584 "asn1p_y.y" +#line 1586 "asn1p_y.y" { yyval.a_type = ASN_BASIC_GeneralizedTime; ; break;} case 171: -#line 1585 "asn1p_y.y" +#line 1587 "asn1p_y.y" { yyval.a_type = yyvsp[0].a_type; ; break;} case 172: -#line 1592 "asn1p_y.y" +#line 1594 "asn1p_y.y" { yyval.a_type = ASN_BASIC_INTEGER; ; break;} case 173: -#line 1593 "asn1p_y.y" +#line 1595 "asn1p_y.y" { yyval.a_type = ASN_BASIC_ENUMERATED; ; break;} case 174: -#line 1594 "asn1p_y.y" +#line 1596 "asn1p_y.y" { yyval.a_type = ASN_BASIC_BIT_STRING; ; break;} case 175: -#line 1598 "asn1p_y.y" +#line 1600 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -2804,7 +2814,7 @@ case 175: ; break;} case 176: -#line 1604 "asn1p_y.y" +#line 1606 "asn1p_y.y" { if(yyvsp[0].a_expr) { yyval.a_expr = yyvsp[0].a_expr; @@ -2817,91 +2827,91 @@ case 176: ; break;} case 177: -#line 1617 "asn1p_y.y" +#line 1619 "asn1p_y.y" { yyval.a_type = ASN_STRING_BMPString; ; break;} case 178: -#line 1618 "asn1p_y.y" +#line 1620 "asn1p_y.y" { yyval.a_type = ASN_STRING_GeneralString; fprintf(stderr, "WARNING: GeneralString is not fully supported\n"); ; break;} case 179: -#line 1622 "asn1p_y.y" +#line 1624 "asn1p_y.y" { yyval.a_type = ASN_STRING_GraphicString; fprintf(stderr, "WARNING: GraphicString is not fully supported\n"); ; break;} case 180: -#line 1626 "asn1p_y.y" +#line 1628 "asn1p_y.y" { yyval.a_type = ASN_STRING_IA5String; ; break;} case 181: -#line 1627 "asn1p_y.y" +#line 1629 "asn1p_y.y" { yyval.a_type = ASN_STRING_ISO646String; ; break;} case 182: -#line 1628 "asn1p_y.y" +#line 1630 "asn1p_y.y" { yyval.a_type = ASN_STRING_NumericString; ; break;} case 183: -#line 1629 "asn1p_y.y" +#line 1631 "asn1p_y.y" { yyval.a_type = ASN_STRING_PrintableString; ; break;} case 184: -#line 1630 "asn1p_y.y" +#line 1632 "asn1p_y.y" { yyval.a_type = ASN_STRING_T61String; fprintf(stderr, "WARNING: T61String is not fully supported\n"); ; break;} case 185: -#line 1634 "asn1p_y.y" +#line 1636 "asn1p_y.y" { yyval.a_type = ASN_STRING_TeletexString; ; break;} case 186: -#line 1635 "asn1p_y.y" +#line 1637 "asn1p_y.y" { yyval.a_type = ASN_STRING_UniversalString; ; break;} case 187: -#line 1636 "asn1p_y.y" +#line 1638 "asn1p_y.y" { yyval.a_type = ASN_STRING_UTF8String; ; break;} case 188: -#line 1637 "asn1p_y.y" +#line 1639 "asn1p_y.y" { yyval.a_type = ASN_STRING_VideotexString; fprintf(stderr, "WARNING: VideotexString is not fully supported\n"); ; break;} case 189: -#line 1641 "asn1p_y.y" +#line 1643 "asn1p_y.y" { yyval.a_type = ASN_STRING_VisibleString; ; break;} case 190: -#line 1642 "asn1p_y.y" +#line 1644 "asn1p_y.y" { yyval.a_type = ASN_STRING_ObjectDescriptor; ; break;} case 196: -#line 1654 "asn1p_y.y" +#line 1656 "asn1p_y.y" { yyval.a_constr = 0; ; break;} case 197: -#line 1655 "asn1p_y.y" +#line 1657 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 198: -#line 1661 "asn1p_y.y" +#line 1663 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0); ; break;} case 199: -#line 1664 "asn1p_y.y" +#line 1666 "asn1p_y.y" { /* * This is a special case, for compatibility purposes. @@ -2911,25 +2921,25 @@ case 199: ; break;} case 200: -#line 1674 "asn1p_y.y" +#line 1676 "asn1p_y.y" { yyval.a_constr = yyvsp[-1].a_constr; ; break;} case 201: -#line 1677 "asn1p_y.y" +#line 1679 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr); ; break;} case 202: -#line 1683 "asn1p_y.y" +#line 1685 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 203: -#line 1686 "asn1p_y.y" +#line 1688 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -2938,7 +2948,7 @@ case 203: ; break;} case 204: -#line 1692 "asn1p_y.y" +#line 1694 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -2949,37 +2959,37 @@ case 204: ; break;} case 205: -#line 1703 "asn1p_y.y" +#line 1705 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 206: -#line 1706 "asn1p_y.y" +#line 1708 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_AEX, yyvsp[0].a_constr, 0); ; break;} case 207: -#line 1709 "asn1p_y.y" +#line 1711 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr); ; break;} case 208: -#line 1712 "asn1p_y.y" +#line 1714 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr); ; break;} case 209: -#line 1715 "asn1p_y.y" +#line 1717 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr); ; break;} case 210: -#line 1721 "asn1p_y.y" +#line 1723 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -2990,7 +3000,7 @@ case 210: ; break;} case 211: -#line 1729 "asn1p_y.y" +#line 1731 "asn1p_y.y" { int ret; yyval.a_constr = asn1p_constraint_new(yylineno); @@ -3001,7 +3011,7 @@ case 211: ; break;} case 212: -#line 1737 "asn1p_y.y" +#line 1739 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3010,7 +3020,7 @@ case 212: ; break;} case 213: -#line 1743 "asn1p_y.y" +#line 1745 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3019,7 +3029,7 @@ case 213: ; break;} case 214: -#line 1749 "asn1p_y.y" +#line 1751 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3029,7 +3039,7 @@ case 214: ; break;} case 215: -#line 1756 "asn1p_y.y" +#line 1758 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3040,7 +3050,7 @@ case 215: ; break;} case 216: -#line 1764 "asn1p_y.y" +#line 1766 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3051,7 +3061,7 @@ case 216: ; break;} case 217: -#line 1772 "asn1p_y.y" +#line 1774 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3063,23 +3073,23 @@ case 217: ; break;} case 218: -#line 1781 "asn1p_y.y" +#line 1783 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 219: -#line 1784 "asn1p_y.y" +#line 1786 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 220: -#line 1788 "asn1p_y.y" +#line 1790 "asn1p_y.y" { asn1p_lexer_hack_push_opaque_state(); ; break;} case 221: -#line 1788 "asn1p_y.y" +#line 1790 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3090,35 +3100,35 @@ case 221: ; break;} case 222: -#line 1799 "asn1p_y.y" +#line 1801 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RANGE; ; break;} case 223: -#line 1800 "asn1p_y.y" +#line 1802 "asn1p_y.y" { yyval.a_ctype = ACT_EL_RLRANGE; ; break;} case 224: -#line 1801 "asn1p_y.y" +#line 1803 "asn1p_y.y" { yyval.a_ctype = ACT_EL_LLRANGE; ; break;} case 225: -#line 1802 "asn1p_y.y" +#line 1804 "asn1p_y.y" { yyval.a_ctype = ACT_EL_ULRANGE; ; break;} case 226: -#line 1806 "asn1p_y.y" +#line 1808 "asn1p_y.y" { yyval.a_ctype = ACT_CT_SIZE; ; break;} case 227: -#line 1809 "asn1p_y.y" +#line 1811 "asn1p_y.y" { yyval.a_ctype = ACT_CT_FROM; ; break;} case 228: -#line 1815 "asn1p_y.y" +#line 1817 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(0); checkmem(yyval.a_value); @@ -3126,7 +3136,7 @@ case 228: ; break;} case 229: -#line 1820 "asn1p_y.y" +#line 1822 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(1); checkmem(yyval.a_value); @@ -3134,19 +3144,19 @@ case 229: ; break;} case 230: -#line 1825 "asn1p_y.y" +#line 1827 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; ; break;} case 231: -#line 1828 "asn1p_y.y" +#line 1830 "asn1p_y.y" { yyval.a_value = yyvsp[0].a_value; ; break;} case 232: -#line 1831 "asn1p_y.y" +#line 1833 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3160,7 +3170,7 @@ case 232: ; break;} case 233: -#line 1845 "asn1p_y.y" +#line 1847 "asn1p_y.y" { asn1p_ref_t *ref; int ret; @@ -3174,31 +3184,31 @@ case 233: ; break;} case 234: -#line 1859 "asn1p_y.y" +#line 1861 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0); ; break;} case 235: -#line 1862 "asn1p_y.y" +#line 1864 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0); ; break;} case 236: -#line 1868 "asn1p_y.y" +#line 1870 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 237: -#line 1871 "asn1p_y.y" +#line 1873 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr); ; break;} case 238: -#line 1877 "asn1p_y.y" +#line 1879 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3207,7 +3217,7 @@ case 238: ; break;} case 239: -#line 1883 "asn1p_y.y" +#line 1885 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3218,45 +3228,45 @@ case 239: ; break;} case 240: -#line 1897 "asn1p_y.y" +#line 1899 "asn1p_y.y" { yyval.a_pres = ACPRES_DEFAULT; ; break;} case 241: -#line 1898 "asn1p_y.y" +#line 1900 "asn1p_y.y" { yyval.a_pres = yyvsp[0].a_pres; ; break;} case 242: -#line 1902 "asn1p_y.y" +#line 1904 "asn1p_y.y" { yyval.a_pres = ACPRES_PRESENT; ; break;} case 243: -#line 1905 "asn1p_y.y" +#line 1907 "asn1p_y.y" { yyval.a_pres = ACPRES_ABSENT; ; break;} case 244: -#line 1908 "asn1p_y.y" +#line 1910 "asn1p_y.y" { yyval.a_pres = ACPRES_OPTIONAL; ; break;} case 245: -#line 1914 "asn1p_y.y" +#line 1916 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 246: -#line 1917 "asn1p_y.y" +#line 1919 "asn1p_y.y" { yyval.a_constr = yyvsp[0].a_constr; ; break;} case 247: -#line 1926 "asn1p_y.y" +#line 1928 "asn1p_y.y" { asn1p_ref_t *ref = asn1p_ref_new(yylineno); asn1p_constraint_t *ct; @@ -3271,13 +3281,13 @@ case 247: ; break;} case 248: -#line 1941 "asn1p_y.y" +#line 1943 "asn1p_y.y" { CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr); ; break;} case 249: -#line 1947 "asn1p_y.y" +#line 1949 "asn1p_y.y" { yyval.a_constr = asn1p_constraint_new(yylineno); checkmem(yyval.a_constr); @@ -3286,7 +3296,7 @@ case 249: ; break;} case 250: -#line 1953 "asn1p_y.y" +#line 1955 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); @@ -3297,7 +3307,7 @@ case 250: ; break;} case 251: -#line 1967 "asn1p_y.y" +#line 1969 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 2); int ret; @@ -3311,7 +3321,7 @@ case 251: ; break;} case 252: -#line 1978 "asn1p_y.y" +#line 1980 "asn1p_y.y" { char *p = malloc(strlen(yyvsp[0].tv_str) + 3); int ret; @@ -3326,13 +3336,13 @@ case 252: ; break;} case 253: -#line 1994 "asn1p_y.y" +#line 1996 "asn1p_y.y" { yyval.tv_str = yyvsp[0].tv_str; ; break;} case 254: -#line 1997 "asn1p_y.y" +#line 1999 "asn1p_y.y" { int l1 = strlen(yyvsp[-2].tv_str); int l3 = strlen(yyvsp[0].tv_str); @@ -3344,45 +3354,45 @@ case 254: ; break;} case 255: -#line 2015 "asn1p_y.y" +#line 2017 "asn1p_y.y" { yyval.a_marker.flags = EM_NOMARK; yyval.a_marker.default_value = 0; ; break;} case 256: -#line 2019 "asn1p_y.y" +#line 2021 "asn1p_y.y" { yyval.a_marker = yyvsp[0].a_marker; ; break;} case 257: -#line 2023 "asn1p_y.y" +#line 2025 "asn1p_y.y" { yyval.a_marker.flags = EM_OPTIONAL | EM_INDIRECT; yyval.a_marker.default_value = 0; ; break;} case 258: -#line 2027 "asn1p_y.y" +#line 2029 "asn1p_y.y" { yyval.a_marker.flags = EM_DEFAULT; yyval.a_marker.default_value = yyvsp[0].a_value; ; break;} case 259: -#line 2050 "asn1p_y.y" +#line 2052 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); ; break;} case 260: -#line 2054 "asn1p_y.y" +#line 2056 "asn1p_y.y" { yyval.a_expr = yyvsp[-1].a_expr; ; break;} case 261: -#line 2060 "asn1p_y.y" +#line 2062 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3390,14 +3400,14 @@ case 261: ; break;} case 262: -#line 2065 "asn1p_y.y" +#line 2067 "asn1p_y.y" { yyval.a_expr = yyvsp[-2].a_expr; asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); ; break;} case 263: -#line 2072 "asn1p_y.y" +#line 2074 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3407,7 +3417,7 @@ case 263: ; break;} case 264: -#line 2079 "asn1p_y.y" +#line 2081 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3418,7 +3428,7 @@ case 264: ; break;} case 265: -#line 2087 "asn1p_y.y" +#line 2089 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3429,7 +3439,7 @@ case 265: ; break;} case 266: -#line 2095 "asn1p_y.y" +#line 2097 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3439,7 +3449,7 @@ case 266: ; break;} case 267: -#line 2102 "asn1p_y.y" +#line 2104 "asn1p_y.y" { yyval.a_expr = asn1p_expr_new(yylineno); checkmem(yyval.a_expr); @@ -3450,102 +3460,102 @@ case 267: ; break;} case 268: -#line 2113 "asn1p_y.y" +#line 2115 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); ; break;} case 269: -#line 2117 "asn1p_y.y" +#line 2119 "asn1p_y.y" { yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); checkmem(yyval.a_value); ; break;} case 270: -#line 2148 "asn1p_y.y" +#line 2150 "asn1p_y.y" { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ; break;} case 271: -#line 2149 "asn1p_y.y" +#line 2151 "asn1p_y.y" { yyval.a_tag = yyvsp[0].a_tag; ; break;} case 272: -#line 2153 "asn1p_y.y" +#line 2155 "asn1p_y.y" { yyval.a_tag = yyvsp[-1].a_tag; yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode; ; break;} case 273: -#line 2160 "asn1p_y.y" +#line 2162 "asn1p_y.y" { yyval.a_tag = yyvsp[-2].a_tag; yyval.a_tag.tag_value = yyvsp[-1].a_int; ; break;} case 274: -#line 2166 "asn1p_y.y" +#line 2168 "asn1p_y.y" { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ; break;} case 275: -#line 2167 "asn1p_y.y" +#line 2169 "asn1p_y.y" { yyval.a_tag.tag_class = TC_UNIVERSAL; ; break;} case 276: -#line 2168 "asn1p_y.y" +#line 2170 "asn1p_y.y" { yyval.a_tag.tag_class = TC_APPLICATION; ; break;} case 277: -#line 2169 "asn1p_y.y" +#line 2171 "asn1p_y.y" { yyval.a_tag.tag_class = TC_PRIVATE; ; break;} case 278: -#line 2173 "asn1p_y.y" +#line 2175 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_DEFAULT; ; break;} case 279: -#line 2174 "asn1p_y.y" +#line 2176 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_IMPLICIT; ; break;} case 280: -#line 2175 "asn1p_y.y" +#line 2177 "asn1p_y.y" { yyval.a_tag.tag_mode = TM_EXPLICIT; ; break;} case 281: -#line 2179 "asn1p_y.y" +#line 2181 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; ; break;} case 282: -#line 2183 "asn1p_y.y" +#line 2185 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; ; break;} case 283: -#line 2191 "asn1p_y.y" +#line 2193 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; ; break;} case 284: -#line 2198 "asn1p_y.y" +#line 2200 "asn1p_y.y" { yyval.tv_str = 0; ; break;} case 285: -#line 2199 "asn1p_y.y" +#line 2201 "asn1p_y.y" { yyval.tv_str = yyvsp[0].tv_str; ; break;} case 286: -#line 2205 "asn1p_y.y" +#line 2207 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; @@ -3773,7 +3783,7 @@ yyerrhandle: } return 1; } -#line 2211 "asn1p_y.y" +#line 2213 "asn1p_y.y" diff --git a/libasn1parser/asn1p_y.h b/libasn1parser/asn1p_y.h index a391f74e..41f312ee 100644 --- a/libasn1parser/asn1p_y.h +++ b/libasn1parser/asn1p_y.h @@ -32,106 +32,107 @@ typedef union { } tv_nametag; } YYSTYPE; #define TOK_PPEQ 257 -#define TOK_opaque 258 -#define TOK_bstring 259 -#define TOK_cstring 260 -#define TOK_hstring 261 -#define TOK_identifier 262 -#define TOK_number 263 -#define TOK_tuple 264 -#define TOK_quadruple 265 -#define TOK_number_negative 266 -#define TOK_typereference 267 -#define TOK_capitalreference 268 -#define TOK_typefieldreference 269 -#define TOK_valuefieldreference 270 -#define TOK_Literal 271 -#define TOK_ABSENT 272 -#define TOK_ABSTRACT_SYNTAX 273 -#define TOK_ALL 274 -#define TOK_ANY 275 -#define TOK_APPLICATION 276 -#define TOK_AUTOMATIC 277 -#define TOK_BEGIN 278 -#define TOK_BIT 279 -#define TOK_BMPString 280 -#define TOK_BOOLEAN 281 -#define TOK_BY 282 -#define TOK_CHARACTER 283 -#define TOK_CHOICE 284 -#define TOK_CLASS 285 -#define TOK_COMPONENT 286 -#define TOK_COMPONENTS 287 -#define TOK_CONSTRAINED 288 -#define TOK_CONTAINING 289 -#define TOK_DEFAULT 290 -#define TOK_DEFINITIONS 291 -#define TOK_DEFINED 292 -#define TOK_EMBEDDED 293 -#define TOK_ENCODED 294 -#define TOK_ENCODING_CONTROL 295 -#define TOK_END 296 -#define TOK_ENUMERATED 297 -#define TOK_EXPLICIT 298 -#define TOK_EXPORTS 299 -#define TOK_EXTENSIBILITY 300 -#define TOK_EXTERNAL 301 -#define TOK_FALSE 302 -#define TOK_FROM 303 -#define TOK_GeneralizedTime 304 -#define TOK_GeneralString 305 -#define TOK_GraphicString 306 -#define TOK_IA5String 307 -#define TOK_IDENTIFIER 308 -#define TOK_IMPLICIT 309 -#define TOK_IMPLIED 310 -#define TOK_IMPORTS 311 -#define TOK_INCLUDES 312 -#define TOK_INSTANCE 313 -#define TOK_INSTRUCTIONS 314 -#define TOK_INTEGER 315 -#define TOK_ISO646String 316 -#define TOK_MAX 317 -#define TOK_MIN 318 -#define TOK_MINUS_INFINITY 319 -#define TOK_NULL 320 -#define TOK_NumericString 321 -#define TOK_OBJECT 322 -#define TOK_ObjectDescriptor 323 -#define TOK_OCTET 324 -#define TOK_OF 325 -#define TOK_OPTIONAL 326 -#define TOK_PATTERN 327 -#define TOK_PDV 328 -#define TOK_PLUS_INFINITY 329 -#define TOK_PRESENT 330 -#define TOK_PrintableString 331 -#define TOK_PRIVATE 332 -#define TOK_REAL 333 -#define TOK_RELATIVE_OID 334 -#define TOK_SEQUENCE 335 -#define TOK_SET 336 -#define TOK_SIZE 337 -#define TOK_STRING 338 -#define TOK_SYNTAX 339 -#define TOK_T61String 340 -#define TOK_TAGS 341 -#define TOK_TeletexString 342 -#define TOK_TRUE 343 -#define TOK_TYPE_IDENTIFIER 344 -#define TOK_UNIQUE 345 -#define TOK_UNIVERSAL 346 -#define TOK_UniversalString 347 -#define TOK_UTCTime 348 -#define TOK_UTF8String 349 -#define TOK_VideotexString 350 -#define TOK_VisibleString 351 -#define TOK_WITH 352 -#define TOK_EXCEPT 353 -#define TOK_INTERSECTION 354 -#define TOK_UNION 355 -#define TOK_TwoDots 356 -#define TOK_ThreeDots 357 +#define TOK_whitespace 258 +#define TOK_opaque 259 +#define TOK_bstring 260 +#define TOK_cstring 261 +#define TOK_hstring 262 +#define TOK_identifier 263 +#define TOK_number 264 +#define TOK_tuple 265 +#define TOK_quadruple 266 +#define TOK_number_negative 267 +#define TOK_typereference 268 +#define TOK_capitalreference 269 +#define TOK_typefieldreference 270 +#define TOK_valuefieldreference 271 +#define TOK_Literal 272 +#define TOK_ABSENT 273 +#define TOK_ABSTRACT_SYNTAX 274 +#define TOK_ALL 275 +#define TOK_ANY 276 +#define TOK_APPLICATION 277 +#define TOK_AUTOMATIC 278 +#define TOK_BEGIN 279 +#define TOK_BIT 280 +#define TOK_BMPString 281 +#define TOK_BOOLEAN 282 +#define TOK_BY 283 +#define TOK_CHARACTER 284 +#define TOK_CHOICE 285 +#define TOK_CLASS 286 +#define TOK_COMPONENT 287 +#define TOK_COMPONENTS 288 +#define TOK_CONSTRAINED 289 +#define TOK_CONTAINING 290 +#define TOK_DEFAULT 291 +#define TOK_DEFINITIONS 292 +#define TOK_DEFINED 293 +#define TOK_EMBEDDED 294 +#define TOK_ENCODED 295 +#define TOK_ENCODING_CONTROL 296 +#define TOK_END 297 +#define TOK_ENUMERATED 298 +#define TOK_EXPLICIT 299 +#define TOK_EXPORTS 300 +#define TOK_EXTENSIBILITY 301 +#define TOK_EXTERNAL 302 +#define TOK_FALSE 303 +#define TOK_FROM 304 +#define TOK_GeneralizedTime 305 +#define TOK_GeneralString 306 +#define TOK_GraphicString 307 +#define TOK_IA5String 308 +#define TOK_IDENTIFIER 309 +#define TOK_IMPLICIT 310 +#define TOK_IMPLIED 311 +#define TOK_IMPORTS 312 +#define TOK_INCLUDES 313 +#define TOK_INSTANCE 314 +#define TOK_INSTRUCTIONS 315 +#define TOK_INTEGER 316 +#define TOK_ISO646String 317 +#define TOK_MAX 318 +#define TOK_MIN 319 +#define TOK_MINUS_INFINITY 320 +#define TOK_NULL 321 +#define TOK_NumericString 322 +#define TOK_OBJECT 323 +#define TOK_ObjectDescriptor 324 +#define TOK_OCTET 325 +#define TOK_OF 326 +#define TOK_OPTIONAL 327 +#define TOK_PATTERN 328 +#define TOK_PDV 329 +#define TOK_PLUS_INFINITY 330 +#define TOK_PRESENT 331 +#define TOK_PrintableString 332 +#define TOK_PRIVATE 333 +#define TOK_REAL 334 +#define TOK_RELATIVE_OID 335 +#define TOK_SEQUENCE 336 +#define TOK_SET 337 +#define TOK_SIZE 338 +#define TOK_STRING 339 +#define TOK_SYNTAX 340 +#define TOK_T61String 341 +#define TOK_TAGS 342 +#define TOK_TeletexString 343 +#define TOK_TRUE 344 +#define TOK_TYPE_IDENTIFIER 345 +#define TOK_UNIQUE 346 +#define TOK_UNIVERSAL 347 +#define TOK_UniversalString 348 +#define TOK_UTCTime 349 +#define TOK_UTF8String 350 +#define TOK_VideotexString 351 +#define TOK_VisibleString 352 +#define TOK_WITH 353 +#define TOK_EXCEPT 354 +#define TOK_INTERSECTION 355 +#define TOK_UNION 356 +#define TOK_TwoDots 357 +#define TOK_ThreeDots 358 extern YYSTYPE asn1p_lval; diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y index f39bd12c..323ebe79 100644 --- a/libasn1parser/asn1p_y.y +++ b/libasn1parser/asn1p_y.y @@ -107,6 +107,7 @@ static void _fixup_anonymous_identifier(asn1p_expr_t *expr); * Token types returned by scanner. */ %token TOK_PPEQ /* "::=", Pseudo Pascal EQuality */ +%token TOK_whitespace /* A span of whitespace */ %token TOK_opaque /* opaque data (driven from .y) */ %token TOK_bstring %token TOK_cstring @@ -1073,8 +1074,9 @@ WithSyntaxList: ; WithSyntaxToken: - TOK_opaque { + TOK_whitespace { $$ = asn1p_wsyntx_chunk_frombuf($1.buf, $1.len, 0); + $$->type = WC_WHITESPACE; } | TOK_Literal { $$ = asn1p_wsyntx_chunk_frombuf($1, strlen($1), 0); diff --git a/libasn1print/asn1print.c b/libasn1print/asn1print.c index 423a5fa4..865d90b1 100644 --- a/libasn1print/asn1print.c +++ b/libasn1print/asn1print.c @@ -415,6 +415,7 @@ asn1print_with_syntax(asn1p_wsyntx_t *wx, enum asn1print_flags flags) { TQ_FOR(wc, &(wx->chunks), next) { switch(wc->type) { case WC_LITERAL: + case WC_WHITESPACE: printf("%s", wc->content.token); break; case WC_REFERENCE: -- cgit v1.2.3