newer versions
diff --git a/libasn1parser/asn1p_l.c b/libasn1parser/asn1p_l.c
index 6a6eb44..bbddbcc 100644
--- a/libasn1parser/asn1p_l.c
+++ b/libasn1parser/asn1p_l.c
@@ -21,6 +21,7 @@
/* Scanner skeleton version:
* $Header$
+ * $FreeBSD: src/usr.bin/lex/flex.skl,v 1.4 1999/10/27 07:56:44 obrien Exp $
*/
#define FLEX_SCANNER
@@ -1802,7 +1803,7 @@
/* Newline */
/* White-space */
-#line 1806 "lex.yy.c"
+#line 1807 "lex.yy.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -1956,7 +1957,7 @@
#line 99 "asn1p_l.l"
-#line 1960 "lex.yy.c"
+#line 1961 "lex.yy.c"
if ( yy_init )
{
@@ -2898,7 +2899,7 @@
#line 483 "asn1p_l.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 2902 "lex.yy.c"
+#line 2903 "lex.yy.c"
case YY_END_OF_BUFFER:
{
diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 095c904..18c744a 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -1,114 +1,265 @@
+/* A Bison parser, made from asn1p_y.y, by GNU bison 1.75. */
-/* A Bison parser, made from asn1p_y.y
- by GNU Bison version 1.28 */
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
-#define YYBISON 1 /* Identify Bison output. */
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* Written by Richard Stallman by simplifying the original so called
+ ``semantic'' parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Pure parsers. */
+#define YYPURE 0
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+/* If NAME_PREFIX is specified substitute the variables and functions
+ names. */
#define yyparse asn1p_parse
-#define yylex asn1p_lex
+#define yylex asn1p_lex
#define yyerror asn1p_error
-#define yylval asn1p_lval
-#define yychar asn1p_char
+#define yylval asn1p_lval
+#define yychar asn1p_char
#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_number_negative 264
-#define TOK_typereference 265
-#define TOK_objectclassreference 266
-#define TOK_typefieldreference 267
-#define TOK_valuefieldreference 268
-#define TOK_ABSENT 269
-#define TOK_ABSTRACT_SYNTAX 270
-#define TOK_ALL 271
-#define TOK_ANY 272
-#define TOK_APPLICATION 273
-#define TOK_AUTOMATIC 274
-#define TOK_BEGIN 275
-#define TOK_BIT 276
-#define TOK_BMPString 277
-#define TOK_BOOLEAN 278
-#define TOK_BY 279
-#define TOK_CHARACTER 280
-#define TOK_CHOICE 281
-#define TOK_CLASS 282
-#define TOK_COMPONENT 283
-#define TOK_COMPONENTS 284
-#define TOK_CONSTRAINED 285
-#define TOK_CONTAINING 286
-#define TOK_DEFAULT 287
-#define TOK_DEFINITIONS 288
-#define TOK_DEFINED 289
-#define TOK_EMBEDDED 290
-#define TOK_ENCODED 291
-#define TOK_END 292
-#define TOK_ENUMERATED 293
-#define TOK_EXPLICIT 294
-#define TOK_EXPORTS 295
-#define TOK_EXTENSIBILITY 296
-#define TOK_EXTERNAL 297
-#define TOK_FALSE 298
-#define TOK_FROM 299
-#define TOK_GeneralizedTime 300
-#define TOK_GeneralString 301
-#define TOK_GraphicString 302
-#define TOK_IA5String 303
-#define TOK_IDENTIFIER 304
-#define TOK_IMPLICIT 305
-#define TOK_IMPLIED 306
-#define TOK_IMPORTS 307
-#define TOK_INCLUDES 308
-#define TOK_INSTANCE 309
-#define TOK_INTEGER 310
-#define TOK_ISO646String 311
-#define TOK_MAX 312
-#define TOK_MIN 313
-#define TOK_MINUS_INFINITY 314
-#define TOK_NULL 315
-#define TOK_NumericString 316
-#define TOK_OBJECT 317
-#define TOK_ObjectDescriptor 318
-#define TOK_OCTET 319
-#define TOK_OF 320
-#define TOK_OPTIONAL 321
-#define TOK_PATTERN 322
-#define TOK_PDV 323
-#define TOK_PLUS_INFINITY 324
-#define TOK_PRESENT 325
-#define TOK_PrintableString 326
-#define TOK_PRIVATE 327
-#define TOK_REAL 328
-#define TOK_RELATIVE_OID 329
-#define TOK_SEQUENCE 330
-#define TOK_SET 331
-#define TOK_SIZE 332
-#define TOK_STRING 333
-#define TOK_SYNTAX 334
-#define TOK_T61String 335
-#define TOK_TAGS 336
-#define TOK_TeletexString 337
-#define TOK_TRUE 338
-#define TOK_TYPE_IDENTIFIER 339
-#define TOK_UNIQUE 340
-#define TOK_UNIVERSAL 341
-#define TOK_UniversalString 342
-#define TOK_UTCTime 343
-#define TOK_UTF8String 344
-#define TOK_VideotexString 345
-#define TOK_VisibleString 346
-#define TOK_WITH 347
-#define TOK_UNION 348
-#define TOK_INTERSECTION 349
-#define TOK_EXCEPT 350
-#define TOK_TwoDots 351
-#define TOK_ThreeDots 352
-#define TOK_tag 353
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ TOK_PPEQ = 258,
+ TOK_opaque = 259,
+ TOK_bstring = 260,
+ TOK_cstring = 261,
+ TOK_hstring = 262,
+ TOK_identifier = 263,
+ TOK_number = 264,
+ TOK_number_negative = 265,
+ TOK_typereference = 266,
+ TOK_objectclassreference = 267,
+ TOK_typefieldreference = 268,
+ TOK_valuefieldreference = 269,
+ TOK_ABSENT = 270,
+ TOK_ABSTRACT_SYNTAX = 271,
+ TOK_ALL = 272,
+ TOK_ANY = 273,
+ TOK_APPLICATION = 274,
+ TOK_AUTOMATIC = 275,
+ TOK_BEGIN = 276,
+ TOK_BIT = 277,
+ TOK_BMPString = 278,
+ TOK_BOOLEAN = 279,
+ TOK_BY = 280,
+ TOK_CHARACTER = 281,
+ TOK_CHOICE = 282,
+ TOK_CLASS = 283,
+ TOK_COMPONENT = 284,
+ TOK_COMPONENTS = 285,
+ TOK_CONSTRAINED = 286,
+ TOK_CONTAINING = 287,
+ TOK_DEFAULT = 288,
+ TOK_DEFINITIONS = 289,
+ TOK_DEFINED = 290,
+ TOK_EMBEDDED = 291,
+ TOK_ENCODED = 292,
+ TOK_END = 293,
+ TOK_ENUMERATED = 294,
+ TOK_EXPLICIT = 295,
+ TOK_EXPORTS = 296,
+ TOK_EXTENSIBILITY = 297,
+ TOK_EXTERNAL = 298,
+ TOK_FALSE = 299,
+ TOK_FROM = 300,
+ TOK_GeneralizedTime = 301,
+ TOK_GeneralString = 302,
+ TOK_GraphicString = 303,
+ TOK_IA5String = 304,
+ TOK_IDENTIFIER = 305,
+ TOK_IMPLICIT = 306,
+ TOK_IMPLIED = 307,
+ TOK_IMPORTS = 308,
+ TOK_INCLUDES = 309,
+ TOK_INSTANCE = 310,
+ TOK_INTEGER = 311,
+ TOK_ISO646String = 312,
+ TOK_MAX = 313,
+ TOK_MIN = 314,
+ TOK_MINUS_INFINITY = 315,
+ TOK_NULL = 316,
+ TOK_NumericString = 317,
+ TOK_OBJECT = 318,
+ TOK_ObjectDescriptor = 319,
+ TOK_OCTET = 320,
+ TOK_OF = 321,
+ TOK_OPTIONAL = 322,
+ TOK_PATTERN = 323,
+ TOK_PDV = 324,
+ TOK_PLUS_INFINITY = 325,
+ TOK_PRESENT = 326,
+ TOK_PrintableString = 327,
+ TOK_PRIVATE = 328,
+ TOK_REAL = 329,
+ TOK_RELATIVE_OID = 330,
+ TOK_SEQUENCE = 331,
+ TOK_SET = 332,
+ TOK_SIZE = 333,
+ TOK_STRING = 334,
+ TOK_SYNTAX = 335,
+ TOK_T61String = 336,
+ TOK_TAGS = 337,
+ TOK_TeletexString = 338,
+ TOK_TRUE = 339,
+ TOK_TYPE_IDENTIFIER = 340,
+ TOK_UNIQUE = 341,
+ TOK_UNIVERSAL = 342,
+ TOK_UniversalString = 343,
+ TOK_UTCTime = 344,
+ TOK_UTF8String = 345,
+ TOK_VideotexString = 346,
+ TOK_VisibleString = 347,
+ TOK_WITH = 348,
+ TOK_UNION = 349,
+ TOK_INTERSECTION = 350,
+ TOK_EXCEPT = 351,
+ TOK_TwoDots = 352,
+ TOK_ThreeDots = 353,
+ TOK_tag = 354
+ };
+#endif
+#define TOK_PPEQ 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_number_negative 265
+#define TOK_typereference 266
+#define TOK_objectclassreference 267
+#define TOK_typefieldreference 268
+#define TOK_valuefieldreference 269
+#define TOK_ABSENT 270
+#define TOK_ABSTRACT_SYNTAX 271
+#define TOK_ALL 272
+#define TOK_ANY 273
+#define TOK_APPLICATION 274
+#define TOK_AUTOMATIC 275
+#define TOK_BEGIN 276
+#define TOK_BIT 277
+#define TOK_BMPString 278
+#define TOK_BOOLEAN 279
+#define TOK_BY 280
+#define TOK_CHARACTER 281
+#define TOK_CHOICE 282
+#define TOK_CLASS 283
+#define TOK_COMPONENT 284
+#define TOK_COMPONENTS 285
+#define TOK_CONSTRAINED 286
+#define TOK_CONTAINING 287
+#define TOK_DEFAULT 288
+#define TOK_DEFINITIONS 289
+#define TOK_DEFINED 290
+#define TOK_EMBEDDED 291
+#define TOK_ENCODED 292
+#define TOK_END 293
+#define TOK_ENUMERATED 294
+#define TOK_EXPLICIT 295
+#define TOK_EXPORTS 296
+#define TOK_EXTENSIBILITY 297
+#define TOK_EXTERNAL 298
+#define TOK_FALSE 299
+#define TOK_FROM 300
+#define TOK_GeneralizedTime 301
+#define TOK_GeneralString 302
+#define TOK_GraphicString 303
+#define TOK_IA5String 304
+#define TOK_IDENTIFIER 305
+#define TOK_IMPLICIT 306
+#define TOK_IMPLIED 307
+#define TOK_IMPORTS 308
+#define TOK_INCLUDES 309
+#define TOK_INSTANCE 310
+#define TOK_INTEGER 311
+#define TOK_ISO646String 312
+#define TOK_MAX 313
+#define TOK_MIN 314
+#define TOK_MINUS_INFINITY 315
+#define TOK_NULL 316
+#define TOK_NumericString 317
+#define TOK_OBJECT 318
+#define TOK_ObjectDescriptor 319
+#define TOK_OCTET 320
+#define TOK_OF 321
+#define TOK_OPTIONAL 322
+#define TOK_PATTERN 323
+#define TOK_PDV 324
+#define TOK_PLUS_INFINITY 325
+#define TOK_PRESENT 326
+#define TOK_PrintableString 327
+#define TOK_PRIVATE 328
+#define TOK_REAL 329
+#define TOK_RELATIVE_OID 330
+#define TOK_SEQUENCE 331
+#define TOK_SET 332
+#define TOK_SIZE 333
+#define TOK_STRING 334
+#define TOK_SYNTAX 335
+#define TOK_T61String 336
+#define TOK_TAGS 337
+#define TOK_TeletexString 338
+#define TOK_TRUE 339
+#define TOK_TYPE_IDENTIFIER 340
+#define TOK_UNIQUE 341
+#define TOK_UNIVERSAL 342
+#define TOK_UniversalString 343
+#define TOK_UTCTime 344
+#define TOK_UTF8String 345
+#define TOK_VideotexString 346
+#define TOK_VisibleString 347
+#define TOK_WITH 348
+#define TOK_UNION 349
+#define TOK_INTERSECTION 350
+#define TOK_EXCEPT 351
+#define TOK_TwoDots 352
+#define TOK_ThreeDots 353
+#define TOK_tag 354
+
+
+
+
+/* Copy the first part of user declarations. */
#line 1 "asn1p_y.y"
@@ -159,6 +310,21 @@
} while(0)
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#ifndef YYSTYPE
#line 57 "asn1p_y.y"
typedef union {
asn1p_t *a_grammar;
@@ -191,801 +357,1035 @@
char *name;
struct asn1p_type_tag_s tag;
} tv_nametag;
-} YYSTYPE;
-#include <stdio.h>
-
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
-#endif
+} yystype;
+/* Line 193 of /usr/local/share/bison/yacc.c. */
+#line 363 "y.tab.c"
+# define YYSTYPE yystype
+# define YYSTYPE_IS_TRIVIAL 1
#endif
+#ifndef YYLTYPE
+typedef struct yyltype
+{
+ int first_line;
+ int first_column;
+ int last_line;
+ int last_column;
+} yyltype;
+# define YYLTYPE yyltype
+# define YYLTYPE_IS_TRIVIAL 1
+#endif
+
+/* Copy the second part of user declarations. */
-#define YYFINAL 375
-#define YYFLAG -32768
-#define YYNTBASE 113
+/* Line 213 of /usr/local/share/bison/yacc.c. */
+#line 384 "y.tab.c"
-#define YYTRANSLATE(x) ((unsigned)(x) <= 353 ? yytranslate[x] : 211)
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
-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, 109, 2, 2, 2, 2, 2, 2, 104,
- 105, 2, 2, 107, 2, 110, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 108, 106, 111,
- 2, 2, 2, 112, 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, 96, 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, 102, 94, 103, 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,
- 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, 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,
- 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, 1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 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, 95, 97, 98,
- 99, 100, 101
-};
+/* The parser invokes alloca or malloc; define the necessary symbols. */
-#if YYDEBUG != 0
-static const short yyprhs[] = { 0,
- 0, 2, 4, 7, 16, 17, 19, 23, 26, 28,
- 31, 33, 38, 40, 41, 43, 45, 48, 51, 54,
- 57, 60, 61, 63, 65, 68, 70, 72, 74, 76,
- 78, 80, 84, 87, 89, 92, 97, 99, 103, 105,
- 107, 111, 115, 118, 120, 124, 126, 128, 135, 137,
- 139, 140, 142, 147, 152, 156, 163, 165, 169, 171,
- 175, 179, 181, 185, 187, 189, 191, 195, 201, 202,
- 204, 206, 210, 213, 217, 222, 223, 225, 226, 233,
- 235, 238, 240, 242, 245, 247, 251, 253, 257, 261,
- 263, 265, 267, 272, 274, 278, 280, 284, 288, 290,
- 294, 296, 300, 302, 304, 306, 308, 313, 314, 318,
- 320, 322, 324, 326, 328, 330, 334, 336, 339, 341,
- 343, 345, 347, 350, 353, 355, 357, 360, 363, 365,
- 367, 369, 371, 374, 376, 379, 381, 383, 385, 387,
- 389, 391, 393, 395, 397, 399, 401, 403, 405, 407,
- 412, 417, 422, 427, 432, 434, 439, 440, 442, 444,
- 446, 448, 450, 452, 457, 459, 462, 466, 468, 472,
- 478, 480, 484, 486, 488, 492, 494, 498, 500, 504,
- 506, 510, 515, 517, 519, 521, 524, 527, 531, 533,
- 535, 537, 539, 541, 543, 545, 547, 549, 555, 557,
- 561, 563, 567, 568, 570, 572, 574, 576, 578, 580,
- 584, 589, 591, 595, 598, 602, 604, 608, 609, 611,
- 613, 616, 618, 620, 621, 625, 628, 632, 634, 638,
- 640, 645, 650, 652, 654, 656, 658, 659, 661, 663,
- 666, 669, 671, 673, 675, 677, 679
-};
+# if YYSTACK_USE_ALLOCA
+# define YYSTACK_ALLOC alloca
+# else
+# ifndef YYSTACK_USE_ALLOCA
+# if defined (alloca) || defined (_ALLOCA_H)
+# define YYSTACK_ALLOC alloca
+# else
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# endif
+# endif
+# endif
+# endif
-static const short yyrhs[] = { 114,
- 0, 115, 0, 114, 115, 0, 207, 116, 34, 120,
- 3, 21, 123, 38, 0, 0, 117, 0, 102, 118,
- 103, 0, 102, 103, 0, 119, 0, 118, 119, 0,
- 209, 0, 209, 104, 9, 105, 0, 9, 0, 0,
- 121, 0, 122, 0, 121, 122, 0, 40, 82, 0,
- 51, 82, 0, 20, 82, 0, 42, 52, 0, 0,
- 124, 0, 125, 0, 124, 125, 0, 126, 0, 131,
- 0, 137, 0, 161, 0, 134, 0, 169, 0, 53,
- 127, 106, 0, 53, 45, 0, 128, 0, 127, 128,
- 0, 129, 45, 207, 116, 0, 130, 0, 129, 107,
- 130, 0, 207, 0, 209, 0, 41, 132, 106, 0,
- 41, 17, 106, 0, 41, 106, 0, 133, 0, 132,
- 107, 133, 0, 207, 0, 209, 0, 207, 135, 3,
- 102, 136, 103, 0, 156, 0, 166, 0, 0, 177,
- 0, 207, 3, 205, 85, 0, 207, 3, 205, 153,
- 0, 207, 3, 143, 0, 207, 102, 138, 103, 3,
- 153, 0, 139, 0, 138, 107, 139, 0, 207, 0,
- 207, 108, 209, 0, 166, 108, 209, 0, 141, 0,
- 140, 107, 141, 0, 155, 0, 209, 0, 152, 0,
- 142, 107, 152, 0, 28, 102, 145, 103, 147, 0,
- 0, 86, 0, 146, 0, 145, 107, 146, 0, 159,
- 197, 0, 159, 153, 144, 0, 159, 159, 197, 144,
- 0, 0, 148, 0, 0, 93, 80, 102, 149, 150,
- 103, 0, 151, 0, 150, 151, 0, 4, 0, 159,
- 0, 210, 153, 0, 154, 0, 155, 171, 197, 0,
- 100, 0, 100, 109, 164, 0, 100, 109, 204, 0,
- 168, 0, 169, 0, 170, 0, 207, 102, 140, 103,
- 0, 156, 0, 55, 66, 156, 0, 11, 0, 11,
- 110, 207, 0, 11, 110, 209, 0, 208, 0, 208,
- 110, 157, 0, 158, 0, 157, 110, 158, 0, 160,
- 0, 160, 0, 13, 0, 14, 0, 209, 135, 3,
- 162, 0, 0, 102, 163, 165, 0, 5, 0, 7,
- 0, 6, 0, 204, 0, 164, 0, 209, 0, 207,
- 110, 209, 0, 4, 0, 165, 4, 0, 24, 0,
- 61, 0, 74, 0, 167, 0, 65, 79, 0, 63,
- 50, 0, 75, 0, 43, 0, 36, 69, 0, 26,
- 79, 0, 89, 0, 46, 0, 56, 0, 39, 0,
- 22, 79, 0, 166, 0, 167, 201, 0, 23, 0,
- 47, 0, 48, 0, 49, 0, 57, 0, 62, 0,
- 72, 0, 81, 0, 83, 0, 88, 0, 90, 0,
- 91, 0, 92, 0, 64, 0, 27, 102, 142, 103,
- 0, 76, 102, 142, 103, 0, 77, 102, 142, 103,
- 0, 76, 171, 66, 155, 0, 77, 171, 66, 155,
- 0, 18, 0, 18, 35, 25, 209, 0, 0, 175,
- 0, 94, 0, 95, 0, 96, 0, 97, 0, 98,
- 0, 78, 104, 177, 105, 0, 176, 0, 175, 176,
- 0, 104, 177, 105, 0, 178, 0, 178, 107, 100,
- 0, 178, 107, 100, 107, 178, 0, 100, 0, 100,
- 107, 178, 0, 179, 0, 180, 0, 179, 172, 180,
- 0, 181, 0, 180, 173, 181, 0, 182, 0, 181,
- 174, 182, 0, 185, 0, 185, 183, 185, 0, 184,
- 104, 177, 105, 0, 191, 0, 186, 0, 99, 0,
- 99, 111, 0, 111, 99, 0, 111, 99, 111, 0,
- 78, 0, 45, 0, 204, 0, 209, 0, 6, 0,
- 59, 0, 58, 0, 44, 0, 84, 0, 93, 30,
- 102, 187, 103, 0, 188, 0, 187, 107, 188, 0,
- 100, 0, 209, 171, 189, 0, 0, 190, 0, 71,
- 0, 15, 0, 67, 0, 192, 0, 193, 0, 102,
- 207, 103, 0, 192, 102, 194, 103, 0, 195, 0,
- 194, 107, 195, 0, 112, 196, 0, 112, 110, 196,
- 0, 209, 0, 196, 110, 209, 0, 0, 198, 0,
- 67, 0, 33, 199, 0, 185, 0, 166, 0, 0,
- 102, 200, 165, 0, 102, 103, 0, 102, 202, 103,
- 0, 203, 0, 202, 107, 203, 0, 209, 0, 209,
- 104, 204, 105, 0, 209, 104, 164, 105, 0, 204,
- 0, 100, 0, 9, 0, 10, 0, 0, 206, 0,
- 101, 0, 101, 51, 0, 101, 40, 0, 11, 0,
- 12, 0, 12, 0, 8, 0, 209, 0, 209, 206,
- 0
-};
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+# if defined (__STDC__) || defined (__cplusplus)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# endif
+# define YYSTACK_ALLOC malloc
+# define YYSTACK_FREE free
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+ && (! defined (__cplusplus) \
+ || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ short yyss;
+ YYSTYPE yyvs;
+ };
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAX)
+
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ register YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (0)
+# endif
+# endif
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (0)
#endif
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
- 297, 303, 309, 325, 350, 352, 355, 359, 364, 371,
- 379, 384, 388, 397, 399, 407, 411, 419, 423, 426,
- 429, 437, 439, 448, 452, 477, 481, 490, 497, 510,
- 521, 534, 541, 546, 552, 558, 567, 573, 579, 586,
- 594, 598, 601, 608, 614, 620, 627, 636, 646, 654,
- 662, 664, 676, 688, 695, 711, 721, 731, 741, 746,
- 753, 763, 769, 775, 779, 791, 797, 803, 813, 815,
- 818, 826, 832, 841, 846, 863, 865, 870, 874, 879,
- 884, 890, 894, 919, 926, 931, 939, 948, 957, 968,
- 972, 978, 986, 1010, 1017, 1031, 1040, 1050, 1060, 1068,
- 1089, 1098, 1107, 1108, 1110, 1117, 1129, 1139, 1141, 1146,
- 1150, 1154, 1158, 1161, 1166, 1178, 1194, 1205, 1219, 1221,
- 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231,
- 1237, 1239, 1240, 1243, 1250, 1262, 1264, 1268, 1272, 1273,
- 1274, 1275, 1276, 1280, 1281, 1282, 1283, 1287, 1288, 1291,
- 1298, 1304, 1310, 1318, 1326, 1332, 1348, 1350, 1353, 1353,
- 1354, 1354, 1355, 1357, 1370, 1373, 1378, 1384, 1388, 1395,
- 1403, 1408, 1417, 1419, 1421, 1426, 1428, 1434, 1436, 1441,
- 1448, 1455, 1463, 1466, 1471, 1473, 1474, 1475, 1478, 1482,
- 1487, 1491, 1502, 1506, 1511, 1516, 1521, 1528, 1534, 1538,
- 1543, 1549, 1561, 1563, 1566, 1570, 1573, 1578, 1582, 1590,
- 1605, 1611, 1618, 1631, 1643, 1658, 1662, 1679, 1681, 1684,
- 1688, 1694, 1697, 1699, 1699, 1719, 1724, 1729, 1735, 1741,
- 1749, 1757, 1765, 1772, 1782, 1787, 1817, 1819, 1822, 1827,
- 1831, 1837, 1842, 1848, 1855, 1862, 1867
-};
-#endif
-
-
-#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_number_negative","TOK_typereference","TOK_objectclassreference","TOK_typefieldreference",
-"TOK_valuefieldreference","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","TOK_ENCODED","TOK_END","TOK_ENUMERATED","TOK_EXPLICIT","TOK_EXPORTS",
-"TOK_EXTENSIBILITY","TOK_EXTERNAL","TOK_FALSE","TOK_FROM","TOK_GeneralizedTime",
-"TOK_GeneralString","TOK_GraphicString","TOK_IA5String","TOK_IDENTIFIER","TOK_IMPLICIT",
-"TOK_IMPLIED","TOK_IMPORTS","TOK_INCLUDES","TOK_INSTANCE","TOK_INTEGER","TOK_ISO646String",
-"TOK_MAX","TOK_MIN","TOK_MINUS_INFINITY","TOK_NULL","TOK_NumericString","TOK_OBJECT",
-"TOK_ObjectDescriptor","TOK_OCTET","TOK_OF","TOK_OPTIONAL","TOK_PATTERN","TOK_PDV",
-"TOK_PLUS_INFINITY","TOK_PRESENT","TOK_PrintableString","TOK_PRIVATE","TOK_REAL",
-"TOK_RELATIVE_OID","TOK_SEQUENCE","TOK_SET","TOK_SIZE","TOK_STRING","TOK_SYNTAX",
-"TOK_T61String","TOK_TAGS","TOK_TeletexString","TOK_TRUE","TOK_TYPE_IDENTIFIER",
-"TOK_UNIQUE","TOK_UNIVERSAL","TOK_UniversalString","TOK_UTCTime","TOK_UTF8String",
-"TOK_VideotexString","TOK_VisibleString","TOK_WITH","'|'","TOK_UNION","'^'",
-"TOK_INTERSECTION","TOK_EXCEPT","TOK_TwoDots","TOK_ThreeDots","TOK_tag","'{'",
-"'}'","'('","')'","';'","','","':'","'!'","'.'","'<'","'@'","ParsedGrammar",
-"ModuleList","ModuleSpecification","optObjectIdentifier","ObjectIdentifier",
-"ObjectIdentifierBody","ObjectIdentifierElement","optModuleSpecificationFlags",
-"ModuleSpecificationFlags","ModuleSpecificationFlag","optModuleSpecificationBody",
-"ModuleSpecificationBody","ModuleSpecificationElement","ImportsDefinition","ImportsBundleSet",
-"ImportsBundle","ImportsList","ImportsElement","ExportsDefinition","ExportsBody",
-"ExportsElement","ValueSetDefinition","DefinedTypeRef","optValueSetBody","DataTypeReference",
-"ParameterArgumentList","ParameterArgumentName","ActualParameterList","ActualParameter",
-"ConstructedDataTypeDefinition","ClassDeclaration","optUnique","ClassFieldList",
-"ClassField","optWithSyntax","WithSyntax","@1","WithSyntaxFormat","WithSyntaxFormatToken",
-"DataTypeMember","ConstrainedTypeDeclaration","ExtensionAndException","TypeDeclaration",
-"ComplexTypeReference","ComplexTypeReferenceAmpList","ComplexTypeReferenceElement",
-"ClassFieldIdentifier","ClassFieldName","ValueDefinition","InlineOrDefinedValue",
-"@2","DefinedValue","Opaque","BasicTypeId","BasicTypeId_UniverationCompatible",
-"BasicType","BasicString","ConstructedType","optConstraints","Union","Intersection",
-"Except","Constraints","SingleConstraint","ConstraintElementSet","ConstraintElement",
-"ConstraintElementUnion","ConstraintElementIntersection","ConstraintElementException",
-"ConstraintSubtypeElement","ConstraintRangeSpec","ConstraintSpec","ConstraintValue",
-"WithComponents","WithComponentsList","WithComponentsElement","optPresenceConstraint",
-"PresenceConstraint","TableConstraint","SimpleTableConstraint","ComponentRelationConstraint",
-"AtNotationList","AtNotationElement","ComponentIdList","optMarker","Marker",
-"DefaultValue","@3","UniverationDefinition","UniverationList","UniverationElement",
-"SignedNumber","optTag","Tag","TypeRefName","ObjectClassReference","Identifier",
-"TaggedIdentifier", NULL
-};
-#endif
-
-static const short yyr1[] = { 0,
- 113, 114, 114, 115, 116, 116, 117, 117, 118, 118,
- 119, 119, 119, 120, 120, 121, 121, 122, 122, 122,
- 122, 123, 123, 124, 124, 125, 125, 125, 125, 125,
- 125, 126, 126, 127, 127, 128, 129, 129, 130, 130,
- 131, 131, 131, 132, 132, 133, 133, 134, 135, 135,
- 136, 136, 137, 137, 137, 137, 138, 138, 139, 139,
- 139, 140, 140, 141, 141, 142, 142, 143, 144, 144,
- 145, 145, 146, 146, 146, 147, 147, 149, 148, 150,
- 150, 151, 151, 152, 152, 153, 154, 154, 154, 155,
- 155, 155, 155, 155, 155, 156, 156, 156, 156, 156,
- 157, 157, 158, 159, 160, 160, 161, 163, 162, 162,
- 162, 162, 162, 162, 164, 164, 165, 165, 166, 166,
- 166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
- 167, 167, 167, 168, 168, 169, 169, 169, 169, 169,
- 169, 169, 169, 169, 169, 169, 169, 169, 169, 170,
- 170, 170, 170, 170, 170, 170, 171, 171, 172, 172,
- 173, 173, 174, 175, 175, 175, 176, 177, 177, 177,
- 177, 177, 178, 179, 179, 180, 180, 181, 181, 182,
- 182, 182, 182, 182, 183, 183, 183, 183, 184, 184,
- 185, 185, 185, 185, 185, 185, 185, 186, 187, 187,
- 188, 188, 189, 189, 190, 190, 190, 191, 191, 192,
- 193, 194, 194, 195, 195, 196, 196, 197, 197, 198,
- 198, 199, 199, 200, 199, 201, 201, 202, 202, 203,
- 203, 203, 203, 203, 204, 204, 205, 205, 206, 206,
- 206, 207, 207, 208, 209, 210, 210
-};
-
-static const short yyr2[] = { 0,
- 1, 1, 2, 8, 0, 1, 3, 2, 1, 2,
- 1, 4, 1, 0, 1, 1, 2, 2, 2, 2,
- 2, 0, 1, 1, 2, 1, 1, 1, 1, 1,
- 1, 3, 2, 1, 2, 4, 1, 3, 1, 1,
- 3, 3, 2, 1, 3, 1, 1, 6, 1, 1,
- 0, 1, 4, 4, 3, 6, 1, 3, 1, 3,
- 3, 1, 3, 1, 1, 1, 3, 5, 0, 1,
- 1, 3, 2, 3, 4, 0, 1, 0, 6, 1,
- 2, 1, 1, 2, 1, 3, 1, 3, 3, 1,
- 1, 1, 4, 1, 3, 1, 3, 3, 1, 3,
- 1, 3, 1, 1, 1, 1, 4, 0, 3, 1,
- 1, 1, 1, 1, 1, 3, 1, 2, 1, 1,
- 1, 1, 2, 2, 1, 1, 2, 2, 1, 1,
- 1, 1, 2, 1, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
- 4, 4, 4, 4, 1, 4, 0, 1, 1, 1,
- 1, 1, 1, 4, 1, 2, 3, 1, 3, 5,
- 1, 3, 1, 1, 3, 1, 3, 1, 3, 1,
- 3, 4, 1, 1, 1, 2, 2, 3, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 5, 1, 3,
- 1, 3, 0, 1, 1, 1, 1, 1, 1, 3,
- 4, 1, 3, 2, 3, 1, 3, 0, 1, 1,
- 2, 1, 1, 0, 3, 2, 3, 1, 3, 1,
- 4, 4, 1, 1, 1, 1, 0, 1, 1, 2,
- 2, 1, 1, 1, 1, 1, 2
-};
-
-static const short yydefact[] = { 0,
- 242, 243, 1, 2, 5, 3, 0, 0, 6, 245,
- 13, 8, 0, 9, 11, 14, 7, 10, 0, 0,
- 0, 0, 0, 0, 15, 16, 0, 20, 18, 21,
- 19, 0, 17, 12, 22, 136, 0, 137, 138, 139,
- 0, 140, 141, 149, 142, 143, 144, 145, 146, 147,
- 148, 0, 23, 24, 26, 27, 30, 28, 29, 31,
- 0, 0, 0, 43, 0, 44, 46, 47, 33, 0,
- 34, 0, 37, 39, 40, 4, 25, 237, 96, 244,
- 0, 119, 0, 0, 132, 126, 130, 131, 120, 0,
- 0, 121, 125, 129, 0, 0, 49, 50, 122, 99,
- 0, 42, 41, 0, 32, 35, 0, 0, 0, 239,
- 55, 0, 238, 0, 133, 128, 127, 124, 123, 0,
- 57, 0, 59, 0, 0, 0, 45, 5, 38, 0,
- 241, 240, 96, 244, 155, 0, 0, 157, 157, 53,
- 54, 157, 94, 134, 122, 90, 91, 92, 0, 97,
- 98, 0, 0, 0, 0, 51, 105, 106, 100, 101,
- 103, 110, 112, 111, 235, 236, 108, 107, 114, 113,
- 0, 115, 36, 0, 71, 218, 104, 0, 0, 0,
- 0, 0, 0, 0, 158, 165, 0, 0, 218, 0,
- 135, 0, 0, 58, 61, 60, 193, 196, 190, 195,
- 194, 189, 197, 0, 171, 0, 0, 52, 168, 173,
- 174, 176, 178, 0, 180, 184, 183, 208, 209, 191,
- 192, 0, 0, 0, 76, 0, 0, 220, 69, 218,
- 73, 219, 0, 87, 0, 66, 85, 246, 0, 95,
- 0, 0, 0, 0, 166, 0, 0, 86, 234, 226,
- 0, 228, 233, 230, 0, 62, 64, 65, 56, 0,
- 0, 0, 48, 0, 159, 160, 0, 161, 162, 0,
- 163, 0, 0, 185, 0, 0, 0, 102, 117, 109,
- 116, 0, 68, 77, 72, 224, 223, 222, 221, 70,
- 74, 69, 156, 0, 150, 0, 247, 84, 0, 151,
- 167, 153, 152, 154, 227, 0, 0, 93, 0, 0,
- 172, 210, 169, 175, 177, 179, 0, 186, 187, 181,
- 0, 0, 212, 118, 0, 0, 75, 88, 89, 67,
- 164, 229, 0, 0, 63, 201, 0, 199, 157, 0,
- 182, 188, 0, 214, 216, 211, 0, 78, 225, 232,
- 231, 198, 0, 203, 170, 215, 0, 213, 0, 200,
- 206, 207, 205, 202, 204, 217, 82, 0, 80, 83,
- 79, 81, 0, 0, 0
-};
-
-static const short yydefgoto[] = { 373,
- 3, 4, 8, 9, 13, 14, 24, 25, 26, 52,
- 53, 54, 55, 70, 71, 72, 73, 56, 65, 66,
- 57, 96, 207, 58, 120, 121, 255, 256, 235, 111,
- 291, 174, 175, 283, 284, 359, 368, 369, 236, 141,
- 237, 142, 143, 159, 160, 176, 177, 59, 168, 223,
- 169, 280, 144, 145, 146, 147, 148, 184, 267, 270,
- 272, 185, 186, 208, 209, 210, 211, 212, 213, 276,
- 214, 215, 216, 337, 338, 364, 365, 217, 218, 219,
- 322, 323, 344, 231, 232, 289, 326, 191, 251, 252,
- 220, 112, 113, 149, 100, 221, 239
-};
-
-static const short yypact[] = { 81,
--32768,-32768, 81,-32768, -45,-32768, 23, 70,-32768,-32768,
--32768,-32768, 47,-32768, 31, 190,-32768,-32768, 132, 61,
- 69, 108, 86, 176, 190,-32768, 76,-32768,-32768,-32768,
--32768, 166,-32768,-32768, 442,-32768, 32,-32768,-32768,-32768,
- 121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 168, 442,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 179, 732, 103,-32768, 52,-32768,-32768,-32768,-32768, 39,
--32768, 16,-32768,-32768,-32768,-32768,-32768, -11, 111,-32768,
- 150,-32768, 152, 142,-32768,-32768,-32768,-32768,-32768, 184,
- 159,-32768,-32768,-32768, 748, 240,-32768,-32768,-32768, 135,
- 243,-32768,-32768, 141,-32768,-32768, 81, 141, 145, 60,
--32768, 599,-32768, 141,-32768,-32768,-32768,-32768,-32768, -1,
--32768, 143, 144, 147, 206, 68,-32768, -45,-32768, 206,
--32768,-32768, -42, 148, 221, 161, 198, 40, 53,-32768,
--32768, -37,-32768,-32768, 163,-32768,-32768,-32768, 164,-32768,
--32768, 264, 748, 261, 261, 155,-32768,-32768, 160,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 162,-32768,-32768, 64,-32768, 524,-32768, 246, 21, 212,
- 169, 21, 155, 208, 171,-32768, 21, 210, 2, 17,
--32768, 383, 674,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768, 247, 172, 81, 175,-32768, 173, 133,
- 140, 185,-32768, 178, 35,-32768,-32768, 182,-32768,-32768,
--32768, 206, 281, 261, 193, 206, 301,-32768, 202, 2,
--32768,-32768, 261, 181, 66,-32768,-32768, 191, 674,-32768,
- 155, 71, 186, 674,-32768, 89, 674,-32768,-32768,-32768,
- 90,-32768,-32768, 189, 91,-32768,-32768,-32768,-32768, 192,
- 309, 194,-32768, 196,-32768,-32768, 309,-32768,-32768, 309,
--32768, 309, 155, 187, 205, 78, 200,-32768,-32768, 297,
--32768, 225,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 202,-32768, 250,-32768, 21,-32768,-32768, 201,-32768,
--32768,-32768,-32768,-32768,-32768, 56, 250,-32768, 383, 25,
--32768,-32768, 209, 140, 185,-32768, 215,-32768, 211,-32768,
- 6, 101,-32768,-32768, 219, 281,-32768,-32768,-32768,-32768,
--32768,-32768, 223, 224,-32768,-32768, 109,-32768, -37, 309,
--32768,-32768, 261, 203,-32768,-32768, 200,-32768, 297,-32768,
--32768,-32768, 25, 24,-32768, 203, 261,-32768, 126,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, 9,-32768,-32768,
--32768,-32768, 324, 326,-32768
-};
-
-static const short yypgoto[] = {-32768,
--32768, 327, 204,-32768,-32768, 318,-32768,-32768, 308,-32768,
--32768, 282,-32768,-32768, 268,-32768, 226,-32768,-32768, 235,
--32768, 279,-32768,-32768,-32768, 195,-32768, 33, -129,-32768,
- 51,-32768, 123,-32768,-32768,-32768,-32768, -17, 59, -156,
--32768, -185, -52,-32768, 130, -173, -109,-32768,-32768,-32768,
- -209, 30, -50, -43,-32768, 46,-32768, -137,-32768,-32768,
--32768,-32768, 180, -159, -246,-32768, 94, 88, 97,-32768,
--32768, -206,-32768,-32768, 10,-32768,-32768,-32768,-32768,-32768,
--32768, 26, 27, -141,-32768,-32768,-32768,-32768,-32768, 65,
- -118,-32768, 134, 1,-32768, -7,-32768
-};
-
-
-#define YYLAST 837
-
-
-static const short yytable[] = { 15,
- 5, 188, 230, 5, 189, 15, 257, 170, 97, 97,
- 98, 98, 367, 10, 311, 161, 109, 99, 99, 229,
- 288, 157, 158, 243, 10, 165, 166, 62, 10, 68,
- 10, 11, 10, 75, 227, 61, 259, 67, 361, 10,
- 181, 74, 1, 2, 122, 62, 10, 248, 63, 1,
- 2, 99, 242, 61, 10, 11, 7, 246, 302, -242,
- 107, 304, 75, 10, 165, 166, 183, 114, 228, 320,
- 74, 253, 162, 163, 164, 10, 165, 166, 1, 2,
- 60, 299, 298, 197, 328, 10, 165, 166, 292, 110,
- 362, 1, 2, 355, 363, 123, 68, 333, 60, 131,
- 75, 152, 122, 16, 67, 153, 151, 128, 74, 99,
- 132, 371, 161, 317, 150, 343, 249, 181, 172, 250,
- 234, 198, 108, 257, 336, 12, 171, 240, 10, 367,
- 181, 1, 2, 274, 19, 200, 201, 64, 157, 158,
- 27, 182, 28, 183, 105, 275, 195, 196, 10, 17,
- 29, 1, 2, 123, 187, 249, 183, 103, 104, 30,
- 197, 203, 10, 165, 166, 69, 225, 31, 295, 167,
- 226, 238, 296, 300, 238, 329, 287, 296, 32, 238,
- 34, 78, 254, 99, 258, 370, 35, 253, 334, 79,
- 80, 303, 305, 308, 370, 296, 306, 309, 198, 199,
- 81, 354, 82, 346, 83, 76, 262, 347, 102, 20,
- 117, 352, 200, 201, 84, 353, 281, 85, 157, 158,
- 114, 86, 79, 80, 87, 293, 265, 266, 115, 21,
- 116, 22, 202, 118, 88, 268, 269, 119, 203, 89,
- 23, 90, 124, 91, 125, 126, 130, 204, 156, -243,
- 154, 155, 92, 93, 205, 178, 206, 10, 165, 166,
- 1, 2, 179, 180, 190, 192, 193, 94, 10, 222,
- 233, 224, 241, 244, 183, 247, 260, 263, 261, 264,
- 95, 273, 271, 277, 279, 282, 172, 290, 238, 294,
- 301, 110, 307, 310, 171, 313, 312, 318, 254, 172,
- 324, 258, 339, 319, 325, 331, 197, 171, 10, 165,
- 166, 321, 357, 345, 197, 340, 10, 165, 166, 341,
- 348, 342, 81, 374, 82, 375, 83, 350, 351, 6,
- 18, 173, 33, 129, 77, 345, 84, 106, 127, 85,
- 101, 335, 327, 86, 198, 339, 87, 194, 285, 366,
- 372, 278, 198, 199, 330, 349, 88, 315, 200, 201,
- 314, 89, 360, 90, 245, 91, 200, 201, 316, 356,
- 332, 297, 358, 0, 92, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 203, 0, 202, 0, 0, 94,
- 10, 0, 203, 133, 134, 0, 0, 0, 0, 0,
- 135, 204, 286, 0, 81, 36, 82, 0, 83, 136,
- 206, 0, 0, 0, 0, 0, 0, 0, 84, 0,
- 0, 85, 0, 0, 0, 86, 0, 0, 87, 38,
- 39, 40, 0, 0, 0, 0, 0, 137, 88, 42,
- 0, 0, 0, 89, 43, 90, 44, 91, 0, 10,
- 0, 0, 1, 2, 45, 0, 92, 93, 138, 139,
- 0, 0, 0, 46, 36, 47, 0, 0, 0, 0,
- 48, 94, 49, 50, 51, 0, 0, 0, 0, 0,
- 0, 0, 37, 0, 0, 0, 0, 0, 38, 39,
- 40, 0, 0, 0, 41, 0, 0, 0, 42, 0,
- 0, 0, 0, 43, 0, 44, 0, 0, 0, 0,
- 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
- 0, 0, 46, 0, 47, 0, 0, 0, 0, 48,
- 0, 49, 50, 51, 133, 134, 157, 158, 0, 0,
- 0, 135, 0, 0, 0, 81, 36, 82, 0, 83,
- 136, 0, 0, 0, 0, 0, 227, 0, 0, 84,
- 0, 0, 85, 0, 0, 0, 86, 0, 0, 87,
- 38, 39, 40, 0, 0, 0, 0, 0, 137, 88,
- 42, 0, 0, 0, 89, 43, 90, 44, 91, 0,
- 228, 0, 0, 0, 0, 45, 0, 92, 93, 138,
- 139, 0, 0, 0, 46, 0, 47, 0, 0, 133,
- 134, 48, 94, 49, 50, 51, 135, 0, 0, 0,
- 81, 36, 82, 0, 83, 136, 0, 0, 0, 0,
- 0, 0, 0, 0, 84, 0, 0, 85, 0, 0,
- 0, 86, 0, 0, 87, 38, 39, 40, 0, 0,
- 0, 0, 0, 137, 88, 42, 0, 0, 0, 89,
- 43, 90, 44, 91, 0, 0, 0, 0, 0, 0,
- 45, 0, 92, 93, 138, 139, 0, 0, 0, 46,
- 0, 47, 0, 140, 133, 134, 48, 94, 49, 50,
- 51, 135, 0, 0, 0, 81, 36, 82, 0, 83,
- 136, 0, 0, 0, 0, 0, 0, 0, 0, 84,
- 0, 0, 85, 0, 0, 0, 86, 0, 0, 87,
- 38, 39, 40, 0, 0, 0, 0, 0, 137, 88,
- 42, 0, 0, 0, 89, 43, 90, 44, 91, 0,
- 0, 0, 79, 80, 0, 45, 0, 92, 93, 138,
- 139, 0, 0, 81, 46, 82, 47, 83, 1, 2,
- 0, 48, 94, 49, 50, 51, 0, 84, 0, 81,
- 85, 82, 0, 83, 86, 0, 0, 87, 0, 0,
- 0, 0, 0, 84, 0, 0, 85, 88, 0, 0,
- 86, 0, 89, 87, 90, 0, 91, 0, 0, 0,
- 0, 0, 0, 88, 0, 92, 93, 0, 89, 0,
- 90, 0, 91, 0, 0, 0, 0, 0, 0, 0,
- 94, 92, 93, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 94
-};
-
-static const short yycheck[] = { 7,
- 0, 139, 176, 3, 142, 13, 192, 126, 61, 62,
- 61, 62, 4, 8, 261, 125, 28, 61, 62, 176,
- 227, 13, 14, 183, 8, 9, 10, 35, 8, 37,
- 8, 9, 8, 41, 33, 35, 193, 37, 15, 8,
- 78, 41, 11, 12, 95, 53, 8, 189, 17, 11,
- 12, 95, 182, 53, 8, 9, 102, 187, 244, 102,
- 45, 247, 70, 8, 9, 10, 104, 110, 67, 276,
- 70, 190, 5, 6, 7, 8, 9, 10, 11, 12,
- 35, 241, 239, 6, 294, 8, 9, 10, 230, 101,
- 67, 11, 12, 340, 71, 95, 104, 307, 53, 40,
- 108, 103, 153, 34, 104, 107, 114, 107, 108, 153,
- 51, 103, 222, 273, 114, 110, 100, 78, 126, 103,
- 100, 44, 107, 309, 100, 103, 126, 180, 8, 4,
- 78, 11, 12, 99, 104, 58, 59, 106, 13, 14,
- 9, 102, 82, 104, 106, 111, 154, 155, 8, 103,
- 82, 11, 12, 153, 102, 100, 104, 106, 107, 52,
- 6, 84, 8, 9, 10, 45, 103, 82, 103, 102,
- 107, 179, 107, 103, 182, 294, 227, 107, 3, 187,
- 105, 3, 190, 227, 192, 359, 21, 306, 307, 11,
- 12, 103, 103, 103, 368, 107, 107, 107, 44, 45,
- 22, 339, 24, 103, 26, 38, 206, 107, 106, 20,
- 69, 103, 58, 59, 36, 107, 224, 39, 13, 14,
- 110, 43, 11, 12, 46, 233, 94, 95, 79, 40,
- 79, 42, 78, 50, 56, 96, 97, 79, 84, 61,
- 51, 63, 3, 65, 110, 3, 102, 93, 102, 102,
- 108, 108, 74, 75, 100, 35, 102, 8, 9, 10,
- 11, 12, 102, 66, 102, 102, 3, 89, 8, 110,
- 25, 110, 104, 66, 104, 66, 30, 103, 107, 107,
- 102, 104, 98, 102, 4, 93, 294, 86, 296, 109,
- 105, 101, 104, 102, 294, 100, 103, 111, 306, 307,
- 4, 309, 310, 99, 80, 105, 6, 307, 8, 9,
- 10, 112, 110, 321, 6, 107, 8, 9, 10, 105,
- 102, 111, 22, 0, 24, 0, 26, 105, 105, 3,
- 13, 128, 25, 108, 53, 343, 36, 70, 104, 39,
- 62, 309, 292, 43, 44, 353, 46, 153, 226, 357,
- 368, 222, 44, 45, 296, 326, 56, 270, 58, 59,
- 267, 61, 353, 63, 185, 65, 58, 59, 272, 343,
- 306, 238, 347, -1, 74, 75, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, -1, 78, -1, -1, 89,
- 8, -1, 84, 11, 12, -1, -1, -1, -1, -1,
- 18, 93, 102, -1, 22, 23, 24, -1, 26, 27,
- 102, -1, -1, -1, -1, -1, -1, -1, 36, -1,
- -1, 39, -1, -1, -1, 43, -1, -1, 46, 47,
- 48, 49, -1, -1, -1, -1, -1, 55, 56, 57,
- -1, -1, -1, 61, 62, 63, 64, 65, -1, 8,
- -1, -1, 11, 12, 72, -1, 74, 75, 76, 77,
- -1, -1, -1, 81, 23, 83, -1, -1, -1, -1,
- 88, 89, 90, 91, 92, -1, -1, -1, -1, -1,
- -1, -1, 41, -1, -1, -1, -1, -1, 47, 48,
- 49, -1, -1, -1, 53, -1, -1, -1, 57, -1,
- -1, -1, -1, 62, -1, 64, -1, -1, -1, -1,
- -1, -1, -1, 72, -1, -1, -1, -1, -1, -1,
- -1, -1, 81, -1, 83, -1, -1, -1, -1, 88,
- -1, 90, 91, 92, 11, 12, 13, 14, -1, -1,
- -1, 18, -1, -1, -1, 22, 23, 24, -1, 26,
- 27, -1, -1, -1, -1, -1, 33, -1, -1, 36,
- -1, -1, 39, -1, -1, -1, 43, -1, -1, 46,
- 47, 48, 49, -1, -1, -1, -1, -1, 55, 56,
- 57, -1, -1, -1, 61, 62, 63, 64, 65, -1,
- 67, -1, -1, -1, -1, 72, -1, 74, 75, 76,
- 77, -1, -1, -1, 81, -1, 83, -1, -1, 11,
- 12, 88, 89, 90, 91, 92, 18, -1, -1, -1,
- 22, 23, 24, -1, 26, 27, -1, -1, -1, -1,
- -1, -1, -1, -1, 36, -1, -1, 39, -1, -1,
- -1, 43, -1, -1, 46, 47, 48, 49, -1, -1,
- -1, -1, -1, 55, 56, 57, -1, -1, -1, 61,
- 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
- 72, -1, 74, 75, 76, 77, -1, -1, -1, 81,
- -1, 83, -1, 85, 11, 12, 88, 89, 90, 91,
- 92, 18, -1, -1, -1, 22, 23, 24, -1, 26,
- 27, -1, -1, -1, -1, -1, -1, -1, -1, 36,
- -1, -1, 39, -1, -1, -1, 43, -1, -1, 46,
- 47, 48, 49, -1, -1, -1, -1, -1, 55, 56,
- 57, -1, -1, -1, 61, 62, 63, 64, 65, -1,
- -1, -1, 11, 12, -1, 72, -1, 74, 75, 76,
- 77, -1, -1, 22, 81, 24, 83, 26, 11, 12,
- -1, 88, 89, 90, 91, 92, -1, 36, -1, 22,
- 39, 24, -1, 26, 43, -1, -1, 46, -1, -1,
- -1, -1, -1, 36, -1, -1, 39, 56, -1, -1,
- 43, -1, 61, 46, 63, -1, 65, -1, -1, -1,
- -1, -1, -1, 56, -1, 74, 75, -1, 61, -1,
- 63, -1, 65, -1, -1, -1, -1, -1, -1, -1,
- 89, 74, 75, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 89
-};
-/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-#line 3 "/usr/share/bison.simple"
-/* This file comes from bison-1.28. */
-
-/* Skeleton output parser for bison,
- Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
-
-/* This is the parser code that is written into each bison parser
- when the %semantic_parser declaration is not specified in the grammar.
- It was written by Richard Stallman by simplifying the hairy parser
- used when %semantic_parser is specified. */
-
-#ifndef YYSTACK_USE_ALLOCA
-#ifdef alloca
-#define YYSTACK_USE_ALLOCA
-#else /* alloca not defined */
-#ifdef __GNUC__
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#else /* not GNU C. */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
-#define YYSTACK_USE_ALLOCA
-#include <alloca.h>
-#else /* not sparc */
-/* We think this test detects Watcom and Microsoft C. */
-/* This used to test MSDOS, but that is a bad idea
- since that symbol is in the user namespace. */
-#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
-#if 0 /* No need for malloc.h, which pollutes the namespace;
- instead, just don't use alloca. */
-#include <malloc.h>
-#endif
-#else /* not MSDOS, or __TURBOC__ */
-#if defined(_AIX)
-/* I don't know what this was needed for, but it pollutes the namespace.
- So I turned it off. rms, 2 May 1997. */
-/* #include <malloc.h> */
- #pragma alloca
-#define YYSTACK_USE_ALLOCA
-#else /* not MSDOS, or __TURBOC__, or _AIX */
-#if 0
-#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
- and on HPUX 10. Eventually we can turn this on. */
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#endif /* __hpux */
-#endif
-#endif /* not _AIX */
-#endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc */
-#endif /* not GNU C */
-#endif /* alloca not defined */
-#endif /* YYSTACK_USE_ALLOCA not defined */
-
-#ifdef YYSTACK_USE_ALLOCA
-#define YYSTACK_ALLOC alloca
+#if defined (__STDC__) || defined (__cplusplus)
+ typedef signed char yysigned_char;
#else
-#define YYSTACK_ALLOC malloc
+ typedef short yysigned_char;
#endif
-/* Note: there must be only one dollar sign in this file.
- It is replaced by the list of actions, each action
- as one case of the switch. */
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 7
+#define YYLAST 775
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 113
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 99
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 248
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 375
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 354
+
+#define YYTRANSLATE(X) \
+ ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const unsigned 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, 109, 2, 2, 2, 2, 2, 2,
+ 104, 105, 2, 2, 107, 2, 110, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 108, 106,
+ 111, 2, 2, 2, 112, 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, 96, 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, 102, 94, 103, 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, 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, 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, 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, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 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, 95,
+ 97, 98, 99, 100, 101
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const unsigned short yyprhs[] =
+{
+ 0, 0, 3, 5, 7, 10, 19, 20, 22, 26,
+ 29, 31, 34, 36, 41, 43, 44, 46, 48, 51,
+ 54, 57, 60, 63, 64, 66, 68, 71, 73, 75,
+ 77, 79, 81, 83, 87, 90, 92, 95, 100, 102,
+ 106, 108, 110, 114, 118, 121, 123, 127, 129, 131,
+ 138, 140, 142, 143, 145, 150, 155, 159, 166, 168,
+ 172, 174, 178, 182, 184, 188, 190, 192, 194, 198,
+ 204, 205, 207, 209, 213, 216, 220, 225, 226, 228,
+ 229, 236, 238, 241, 243, 245, 248, 250, 254, 256,
+ 260, 264, 266, 268, 270, 275, 277, 281, 283, 287,
+ 291, 293, 297, 299, 303, 305, 307, 309, 311, 316,
+ 317, 321, 323, 325, 327, 329, 331, 333, 337, 339,
+ 342, 344, 346, 348, 350, 353, 356, 358, 360, 363,
+ 366, 368, 370, 372, 374, 377, 379, 382, 384, 386,
+ 388, 390, 392, 394, 396, 398, 400, 402, 404, 406,
+ 408, 410, 415, 420, 425, 430, 435, 437, 442, 443,
+ 445, 447, 449, 451, 453, 455, 460, 462, 465, 469,
+ 471, 475, 481, 483, 487, 489, 491, 495, 497, 501,
+ 503, 507, 509, 513, 518, 520, 522, 524, 527, 530,
+ 534, 536, 538, 540, 542, 544, 546, 548, 550, 552,
+ 558, 560, 564, 566, 570, 571, 573, 575, 577, 579,
+ 581, 583, 587, 592, 594, 598, 601, 605, 607, 611,
+ 612, 614, 616, 619, 621, 623, 624, 628, 631, 635,
+ 637, 641, 643, 648, 653, 655, 657, 659, 661, 662,
+ 664, 666, 669, 672, 674, 676, 678, 680, 682
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const short yyrhs[] =
+{
+ 114, 0, -1, 115, -1, 116, -1, 115, 116, -1,
+ 208, 117, 34, 121, 3, 21, 124, 38, -1, -1,
+ 118, -1, 102, 119, 103, -1, 102, 103, -1, 120,
+ -1, 119, 120, -1, 210, -1, 210, 104, 9, 105,
+ -1, 9, -1, -1, 122, -1, 123, -1, 122, 123,
+ -1, 40, 82, -1, 51, 82, -1, 20, 82, -1,
+ 42, 52, -1, -1, 125, -1, 126, -1, 125, 126,
+ -1, 127, -1, 132, -1, 138, -1, 162, -1, 135,
+ -1, 170, -1, 53, 128, 106, -1, 53, 45, -1,
+ 129, -1, 128, 129, -1, 130, 45, 208, 117, -1,
+ 131, -1, 130, 107, 131, -1, 208, -1, 210, -1,
+ 41, 133, 106, -1, 41, 17, 106, -1, 41, 106,
+ -1, 134, -1, 133, 107, 134, -1, 208, -1, 210,
+ -1, 208, 136, 3, 102, 137, 103, -1, 157, -1,
+ 167, -1, -1, 178, -1, 208, 3, 206, 85, -1,
+ 208, 3, 206, 154, -1, 208, 3, 144, -1, 208,
+ 102, 139, 103, 3, 154, -1, 140, -1, 139, 107,
+ 140, -1, 208, -1, 208, 108, 210, -1, 167, 108,
+ 210, -1, 142, -1, 141, 107, 142, -1, 156, -1,
+ 210, -1, 153, -1, 143, 107, 153, -1, 28, 102,
+ 146, 103, 148, -1, -1, 86, -1, 147, -1, 146,
+ 107, 147, -1, 160, 198, -1, 160, 154, 145, -1,
+ 160, 160, 198, 145, -1, -1, 149, -1, -1, 93,
+ 80, 102, 150, 151, 103, -1, 152, -1, 151, 152,
+ -1, 4, -1, 160, -1, 211, 154, -1, 155, -1,
+ 156, 172, 198, -1, 100, -1, 100, 109, 165, -1,
+ 100, 109, 205, -1, 169, -1, 170, -1, 171, -1,
+ 208, 102, 141, 103, -1, 157, -1, 55, 66, 157,
+ -1, 11, -1, 11, 110, 208, -1, 11, 110, 210,
+ -1, 209, -1, 209, 110, 158, -1, 159, -1, 158,
+ 110, 159, -1, 161, -1, 161, -1, 13, -1, 14,
+ -1, 210, 136, 3, 163, -1, -1, 102, 164, 166,
+ -1, 5, -1, 7, -1, 6, -1, 205, -1, 165,
+ -1, 210, -1, 208, 110, 210, -1, 4, -1, 166,
+ 4, -1, 24, -1, 61, -1, 74, -1, 168, -1,
+ 65, 79, -1, 63, 50, -1, 75, -1, 43, -1,
+ 36, 69, -1, 26, 79, -1, 89, -1, 46, -1,
+ 56, -1, 39, -1, 22, 79, -1, 167, -1, 168,
+ 202, -1, 23, -1, 47, -1, 48, -1, 49, -1,
+ 57, -1, 62, -1, 72, -1, 81, -1, 83, -1,
+ 88, -1, 90, -1, 91, -1, 92, -1, 64, -1,
+ 27, 102, 143, 103, -1, 76, 102, 143, 103, -1,
+ 77, 102, 143, 103, -1, 76, 172, 66, 156, -1,
+ 77, 172, 66, 156, -1, 18, -1, 18, 35, 25,
+ 210, -1, -1, 176, -1, 94, -1, 95, -1, 96,
+ -1, 97, -1, 98, -1, 78, 104, 178, 105, -1,
+ 177, -1, 176, 177, -1, 104, 178, 105, -1, 179,
+ -1, 179, 107, 100, -1, 179, 107, 100, 107, 179,
+ -1, 100, -1, 100, 107, 179, -1, 180, -1, 181,
+ -1, 180, 173, 181, -1, 182, -1, 181, 174, 182,
+ -1, 183, -1, 182, 175, 183, -1, 186, -1, 186,
+ 184, 186, -1, 185, 104, 178, 105, -1, 192, -1,
+ 187, -1, 99, -1, 99, 111, -1, 111, 99, -1,
+ 111, 99, 111, -1, 78, -1, 45, -1, 205, -1,
+ 210, -1, 6, -1, 59, -1, 58, -1, 44, -1,
+ 84, -1, 93, 30, 102, 188, 103, -1, 189, -1,
+ 188, 107, 189, -1, 100, -1, 210, 172, 190, -1,
+ -1, 191, -1, 71, -1, 15, -1, 67, -1, 193,
+ -1, 194, -1, 102, 208, 103, -1, 193, 102, 195,
+ 103, -1, 196, -1, 195, 107, 196, -1, 112, 197,
+ -1, 112, 110, 197, -1, 210, -1, 197, 110, 210,
+ -1, -1, 199, -1, 67, -1, 33, 200, -1, 186,
+ -1, 167, -1, -1, 102, 201, 166, -1, 102, 103,
+ -1, 102, 203, 103, -1, 204, -1, 203, 107, 204,
+ -1, 210, -1, 210, 104, 205, 105, -1, 210, 104,
+ 165, 105, -1, 205, -1, 100, -1, 9, -1, 10,
+ -1, -1, 207, -1, 101, -1, 101, 51, -1, 101,
+ 40, -1, 11, -1, 12, -1, 12, -1, 8, -1,
+ 210, -1, 210, 207, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const unsigned short yyrline[] =
+{
+ 0, 297, 297, 303, 309, 325, 350, 352, 355, 359,
+ 364, 371, 379, 384, 388, 397, 399, 407, 411, 419,
+ 423, 426, 429, 437, 439, 448, 452, 477, 481, 490,
+ 497, 510, 521, 534, 541, 546, 552, 558, 567, 573,
+ 579, 586, 594, 598, 601, 608, 614, 620, 627, 636,
+ 646, 654, 662, 664, 676, 688, 695, 711, 721, 731,
+ 741, 746, 753, 763, 769, 775, 779, 791, 797, 803,
+ 813, 815, 818, 826, 832, 841, 846, 863, 865, 872,
+ 870, 879, 884, 890, 894, 919, 926, 931, 939, 948,
+ 957, 968, 972, 978, 986, 1010, 1017, 1031, 1040, 1050,
+ 1060, 1068, 1089, 1098, 1107, 1108, 1110, 1117, 1129, 1140,
+ 1139, 1146, 1150, 1154, 1158, 1161, 1166, 1178, 1194, 1205,
+ 1219, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229,
+ 1230, 1231, 1237, 1239, 1240, 1243, 1250, 1262, 1264, 1268,
+ 1272, 1273, 1274, 1275, 1276, 1280, 1281, 1282, 1283, 1287,
+ 1288, 1291, 1298, 1304, 1310, 1318, 1326, 1332, 1348, 1350,
+ 1353, 1353, 1354, 1354, 1355, 1357, 1370, 1373, 1378, 1384,
+ 1388, 1395, 1403, 1408, 1417, 1419, 1421, 1426, 1428, 1434,
+ 1436, 1441, 1448, 1455, 1463, 1466, 1471, 1473, 1474, 1475,
+ 1478, 1482, 1487, 1491, 1502, 1506, 1511, 1516, 1521, 1528,
+ 1534, 1538, 1543, 1549, 1561, 1563, 1566, 1570, 1573, 1578,
+ 1582, 1590, 1605, 1611, 1618, 1631, 1643, 1658, 1662, 1679,
+ 1681, 1684, 1688, 1694, 1697, 1699, 1699, 1719, 1724, 1729,
+ 1735, 1741, 1749, 1757, 1765, 1772, 1782, 1787, 1817, 1819,
+ 1822, 1827, 1831, 1837, 1842, 1848, 1855, 1862, 1867
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "$end", "error", "$undefined", "TOK_PPEQ", "TOK_opaque", "TOK_bstring",
+ "TOK_cstring", "TOK_hstring", "TOK_identifier", "TOK_number",
+ "TOK_number_negative", "TOK_typereference", "TOK_objectclassreference",
+ "TOK_typefieldreference", "TOK_valuefieldreference", "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", "TOK_ENCODED",
+ "TOK_END", "TOK_ENUMERATED", "TOK_EXPLICIT", "TOK_EXPORTS",
+ "TOK_EXTENSIBILITY", "TOK_EXTERNAL", "TOK_FALSE", "TOK_FROM",
+ "TOK_GeneralizedTime", "TOK_GeneralString", "TOK_GraphicString",
+ "TOK_IA5String", "TOK_IDENTIFIER", "TOK_IMPLICIT", "TOK_IMPLIED",
+ "TOK_IMPORTS", "TOK_INCLUDES", "TOK_INSTANCE", "TOK_INTEGER",
+ "TOK_ISO646String", "TOK_MAX", "TOK_MIN", "TOK_MINUS_INFINITY",
+ "TOK_NULL", "TOK_NumericString", "TOK_OBJECT", "TOK_ObjectDescriptor",
+ "TOK_OCTET", "TOK_OF", "TOK_OPTIONAL", "TOK_PATTERN", "TOK_PDV",
+ "TOK_PLUS_INFINITY", "TOK_PRESENT", "TOK_PrintableString",
+ "TOK_PRIVATE", "TOK_REAL", "TOK_RELATIVE_OID", "TOK_SEQUENCE",
+ "TOK_SET", "TOK_SIZE", "TOK_STRING", "TOK_SYNTAX", "TOK_T61String",
+ "TOK_TAGS", "TOK_TeletexString", "TOK_TRUE", "TOK_TYPE_IDENTIFIER",
+ "TOK_UNIQUE", "TOK_UNIVERSAL", "TOK_UniversalString", "TOK_UTCTime",
+ "TOK_UTF8String", "TOK_VideotexString", "TOK_VisibleString", "TOK_WITH",
+ "'|'", "TOK_UNION", "'^'", "TOK_INTERSECTION", "TOK_EXCEPT",
+ "TOK_TwoDots", "TOK_ThreeDots", "TOK_tag", "'{'", "'}'", "'('", "')'",
+ "';'", "','", "':'", "'!'", "'.'", "'<'", "'@'", "$accept",
+ "ParsedGrammar", "ModuleList", "ModuleSpecification",
+ "optObjectIdentifier", "ObjectIdentifier", "ObjectIdentifierBody",
+ "ObjectIdentifierElement", "optModuleSpecificationFlags",
+ "ModuleSpecificationFlags", "ModuleSpecificationFlag",
+ "optModuleSpecificationBody", "ModuleSpecificationBody",
+ "ModuleSpecificationElement", "ImportsDefinition", "ImportsBundleSet",
+ "ImportsBundle", "ImportsList", "ImportsElement", "ExportsDefinition",
+ "ExportsBody", "ExportsElement", "ValueSetDefinition", "DefinedTypeRef",
+ "optValueSetBody", "DataTypeReference", "ParameterArgumentList",
+ "ParameterArgumentName", "ActualParameterList", "ActualParameter",
+ "ConstructedDataTypeDefinition", "ClassDeclaration", "optUnique",
+ "ClassFieldList", "ClassField", "optWithSyntax", "WithSyntax", "@1",
+ "WithSyntaxFormat", "WithSyntaxFormatToken", "DataTypeMember",
+ "ConstrainedTypeDeclaration", "ExtensionAndException",
+ "TypeDeclaration", "ComplexTypeReference",
+ "ComplexTypeReferenceAmpList", "ComplexTypeReferenceElement",
+ "ClassFieldIdentifier", "ClassFieldName", "ValueDefinition",
+ "InlineOrDefinedValue", "@2", "DefinedValue", "Opaque", "BasicTypeId",
+ "BasicTypeId_UniverationCompatible", "BasicType", "BasicString",
+ "ConstructedType", "optConstraints", "Union", "Intersection", "Except",
+ "Constraints", "SingleConstraint", "ConstraintElementSet",
+ "ConstraintElement", "ConstraintElementUnion",
+ "ConstraintElementIntersection", "ConstraintElementException",
+ "ConstraintSubtypeElement", "ConstraintRangeSpec", "ConstraintSpec",
+ "ConstraintValue", "WithComponents", "WithComponentsList",
+ "WithComponentsElement", "optPresenceConstraint", "PresenceConstraint",
+ "TableConstraint", "SimpleTableConstraint",
+ "ComponentRelationConstraint", "AtNotationList", "AtNotationElement",
+ "ComponentIdList", "optMarker", "Marker", "DefaultValue", "@3",
+ "UniverationDefinition", "UniverationList", "UniverationElement",
+ "SignedNumber", "optTag", "Tag", "TypeRefName", "ObjectClassReference",
+ "Identifier", "TaggedIdentifier", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const unsigned short yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 124, 349, 94, 350, 351, 352,
+ 353, 354, 123, 125, 40, 41, 59, 44, 58, 33,
+ 46, 60, 64
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const unsigned char yyr1[] =
+{
+ 0, 113, 114, 115, 115, 116, 117, 117, 118, 118,
+ 119, 119, 120, 120, 120, 121, 121, 122, 122, 123,
+ 123, 123, 123, 124, 124, 125, 125, 126, 126, 126,
+ 126, 126, 126, 127, 127, 128, 128, 129, 130, 130,
+ 131, 131, 132, 132, 132, 133, 133, 134, 134, 135,
+ 136, 136, 137, 137, 138, 138, 138, 138, 139, 139,
+ 140, 140, 140, 141, 141, 142, 142, 143, 143, 144,
+ 145, 145, 146, 146, 147, 147, 147, 148, 148, 150,
+ 149, 151, 151, 152, 152, 153, 153, 154, 155, 155,
+ 155, 156, 156, 156, 156, 156, 156, 157, 157, 157,
+ 157, 157, 158, 158, 159, 160, 161, 161, 162, 164,
+ 163, 163, 163, 163, 163, 163, 165, 165, 166, 166,
+ 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
+ 167, 167, 168, 168, 168, 169, 169, 170, 170, 170,
+ 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 171, 171, 171, 171, 171, 171, 171, 172, 172,
+ 173, 173, 174, 174, 175, 176, 176, 176, 177, 178,
+ 178, 178, 178, 178, 179, 180, 180, 181, 181, 182,
+ 182, 183, 183, 183, 183, 183, 184, 184, 184, 184,
+ 185, 185, 186, 186, 186, 186, 186, 186, 186, 187,
+ 188, 188, 189, 189, 190, 190, 191, 191, 191, 192,
+ 192, 193, 194, 195, 195, 196, 196, 197, 197, 198,
+ 198, 199, 199, 200, 200, 201, 200, 202, 202, 203,
+ 203, 204, 204, 204, 204, 204, 205, 205, 206, 206,
+ 207, 207, 207, 208, 208, 209, 210, 211, 211
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const unsigned char yyr2[] =
+{
+ 0, 2, 1, 1, 2, 8, 0, 1, 3, 2,
+ 1, 2, 1, 4, 1, 0, 1, 1, 2, 2,
+ 2, 2, 2, 0, 1, 1, 2, 1, 1, 1,
+ 1, 1, 1, 3, 2, 1, 2, 4, 1, 3,
+ 1, 1, 3, 3, 2, 1, 3, 1, 1, 6,
+ 1, 1, 0, 1, 4, 4, 3, 6, 1, 3,
+ 1, 3, 3, 1, 3, 1, 1, 1, 3, 5,
+ 0, 1, 1, 3, 2, 3, 4, 0, 1, 0,
+ 6, 1, 2, 1, 1, 2, 1, 3, 1, 3,
+ 3, 1, 1, 1, 4, 1, 3, 1, 3, 3,
+ 1, 3, 1, 3, 1, 1, 1, 1, 4, 0,
+ 3, 1, 1, 1, 1, 1, 1, 3, 1, 2,
+ 1, 1, 1, 1, 2, 2, 1, 1, 2, 2,
+ 1, 1, 1, 1, 2, 1, 2, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 1, 4, 0, 1,
+ 1, 1, 1, 1, 1, 4, 1, 2, 3, 1,
+ 3, 5, 1, 3, 1, 1, 3, 1, 3, 1,
+ 3, 1, 3, 4, 1, 1, 1, 2, 2, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+ 1, 3, 1, 3, 0, 1, 1, 1, 1, 1,
+ 1, 3, 4, 1, 3, 2, 3, 1, 3, 0,
+ 1, 1, 2, 1, 1, 0, 3, 2, 3, 1,
+ 3, 1, 4, 4, 1, 1, 1, 1, 0, 1,
+ 1, 2, 2, 1, 1, 1, 1, 1, 2
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const unsigned char yydefact[] =
+{
+ 0, 243, 244, 0, 2, 3, 6, 1, 4, 0,
+ 0, 7, 246, 14, 9, 0, 10, 12, 15, 8,
+ 11, 0, 0, 0, 0, 0, 0, 16, 17, 0,
+ 21, 19, 22, 20, 0, 18, 13, 23, 137, 0,
+ 138, 139, 140, 0, 141, 142, 150, 143, 144, 145,
+ 146, 147, 148, 149, 0, 24, 25, 27, 28, 31,
+ 29, 30, 32, 0, 0, 0, 44, 0, 45, 47,
+ 48, 34, 0, 35, 0, 38, 40, 41, 5, 26,
+ 238, 97, 245, 0, 120, 0, 0, 133, 127, 131,
+ 132, 121, 0, 0, 122, 126, 130, 0, 0, 50,
+ 51, 123, 100, 0, 43, 42, 0, 33, 36, 0,
+ 0, 0, 240, 56, 0, 239, 0, 134, 129, 128,
+ 125, 124, 0, 58, 0, 60, 0, 0, 0, 46,
+ 6, 39, 0, 242, 241, 97, 245, 156, 0, 0,
+ 158, 158, 54, 55, 158, 95, 135, 123, 91, 92,
+ 93, 0, 98, 99, 0, 0, 0, 0, 52, 106,
+ 107, 101, 102, 104, 111, 113, 112, 236, 237, 109,
+ 108, 115, 114, 0, 116, 37, 0, 72, 219, 105,
+ 0, 0, 0, 0, 0, 0, 0, 159, 166, 0,
+ 0, 219, 0, 136, 0, 0, 59, 62, 61, 194,
+ 197, 191, 196, 195, 190, 198, 0, 172, 0, 0,
+ 53, 169, 174, 175, 177, 179, 0, 181, 185, 184,
+ 209, 210, 192, 193, 0, 0, 0, 77, 0, 0,
+ 221, 70, 219, 74, 220, 0, 88, 0, 67, 86,
+ 247, 0, 96, 0, 0, 0, 0, 167, 0, 0,
+ 87, 235, 227, 0, 229, 234, 231, 0, 63, 65,
+ 66, 57, 0, 0, 0, 49, 0, 160, 161, 0,
+ 162, 163, 0, 164, 0, 0, 186, 0, 0, 0,
+ 103, 118, 110, 117, 0, 69, 78, 73, 225, 224,
+ 223, 222, 71, 75, 70, 157, 0, 151, 0, 248,
+ 85, 0, 152, 168, 154, 153, 155, 228, 0, 0,
+ 94, 0, 0, 173, 211, 170, 176, 178, 180, 0,
+ 187, 188, 182, 0, 0, 213, 119, 0, 0, 76,
+ 89, 90, 68, 165, 230, 0, 0, 64, 202, 0,
+ 200, 158, 0, 183, 189, 0, 215, 217, 212, 0,
+ 79, 226, 233, 232, 199, 0, 204, 171, 216, 0,
+ 214, 0, 201, 207, 208, 206, 203, 205, 218, 83,
+ 0, 81, 84, 80, 82
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const short yydefgoto[] =
+{
+ -1, 3, 4, 5, 10, 11, 15, 16, 26, 27,
+ 28, 54, 55, 56, 57, 72, 73, 74, 75, 58,
+ 67, 68, 59, 98, 209, 60, 122, 123, 257, 258,
+ 237, 113, 293, 176, 177, 285, 286, 361, 370, 371,
+ 238, 143, 239, 144, 145, 161, 162, 178, 179, 61,
+ 170, 225, 171, 282, 146, 147, 148, 149, 150, 186,
+ 269, 272, 274, 187, 188, 210, 211, 212, 213, 214,
+ 215, 278, 216, 217, 218, 339, 340, 366, 367, 219,
+ 220, 221, 324, 325, 346, 233, 234, 291, 328, 193,
+ 253, 254, 222, 114, 115, 151, 102, 223, 241
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -206
+static const short yypact[] =
+{
+ 227, -206, -206, 27, 227, -206, -38, -206, -206, 13,
+ 52, -206, -206, -206, -206, 47, -206, -12, 42, -206,
+ -206, 106, 51, 76, 111, 83, 146, 42, -206, 63,
+ -206, -206, -206, -206, 152, -206, -206, 380, -206, 12,
+ -206, -206, -206, 91, -206, -206, -206, -206, -206, -206,
+ -206, -206, -206, -206, 160, 380, -206, -206, -206, -206,
+ -206, -206, -206, 131, 670, 107, -206, 147, -206, -206,
+ -206, -206, 24, -206, -19, -206, -206, -206, -206, -206,
+ -3, 114, -206, 150, -206, 155, 174, -206, -206, -206,
+ -206, -206, 201, 184, -206, -206, -206, 686, 258, -206,
+ -206, -206, 156, 265, -206, -206, 191, -206, -206, 227,
+ 191, 168, 101, -206, 537, -206, 191, -206, -206, -206,
+ -206, -206, 75, -206, 164, 166, 183, 242, 33, -206,
+ -38, -206, 242, -206, -206, 44, 186, 249, 189, 220,
+ -8, 36, -206, -206, -13, -206, -206, 190, -206, -206,
+ -206, 192, -206, -206, 290, 686, 293, 293, 238, -206,
+ -206, 188, -206, -206, -206, -206, -206, -206, -206, -206,
+ -206, -206, -206, 194, -206, -206, 90, -206, 462, -206,
+ 280, 23, 246, 202, 23, 238, 243, 208, -206, 23,
+ 244, 20, 59, -206, 321, 612, -206, -206, -206, -206,
+ -206, -206, -206, -206, -206, -206, 283, 210, 227, 212,
+ -206, 211, 165, 182, 221, -206, 217, -40, -206, -206,
+ 222, -206, -206, -206, 242, 319, 293, 234, 242, 206,
+ -206, 248, 20, -206, -206, 293, 219, 97, -206, -206,
+ 229, 612, -206, 238, 115, 230, 612, -206, 118, 612,
+ -206, -206, -206, 120, -206, -206, 233, 128, -206, -206,
+ -206, -206, 239, 67, 250, -206, 252, -206, -206, 67,
+ -206, -206, 67, -206, 67, 238, 231, 255, 267, 237,
+ -206, -206, 351, -206, 276, -206, -206, -206, -206, -206,
+ -206, -206, -206, -206, 248, -206, 199, -206, 23, -206,
+ -206, 253, -206, -206, -206, -206, -206, -206, 71, 199,
+ -206, 321, 29, -206, -206, 254, 182, 221, -206, 257,
+ -206, 260, -206, -6, 133, -206, -206, 261, 319, -206,
+ -206, -206, -206, -206, -206, 268, 269, -206, -206, 134,
+ -206, -13, 67, -206, -206, 293, 256, -206, -206, 237,
+ -206, 351, -206, -206, -206, 29, 18, -206, 256, 293,
+ -206, 177, -206, -206, -206, -206, -206, -206, -206, -206,
+ 3, -206, -206, -206, -206
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const short yypgoto[] =
+{
+ -206, -206, -206, 355, 235, -206, -206, 357, -206, -206,
+ 348, -206, -206, 324, -206, -206, 308, -206, 271, -206,
+ -206, 281, -206, 325, -206, -206, -206, 245, -206, 79,
+ -28, -206, 100, -206, 171, -206, -206, -206, -206, 31,
+ 108, -117, -206, -189, -54, -206, 181, -175, -115, -206,
+ -206, -206, -165, 80, -50, -45, -206, 58, -206, -140,
+ -206, -206, -206, -206, 228, -111, -205, -206, 138, 142,
+ 143, -206, -206, -178, -206, -206, 61, -206, -206, -206,
+ -206, -206, -206, 69, 74, -142, -206, -206, -206, -206,
+ -206, 112, -120, -206, 185, 11, -206, -9, -206
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, parse error. */
+#define YYTABLE_NINF -245
+static const short yytable[] =
+{
+ 17, 190, 12, 232, 191, 259, 17, 369, 172, 99,
+ 99, 6, 163, 100, 100, 6, 159, 160, 101, 101,
+ 12, 12, 13, 1, 2, 111, 109, 7, 64, 65,
+ 70, 12, 12, 363, 77, 1, 2, 12, 164, 165,
+ 166, 12, 167, 168, 1, 2, 64, 124, 63, 250,
+ 69, 290, 101, 229, 76, 12, 13, 304, 313, 276,
+ 306, 231, 22, 77, 9, 183, 63, 12, 167, 168,
+ 183, 277, 255, 199, 245, 12, 167, 168, 261, 12,
+ 167, 168, 23, 76, 24, 364, 18, 230, 110, 365,
+ 294, 185, 21, 25, 184, 62, 185, 70, 112, 12,
+ 322, 77, 1, 2, 345, 124, 373, 153, 125, 163,
+ 101, 200, 201, 62, 183, 29, 14, 69, 66, 174,
+ 130, 76, 259, 236, 300, 202, 203, 152, 242, 338,
+ 107, 330, 301, 30, 80, 169, 71, 357, 189, 173,
+ 185, 133, 81, 82, 335, 204, -243, 197, 198, 34,
+ 19, 205, 134, 83, 116, 84, 244, 85, 31, 251,
+ 206, 248, 252, 32, 319, 33, 125, 86, 36, 208,
+ 87, 251, 240, 37, 88, 240, 331, 89, 154, 289,
+ 240, 369, 155, 256, 101, 260, 372, 90, 255, 336,
+ 159, 160, 91, 227, 92, 372, 93, 228, 78, 12,
+ 297, 356, 1, 2, 298, 94, 95, 12, 167, 168,
+ 1, 2, 199, 104, 12, 167, 168, 283, 302, 264,
+ 96, 305, 298, 307, 116, 298, 295, 308, 83, 117,
+ 84, 310, 85, 97, 118, 311, 348, 354, 1, 2,
+ 349, 355, 86, 119, 199, 87, 12, 167, 168, 88,
+ 200, 120, 89, 105, 106, 159, 160, 81, 82, 267,
+ 268, 126, 90, 121, 202, 203, 127, 91, 128, 92,
+ 132, 93, 156, 199, 157, 12, 167, 168, 270, 271,
+ 94, 95, 200, 201, 180, 158, 182, 174, -244, 240,
+ 205, 181, 192, 195, 194, 96, 202, 203, 224, 256,
+ 174, 12, 260, 341, 226, 235, 243, 173, 288, 246,
+ 249, 200, 185, 262, 347, 265, 204, 263, 266, 273,
+ 173, 275, 205, 281, 279, 202, 203, 284, 296, 12,
+ 112, 206, 135, 136, 292, 303, 347, 309, 207, 137,
+ 208, 312, 320, 83, 38, 84, 341, 85, 138, 323,
+ 368, 205, 315, 314, 321, 326, 327, 86, 333, 8,
+ 87, 342, 343, 350, 88, 175, 359, 89, 40, 41,
+ 42, 344, 20, 352, 353, 35, 139, 90, 44, 79,
+ 108, 131, 91, 45, 92, 46, 93, 129, 12, 103,
+ 337, 1, 2, 47, 329, 94, 95, 140, 141, 287,
+ 196, 374, 48, 38, 49, 280, 332, 316, 351, 50,
+ 96, 51, 52, 53, 317, 247, 362, 318, 360, 358,
+ 334, 39, 0, 0, 0, 299, 0, 40, 41, 42,
+ 0, 0, 0, 43, 0, 0, 0, 44, 0, 0,
+ 0, 0, 45, 0, 46, 0, 0, 0, 0, 0,
+ 0, 0, 47, 0, 0, 0, 0, 0, 0, 0,
+ 0, 48, 0, 49, 0, 0, 0, 0, 50, 0,
+ 51, 52, 53, 135, 136, 159, 160, 0, 0, 0,
+ 137, 0, 0, 0, 83, 38, 84, 0, 85, 138,
+ 0, 0, 0, 0, 0, 229, 0, 0, 86, 0,
+ 0, 87, 0, 0, 0, 88, 0, 0, 89, 40,
+ 41, 42, 0, 0, 0, 0, 0, 139, 90, 44,
+ 0, 0, 0, 91, 45, 92, 46, 93, 0, 230,
+ 0, 0, 0, 0, 47, 0, 94, 95, 140, 141,
+ 0, 0, 0, 48, 0, 49, 0, 0, 135, 136,
+ 50, 96, 51, 52, 53, 137, 0, 0, 0, 83,
+ 38, 84, 0, 85, 138, 0, 0, 0, 0, 0,
+ 0, 0, 0, 86, 0, 0, 87, 0, 0, 0,
+ 88, 0, 0, 89, 40, 41, 42, 0, 0, 0,
+ 0, 0, 139, 90, 44, 0, 0, 0, 91, 45,
+ 92, 46, 93, 0, 0, 0, 0, 0, 0, 47,
+ 0, 94, 95, 140, 141, 0, 0, 0, 48, 0,
+ 49, 0, 142, 135, 136, 50, 96, 51, 52, 53,
+ 137, 0, 0, 0, 83, 38, 84, 0, 85, 138,
+ 0, 0, 0, 0, 0, 0, 0, 0, 86, 0,
+ 0, 87, 0, 0, 0, 88, 0, 0, 89, 40,
+ 41, 42, 0, 0, 0, 0, 0, 139, 90, 44,
+ 0, 0, 0, 91, 45, 92, 46, 93, 0, 0,
+ 0, 81, 82, 0, 47, 0, 94, 95, 140, 141,
+ 0, 0, 83, 48, 84, 49, 85, 1, 2, 0,
+ 50, 96, 51, 52, 53, 0, 86, 0, 83, 87,
+ 84, 0, 85, 88, 0, 0, 89, 0, 0, 0,
+ 0, 0, 86, 0, 0, 87, 90, 0, 0, 88,
+ 0, 91, 89, 92, 0, 93, 0, 0, 0, 0,
+ 0, 0, 90, 0, 94, 95, 0, 91, 0, 92,
+ 0, 93, 0, 0, 0, 0, 0, 0, 0, 96,
+ 94, 95, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 96
+};
+
+static const short yycheck[] =
+{
+ 9, 141, 8, 178, 144, 194, 15, 4, 128, 63,
+ 64, 0, 127, 63, 64, 4, 13, 14, 63, 64,
+ 8, 8, 9, 11, 12, 28, 45, 0, 37, 17,
+ 39, 8, 8, 15, 43, 11, 12, 8, 5, 6,
+ 7, 8, 9, 10, 11, 12, 55, 97, 37, 191,
+ 39, 229, 97, 33, 43, 8, 9, 246, 263, 99,
+ 249, 178, 20, 72, 102, 78, 55, 8, 9, 10,
+ 78, 111, 192, 6, 185, 8, 9, 10, 195, 8,
+ 9, 10, 40, 72, 42, 67, 34, 67, 107, 71,
+ 232, 104, 104, 51, 102, 37, 104, 106, 101, 8,
+ 278, 110, 11, 12, 110, 155, 103, 116, 97, 224,
+ 155, 44, 45, 55, 78, 9, 103, 106, 106, 128,
+ 109, 110, 311, 100, 241, 58, 59, 116, 182, 100,
+ 106, 296, 243, 82, 3, 102, 45, 342, 102, 128,
+ 104, 40, 11, 12, 309, 78, 102, 156, 157, 3,
+ 103, 84, 51, 22, 110, 24, 184, 26, 82, 100,
+ 93, 189, 103, 52, 275, 82, 155, 36, 105, 102,
+ 39, 100, 181, 21, 43, 184, 296, 46, 103, 229,
+ 189, 4, 107, 192, 229, 194, 361, 56, 308, 309,
+ 13, 14, 61, 103, 63, 370, 65, 107, 38, 8,
+ 103, 341, 11, 12, 107, 74, 75, 8, 9, 10,
+ 11, 12, 6, 106, 8, 9, 10, 226, 103, 208,
+ 89, 103, 107, 103, 110, 107, 235, 107, 22, 79,
+ 24, 103, 26, 102, 79, 107, 103, 103, 11, 12,
+ 107, 107, 36, 69, 6, 39, 8, 9, 10, 43,
+ 44, 50, 46, 106, 107, 13, 14, 11, 12, 94,
+ 95, 3, 56, 79, 58, 59, 110, 61, 3, 63,
+ 102, 65, 108, 6, 108, 8, 9, 10, 96, 97,
+ 74, 75, 44, 45, 35, 102, 66, 296, 102, 298,
+ 84, 102, 102, 3, 102, 89, 58, 59, 110, 308,
+ 309, 8, 311, 312, 110, 25, 104, 296, 102, 66,
+ 66, 44, 104, 30, 323, 103, 78, 107, 107, 98,
+ 309, 104, 84, 4, 102, 58, 59, 93, 109, 8,
+ 101, 93, 11, 12, 86, 105, 345, 104, 100, 18,
+ 102, 102, 111, 22, 23, 24, 355, 26, 27, 112,
+ 359, 84, 100, 103, 99, 4, 80, 36, 105, 4,
+ 39, 107, 105, 102, 43, 130, 110, 46, 47, 48,
+ 49, 111, 15, 105, 105, 27, 55, 56, 57, 55,
+ 72, 110, 61, 62, 63, 64, 65, 106, 8, 64,
+ 311, 11, 12, 72, 294, 74, 75, 76, 77, 228,
+ 155, 370, 81, 23, 83, 224, 298, 269, 328, 88,
+ 89, 90, 91, 92, 272, 187, 355, 274, 349, 345,
+ 308, 41, -1, -1, -1, 240, -1, 47, 48, 49,
+ -1, -1, -1, 53, -1, -1, -1, 57, -1, -1,
+ -1, -1, 62, -1, 64, -1, -1, -1, -1, -1,
+ -1, -1, 72, -1, -1, -1, -1, -1, -1, -1,
+ -1, 81, -1, 83, -1, -1, -1, -1, 88, -1,
+ 90, 91, 92, 11, 12, 13, 14, -1, -1, -1,
+ 18, -1, -1, -1, 22, 23, 24, -1, 26, 27,
+ -1, -1, -1, -1, -1, 33, -1, -1, 36, -1,
+ -1, 39, -1, -1, -1, 43, -1, -1, 46, 47,
+ 48, 49, -1, -1, -1, -1, -1, 55, 56, 57,
+ -1, -1, -1, 61, 62, 63, 64, 65, -1, 67,
+ -1, -1, -1, -1, 72, -1, 74, 75, 76, 77,
+ -1, -1, -1, 81, -1, 83, -1, -1, 11, 12,
+ 88, 89, 90, 91, 92, 18, -1, -1, -1, 22,
+ 23, 24, -1, 26, 27, -1, -1, -1, -1, -1,
+ -1, -1, -1, 36, -1, -1, 39, -1, -1, -1,
+ 43, -1, -1, 46, 47, 48, 49, -1, -1, -1,
+ -1, -1, 55, 56, 57, -1, -1, -1, 61, 62,
+ 63, 64, 65, -1, -1, -1, -1, -1, -1, 72,
+ -1, 74, 75, 76, 77, -1, -1, -1, 81, -1,
+ 83, -1, 85, 11, 12, 88, 89, 90, 91, 92,
+ 18, -1, -1, -1, 22, 23, 24, -1, 26, 27,
+ -1, -1, -1, -1, -1, -1, -1, -1, 36, -1,
+ -1, 39, -1, -1, -1, 43, -1, -1, 46, 47,
+ 48, 49, -1, -1, -1, -1, -1, 55, 56, 57,
+ -1, -1, -1, 61, 62, 63, 64, 65, -1, -1,
+ -1, 11, 12, -1, 72, -1, 74, 75, 76, 77,
+ -1, -1, 22, 81, 24, 83, 26, 11, 12, -1,
+ 88, 89, 90, 91, 92, -1, 36, -1, 22, 39,
+ 24, -1, 26, 43, -1, -1, 46, -1, -1, -1,
+ -1, -1, 36, -1, -1, 39, 56, -1, -1, 43,
+ -1, 61, 46, 63, -1, 65, -1, -1, -1, -1,
+ -1, -1, 56, -1, 74, 75, -1, 61, -1, 63,
+ -1, 65, -1, -1, -1, -1, -1, -1, -1, 89,
+ 74, 75, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 89
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const unsigned char yystos[] =
+{
+ 0, 11, 12, 114, 115, 116, 208, 0, 116, 102,
+ 117, 118, 8, 9, 103, 119, 120, 210, 34, 103,
+ 120, 104, 20, 40, 42, 51, 121, 122, 123, 9,
+ 82, 82, 52, 82, 3, 123, 105, 21, 23, 41,
+ 47, 48, 49, 53, 57, 62, 64, 72, 81, 83,
+ 88, 90, 91, 92, 124, 125, 126, 127, 132, 135,
+ 138, 162, 170, 208, 210, 17, 106, 133, 134, 208,
+ 210, 45, 128, 129, 130, 131, 208, 210, 38, 126,
+ 3, 11, 12, 22, 24, 26, 36, 39, 43, 46,
+ 56, 61, 63, 65, 74, 75, 89, 102, 136, 157,
+ 167, 168, 209, 136, 106, 106, 107, 106, 129, 45,
+ 107, 28, 101, 144, 206, 207, 110, 79, 79, 69,
+ 50, 79, 139, 140, 167, 208, 3, 110, 3, 134,
+ 208, 131, 102, 40, 51, 11, 12, 18, 27, 55,
+ 76, 77, 85, 154, 156, 157, 167, 168, 169, 170,
+ 171, 208, 208, 210, 103, 107, 108, 108, 102, 13,
+ 14, 158, 159, 161, 5, 6, 7, 9, 10, 102,
+ 163, 165, 205, 208, 210, 117, 146, 147, 160, 161,
+ 35, 102, 66, 78, 102, 104, 172, 176, 177, 102,
+ 172, 172, 102, 202, 102, 3, 140, 210, 210, 6,
+ 44, 45, 58, 59, 78, 84, 93, 100, 102, 137,
+ 178, 179, 180, 181, 182, 183, 185, 186, 187, 192,
+ 193, 194, 205, 210, 110, 164, 110, 103, 107, 33,
+ 67, 154, 160, 198, 199, 25, 100, 143, 153, 155,
+ 210, 211, 157, 104, 143, 178, 66, 177, 143, 66,
+ 198, 100, 103, 203, 204, 205, 210, 141, 142, 156,
+ 210, 154, 30, 107, 208, 103, 107, 94, 95, 173,
+ 96, 97, 174, 98, 175, 104, 99, 111, 184, 102,
+ 159, 4, 166, 210, 93, 148, 149, 147, 102, 167,
+ 186, 200, 86, 145, 198, 210, 109, 103, 107, 207,
+ 154, 178, 103, 105, 156, 103, 156, 103, 107, 104,
+ 103, 107, 102, 179, 103, 100, 181, 182, 183, 178,
+ 111, 99, 186, 112, 195, 196, 4, 80, 201, 145,
+ 165, 205, 153, 105, 204, 165, 205, 142, 100, 188,
+ 189, 210, 107, 105, 111, 110, 197, 210, 103, 107,
+ 102, 166, 105, 105, 103, 107, 172, 179, 197, 110,
+ 196, 150, 189, 15, 67, 71, 190, 191, 210, 4,
+ 151, 152, 160, 103, 152
+};
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# if defined (__STDC__) || defined (__cplusplus)
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# endif
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
+
#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
+#define YYABORT goto yyabortlab
#define YYERROR goto yyerrlab1
-/* Like YYERROR except do call yyerror.
- This remains here temporarily to ease the
- transition to the new meaning of YYERROR, for GCC.
+
+/* Like YYERROR except do call yyerror. This remains here temporarily
+ to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
+
#define YYFAIL goto yyerrlab
+
#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(token, value) \
+
+#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
- { yychar = (token), yylval = (value); \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
yychar1 = YYTRANSLATE (yychar); \
YYPOPSTACK; \
goto yybackup; \
} \
else \
- { yyerror ("syntax error: cannot back up"); YYERROR; } \
+ { \
+ yyerror ("syntax error: cannot back up"); \
+ YYERROR; \
+ } \
while (0)
#define YYTERROR 1
#define YYERRCODE 256
-#ifndef YYPURE
-#define YYLEX yylex()
+/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+ are run). */
+
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ Current.first_line = Rhs[1].first_line; \
+ Current.first_column = Rhs[1].first_column; \
+ Current.last_line = Rhs[N].last_line; \
+ Current.last_column = Rhs[N].last_column;
#endif
-#ifdef YYPURE
-#ifdef YYLSP_NEEDED
-#ifdef YYLEX_PARAM
-#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
-#else
-#define YYLEX yylex(&yylval, &yylloc)
-#endif
-#else /* not YYLSP_NEEDED */
-#ifdef YYLEX_PARAM
-#define YYLEX yylex(&yylval, YYLEX_PARAM)
-#else
-#define YYLEX yylex(&yylval)
-#endif
-#endif /* not YYLSP_NEEDED */
-#endif
+/* YYLEX -- calling `yylex' with the right arguments. */
-/* If nonreentrant, generate the variables here */
+#define YYLEX yylex ()
-#ifndef YYPURE
+/* Enable debugging if requested. */
+#if YYDEBUG
-int yychar; /* the lookahead symbol */
-YYSTYPE yylval; /* the semantic value of the */
- /* lookahead symbol */
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif
-#ifdef YYLSP_NEEDED
-YYLTYPE yylloc; /* location data for the lookahead */
- /* symbol */
-#endif
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (0)
+# define YYDSYMPRINT(Args) \
+do { \
+ if (yydebug) \
+ yysymprint Args; \
+} while (0)
+/* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+#endif /* !YYDEBUG */
-int yynerrs; /* number of parse errors so far */
-#endif /* not YYPURE */
-
-#if YYDEBUG != 0
-int yydebug; /* nonzero means print parse trace */
-/* Since this is uninitialized, it does not stop multiple parsers
- from coexisting. */
-#endif
-
-/* YYINITDEPTH indicates the initial size of the parser's stacks */
-
+/* YYINITDEPTH -- initial size of the parser's stacks. */
#ifndef YYINITDEPTH
-#define YYINITDEPTH 200
+# define YYINITDEPTH 200
#endif
-/* YYMAXDEPTH is the maximum size the stacks can grow to
- (effective only if the built-in stack extension method is used). */
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+ SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
#if YYMAXDEPTH == 0
-#undef YYMAXDEPTH
+# undef YYMAXDEPTH
#endif
#ifndef YYMAXDEPTH
-#define YYMAXDEPTH 10000
+# define YYMAXDEPTH 10000
#endif
+
-/* Define __yy_memcpy. Note that the size argument
- should be passed with type unsigned int, because that is what the non-GCC
- definitions require. With GCC, __builtin_memcpy takes an arg
- of type size_t, but it can handle unsigned int. */
-#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
-#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
-#else /* not GNU C or C++ */
-#ifndef __cplusplus
+#if YYERROR_VERBOSE
-/* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
-static void
-__yy_memcpy (to, from, count)
- char *to;
- char *from;
- unsigned int count;
+# ifndef yystrlen
+# if defined (__GLIBC__) && defined (_STRING_H)
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+static YYSIZE_T
+# if defined (__STDC__) || defined (__cplusplus)
+yystrlen (const char *yystr)
+# else
+yystrlen (yystr)
+ const char *yystr;
+# endif
{
- register char *f = from;
- register char *t = to;
- register int i = count;
+ register const char *yys = yystr;
- while (i-- > 0)
- *t++ = *f++;
+ while (*yys++ != '\0')
+ continue;
+
+ return yys - yystr - 1;
+}
+# endif
+# endif
+
+# ifndef yystpcpy
+# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+# define yystpcpy stpcpy
+# else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
+static char *
+# if defined (__STDC__) || defined (__cplusplus)
+yystpcpy (char *yydest, const char *yysrc)
+# else
+yystpcpy (yydest, yysrc)
+ char *yydest;
+ const char *yysrc;
+# endif
+{
+ register char *yyd = yydest;
+ register const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+
+ return yyd - 1;
+}
+# endif
+# endif
+
+#endif /* !YYERROR_VERBOSE */
+
+
+
+#if YYDEBUG
+/*-----------------------------.
+| Print this symbol on YYOUT. |
+`-----------------------------*/
+
+static void
+#if defined (__STDC__) || defined (__cplusplus)
+yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue)
+#else
+yysymprint (yyout, yytype, yyvalue)
+ FILE* yyout;
+ int yytype;
+ YYSTYPE yyvalue;
+#endif
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvalue;
+
+ if (yytype < YYNTOKENS)
+ {
+ YYFPRINTF (yyout, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+ YYPRINT (yyout, yytoknum[yytype], yyvalue);
+# endif
+ }
+ else
+ YYFPRINTF (yyout, "nterm %s (", yytname[yytype]);
+
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+ YYFPRINTF (yyout, ")");
+}
+#endif /* YYDEBUG. */
+
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+static void
+#if defined (__STDC__) || defined (__cplusplus)
+yydestruct (int yytype, YYSTYPE yyvalue)
+#else
+yydestruct (yytype, yyvalue)
+ int yytype;
+ YYSTYPE yyvalue;
+#endif
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvalue;
+
+ switch (yytype)
+ {
+ default:
+ break;
+ }
}
-#else /* __cplusplus */
-
-/* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
-static void
-__yy_memcpy (char *to, char *from, unsigned int count)
-{
- register char *t = to;
- register char *f = from;
- register int i = count;
-
- while (i-- > 0)
- *t++ = *f++;
-}
-
-#endif
-#endif
-#line 217 "/usr/share/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
@@ -994,76 +1394,85 @@
to the proper pointer type. */
#ifdef YYPARSE_PARAM
-#ifdef __cplusplus
-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* not __cplusplus */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#endif /* not __cplusplus */
-#else /* not YYPARSE_PARAM */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* not YYPARSE_PARAM */
+# if defined (__STDC__) || defined (__cplusplus)
+# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+# define YYPARSE_PARAM_DECL
+# else
+# define YYPARSE_PARAM_ARG YYPARSE_PARAM
+# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+# endif
+#else /* !YYPARSE_PARAM */
+# define YYPARSE_PARAM_ARG
+# define YYPARSE_PARAM_DECL
+#endif /* !YYPARSE_PARAM */
/* Prevent warning if -Wstrict-prototypes. */
#ifdef __GNUC__
-#ifdef YYPARSE_PARAM
+# ifdef YYPARSE_PARAM
int yyparse (void *);
-#else
+# else
int yyparse (void);
+# endif
#endif
-#endif
+
+
+/* The lookahead symbol. */
+int yychar;
+
+/* The semantic value of the lookahead symbol. */
+YYSTYPE yylval;
+
+/* Number of parse errors so far. */
+int yynerrs;
+
int
-yyparse(YYPARSE_PARAM_ARG)
+yyparse (YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL
{
+
register int yystate;
register int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Lookahead token as an internal (translated) token number. */
+ int yychar1 = 0;
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+ `yyls': related to locations.
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ short yyssa[YYINITDEPTH];
+ short *yyss = yyssa;
register short *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
register YYSTYPE *yyvsp;
- int yyerrstatus; /* number of tokens to shift before error messages enabled */
- int yychar1 = 0; /* lookahead token as an internal (translated) token number */
- short yyssa[YYINITDEPTH]; /* the state stack */
- YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
- short *yyss = yyssa; /* refer to the stacks thru separate pointers */
- YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
-#ifdef YYLSP_NEEDED
- YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
- YYLTYPE *yyls = yylsa;
- YYLTYPE *yylsp;
-
-#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
-#else
#define YYPOPSTACK (yyvsp--, yyssp--)
-#endif
- int yystacksize = YYINITDEPTH;
- int yyfree_stacks = 0;
+ YYSIZE_T yystacksize = YYINITDEPTH;
-#ifdef YYPURE
- int yychar;
- YYSTYPE yylval;
- int yynerrs;
-#ifdef YYLSP_NEEDED
- YYLTYPE yylloc;
-#endif
-#endif
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
- YYSTYPE yyval; /* the variable used to return */
- /* semantic values from the action */
- /* routines */
+ /* When reducing, the number of symbols on the RHS of the reduced
+ rule. */
int yylen;
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Starting parse\n");
-#endif
+ YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
@@ -1075,110 +1484,96 @@
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
- yyssp = yyss - 1;
+ yyssp = yyss;
yyvsp = yyvs;
-#ifdef YYLSP_NEEDED
- yylsp = yyls;
-#endif
-/* Push a new state, which is found in yystate . */
-/* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks. */
-yynewstate:
+ goto yysetstate;
- *++yyssp = yystate;
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks.
+ */
+ yyssp++;
+
+ yysetstate:
+ *yyssp = yystate;
if (yyssp >= yyss + yystacksize - 1)
{
- /* Give user a chance to reallocate the stack */
- /* Use copies of these so that the &'s don't force the real ones into memory. */
- YYSTYPE *yyvs1 = yyvs;
- short *yyss1 = yyss;
-#ifdef YYLSP_NEEDED
- YYLTYPE *yyls1 = yyls;
-#endif
-
/* Get the current used size of the three stacks, in elements. */
- int size = yyssp - yyss + 1;
+ YYSIZE_T yysize = yyssp - yyss + 1;
#ifdef yyoverflow
- /* Each stack pointer address is followed by the size of
- the data in use in that stack, in bytes. */
-#ifdef YYLSP_NEEDED
- /* This used to be a conditional around just the two extra args,
- but that might be undefined if yyoverflow is a macro. */
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- &yyls1, size * sizeof (*yylsp),
- &yystacksize);
-#else
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- &yystacksize);
-#endif
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
- yyss = yyss1; yyvs = yyvs1;
-#ifdef YYLSP_NEEDED
- yyls = yyls1;
-#endif
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow ("parser stack overflow",
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyoverflowlab;
+# else
/* Extend the stack our own way. */
if (yystacksize >= YYMAXDEPTH)
- {
- yyerror("parser stack overflow");
- if (yyfree_stacks)
- {
- free (yyss);
- free (yyvs);
-#ifdef YYLSP_NEEDED
- free (yyls);
-#endif
- }
- return 2;
- }
+ goto yyoverflowlab;
yystacksize *= 2;
if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
-#ifndef YYSTACK_USE_ALLOCA
- yyfree_stacks = 1;
-#endif
- yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
- __yy_memcpy ((char *)yyss, (char *)yyss1,
- size * (unsigned int) sizeof (*yyssp));
- yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
- __yy_memcpy ((char *)yyvs, (char *)yyvs1,
- size * (unsigned int) sizeof (*yyvsp));
-#ifdef YYLSP_NEEDED
- yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
- __yy_memcpy ((char *)yyls, (char *)yyls1,
- size * (unsigned int) sizeof (*yylsp));
-#endif
+
+ {
+ short *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyoverflowlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
#endif /* no yyoverflow */
- yyssp = yyss + size - 1;
- yyvsp = yyvs + size - 1;
-#ifdef YYLSP_NEEDED
- yylsp = yyls + size - 1;
-#endif
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Stack size increased to %d\n", yystacksize);
-#endif
+
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
if (yyssp >= yyss + yystacksize - 1)
YYABORT;
}
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Entering state %d\n", yystate);
-#endif
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
goto yybackup;
- yybackup:
+
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
/* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */
@@ -1187,7 +1582,7 @@
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYFLAG)
+ if (yyn == YYPACT_NINF)
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
@@ -1197,146 +1592,141 @@
if (yychar == YYEMPTY)
{
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Reading a token: ");
-#endif
+ YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
}
- /* Convert token to internal form (in yychar1) for indexing tables with */
+ /* Convert token to internal form (in yychar1) for indexing tables with. */
- if (yychar <= 0) /* This means end of input. */
+ if (yychar <= 0) /* This means end of input. */
{
yychar1 = 0;
- yychar = YYEOF; /* Don't call YYLEX any more */
+ yychar = YYEOF; /* Don't call YYLEX any more. */
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Now at end of input.\n");
-#endif
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else
{
- yychar1 = YYTRANSLATE(yychar);
+ yychar1 = YYTRANSLATE (yychar);
-#if YYDEBUG != 0
- if (yydebug)
- {
- fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
- /* Give the individual parser a way to print the precise meaning
- of a token, for further debugging info. */
-#ifdef YYPRINT
- YYPRINT (stderr, yychar, yylval);
-#endif
- fprintf (stderr, ")\n");
- }
-#endif
+ /* We have to keep this `#if YYDEBUG', since we use variables
+ which are defined only if `YYDEBUG' is set. */
+ YYDPRINTF ((stderr, "Next token is "));
+ YYDSYMPRINT ((stderr, yychar1, yylval));
+ YYDPRINTF ((stderr, "\n"));
}
+ /* If the proper action on seeing token YYCHAR1 is to reduce or to
+ detect an error, take that action. */
yyn += yychar1;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1)
goto yydefault;
-
yyn = yytable[yyn];
-
- /* yyn is what to do for this token type in this state.
- Negative => reduce, -yyn is rule number.
- Positive => shift, yyn is new state.
- New state is final state => don't bother to shift,
- just return success.
- 0, or most negative number => error. */
-
- if (yyn < 0)
+ if (yyn <= 0)
{
- if (yyn == YYFLAG)
+ if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
- else if (yyn == 0)
- goto yyerrlab;
if (yyn == YYFINAL)
YYACCEPT;
/* Shift the lookahead token. */
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
-#endif
+ YYDPRINTF ((stderr, "Shifting token %d (%s), ",
+ yychar, yytname[yychar1]));
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
*++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
-#endif
- /* count tokens shifted since error; after three, turn off error status. */
- if (yyerrstatus) yyerrstatus--;
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
yystate = yyn;
goto yynewstate;
-/* Do the default action for the current state. */
-yydefault:
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
+yydefault:
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
+ goto yyreduce;
-/* Do a reduction. yyn is the number of a rule to reduce with. */
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
yyreduce:
+ /* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn];
- if (yylen > 0)
- yyval = yyvsp[1-yylen]; /* implement default value of the action */
-#if YYDEBUG != 0
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
+
+
+
+#if YYDEBUG
+ /* We have to keep this `#if YYDEBUG', since we use variables which
+ are defined only if `YYDEBUG' is set. */
if (yydebug)
{
- int i;
+ int yyi;
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
+ YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
+ yyn - 1, yyrline[yyn]);
/* Print the symbols being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++)
+ YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
+ YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
}
#endif
-
-
- switch (yyn) {
-
-case 1:
+ switch (yyn)
+ {
+ case 2:
#line 298 "asn1p_y.y"
-{
+ {
*(void **)param = yyvsp[0].a_grammar;
- ;
- break;}
-case 2:
+ }
+ break;
+
+ case 3:
#line 304 "asn1p_y.y"
-{
+ {
yyval.a_grammar = asn1p_new();
checkmem(yyval.a_grammar);
TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next);
- ;
- break;}
-case 3:
+ }
+ break;
+
+ case 4:
#line 309 "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:
+ }
+ break;
+
+ case 5:
#line 330 "asn1p_y.y"
-{
+ {
if(yyvsp[-1].a_module) {
yyval.a_module = yyvsp[-1].a_module;
@@ -1349,133 +1739,154 @@
yyval.a_module->Identifier = yyvsp[-7].tv_str;
yyval.a_module->module_oid = yyvsp[-6].a_oid;
yyval.a_module->module_flags = yyvsp[-4].a_module_flags;
- ;
- break;}
-case 5:
+ }
+ break;
+
+ case 6:
#line 351 "asn1p_y.y"
-{ yyval.a_oid = 0; ;
- break;}
-case 6:
+ { yyval.a_oid = 0; }
+ break;
+
+ case 7:
#line 352 "asn1p_y.y"
-{ yyval.a_oid = yyvsp[0].a_oid; ;
- break;}
-case 7:
+ { yyval.a_oid = yyvsp[0].a_oid; }
+ break;
+
+ case 8:
#line 356 "asn1p_y.y"
-{
+ {
yyval.a_oid = yyvsp[-1].a_oid;
- ;
- break;}
-case 8:
+ }
+ break;
+
+ case 9:
#line 359 "asn1p_y.y"
-{
+ {
yyval.a_oid = 0;
- ;
- break;}
-case 9:
+ }
+ break;
+
+ case 10:
#line 365 "asn1p_y.y"
-{
+ {
yyval.a_oid = asn1p_oid_new();
asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc);
if(yyvsp[0].a_oid_arc.name)
free(yyvsp[0].a_oid_arc.name);
- ;
- break;}
-case 10:
+ }
+ break;
+
+ case 11:
#line 371 "asn1p_y.y"
-{
+ {
yyval.a_oid = yyvsp[-1].a_oid;
asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc);
if(yyvsp[0].a_oid_arc.name)
free(yyvsp[0].a_oid_arc.name);
- ;
- break;}
-case 11:
+ }
+ break;
+
+ case 12:
#line 380 "asn1p_y.y"
-{ /* iso */
+ { /* iso */
yyval.a_oid_arc.name = yyvsp[0].tv_str;
yyval.a_oid_arc.number = -1;
- ;
- break;}
-case 12:
+ }
+ break;
+
+ case 13:
#line 384 "asn1p_y.y"
-{ /* iso(1) */
+ { /* iso(1) */
yyval.a_oid_arc.name = yyvsp[-3].tv_str;
yyval.a_oid_arc.number = yyvsp[-1].a_int;
- ;
- break;}
-case 13:
+ }
+ break;
+
+ case 14:
#line 388 "asn1p_y.y"
-{ /* 1 */
+ { /* 1 */
yyval.a_oid_arc.name = 0;
yyval.a_oid_arc.number = yyvsp[0].a_int;
- ;
- break;}
-case 14:
+ }
+ break;
+
+ case 15:
#line 398 "asn1p_y.y"
-{ yyval.a_module_flags = MSF_NOFLAGS; ;
- break;}
-case 15:
+ { yyval.a_module_flags = MSF_NOFLAGS; }
+ break;
+
+ case 16:
#line 399 "asn1p_y.y"
-{
+ {
yyval.a_module_flags = yyvsp[0].a_module_flags;
- ;
- break;}
-case 16:
+ }
+ break;
+
+ case 17:
#line 408 "asn1p_y.y"
-{
+ {
yyval.a_module_flags = yyvsp[0].a_module_flags;
- ;
- break;}
-case 17:
+ }
+ break;
+
+ case 18:
#line 411 "asn1p_y.y"
-{
+ {
yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags;
- ;
- break;}
-case 18:
+ }
+ break;
+
+ case 19:
#line 420 "asn1p_y.y"
-{
+ {
yyval.a_module_flags = MSF_EXPLICIT_TAGS;
- ;
- break;}
-case 19:
+ }
+ break;
+
+ case 20:
#line 423 "asn1p_y.y"
-{
+ {
yyval.a_module_flags = MSF_IMPLICIT_TAGS;
- ;
- break;}
-case 20:
+ }
+ break;
+
+ case 21:
#line 426 "asn1p_y.y"
-{
+ {
yyval.a_module_flags = MSF_AUTOMATIC_TAGS;
- ;
- break;}
-case 21:
+ }
+ break;
+
+ case 22:
#line 429 "asn1p_y.y"
-{
+ {
yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED;
- ;
- break;}
-case 22:
+ }
+ break;
+
+ case 23:
#line 438 "asn1p_y.y"
-{ yyval.a_module = 0; ;
- break;}
-case 23:
+ { yyval.a_module = 0; }
+ break;
+
+ case 24:
#line 439 "asn1p_y.y"
-{
+ {
assert(yyvsp[0].a_module);
yyval.a_module = yyvsp[0].a_module;
- ;
- break;}
-case 24:
+ }
+ break;
+
+ case 25:
#line 449 "asn1p_y.y"
-{
+ {
yyval.a_module = yyvsp[0].a_module;
- ;
- break;}
-case 25:
+ }
+ break;
+
+ case 26:
#line 452 "asn1p_y.y"
-{
+ {
yyval.a_module = yyvsp[-1].a_module;
#ifdef MY_IMPORT
@@ -1494,17 +1905,19 @@
MY_IMPORT(members, next);
#undef MY_IMPORT
- ;
- break;}
-case 26:
+ }
+ break;
+
+ case 27:
#line 478 "asn1p_y.y"
-{
+ {
yyval.a_module = yyvsp[0].a_module;
- ;
- break;}
-case 27:
+ }
+ break;
+
+ case 28:
#line 481 "asn1p_y.y"
-{
+ {
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
if(yyvsp[0].a_xports) {
@@ -1512,250 +1925,280 @@
} else {
/* "EXPORTS ALL;" ? */
}
- ;
- break;}
-case 28:
+ }
+ break;
+
+ case 29:
#line 490 "asn1p_y.y"
-{
+ {
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
assert(yyvsp[0].a_expr->expr_type != A1TC_INVALID);
assert(yyvsp[0].a_expr->meta_type != AMT_INVALID);
TQ_ADD(&(yyval.a_module->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 29:
+ }
+ break;
+
+ case 30:
#line 497 "asn1p_y.y"
-{
+ {
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
assert(yyvsp[0].a_expr->expr_type != A1TC_INVALID);
assert(yyvsp[0].a_expr->meta_type != AMT_INVALID);
TQ_ADD(&(yyval.a_module->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 30:
+ }
+ break;
+
+ case 31:
#line 510 "asn1p_y.y"
-{
+ {
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
assert(yyvsp[0].a_expr->expr_type != A1TC_INVALID);
assert(yyvsp[0].a_expr->meta_type != AMT_INVALID);
TQ_ADD(&(yyval.a_module->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 31:
+ }
+ break;
+
+ case 32:
#line 521 "asn1p_y.y"
-{
+ {
return yyerror(
"Attempt to redefine a standard basic type, "
"use -ftypesXY to switch back "
"to older version of ASN.1 standard");
- ;
- break;}
-case 32:
+ }
+ break;
+
+ case 33:
#line 535 "asn1p_y.y"
-{
+ {
yyval.a_module = yyvsp[-1].a_module;
- ;
- break;}
-case 33:
+ }
+ break;
+
+ case 34:
#line 541 "asn1p_y.y"
-{
+ {
return yyerror("Empty IMPORTS list");
- ;
- break;}
-case 34:
+ }
+ break;
+
+ case 35:
#line 547 "asn1p_y.y"
-{
+ {
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next);
- ;
- break;}
-case 35:
+ }
+ break;
+
+ case 36:
#line 552 "asn1p_y.y"
-{
+ {
yyval.a_module = yyvsp[-1].a_module;
TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next);
- ;
- break;}
-case 36:
+ }
+ break;
+
+ case 37:
#line 559 "asn1p_y.y"
-{
+ {
yyval.a_xports = yyvsp[-3].a_xports;
yyval.a_xports->from = yyvsp[-1].tv_str;
yyval.a_xports->from_oid = yyvsp[0].a_oid;
checkmem(yyval.a_xports);
- ;
- break;}
-case 37:
+ }
+ break;
+
+ case 38:
#line 568 "asn1p_y.y"
-{
+ {
yyval.a_xports = asn1p_xports_new();
checkmem(yyval.a_xports);
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 38:
+ }
+ break;
+
+ case 39:
#line 573 "asn1p_y.y"
-{
+ {
yyval.a_xports = yyvsp[-2].a_xports;
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 39:
+ }
+ break;
+
+ case 40:
#line 580 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = yyvsp[0].tv_str;
yyval.a_expr->expr_type = A1TC_REFERENCE;
- ;
- break;}
-case 40:
+ }
+ break;
+
+ case 41:
#line 586 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = yyvsp[0].tv_str;
yyval.a_expr->expr_type = A1TC_REFERENCE;
- ;
- break;}
-case 41:
+ }
+ break;
+
+ case 42:
#line 595 "asn1p_y.y"
-{
+ {
yyval.a_xports = yyvsp[-1].a_xports;
- ;
- break;}
-case 42:
+ }
+ break;
+
+ case 43:
#line 598 "asn1p_y.y"
-{
+ {
yyval.a_xports = 0;
- ;
- break;}
-case 43:
+ }
+ break;
+
+ case 44:
#line 601 "asn1p_y.y"
-{
+ {
/* Empty EXPORTS clause effectively prohibits export. */
yyval.a_xports = asn1p_xports_new();
checkmem(yyval.a_xports);
- ;
- break;}
-case 44:
+ }
+ break;
+
+ case 45:
#line 609 "asn1p_y.y"
-{
+ {
yyval.a_xports = asn1p_xports_new();
assert(yyval.a_xports);
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 45:
+ }
+ break;
+
+ case 46:
#line 614 "asn1p_y.y"
-{
+ {
yyval.a_xports = yyvsp[-2].a_xports;
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 46:
+ }
+ break;
+
+ case 47:
#line 621 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = yyvsp[0].tv_str;
yyval.a_expr->expr_type = A1TC_EXPORTVAR;
- ;
- break;}
-case 47:
+ }
+ break;
+
+ case 48:
#line 627 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = yyvsp[0].tv_str;
yyval.a_expr->expr_type = A1TC_EXPORTVAR;
- ;
- break;}
-case 48:
+ }
+ break;
+
+ case 49:
#line 637 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-4].a_expr;
assert(yyval.a_expr->Identifier == 0);
yyval.a_expr->Identifier = yyvsp[-5].tv_str;
yyval.a_expr->meta_type = AMT_VALUESET;
// take care of optValueSetBody
- ;
- break;}
-case 49:
+ }
+ break;
+
+ case 50:
#line 647 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->reference = yyvsp[0].a_ref;
yyval.a_expr->expr_type = A1TC_REFERENCE;
yyval.a_expr->meta_type = AMT_TYPEREF;
- ;
- break;}
-case 50:
+ }
+ break;
+
+ case 51:
#line 654 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->expr_type = yyvsp[0].a_type;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 51:
+ }
+ break;
+
+ case 52:
#line 663 "asn1p_y.y"
-{ ;
- break;}
-case 52:
+ { }
+ break;
+
+ case 53:
#line 664 "asn1p_y.y"
-{
- ;
- break;}
-case 53:
+ {
+ }
+ break;
+
+ case 54:
#line 680 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = yyvsp[-3].tv_str;
yyval.a_expr->tag = yyvsp[-1].a_tag;
yyval.a_expr->expr_type = A1TC_TYPEID;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 54:
+ }
+ break;
+
+ case 55:
#line 688 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[0].a_expr;
yyval.a_expr->Identifier = yyvsp[-3].tv_str;
yyval.a_expr->tag = yyvsp[-1].a_tag;
assert(yyval.a_expr->expr_type);
assert(yyval.a_expr->meta_type);
- ;
- break;}
-case 55:
+ }
+ break;
+
+ case 56:
#line 695 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[0].a_expr;
yyval.a_expr->Identifier = yyvsp[-2].tv_str;
assert(yyval.a_expr->expr_type == A1TC_CLASSDEF);
assert(yyval.a_expr->meta_type == AMT_OBJECT);
- ;
- break;}
-case 56:
+ }
+ break;
+
+ case 57:
#line 712 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[0].a_expr;
assert(yyval.a_expr->Identifier == 0);
yyval.a_expr->Identifier = yyvsp[-5].tv_str;
yyval.a_expr->params = yyvsp[-3].a_plist;
yyval.a_expr->meta_type = AMT_PARAMTYPE;
- ;
- break;}
-case 57:
+ }
+ break;
+
+ case 58:
#line 722 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_plist = asn1p_paramlist_new(yylineno);
checkmem(yyval.a_plist);
@@ -1763,150 +2206,168 @@
checkmem(ret == 0);
if(yyvsp[0].a_parg.governor) asn1p_ref_free(yyvsp[0].a_parg.governor);
if(yyvsp[0].a_parg.argument) free(yyvsp[0].a_parg.argument);
- ;
- break;}
-case 58:
+ }
+ break;
+
+ case 59:
#line 731 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_plist = yyvsp[-2].a_plist;
ret = asn1p_paramlist_add_param(yyval.a_plist, yyvsp[0].a_parg.governor, yyvsp[0].a_parg.argument);
checkmem(ret == 0);
if(yyvsp[0].a_parg.governor) asn1p_ref_free(yyvsp[0].a_parg.governor);
if(yyvsp[0].a_parg.argument) free(yyvsp[0].a_parg.argument);
- ;
- break;}
-case 59:
+ }
+ break;
+
+ case 60:
#line 742 "asn1p_y.y"
-{
+ {
yyval.a_parg.governor = NULL;
yyval.a_parg.argument = yyvsp[0].tv_str;
- ;
- break;}
-case 60:
+ }
+ break;
+
+ case 61:
#line 746 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_parg.governor = asn1p_ref_new(yylineno);
ret = asn1p_ref_add_component(yyval.a_parg.governor, yyvsp[-2].tv_str, 0);
checkmem(ret == 0);
yyval.a_parg.argument = yyvsp[0].tv_str;
- ;
- break;}
-case 61:
+ }
+ break;
+
+ case 62:
#line 753 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_parg.governor = asn1p_ref_new(yylineno);
ret = asn1p_ref_add_component(yyval.a_parg.governor,
ASN_EXPR_TYPE2STR(yyvsp[-2].a_type), 1);
checkmem(ret == 0);
yyval.a_parg.argument = yyvsp[0].tv_str;
- ;
- break;}
-case 62:
+ }
+ break;
+
+ case 63:
#line 764 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 63:
+ }
+ break;
+
+ case 64:
#line 769 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 64:
+ }
+ break;
+
+ case 65:
#line 776 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[0].a_expr;
- ;
- break;}
-case 65:
+ }
+ break;
+
+ case 66:
#line 779 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = yyvsp[0].tv_str;
yyval.a_expr->expr_type = A1TC_REFERENCE;
yyval.a_expr->meta_type = AMT_VALUE;
- ;
- break;}
-case 66:
+ }
+ break;
+
+ case 67:
#line 792 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 67:
+ }
+ break;
+
+ case 68:
#line 797 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 68:
+ }
+ break;
+
+ case 69:
#line 804 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-2].a_expr;
checkmem(yyval.a_expr);
yyval.a_expr->with_syntax = yyvsp[0].a_wsynt;
assert(yyval.a_expr->expr_type == A1TC_CLASSDEF);
assert(yyval.a_expr->meta_type == AMT_OBJECT);
- ;
- break;}
-case 69:
+ }
+ break;
+
+ case 70:
#line 814 "asn1p_y.y"
-{ yyval.a_int = 0; ;
- break;}
-case 70:
+ { yyval.a_int = 0; }
+ break;
+
+ case 71:
#line 815 "asn1p_y.y"
-{ yyval.a_int = 1; ;
- break;}
-case 71:
+ { yyval.a_int = 1; }
+ break;
+
+ case 72:
#line 819 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->expr_type = A1TC_CLASSDEF;
yyval.a_expr->meta_type = AMT_OBJECT;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 72:
+ }
+ break;
+
+ case 73:
#line 826 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 73:
+ }
+ break;
+
+ case 74:
#line 833 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = yyvsp[-1].a_refcomp.name;
yyval.a_expr->expr_type = A1TC_CLASSFIELD;
yyval.a_expr->meta_type = AMT_OBJECTFIELD;
yyval.a_expr->marker = yyvsp[0].a_marker;
- ;
- break;}
-case 74:
+ }
+ break;
+
+ case 75:
#line 841 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-1].a_expr;
yyval.a_expr->Identifier = yyvsp[-2].a_refcomp.name;
yyval.a_expr->unique = yyvsp[0].a_int;
- ;
- break;}
-case 75:
+ }
+ break;
+
+ case 76:
#line 846 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1920,51 +2381,59 @@
yyval.a_expr->meta_type = AMT_OBJECTFIELD;
yyval.a_expr->marker = yyvsp[-1].a_marker;
yyval.a_expr->unique = yyvsp[0].a_int;
- ;
- break;}
-case 76:
+ }
+ break;
+
+ case 77:
#line 864 "asn1p_y.y"
-{ yyval.a_wsynt = 0; ;
- break;}
-case 77:
+ { yyval.a_wsynt = 0; }
+ break;
+
+ case 78:
#line 865 "asn1p_y.y"
-{
+ {
yyval.a_wsynt = yyvsp[0].a_wsynt;
- ;
- break;}
-case 78:
+ }
+ break;
+
+ case 79:
#line 872 "asn1p_y.y"
-{ asn1p_lexer_hack_enable_with_syntax(); ;
- break;}
-case 79:
+ { asn1p_lexer_hack_enable_with_syntax(); }
+ break;
+
+ case 80:
#line 874 "asn1p_y.y"
-{
+ {
yyval.a_wsynt = yyvsp[-1].a_wsynt;
- ;
- break;}
-case 80:
+ }
+ break;
+
+ case 81:
#line 880 "asn1p_y.y"
-{
+ {
yyval.a_wsynt = asn1p_wsyntx_new();
TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
- ;
- break;}
-case 81:
+ }
+ break;
+
+ case 82:
#line 884 "asn1p_y.y"
-{
+ {
yyval.a_wsynt = yyvsp[-1].a_wsynt;
TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
- ;
- break;}
-case 82:
+ }
+ break;
+
+ case 83:
#line 891 "asn1p_y.y"
-{
+ {
yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
- ;
- break;}
-case 83:
+ }
+ break;
+
+ case 84:
#line 894 "asn1p_y.y"
-{
+ {
asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
@@ -1972,45 +2441,50 @@
ret = asn1p_ref_add_component(ref, yyvsp[0].a_refcomp.name, yyvsp[0].a_refcomp.lex_type);
checkmem(ret == 0);
yyval.a_wchunk = asn1p_wsyntx_chunk_fromref(ref, 0);
- ;
- break;}
-case 84:
+ }
+ break;
+
+ case 85:
#line 920 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[0].a_expr;
assert(yyval.a_expr->Identifier == 0);
yyval.a_expr->Identifier = yyvsp[-1].tv_nametag.name;
yyval.a_expr->tag = yyvsp[-1].tv_nametag.tag;
- ;
- break;}
-case 85:
+ }
+ break;
+
+ case 86:
#line 926 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[0].a_expr;
- ;
- break;}
-case 86:
+ }
+ break;
+
+ case 87:
#line 932 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-2].a_expr;
yyval.a_expr->constraints = yyvsp[-1].a_constr;
yyval.a_expr->marker = yyvsp[0].a_marker;
- ;
- break;}
-case 87:
+ }
+ break;
+
+ case 88:
#line 940 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = strdup("...");
checkmem(yyval.a_expr->Identifier);
yyval.a_expr->expr_type = A1TC_EXTENSIBLE;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 88:
+ }
+ break;
+
+ case 89:
#line 948 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = strdup("...");
@@ -2018,11 +2492,12 @@
yyval.a_expr->value = yyvsp[0].a_value;
yyval.a_expr->expr_type = A1TC_EXTENSIBLE;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 89:
+ }
+ break;
+
+ case 90:
#line 957 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = strdup("...");
@@ -2030,34 +2505,38 @@
checkmem(yyval.a_expr->Identifier);
yyval.a_expr->expr_type = A1TC_EXTENSIBLE;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 90:
+ }
+ break;
+
+ case 91:
#line 969 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[0].a_expr;
- ;
- break;}
-case 91:
+ }
+ break;
+
+ case 92:
#line 972 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->expr_type = yyvsp[0].a_type;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 92:
+ }
+ break;
+
+ case 93:
#line 978 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[0].a_expr;
checkmem(yyval.a_expr);
assert(yyval.a_expr->meta_type);
- ;
- break;}
-case 93:
+ }
+ break;
+
+ case 94:
#line 986 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == 0);
@@ -2070,42 +2549,46 @@
free(yyvsp[-3].tv_str);
yyval.a_expr->expr_type = A1TC_PARAMETRIZED;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 94:
+ }
+ break;
+
+ case 95:
#line 1010 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->reference = yyvsp[0].a_ref;
yyval.a_expr->expr_type = A1TC_REFERENCE;
yyval.a_expr->meta_type = AMT_TYPEREF;
- ;
- break;}
-case 95:
+ }
+ break;
+
+ case 96:
#line 1017 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
yyval.a_expr->reference = yyvsp[0].a_ref;
yyval.a_expr->expr_type = A1TC_INSTANCE;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 96:
+ }
+ break;
+
+ case 97:
#line 1032 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
checkmem(yyval.a_ref);
ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN);
checkmem(ret == 0);
free(yyvsp[0].tv_str);
- ;
- break;}
-case 97:
+ }
+ break;
+
+ case 98:
#line 1040 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
checkmem(yyval.a_ref);
@@ -2114,11 +2597,12 @@
ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN);
checkmem(ret == 0);
free(yyvsp[-2].tv_str);
- ;
- break;}
-case 98:
+ }
+ break;
+
+ case 99:
#line 1050 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
checkmem(yyval.a_ref);
@@ -2127,22 +2611,24 @@
ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_lowercase);
checkmem(ret == 0);
free(yyvsp[-2].tv_str);
- ;
- break;}
-case 99:
+ }
+ break;
+
+ case 100:
#line 1060 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
checkmem(yyval.a_ref);
ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_CAPITALS);
free(yyvsp[0].tv_str);
checkmem(ret == 0);
- ;
- break;}
-case 100:
+ }
+ break;
+
+ case 101:
#line 1068 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_ref = yyvsp[0].a_ref;
ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_CAPITALS);
@@ -2160,101 +2646,114 @@
* (yyval.a_ref->comp_count - 1));
yyval.a_ref->components[0] = tmp_comp;
}
- ;
- break;}
-case 101:
+ }
+ break;
+
+ case 102:
#line 1090 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
checkmem(yyval.a_ref);
ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].a_refcomp.name, yyvsp[0].a_refcomp.lex_type);
free(yyvsp[0].a_refcomp.name);
checkmem(ret == 0);
- ;
- break;}
-case 102:
+ }
+ break;
+
+ case 103:
#line 1098 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_ref = yyvsp[-2].a_ref;
ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].a_refcomp.name, yyvsp[0].a_refcomp.lex_type);
free(yyvsp[0].a_refcomp.name);
checkmem(ret == 0);
- ;
- break;}
-case 105:
+ }
+ break;
+
+ case 106:
#line 1112 "asn1p_y.y"
-{
+ {
yyval.a_refcomp.lex_type = RLT_AmpUppercase;
yyval.a_refcomp.name = yyvsp[0].tv_str;
- ;
- break;}
-case 106:
+ }
+ break;
+
+ case 107:
#line 1117 "asn1p_y.y"
-{
+ {
yyval.a_refcomp.lex_type = RLT_Amplowercase;
yyval.a_refcomp.name = yyvsp[0].tv_str;
- ;
- break;}
-case 107:
+ }
+ break;
+
+ case 108:
#line 1130 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-2].a_expr;
assert(yyval.a_expr->Identifier == NULL);
yyval.a_expr->Identifier = yyvsp[-3].tv_str;
yyval.a_expr->meta_type = AMT_VALUE;
yyval.a_expr->value = yyvsp[0].a_value;
- ;
- break;}
-case 108:
+ }
+ break;
+
+ case 109:
#line 1140 "asn1p_y.y"
-{ asn1p_lexer_hack_push_opaque_state(); ;
- break;}
-case 109:
+ { asn1p_lexer_hack_push_opaque_state(); }
+ break;
+
+ case 110:
#line 1141 "asn1p_y.y"
-{
+ {
yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_UNPARSED;
- ;
- break;}
-case 110:
+ }
+ break;
+
+ case 111:
#line 1146 "asn1p_y.y"
-{
+ {
yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B');
checkmem(yyval.a_value);
- ;
- break;}
-case 111:
+ }
+ break;
+
+ case 112:
#line 1150 "asn1p_y.y"
-{
+ {
yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H');
checkmem(yyval.a_value);
- ;
- break;}
-case 112:
+ }
+ break;
+
+ case 113:
#line 1154 "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 113:
+ }
+ break;
+
+ case 114:
#line 1158 "asn1p_y.y"
-{
+ {
yyval.a_value = yyvsp[0].a_value;
- ;
- break;}
-case 114:
+ }
+ break;
+
+ case 115:
#line 1161 "asn1p_y.y"
-{
+ {
yyval.a_value = yyvsp[0].a_value;
- ;
- break;}
-case 115:
+ }
+ break;
+
+ case 116:
#line 1167 "asn1p_y.y"
-{
+ {
asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
@@ -2264,11 +2763,12 @@
yyval.a_value = asn1p_value_fromref(ref, 0);
checkmem(yyval.a_value);
free(yyvsp[0].tv_str);
- ;
- break;}
-case 116:
+ }
+ break;
+
+ case 117:
#line 1178 "asn1p_y.y"
-{
+ {
asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
@@ -2281,11 +2781,12 @@
checkmem(yyval.a_value);
free(yyvsp[-2].tv_str);
free(yyvsp[0].tv_str);
- ;
- break;}
-case 117:
+ }
+ break;
+
+ case 118:
#line 1195 "asn1p_y.y"
-{
+ {
yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 2;
yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1);
checkmem(yyval.tv_opaque.buf);
@@ -2294,11 +2795,12 @@
memcpy(yyval.tv_opaque.buf + 2, yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len);
yyval.tv_opaque.buf[yyval.tv_opaque.len] = '\0';
free(yyvsp[0].tv_opaque.buf);
- ;
- break;}
-case 118:
+ }
+ break;
+
+ case 119:
#line 1205 "asn1p_y.y"
-{
+ {
int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len;
char *p = malloc(newsize + 1);
checkmem(p);
@@ -2309,80 +2811,97 @@
free(yyvsp[0].tv_opaque.buf);
yyval.tv_opaque.buf = p;
yyval.tv_opaque.len = newsize;
- ;
- break;}
-case 119:
+ }
+ break;
+
+ case 120:
#line 1220 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_BOOLEAN; ;
- break;}
-case 120:
+ { yyval.a_type = ASN_BASIC_BOOLEAN; }
+ break;
+
+ case 121:
#line 1221 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_NULL; ;
- break;}
-case 121:
+ { yyval.a_type = ASN_BASIC_NULL; }
+ break;
+
+ case 122:
#line 1222 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_REAL; ;
- break;}
-case 122:
+ { yyval.a_type = ASN_BASIC_REAL; }
+ break;
+
+ case 123:
#line 1223 "asn1p_y.y"
-{ yyval.a_type = yyvsp[0].a_type; ;
- break;}
-case 123:
+ { yyval.a_type = yyvsp[0].a_type; }
+ break;
+
+ case 124:
#line 1224 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_OCTET_STRING; ;
- break;}
-case 124:
+ { yyval.a_type = ASN_BASIC_OCTET_STRING; }
+ break;
+
+ case 125:
#line 1225 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ;
- break;}
-case 125:
+ { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; }
+ break;
+
+ case 126:
#line 1226 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_RELATIVE_OID; ;
- break;}
-case 126:
+ { yyval.a_type = ASN_BASIC_RELATIVE_OID; }
+ break;
+
+ case 127:
#line 1227 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_EXTERNAL; ;
- break;}
-case 127:
+ { yyval.a_type = ASN_BASIC_EXTERNAL; }
+ break;
+
+ case 128:
#line 1228 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ;
- break;}
-case 128:
+ { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; }
+ break;
+
+ case 129:
#line 1229 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_CHARACTER_STRING; ;
- break;}
-case 129:
+ { yyval.a_type = ASN_BASIC_CHARACTER_STRING; }
+ break;
+
+ case 130:
#line 1230 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_UTCTime; ;
- break;}
-case 130:
+ { yyval.a_type = ASN_BASIC_UTCTime; }
+ break;
+
+ case 131:
#line 1231 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_GeneralizedTime; ;
- break;}
-case 131:
+ { yyval.a_type = ASN_BASIC_GeneralizedTime; }
+ break;
+
+ case 132:
#line 1238 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_INTEGER; ;
- break;}
-case 132:
+ { yyval.a_type = ASN_BASIC_INTEGER; }
+ break;
+
+ case 133:
#line 1239 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_ENUMERATED; ;
- break;}
-case 133:
+ { yyval.a_type = ASN_BASIC_ENUMERATED; }
+ break;
+
+ case 134:
#line 1240 "asn1p_y.y"
-{ yyval.a_type = ASN_BASIC_BIT_STRING; ;
- break;}
-case 134:
+ { yyval.a_type = ASN_BASIC_BIT_STRING; }
+ break;
+
+ case 135:
#line 1244 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->expr_type = yyvsp[0].a_type;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 135:
+ }
+ break;
+
+ case 136:
#line 1250 "asn1p_y.y"
-{
+ {
if(yyvsp[0].a_expr) {
yyval.a_expr = yyvsp[0].a_expr;
} else {
@@ -2391,137 +2910,158 @@
}
yyval.a_expr->expr_type = yyvsp[-1].a_type;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 136:
+ }
+ break;
+
+ case 137:
#line 1263 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_BMPString; ;
- break;}
-case 137:
+ { yyval.a_type = ASN_STRING_BMPString; }
+ break;
+
+ case 138:
#line 1264 "asn1p_y.y"
-{
+ {
yyval.a_type = ASN_STRING_GeneralString;
return yyerror("GeneralString is not supported");
- ;
- break;}
-case 138:
+ }
+ break;
+
+ case 139:
#line 1268 "asn1p_y.y"
-{
+ {
yyval.a_type = ASN_STRING_GraphicString;
return yyerror("GraphicString is not supported");
- ;
- break;}
-case 139:
+ }
+ break;
+
+ case 140:
#line 1272 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_IA5String; ;
- break;}
-case 140:
+ { yyval.a_type = ASN_STRING_IA5String; }
+ break;
+
+ case 141:
#line 1273 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_ISO646String; ;
- break;}
-case 141:
+ { yyval.a_type = ASN_STRING_ISO646String; }
+ break;
+
+ case 142:
#line 1274 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_NumericString; ;
- break;}
-case 142:
+ { yyval.a_type = ASN_STRING_NumericString; }
+ break;
+
+ case 143:
#line 1275 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_PrintableString; ;
- break;}
-case 143:
+ { yyval.a_type = ASN_STRING_PrintableString; }
+ break;
+
+ case 144:
#line 1276 "asn1p_y.y"
-{
+ {
yyval.a_type = ASN_STRING_T61String;
return yyerror("T61String not implemented yet");
- ;
- break;}
-case 144:
+ }
+ break;
+
+ case 145:
#line 1280 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_TeletexString; ;
- break;}
-case 145:
+ { yyval.a_type = ASN_STRING_TeletexString; }
+ break;
+
+ case 146:
#line 1281 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_UniversalString; ;
- break;}
-case 146:
+ { yyval.a_type = ASN_STRING_UniversalString; }
+ break;
+
+ case 147:
#line 1282 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_UTF8String; ;
- break;}
-case 147:
+ { yyval.a_type = ASN_STRING_UTF8String; }
+ break;
+
+ case 148:
#line 1283 "asn1p_y.y"
-{
+ {
yyval.a_type = ASN_STRING_VideotexString;
return yyerror("VideotexString is no longer supported");
- ;
- break;}
-case 148:
+ }
+ break;
+
+ case 149:
#line 1287 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_VisibleString; ;
- break;}
-case 149:
+ { yyval.a_type = ASN_STRING_VisibleString; }
+ break;
+
+ case 150:
#line 1288 "asn1p_y.y"
-{ yyval.a_type = ASN_STRING_ObjectDescriptor; ;
- break;}
-case 150:
+ { yyval.a_type = ASN_STRING_ObjectDescriptor; }
+ break;
+
+ case 151:
#line 1292 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == A1TC_INVALID);
yyval.a_expr->expr_type = ASN_CONSTR_CHOICE;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 151:
+ }
+ break;
+
+ case 152:
#line 1298 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == A1TC_INVALID);
yyval.a_expr->expr_type = ASN_CONSTR_SEQUENCE;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 152:
+ }
+ break;
+
+ case 153:
#line 1304 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == A1TC_INVALID);
yyval.a_expr->expr_type = ASN_CONSTR_SET;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 153:
+ }
+ break;
+
+ case 154:
#line 1310 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->constraints = yyvsp[-2].a_constr;
yyval.a_expr->expr_type = ASN_CONSTR_SEQUENCE_OF;
yyval.a_expr->meta_type = AMT_TYPE;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 154:
+ }
+ break;
+
+ case 155:
#line 1318 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->constraints = yyvsp[-2].a_constr;
yyval.a_expr->expr_type = ASN_CONSTR_SET_OF;
yyval.a_expr->meta_type = AMT_TYPE;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 155:
+ }
+ break;
+
+ case 156:
#line 1326 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->expr_type = ASN_CONSTR_ANY;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 156:
+ }
+ break;
+
+ case 157:
#line 1332 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -2531,19 +3071,22 @@
checkmem(ret == 0);
yyval.a_expr->expr_type = ASN_CONSTR_ANY;
yyval.a_expr->meta_type = AMT_TYPE;
- ;
- break;}
-case 157:
+ }
+ break;
+
+ case 158:
#line 1349 "asn1p_y.y"
-{ yyval.a_constr = 0; ;
- break;}
-case 158:
+ { yyval.a_constr = 0; }
+ break;
+
+ case 159:
#line 1350 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
- break;}
-case 164:
+ { yyval.a_constr = yyvsp[0].a_constr; }
+ break;
+
+ case 165:
#line 1358 "asn1p_y.y"
-{
+ {
/*
* This is a special case, for compatibility purposes.
* It goes without parenthesis.
@@ -2554,184 +3097,212 @@
yyval.a_constr->type = ACT_CT_SIZE;
ret = asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr);
checkmem(ret == 0);
- ;
- break;}
-case 165:
+ }
+ break;
+
+ case 166:
#line 1370 "asn1p_y.y"
-{
+ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
- ;
- break;}
-case 166:
+ }
+ break;
+
+ case 167:
#line 1373 "asn1p_y.y"
-{
+ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-1].a_constr, yyvsp[0].a_constr);
- ;
- break;}
-case 167:
+ }
+ break;
+
+ case 168:
#line 1379 "asn1p_y.y"
-{
+ {
yyval.a_constr = yyvsp[-1].a_constr;
- ;
- break;}
-case 168:
+ }
+ break;
+
+ case 169:
#line 1385 "asn1p_y.y"
-{
+ {
yyval.a_constr = yyvsp[0].a_constr;
- ;
- break;}
-case 169:
+ }
+ break;
+
+ case 170:
#line 1388 "asn1p_y.y"
-{
+ {
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
checkmem(ct);
ct->type = ACT_EL_EXT;
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
- ;
- break;}
-case 170:
+ }
+ break;
+
+ case 171:
#line 1395 "asn1p_y.y"
-{
+ {
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
checkmem(ct);
ct->type = ACT_EL_EXT;
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-4].a_constr, ct);
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-4].a_constr, yyvsp[0].a_constr);
- ;
- break;}
-case 171:
+ }
+ break;
+
+ case 172:
#line 1403 "asn1p_y.y"
-{
+ {
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_EXT;
- ;
- break;}
-case 172:
+ }
+ break;
+
+ case 173:
#line 1408 "asn1p_y.y"
-{
+ {
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
checkmem(ct);
ct->type = ACT_EL_EXT;
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, ct, yyvsp[0].a_constr);
- ;
- break;}
-case 173:
+ }
+ break;
+
+ case 174:
#line 1417 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
- break;}
-case 174:
+ { yyval.a_constr = yyvsp[0].a_constr; }
+ break;
+
+ case 175:
#line 1420 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
- break;}
-case 175:
+ { yyval.a_constr = yyvsp[0].a_constr; }
+ break;
+
+ case 176:
#line 1421 "asn1p_y.y"
-{
+ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr);
- ;
- break;}
-case 176:
+ }
+ break;
+
+ case 177:
#line 1427 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
- break;}
-case 177:
+ { yyval.a_constr = yyvsp[0].a_constr; }
+ break;
+
+ case 178:
#line 1429 "asn1p_y.y"
-{
+ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr);
- ;
- break;}
-case 178:
+ }
+ break;
+
+ case 179:
#line 1435 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
- break;}
-case 179:
+ { yyval.a_constr = yyvsp[0].a_constr; }
+ break;
+
+ case 180:
#line 1436 "asn1p_y.y"
-{
+ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr);
- ;
- break;}
-case 180:
+ }
+ break;
+
+ case 181:
#line 1442 "asn1p_y.y"
-{
+ {
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_VALUE;
yyval.a_constr->value = yyvsp[0].a_value;
- ;
- break;}
-case 181:
+ }
+ break;
+
+ case 182:
#line 1448 "asn1p_y.y"
-{
+ {
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = yyvsp[-1].a_ctype;
yyval.a_constr->range_start = yyvsp[-2].a_value;
yyval.a_constr->range_stop = yyvsp[0].a_value;
- ;
- break;}
-case 182:
+ }
+ break;
+
+ case 183:
#line 1455 "asn1p_y.y"
-{
+ {
int ret;
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = yyvsp[-3].a_ctype;
ret = asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr);
checkmem(ret == 0);
- ;
- break;}
-case 183:
+ }
+ break;
+
+ case 184:
#line 1463 "asn1p_y.y"
-{
+ {
yyval.a_constr = yyvsp[0].a_constr;
- ;
- break;}
-case 184:
+ }
+ break;
+
+ case 185:
#line 1466 "asn1p_y.y"
-{
+ {
yyval.a_constr = yyvsp[0].a_constr;
- ;
- break;}
-case 185:
+ }
+ break;
+
+ case 186:
#line 1472 "asn1p_y.y"
-{ yyval.a_ctype = ACT_EL_RANGE; ;
- break;}
-case 186:
+ { yyval.a_ctype = ACT_EL_RANGE; }
+ break;
+
+ case 187:
#line 1473 "asn1p_y.y"
-{ yyval.a_ctype = ACT_EL_RLRANGE; ;
- break;}
-case 187:
+ { yyval.a_ctype = ACT_EL_RLRANGE; }
+ break;
+
+ case 188:
#line 1474 "asn1p_y.y"
-{ yyval.a_ctype = ACT_EL_LLRANGE; ;
- break;}
-case 188:
+ { yyval.a_ctype = ACT_EL_LLRANGE; }
+ break;
+
+ case 189:
#line 1475 "asn1p_y.y"
-{ yyval.a_ctype = ACT_EL_ULRANGE; ;
- break;}
-case 189:
+ { yyval.a_ctype = ACT_EL_ULRANGE; }
+ break;
+
+ case 190:
#line 1479 "asn1p_y.y"
-{
+ {
yyval.a_ctype = ACT_CT_SIZE;
- ;
- break;}
-case 190:
+ }
+ break;
+
+ case 191:
#line 1482 "asn1p_y.y"
-{
+ {
yyval.a_ctype = ACT_CT_FROM;
- ;
- break;}
-case 191:
+ }
+ break;
+
+ case 192:
#line 1488 "asn1p_y.y"
-{
+ {
yyval.a_value = yyvsp[0].a_value;
- ;
- break;}
-case 192:
+ }
+ break;
+
+ case 193:
#line 1491 "asn1p_y.y"
-{
+ {
asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
@@ -2741,124 +3312,142 @@
yyval.a_value = asn1p_value_fromref(ref, 0);
checkmem(yyval.a_value);
free(yyvsp[0].tv_str);
- ;
- break;}
-case 193:
+ }
+ break;
+
+ case 194:
#line 1502 "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 194:
+ }
+ break;
+
+ case 195:
#line 1506 "asn1p_y.y"
-{
+ {
yyval.a_value = asn1p_value_fromint(123);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_MIN;
- ;
- break;}
-case 195:
+ }
+ break;
+
+ case 196:
#line 1511 "asn1p_y.y"
-{
+ {
yyval.a_value = asn1p_value_fromint(321);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_MAX;
- ;
- break;}
-case 196:
+ }
+ break;
+
+ case 197:
#line 1516 "asn1p_y.y"
-{
+ {
yyval.a_value = asn1p_value_fromint(0);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_FALSE;
- ;
- break;}
-case 197:
+ }
+ break;
+
+ case 198:
#line 1521 "asn1p_y.y"
-{
+ {
yyval.a_value = asn1p_value_fromint(1);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_TRUE;
- ;
- break;}
-case 198:
+ }
+ break;
+
+ case 199:
#line 1529 "asn1p_y.y"
-{
+ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
- ;
- break;}
-case 199:
+ }
+ break;
+
+ case 200:
#line 1535 "asn1p_y.y"
-{
+ {
yyval.a_constr = yyvsp[0].a_constr;
- ;
- break;}
-case 200:
+ }
+ break;
+
+ case 201:
#line 1538 "asn1p_y.y"
-{
+ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
- ;
- break;}
-case 201:
+ }
+ break;
+
+ case 202:
#line 1544 "asn1p_y.y"
-{
+ {
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_EXT;
- ;
- break;}
-case 202:
+ }
+ break;
+
+ case 203:
#line 1549 "asn1p_y.y"
-{
+ {
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_VALUE;
yyval.a_constr->value = asn1p_value_frombuf(yyvsp[-2].tv_str, strlen(yyvsp[-2].tv_str), 0);
yyval.a_constr->presence = yyvsp[0].a_pres;
- ;
- break;}
-case 203:
+ }
+ break;
+
+ case 204:
#line 1562 "asn1p_y.y"
-{ yyval.a_pres = ACPRES_DEFAULT; ;
- break;}
-case 204:
+ { yyval.a_pres = ACPRES_DEFAULT; }
+ break;
+
+ case 205:
#line 1563 "asn1p_y.y"
-{ yyval.a_pres = yyvsp[0].a_pres; ;
- break;}
-case 205:
+ { yyval.a_pres = yyvsp[0].a_pres; }
+ break;
+
+ case 206:
#line 1567 "asn1p_y.y"
-{
+ {
yyval.a_pres = ACPRES_PRESENT;
- ;
- break;}
-case 206:
+ }
+ break;
+
+ case 207:
#line 1570 "asn1p_y.y"
-{
+ {
yyval.a_pres = ACPRES_ABSENT;
- ;
- break;}
-case 207:
+ }
+ break;
+
+ case 208:
#line 1573 "asn1p_y.y"
-{
+ {
yyval.a_pres = ACPRES_OPTIONAL;
- ;
- break;}
-case 208:
+ }
+ break;
+
+ case 209:
#line 1579 "asn1p_y.y"
-{
+ {
yyval.a_constr = yyvsp[0].a_constr;
- ;
- break;}
-case 209:
+ }
+ break;
+
+ case 210:
#line 1582 "asn1p_y.y"
-{
+ {
yyval.a_constr = yyvsp[0].a_constr;
- ;
- break;}
-case 210:
+ }
+ break;
+
+ case 211:
#line 1591 "asn1p_y.y"
-{
+ {
asn1p_ref_t *ref = asn1p_ref_new(yylineno);
asn1p_constraint_t *ct;
int ret;
@@ -2869,37 +3458,41 @@
ct->type = ACT_EL_VALUE;
ct->value = asn1p_value_fromref(ref, 0);
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, ct, 0);
- ;
- break;}
-case 211:
+ }
+ break;
+
+ case 212:
#line 1606 "asn1p_y.y"
-{
+ {
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
- ;
- break;}
-case 212:
+ }
+ break;
+
+ case 213:
#line 1612 "asn1p_y.y"
-{
+ {
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_VALUE;
yyval.a_constr->value = asn1p_value_fromref(yyvsp[0].a_ref, 0);
- ;
- break;}
-case 213:
+ }
+ break;
+
+ case 214:
#line 1618 "asn1p_y.y"
-{
+ {
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
checkmem(ct);
ct->type = ACT_EL_VALUE;
ct->value = asn1p_value_fromref(yyvsp[0].a_ref, 0);
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
- ;
- break;}
-case 214:
+ }
+ break;
+
+ case 215:
#line 1632 "asn1p_y.y"
-{
+ {
char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
int ret;
*p = '@';
@@ -2909,11 +3502,12 @@
checkmem(ret == 0);
free(p);
free(yyvsp[0].tv_str);
- ;
- break;}
-case 215:
+ }
+ break;
+
+ case 216:
#line 1643 "asn1p_y.y"
-{
+ {
char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
int ret;
p[0] = '@';
@@ -2924,17 +3518,19 @@
checkmem(ret == 0);
free(p);
free(yyvsp[0].tv_str);
- ;
- break;}
-case 216:
+ }
+ break;
+
+ case 217:
#line 1659 "asn1p_y.y"
-{
+ {
yyval.tv_str = yyvsp[0].tv_str;
- ;
- break;}
-case 217:
+ }
+ break;
+
+ case 218:
#line 1662 "asn1p_y.y"
-{
+ {
int l1 = strlen(yyvsp[-2].tv_str);
int l3 = strlen(yyvsp[0].tv_str);
yyval.tv_str = malloc(l1 + 1 + l3 + 1);
@@ -2942,436 +3538,468 @@
yyval.tv_str[l1] = '.';
memcpy(yyval.tv_str + l1 + 1, yyvsp[0].tv_str, l3);
yyval.tv_str[l1 + 1 + l3] = '\0';
- ;
- break;}
-case 218:
+ }
+ break;
+
+ case 219:
#line 1680 "asn1p_y.y"
-{ yyval.a_marker = EM_NOMARK; ;
- break;}
-case 219:
+ { yyval.a_marker = EM_NOMARK; }
+ break;
+
+ case 220:
#line 1681 "asn1p_y.y"
-{ yyval.a_marker = yyvsp[0].a_marker; ;
- break;}
-case 220:
+ { yyval.a_marker = yyvsp[0].a_marker; }
+ break;
+
+ case 221:
#line 1685 "asn1p_y.y"
-{
+ {
yyval.a_marker = EM_OPTIONAL;
- ;
- break;}
-case 221:
+ }
+ break;
+
+ case 222:
#line 1688 "asn1p_y.y"
-{
+ {
yyval.a_marker = EM_DEFAULT;
/* FIXME: store DefaultValue somewhere */
- ;
- break;}
-case 222:
+ }
+ break;
+
+ case 223:
#line 1695 "asn1p_y.y"
-{
- ;
- break;}
-case 223:
+ {
+ }
+ break;
+
+ case 224:
#line 1697 "asn1p_y.y"
-{
- ;
- break;}
-case 224:
+ {
+ }
+ break;
+
+ case 225:
#line 1699 "asn1p_y.y"
-{ asn1p_lexer_hack_push_opaque_state(); ;
- break;}
-case 225:
+ { asn1p_lexer_hack_push_opaque_state(); }
+ break;
+
+ case 226:
#line 1699 "asn1p_y.y"
-{
- ;
- break;}
-case 226:
+ {
+ }
+ break;
+
+ case 227:
#line 1720 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
- ;
- break;}
-case 227:
+ }
+ break;
+
+ case 228:
#line 1724 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-1].a_expr;
- ;
- break;}
-case 228:
+ }
+ break;
+
+ case 229:
#line 1730 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 229:
+ }
+ break;
+
+ case 230:
#line 1735 "asn1p_y.y"
-{
+ {
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- ;
- break;}
-case 230:
+ }
+ break;
+
+ case 231:
#line 1742 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->expr_type = A1TC_UNIVERVAL;
yyval.a_expr->meta_type = AMT_VALUE;
yyval.a_expr->Identifier = yyvsp[0].tv_str;
- ;
- break;}
-case 231:
+ }
+ break;
+
+ case 232:
#line 1749 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->expr_type = A1TC_UNIVERVAL;
yyval.a_expr->meta_type = AMT_VALUE;
yyval.a_expr->Identifier = yyvsp[-3].tv_str;
yyval.a_expr->value = yyvsp[-1].a_value;
- ;
- break;}
-case 232:
+ }
+ break;
+
+ case 233:
#line 1757 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->expr_type = A1TC_UNIVERVAL;
yyval.a_expr->meta_type = AMT_VALUE;
yyval.a_expr->Identifier = yyvsp[-3].tv_str;
yyval.a_expr->value = yyvsp[-1].a_value;
- ;
- break;}
-case 233:
+ }
+ break;
+
+ case 234:
#line 1765 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->expr_type = A1TC_UNIVERVAL;
yyval.a_expr->meta_type = AMT_VALUE;
yyval.a_expr->value = yyvsp[0].a_value;
- ;
- break;}
-case 234:
+ }
+ break;
+
+ case 235:
#line 1772 "asn1p_y.y"
-{
+ {
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = strdup("...");
checkmem(yyval.a_expr->Identifier);
yyval.a_expr->expr_type = A1TC_EXTENSIBLE;
yyval.a_expr->meta_type = AMT_VALUE;
- ;
- break;}
-case 235:
+ }
+ break;
+
+ case 236:
#line 1783 "asn1p_y.y"
-{
+ {
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value);
- ;
- break;}
-case 236:
+ }
+ break;
+
+ case 237:
#line 1787 "asn1p_y.y"
-{
+ {
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value);
- ;
- break;}
-case 237:
+ }
+ break;
+
+ case 238:
#line 1818 "asn1p_y.y"
-{ memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
- break;}
-case 238:
+ { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); }
+ break;
+
+ case 239:
#line 1819 "asn1p_y.y"
-{ yyval.a_tag = yyvsp[0].a_tag; ;
- break;}
-case 239:
+ { yyval.a_tag = yyvsp[0].a_tag; }
+ break;
+
+ case 240:
#line 1823 "asn1p_y.y"
-{
+ {
yyval.a_tag = yyvsp[0].a_tag;
yyval.a_tag.tag_mode = TM_DEFAULT;
- ;
- break;}
-case 240:
+ }
+ break;
+
+ case 241:
#line 1827 "asn1p_y.y"
-{
+ {
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = TM_IMPLICIT;
- ;
- break;}
-case 241:
+ }
+ break;
+
+ case 242:
#line 1831 "asn1p_y.y"
-{
+ {
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = TM_EXPLICIT;
- ;
- break;}
-case 242:
+ }
+ break;
+
+ case 243:
#line 1838 "asn1p_y.y"
-{
+ {
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
- ;
- break;}
-case 243:
+ }
+ break;
+
+ case 244:
#line 1842 "asn1p_y.y"
-{
+ {
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
- ;
- break;}
-case 244:
+ }
+ break;
+
+ case 245:
#line 1849 "asn1p_y.y"
-{
+ {
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
- ;
- break;}
-case 245:
+ }
+ break;
+
+ case 246:
#line 1856 "asn1p_y.y"
-{
+ {
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
- ;
- break;}
-case 246:
+ }
+ break;
+
+ case 247:
#line 1863 "asn1p_y.y"
-{
+ {
memset(&yyval.tv_nametag, 0, sizeof(yyval.tv_nametag));
yyval.tv_nametag.name = yyvsp[0].tv_str;
- ;
- break;}
-case 247:
+ }
+ break;
+
+ case 248:
#line 1867 "asn1p_y.y"
-{
+ {
yyval.tv_nametag.name = yyvsp[-1].tv_str;
yyval.tv_nametag.tag = yyvsp[0].a_tag;
- ;
- break;}
-}
- /* the action file gets copied in in place of this dollarsign */
-#line 543 "/usr/share/bison.simple"
+ }
+ break;
+
+
+ }
+
+/* Line 1016 of /usr/local/share/bison/yacc.c. */
+#line 3785 "y.tab.c"
yyvsp -= yylen;
yyssp -= yylen;
-#ifdef YYLSP_NEEDED
- yylsp -= yylen;
-#endif
-#if YYDEBUG != 0
+
+#if YYDEBUG
if (yydebug)
{
- short *ssp1 = yyss - 1;
- fprintf (stderr, "state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
+ short *yyssp1 = yyss - 1;
+ YYFPRINTF (stderr, "state stack now");
+ while (yyssp1 != yyssp)
+ YYFPRINTF (stderr, " %d", *++yyssp1);
+ YYFPRINTF (stderr, "\n");
}
#endif
*++yyvsp = yyval;
-#ifdef YYLSP_NEEDED
- yylsp++;
- if (yylen == 0)
- {
- yylsp->first_line = yylloc.first_line;
- yylsp->first_column = yylloc.first_column;
- yylsp->last_line = (yylsp-1)->last_line;
- yylsp->last_column = (yylsp-1)->last_column;
- yylsp->text = 0;
- }
- else
- {
- yylsp->last_line = (yylsp+yylen-1)->last_line;
- yylsp->last_column = (yylsp+yylen-1)->last_column;
- }
-#endif
- /* Now "shift" the result of the reduction.
- Determine what state that goes to,
- based on the state we popped back to
- and the rule number reduced by. */
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
yyn = yyr1[yyn];
- yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
- if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
- yystate = yydefgoto[yyn - YYNTBASE];
+ yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
-yyerrlab: /* here on detecting error */
- if (! yyerrstatus)
- /* If not already recovering from an error, report this error. */
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
{
++yynerrs;
-
-#ifdef YYERROR_VERBOSE
+#if YYERROR_VERBOSE
yyn = yypact[yystate];
- if (yyn > YYFLAG && yyn < YYLAST)
+ if (YYPACT_NINF < yyn && yyn < YYLAST)
{
- int size = 0;
- char *msg;
- int x, count;
+ YYSIZE_T yysize = 0;
+ int yytype = YYTRANSLATE (yychar);
+ char *yymsg;
+ int yyx, yycount;
- count = 0;
- /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
- for (x = (yyn < 0 ? -yyn : 0);
- x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- if (msg != 0)
+ yycount = 0;
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ for (yyx = yyn < 0 ? -yyn : 0;
+ yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ yysize += yystrlen (yytname[yyx]) + 15, yycount++;
+ yysize += yystrlen ("parse error, unexpected ") + 1;
+ yysize += yystrlen (yytname[yytype]);
+ yymsg = (char *) YYSTACK_ALLOC (yysize);
+ if (yymsg != 0)
{
- strcpy(msg, "parse error");
+ char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
+ yyp = yystpcpy (yyp, yytname[yytype]);
- if (count < 5)
+ if (yycount < 5)
{
- count = 0;
- for (x = (yyn < 0 ? -yyn : 0);
- x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
+ yycount = 0;
+ for (yyx = yyn < 0 ? -yyn : 0;
+ yyx < (int) (sizeof (yytname) / sizeof (char *));
+ yyx++)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- strcat(msg, yytname[x]);
- strcat(msg, "'");
- count++;
+ const char *yyq = ! yycount ? ", expecting " : " or ";
+ yyp = yystpcpy (yyp, yyq);
+ yyp = yystpcpy (yyp, yytname[yyx]);
+ yycount++;
}
}
- yyerror(msg);
- free(msg);
+ yyerror (yymsg);
+ YYSTACK_FREE (yymsg);
}
else
- yyerror ("parse error; also virtual memory exceeded");
+ yyerror ("parse error; also virtual memory exhausted");
}
else
#endif /* YYERROR_VERBOSE */
- yyerror("parse error");
+ yyerror ("parse error");
}
-
goto yyerrlab1;
-yyerrlab1: /* here on error raised explicitly by an action */
+
+/*----------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action. |
+`----------------------------------------------------*/
+yyerrlab1:
if (yyerrstatus == 3)
{
- /* if just tried and failed to reuse lookahead token after an error, discard it. */
+ /* If just tried and failed to reuse lookahead token after an
+ error, discard it. */
- /* return failure if at end of input */
+ /* Return failure if at end of input. */
if (yychar == YYEOF)
- YYABORT;
+ {
+ /* Pop the error token. */
+ YYPOPSTACK;
+ /* Pop the rest of the stack. */
+ while (yyssp > yyss)
+ {
+ YYDPRINTF ((stderr, "Error: popping "));
+ YYDSYMPRINT ((stderr,
+ yystos[*yyssp],
+ *yyvsp));
+ YYDPRINTF ((stderr, "\n"));
+ yydestruct (yystos[*yyssp], *yyvsp);
+ YYPOPSTACK;
+ }
+ YYABORT;
+ }
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
-#endif
-
+ YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
+ yychar, yytname[yychar1]));
+ yydestruct (yychar1, yylval);
yychar = YYEMPTY;
}
- /* Else will try to reuse lookahead token
- after shifting the error token. */
+ /* Else will try to reuse lookahead token after shifting the error
+ token. */
- yyerrstatus = 3; /* Each real token shifted decrements this */
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
- goto yyerrhandle;
-
-yyerrdefault: /* current state does not do anything special for the error token. */
-
-#if 0
- /* This is wrong; only states that explicitly want error tokens
- should shift them. */
- yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
- if (yyn) goto yydefault;
-#endif
-
-yyerrpop: /* pop the current state because it cannot handle the error token */
-
- if (yyssp == yyss) YYABORT;
- yyvsp--;
- yystate = *--yyssp;
-#ifdef YYLSP_NEEDED
- yylsp--;
-#endif
-
-#if YYDEBUG != 0
- if (yydebug)
+ for (;;)
{
- short *ssp1 = yyss - 1;
- fprintf (stderr, "Error: state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF)
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
+
+ YYDPRINTF ((stderr, "Error: popping "));
+ YYDSYMPRINT ((stderr,
+ yystos[*yyssp], *yyvsp));
+ YYDPRINTF ((stderr, "\n"));
+
+ yydestruct (yystos[yystate], *yyvsp);
+ yyvsp--;
+ yystate = *--yyssp;
+
+
+#if YYDEBUG
+ if (yydebug)
+ {
+ short *yyssp1 = yyss - 1;
+ YYFPRINTF (stderr, "Error: state stack now");
+ while (yyssp1 != yyssp)
+ YYFPRINTF (stderr, " %d", *++yyssp1);
+ YYFPRINTF (stderr, "\n");
+ }
#endif
-
-yyerrhandle:
-
- yyn = yypact[yystate];
- if (yyn == YYFLAG)
- goto yyerrdefault;
-
- yyn += YYTERROR;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
- goto yyerrdefault;
-
- yyn = yytable[yyn];
- if (yyn < 0)
- {
- if (yyn == YYFLAG)
- goto yyerrpop;
- yyn = -yyn;
- goto yyreduce;
}
- else if (yyn == 0)
- goto yyerrpop;
if (yyn == YYFINAL)
YYACCEPT;
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting error token, ");
-#endif
+ YYDPRINTF ((stderr, "Shifting error token, "));
*++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
-#endif
+
yystate = yyn;
goto yynewstate;
- yyacceptlab:
- /* YYACCEPT comes here. */
- if (yyfree_stacks)
- {
- free (yyss);
- free (yyvs);
-#ifdef YYLSP_NEEDED
- free (yyls);
-#endif
- }
- return 0;
- yyabortlab:
- /* YYABORT comes here. */
- if (yyfree_stacks)
- {
- free (yyss);
- free (yyvs);
-#ifdef YYLSP_NEEDED
- free (yyls);
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here. |
+`----------------------------------------------*/
+yyoverflowlab:
+ yyerror ("parser stack overflow");
+ yyresult = 2;
+ /* Fall through. */
#endif
- }
- return 1;
+
+yyreturn:
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+ return yyresult;
}
+
+
#line 1874 "asn1p_y.y"
@@ -3482,3 +4110,4 @@
}
+
diff --git a/libasn1parser/asn1p_y.h b/libasn1parser/asn1p_y.h
index 61679e3..09ace78 100644
--- a/libasn1parser/asn1p_y.h
+++ b/libasn1parser/asn1p_y.h
@@ -1,3 +1,239 @@
+/* A Bison parser, made from asn1p_y.y, by GNU bison 1.75. */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+#ifndef BISON_Y_TAB_H
+# define BISON_Y_TAB_H
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ TOK_PPEQ = 258,
+ TOK_opaque = 259,
+ TOK_bstring = 260,
+ TOK_cstring = 261,
+ TOK_hstring = 262,
+ TOK_identifier = 263,
+ TOK_number = 264,
+ TOK_number_negative = 265,
+ TOK_typereference = 266,
+ TOK_objectclassreference = 267,
+ TOK_typefieldreference = 268,
+ TOK_valuefieldreference = 269,
+ TOK_ABSENT = 270,
+ TOK_ABSTRACT_SYNTAX = 271,
+ TOK_ALL = 272,
+ TOK_ANY = 273,
+ TOK_APPLICATION = 274,
+ TOK_AUTOMATIC = 275,
+ TOK_BEGIN = 276,
+ TOK_BIT = 277,
+ TOK_BMPString = 278,
+ TOK_BOOLEAN = 279,
+ TOK_BY = 280,
+ TOK_CHARACTER = 281,
+ TOK_CHOICE = 282,
+ TOK_CLASS = 283,
+ TOK_COMPONENT = 284,
+ TOK_COMPONENTS = 285,
+ TOK_CONSTRAINED = 286,
+ TOK_CONTAINING = 287,
+ TOK_DEFAULT = 288,
+ TOK_DEFINITIONS = 289,
+ TOK_DEFINED = 290,
+ TOK_EMBEDDED = 291,
+ TOK_ENCODED = 292,
+ TOK_END = 293,
+ TOK_ENUMERATED = 294,
+ TOK_EXPLICIT = 295,
+ TOK_EXPORTS = 296,
+ TOK_EXTENSIBILITY = 297,
+ TOK_EXTERNAL = 298,
+ TOK_FALSE = 299,
+ TOK_FROM = 300,
+ TOK_GeneralizedTime = 301,
+ TOK_GeneralString = 302,
+ TOK_GraphicString = 303,
+ TOK_IA5String = 304,
+ TOK_IDENTIFIER = 305,
+ TOK_IMPLICIT = 306,
+ TOK_IMPLIED = 307,
+ TOK_IMPORTS = 308,
+ TOK_INCLUDES = 309,
+ TOK_INSTANCE = 310,
+ TOK_INTEGER = 311,
+ TOK_ISO646String = 312,
+ TOK_MAX = 313,
+ TOK_MIN = 314,
+ TOK_MINUS_INFINITY = 315,
+ TOK_NULL = 316,
+ TOK_NumericString = 317,
+ TOK_OBJECT = 318,
+ TOK_ObjectDescriptor = 319,
+ TOK_OCTET = 320,
+ TOK_OF = 321,
+ TOK_OPTIONAL = 322,
+ TOK_PATTERN = 323,
+ TOK_PDV = 324,
+ TOK_PLUS_INFINITY = 325,
+ TOK_PRESENT = 326,
+ TOK_PrintableString = 327,
+ TOK_PRIVATE = 328,
+ TOK_REAL = 329,
+ TOK_RELATIVE_OID = 330,
+ TOK_SEQUENCE = 331,
+ TOK_SET = 332,
+ TOK_SIZE = 333,
+ TOK_STRING = 334,
+ TOK_SYNTAX = 335,
+ TOK_T61String = 336,
+ TOK_TAGS = 337,
+ TOK_TeletexString = 338,
+ TOK_TRUE = 339,
+ TOK_TYPE_IDENTIFIER = 340,
+ TOK_UNIQUE = 341,
+ TOK_UNIVERSAL = 342,
+ TOK_UniversalString = 343,
+ TOK_UTCTime = 344,
+ TOK_UTF8String = 345,
+ TOK_VideotexString = 346,
+ TOK_VisibleString = 347,
+ TOK_WITH = 348,
+ TOK_UNION = 349,
+ TOK_INTERSECTION = 350,
+ TOK_EXCEPT = 351,
+ TOK_TwoDots = 352,
+ TOK_ThreeDots = 353,
+ TOK_tag = 354
+ };
+#endif
+#define TOK_PPEQ 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_number_negative 265
+#define TOK_typereference 266
+#define TOK_objectclassreference 267
+#define TOK_typefieldreference 268
+#define TOK_valuefieldreference 269
+#define TOK_ABSENT 270
+#define TOK_ABSTRACT_SYNTAX 271
+#define TOK_ALL 272
+#define TOK_ANY 273
+#define TOK_APPLICATION 274
+#define TOK_AUTOMATIC 275
+#define TOK_BEGIN 276
+#define TOK_BIT 277
+#define TOK_BMPString 278
+#define TOK_BOOLEAN 279
+#define TOK_BY 280
+#define TOK_CHARACTER 281
+#define TOK_CHOICE 282
+#define TOK_CLASS 283
+#define TOK_COMPONENT 284
+#define TOK_COMPONENTS 285
+#define TOK_CONSTRAINED 286
+#define TOK_CONTAINING 287
+#define TOK_DEFAULT 288
+#define TOK_DEFINITIONS 289
+#define TOK_DEFINED 290
+#define TOK_EMBEDDED 291
+#define TOK_ENCODED 292
+#define TOK_END 293
+#define TOK_ENUMERATED 294
+#define TOK_EXPLICIT 295
+#define TOK_EXPORTS 296
+#define TOK_EXTENSIBILITY 297
+#define TOK_EXTERNAL 298
+#define TOK_FALSE 299
+#define TOK_FROM 300
+#define TOK_GeneralizedTime 301
+#define TOK_GeneralString 302
+#define TOK_GraphicString 303
+#define TOK_IA5String 304
+#define TOK_IDENTIFIER 305
+#define TOK_IMPLICIT 306
+#define TOK_IMPLIED 307
+#define TOK_IMPORTS 308
+#define TOK_INCLUDES 309
+#define TOK_INSTANCE 310
+#define TOK_INTEGER 311
+#define TOK_ISO646String 312
+#define TOK_MAX 313
+#define TOK_MIN 314
+#define TOK_MINUS_INFINITY 315
+#define TOK_NULL 316
+#define TOK_NumericString 317
+#define TOK_OBJECT 318
+#define TOK_ObjectDescriptor 319
+#define TOK_OCTET 320
+#define TOK_OF 321
+#define TOK_OPTIONAL 322
+#define TOK_PATTERN 323
+#define TOK_PDV 324
+#define TOK_PLUS_INFINITY 325
+#define TOK_PRESENT 326
+#define TOK_PrintableString 327
+#define TOK_PRIVATE 328
+#define TOK_REAL 329
+#define TOK_RELATIVE_OID 330
+#define TOK_SEQUENCE 331
+#define TOK_SET 332
+#define TOK_SIZE 333
+#define TOK_STRING 334
+#define TOK_SYNTAX 335
+#define TOK_T61String 336
+#define TOK_TAGS 337
+#define TOK_TeletexString 338
+#define TOK_TRUE 339
+#define TOK_TYPE_IDENTIFIER 340
+#define TOK_UNIQUE 341
+#define TOK_UNIVERSAL 342
+#define TOK_UniversalString 343
+#define TOK_UTCTime 344
+#define TOK_UTF8String 345
+#define TOK_VideotexString 346
+#define TOK_VisibleString 347
+#define TOK_WITH 348
+#define TOK_UNION 349
+#define TOK_INTERSECTION 350
+#define TOK_EXCEPT 351
+#define TOK_TwoDots 352
+#define TOK_ThreeDots 353
+#define TOK_tag 354
+
+
+
+
+#ifndef YYSTYPE
+#line 57 "asn1p_y.y"
typedef union {
asn1p_t *a_grammar;
asn1p_module_flags_e a_module_flags;
@@ -29,104 +265,14 @@
char *name;
struct asn1p_type_tag_s tag;
} 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_number_negative 264
-#define TOK_typereference 265
-#define TOK_objectclassreference 266
-#define TOK_typefieldreference 267
-#define TOK_valuefieldreference 268
-#define TOK_ABSENT 269
-#define TOK_ABSTRACT_SYNTAX 270
-#define TOK_ALL 271
-#define TOK_ANY 272
-#define TOK_APPLICATION 273
-#define TOK_AUTOMATIC 274
-#define TOK_BEGIN 275
-#define TOK_BIT 276
-#define TOK_BMPString 277
-#define TOK_BOOLEAN 278
-#define TOK_BY 279
-#define TOK_CHARACTER 280
-#define TOK_CHOICE 281
-#define TOK_CLASS 282
-#define TOK_COMPONENT 283
-#define TOK_COMPONENTS 284
-#define TOK_CONSTRAINED 285
-#define TOK_CONTAINING 286
-#define TOK_DEFAULT 287
-#define TOK_DEFINITIONS 288
-#define TOK_DEFINED 289
-#define TOK_EMBEDDED 290
-#define TOK_ENCODED 291
-#define TOK_END 292
-#define TOK_ENUMERATED 293
-#define TOK_EXPLICIT 294
-#define TOK_EXPORTS 295
-#define TOK_EXTENSIBILITY 296
-#define TOK_EXTERNAL 297
-#define TOK_FALSE 298
-#define TOK_FROM 299
-#define TOK_GeneralizedTime 300
-#define TOK_GeneralString 301
-#define TOK_GraphicString 302
-#define TOK_IA5String 303
-#define TOK_IDENTIFIER 304
-#define TOK_IMPLICIT 305
-#define TOK_IMPLIED 306
-#define TOK_IMPORTS 307
-#define TOK_INCLUDES 308
-#define TOK_INSTANCE 309
-#define TOK_INTEGER 310
-#define TOK_ISO646String 311
-#define TOK_MAX 312
-#define TOK_MIN 313
-#define TOK_MINUS_INFINITY 314
-#define TOK_NULL 315
-#define TOK_NumericString 316
-#define TOK_OBJECT 317
-#define TOK_ObjectDescriptor 318
-#define TOK_OCTET 319
-#define TOK_OF 320
-#define TOK_OPTIONAL 321
-#define TOK_PATTERN 322
-#define TOK_PDV 323
-#define TOK_PLUS_INFINITY 324
-#define TOK_PRESENT 325
-#define TOK_PrintableString 326
-#define TOK_PRIVATE 327
-#define TOK_REAL 328
-#define TOK_RELATIVE_OID 329
-#define TOK_SEQUENCE 330
-#define TOK_SET 331
-#define TOK_SIZE 332
-#define TOK_STRING 333
-#define TOK_SYNTAX 334
-#define TOK_T61String 335
-#define TOK_TAGS 336
-#define TOK_TeletexString 337
-#define TOK_TRUE 338
-#define TOK_TYPE_IDENTIFIER 339
-#define TOK_UNIQUE 340
-#define TOK_UNIVERSAL 341
-#define TOK_UniversalString 342
-#define TOK_UTCTime 343
-#define TOK_UTF8String 344
-#define TOK_VideotexString 345
-#define TOK_VisibleString 346
-#define TOK_WITH 347
-#define TOK_UNION 348
-#define TOK_INTERSECTION 349
-#define TOK_EXCEPT 350
-#define TOK_TwoDots 351
-#define TOK_ThreeDots 352
-#define TOK_tag 353
-
+} yystype;
+/* Line 1281 of /usr/local/share/bison/yacc.c. */
+#line 271 "y.tab.h"
+# define YYSTYPE yystype
+#endif
extern YYSTYPE asn1p_lval;
+
+
+#endif /* not BISON_Y_TAB_H */
+