aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2004-08-13 12:35:09 +0000
committerLev Walkin <vlm@lionet.info>2004-08-13 12:35:09 +0000
commitb4fcdd2e63b85346e59e85d2e36889f0ac3c2781 (patch)
tree0c3237ccc69d77fe1bb60557f0f362040dc19fce
parentbc55d234e61026ff9a756c4faa3913c868a06e19 (diff)
proper constraint insertion
-rw-r--r--libasn1parser/asn1p_y.c4892
-rw-r--r--libasn1parser/asn1p_y.h344
-rw-r--r--libasn1parser/asn1p_y.y3
3 files changed, 2233 insertions, 3006 deletions
diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 5e56d435..68a94fea 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -1,265 +1,114 @@
-/* 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.
+/* A Bison parser, made from asn1p_y.y
+ by GNU Bison version 1.28 */
- 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.
+#define YYBISON 1 /* Identify Bison output. */
- 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"
@@ -310,21 +159,6 @@ static asn1p_value_t *
} 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;
@@ -357,1035 +191,801 @@ typedef union {
char *name;
struct asn1p_type_tag_s tag;
} tv_nametag;
-} yystype;
-/* Line 193 of /usr/local/share/bison/yacc.c. */
-#line 363 "asn1p_y.c"
-# define YYSTYPE yystype
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
+} YYSTYPE;
+#include <stdio.h>
-#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
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
#endif
-
-/* Copy the second part of user declarations. */
-
-
-/* Line 213 of /usr/local/share/bison/yacc.c. */
-#line 384 "asn1p_y.c"
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# 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
-
-# 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 defined (__STDC__) || defined (__cplusplus)
- typedef signed char yysigned_char;
-#else
- typedef short yysigned_char;
-#endif
-/* 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
+#define YYFINAL 375
+#define YYFLAG -32768
+#define YYNTBASE 113
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 353 ? yytranslate[x] : 211)
+
+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
};
-/* 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
+#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
};
-/* 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, 478, 482, 491,
- 498, 511, 522, 535, 542, 547, 553, 559, 568, 574,
- 580, 587, 595, 599, 602, 609, 615, 621, 628, 637,
- 647, 655, 663, 665, 677, 689, 696, 712, 722, 732,
- 742, 747, 754, 764, 770, 776, 780, 792, 798, 804,
- 814, 816, 819, 827, 833, 842, 847, 864, 866, 873,
- 871, 880, 885, 891, 895, 920, 927, 932, 940, 949,
- 958, 969, 973, 979, 987, 1011, 1018, 1032, 1041, 1051,
- 1061, 1069, 1090, 1099, 1108, 1109, 1111, 1118, 1130, 1141,
- 1140, 1147, 1151, 1155, 1159, 1162, 1167, 1179, 1195, 1206,
- 1220, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230,
- 1231, 1232, 1238, 1240, 1241, 1244, 1251, 1263, 1265, 1269,
- 1273, 1274, 1275, 1276, 1277, 1281, 1282, 1283, 1284, 1288,
- 1289, 1292, 1299, 1305, 1311, 1319, 1327, 1333, 1349, 1351,
- 1354, 1354, 1355, 1355, 1356, 1358, 1371, 1374, 1379, 1385,
- 1389, 1396, 1404, 1409, 1418, 1420, 1422, 1427, 1429, 1435,
- 1437, 1442, 1449, 1456, 1464, 1467, 1472, 1474, 1475, 1476,
- 1479, 1483, 1488, 1492, 1503, 1507, 1512, 1517, 1522, 1529,
- 1535, 1539, 1544, 1550, 1562, 1564, 1567, 1571, 1574, 1579,
- 1583, 1591, 1606, 1612, 1619, 1632, 1644, 1659, 1663, 1680,
- 1682, 1685, 1689, 1695, 1698, 1700, 1700, 1720, 1725, 1730,
- 1736, 1742, 1750, 1758, 1766, 1773, 1783, 1788, 1818, 1820,
- 1823, 1828, 1832, 1838, 1843, 1849, 1856, 1863, 1868
+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
};
+
#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
+#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, 478, 482, 491, 498, 511,
+ 522, 535, 542, 547, 553, 559, 568, 574, 580, 587,
+ 595, 599, 602, 609, 615, 621, 628, 637, 647, 655,
+ 663, 665, 677, 689, 696, 712, 722, 732, 742, 747,
+ 754, 764, 770, 776, 780, 792, 798, 804, 814, 816,
+ 819, 827, 833, 842, 847, 864, 866, 871, 875, 880,
+ 885, 891, 895, 920, 927, 932, 940, 949, 958, 969,
+ 973, 979, 987, 1011, 1018, 1032, 1041, 1051, 1061, 1069,
+ 1090, 1099, 1108, 1109, 1111, 1118, 1130, 1140, 1142, 1147,
+ 1151, 1155, 1159, 1162, 1167, 1179, 1195, 1206, 1220, 1222,
+ 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
+ 1238, 1240, 1241, 1244, 1251, 1263, 1265, 1269, 1273, 1274,
+ 1275, 1276, 1277, 1281, 1282, 1283, 1284, 1288, 1289, 1292,
+ 1299, 1305, 1311, 1319, 1327, 1333, 1349, 1351, 1354, 1354,
+ 1355, 1355, 1356, 1358, 1371, 1374, 1379, 1385, 1389, 1396,
+ 1405, 1410, 1419, 1421, 1423, 1428, 1430, 1436, 1438, 1443,
+ 1450, 1457, 1465, 1468, 1473, 1475, 1476, 1477, 1480, 1484,
+ 1489, 1493, 1504, 1508, 1513, 1518, 1523, 1530, 1536, 1540,
+ 1545, 1551, 1563, 1565, 1568, 1572, 1575, 1580, 1584, 1592,
+ 1607, 1613, 1620, 1633, 1645, 1660, 1664, 1681, 1683, 1686,
+ 1690, 1696, 1699, 1701, 1701, 1721, 1726, 1731, 1737, 1743,
+ 1751, 1759, 1767, 1774, 1784, 1789, 1819, 1821, 1824, 1829,
+ 1833, 1839, 1844, 1850, 1857, 1864, 1869
};
#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
+
+#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
-/* 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
+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
};
-/* 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
+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
};
-/* 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
+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
};
-/* 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
+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
};
-/* 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
+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
};
-/* 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 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
};
-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
+
+#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
};
-/* 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
+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. */
-#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
+/* 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
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# 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
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
+#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
+#else
+#define YYSTACK_ALLOC malloc
#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. */
+
#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
-/* 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;
+#ifndef YYPURE
+#define YYLEX yylex()
#endif
-/* YYLEX -- calling `yylex' with the right arguments. */
-
-#define YYLEX yylex ()
-
-/* Enable debugging if requested. */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# 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 */
-
-/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
+#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
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
+/* If nonreentrant, generate the variables here */
- Do not make this value too large; the results are undefined if
- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
+#ifndef YYPURE
-#if YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
+int yychar; /* the lookahead symbol */
+YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
#endif
-
+int yynerrs; /* number of parse errors so far */
+#endif /* not YYPURE */
-#if YYERROR_VERBOSE
+#if YYDEBUG != 0
+int yydebug; /* nonzero means print parse trace */
+/* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+#endif
-# 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 const char *yys = yystr;
+/* YYINITDEPTH indicates the initial size of the parser's stacks */
- while (*yys++ != '\0')
- continue;
+#ifndef YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
- 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
+/* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
-#endif /* !YYERROR_VERBOSE */
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
-
-#if YYDEBUG
-/*-----------------------------.
-| Print this symbol on YYOUT. |
-`-----------------------------*/
-
+/* 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
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
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
+__yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ unsigned int count;
{
- /* 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]);
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
- switch (yytype)
- {
- default:
- break;
- }
- YYFPRINTF (yyout, ")");
+ while (i-- > 0)
+ *t++ = *f++;
}
-#endif /* YYDEBUG. */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
+#else /* __cplusplus */
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
static void
-#if defined (__STDC__) || defined (__cplusplus)
-yydestruct (int yytype, YYSTYPE yyvalue)
-#else
-yydestruct (yytype, yyvalue)
- int yytype;
- YYSTYPE yyvalue;
-#endif
+__yy_memcpy (char *to, char *from, unsigned int count)
{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvalue;
+ register char *t = to;
+ register char *f = from;
+ register int i = count;
- switch (yytype)
- {
- default:
- break;
- }
+ 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 *.
@@ -1394,85 +994,76 @@ yydestruct (yytype, yyvalue)
to the proper pointer type. */
#ifdef 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 */
+#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 */
/* Prevent warning if -Wstrict-prototypes. */
#ifdef __GNUC__
-# ifdef YYPARSE_PARAM
+#ifdef YYPARSE_PARAM
int yyparse (void *);
-# else
+#else
int yyparse (void);
-# endif
#endif
-
-
-/* The lookahead symbol. */
-int yychar;
-
-/* The semantic value of the lookahead symbol. */
-YYSTYPE yylval;
-
-/* Number of parse errors so far. */
-int yynerrs;
-
+#endif
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
- YYSIZE_T yystacksize = YYINITDEPTH;
+ int yystacksize = YYINITDEPTH;
+ int yyfree_stacks = 0;
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
+#ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+#endif
+#endif
+ 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;
- YYDPRINTF ((stderr, "Starting parse\n"));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Starting parse\n");
+#endif
yystate = 0;
yyerrstatus = 0;
@@ -1484,96 +1075,110 @@ yyparse (YYPARSE_PARAM_ARG)
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
- yyssp = yyss;
+ yyssp = yyss - 1;
yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls;
+#endif
- goto yysetstate;
-
-/*------------------------------------------------------------.
-| 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++;
+/* 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:
- yysetstate:
- *yyssp = yystate;
+ *++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. */
- YYSIZE_T yysize = yyssp - yyss + 1;
+ int size = yyssp - yyss + 1;
#ifdef yyoverflow
- {
- /* 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;
-
-
- /* 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;
- }
+ /* 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
+
+ yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+ yyls = yyls1;
+#endif
#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyoverflowlab;
-# else
/* Extend the stack our own way. */
if (yystacksize >= YYMAXDEPTH)
- goto yyoverflowlab;
+ {
+ yyerror("parser stack overflow");
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 2;
+ }
yystacksize *= 2;
if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
-
- {
- 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
+#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
#endif /* no yyoverflow */
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+#endif
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
if (yyssp >= yyss + yystacksize - 1)
YYABORT;
}
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Entering state %d\n", yystate);
+#endif
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. */
@@ -1582,7 +1187,7 @@ yybackup:
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yyn == YYFLAG)
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
@@ -1592,141 +1197,146 @@ yybackup:
if (yychar == YYEMPTY)
{
- YYDPRINTF ((stderr, "Reading a token: "));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Reading a token: ");
+#endif
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 */
- YYDPRINTF ((stderr, "Now at end of input.\n"));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Now at end of input.\n");
+#endif
}
else
{
- yychar1 = YYTRANSLATE (yychar);
+ yychar1 = YYTRANSLATE(yychar);
- /* 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 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
}
- /* If the proper action on seeing token YYCHAR1 is to reduce or to
- detect an error, take that action. */
yyn += yychar1;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1)
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
goto yydefault;
+
yyn = yytable[yyn];
- if (yyn <= 0)
+
+ /* 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 || yyn == YYTABLE_NINF)
+ if (yyn == YYFLAG)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
+ else if (yyn == 0)
+ goto yyerrlab;
if (yyn == YYFINAL)
YYACCEPT;
/* Shift the lookahead token. */
- YYDPRINTF ((stderr, "Shifting token %d (%s), ",
- yychar, yytname[yychar1]));
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
/* 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;
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
+/* Do the default action for the current state. */
yydefault:
+
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
- goto yyreduce;
-
-/*-----------------------------.
-| yyreduce -- Do a reduction. |
-`-----------------------------*/
+/* Do a reduction. yyn is the number of a rule to reduce with. */
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 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 != 0
if (yydebug)
{
- int yyi;
+ int i;
- YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
- yyn - 1, yyrline[yyn]);
+ fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
/* Print the symbols being reduced, and their result. */
- for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++)
- YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
- YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
}
#endif
- switch (yyn)
- {
- case 2:
+
+
+ switch (yyn) {
+
+case 1:
#line 298 "asn1p_y.y"
- {
+{
*(void **)param = yyvsp[0].a_grammar;
- }
- break;
-
- case 3:
+ ;
+ break;}
+case 2:
#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 4:
+ ;
+ break;}
+case 3:
#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 5:
+ ;
+ break;}
+case 4:
#line 330 "asn1p_y.y"
- {
+{
if(yyvsp[-1].a_module) {
yyval.a_module = yyvsp[-1].a_module;
@@ -1739,154 +1349,133 @@ yyreduce:
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 6:
+ ;
+ break;}
+case 5:
#line 351 "asn1p_y.y"
- { yyval.a_oid = 0; }
- break;
-
- case 7:
+{ yyval.a_oid = 0; ;
+ break;}
+case 6:
#line 352 "asn1p_y.y"
- { yyval.a_oid = yyvsp[0].a_oid; }
- break;
-
- case 8:
+{ yyval.a_oid = yyvsp[0].a_oid; ;
+ break;}
+case 7:
#line 356 "asn1p_y.y"
- {
+{
yyval.a_oid = yyvsp[-1].a_oid;
- }
- break;
-
- case 9:
+ ;
+ break;}
+case 8:
#line 359 "asn1p_y.y"
- {
+{
yyval.a_oid = 0;
- }
- break;
-
- case 10:
+ ;
+ break;}
+case 9:
#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 11:
+ ;
+ break;}
+case 10:
#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 12:
+ ;
+ break;}
+case 11:
#line 380 "asn1p_y.y"
- { /* iso */
+{ /* iso */
yyval.a_oid_arc.name = yyvsp[0].tv_str;
yyval.a_oid_arc.number = -1;
- }
- break;
-
- case 13:
+ ;
+ break;}
+case 12:
#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 14:
+ ;
+ break;}
+case 13:
#line 388 "asn1p_y.y"
- { /* 1 */
+{ /* 1 */
yyval.a_oid_arc.name = 0;
yyval.a_oid_arc.number = yyvsp[0].a_int;
- }
- break;
-
- case 15:
+ ;
+ break;}
+case 14:
#line 398 "asn1p_y.y"
- { yyval.a_module_flags = MSF_NOFLAGS; }
- break;
-
- case 16:
+{ yyval.a_module_flags = MSF_NOFLAGS; ;
+ break;}
+case 15:
#line 399 "asn1p_y.y"
- {
+{
yyval.a_module_flags = yyvsp[0].a_module_flags;
- }
- break;
-
- case 17:
+ ;
+ break;}
+case 16:
#line 408 "asn1p_y.y"
- {
+{
yyval.a_module_flags = yyvsp[0].a_module_flags;
- }
- break;
-
- case 18:
+ ;
+ break;}
+case 17:
#line 411 "asn1p_y.y"
- {
+{
yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags;
- }
- break;
-
- case 19:
+ ;
+ break;}
+case 18:
#line 420 "asn1p_y.y"
- {
+{
yyval.a_module_flags = MSF_EXPLICIT_TAGS;
- }
- break;
-
- case 20:
+ ;
+ break;}
+case 19:
#line 423 "asn1p_y.y"
- {
+{
yyval.a_module_flags = MSF_IMPLICIT_TAGS;
- }
- break;
-
- case 21:
+ ;
+ break;}
+case 20:
#line 426 "asn1p_y.y"
- {
+{
yyval.a_module_flags = MSF_AUTOMATIC_TAGS;
- }
- break;
-
- case 22:
+ ;
+ break;}
+case 21:
#line 429 "asn1p_y.y"
- {
+{
yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED;
- }
- break;
-
- case 23:
+ ;
+ break;}
+case 22:
#line 438 "asn1p_y.y"
- { yyval.a_module = 0; }
- break;
-
- case 24:
+{ yyval.a_module = 0; ;
+ break;}
+case 23:
#line 439 "asn1p_y.y"
- {
+{
assert(yyvsp[0].a_module);
yyval.a_module = yyvsp[0].a_module;
- }
- break;
-
- case 25:
+ ;
+ break;}
+case 24:
#line 449 "asn1p_y.y"
- {
+{
yyval.a_module = yyvsp[0].a_module;
- }
- break;
-
- case 26:
+ ;
+ break;}
+case 25:
#line 452 "asn1p_y.y"
- {
+{
yyval.a_module = yyvsp[-1].a_module;
#ifdef MY_IMPORT
@@ -1906,19 +1495,17 @@ yyreduce:
MY_IMPORT(members, next);
#undef MY_IMPORT
- }
- break;
-
- case 27:
+ ;
+ break;}
+case 26:
#line 479 "asn1p_y.y"
- {
+{
yyval.a_module = yyvsp[0].a_module;
- }
- break;
-
- case 28:
+ ;
+ break;}
+case 27:
#line 482 "asn1p_y.y"
- {
+{
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
if(yyvsp[0].a_xports) {
@@ -1926,280 +1513,250 @@ yyreduce:
} else {
/* "EXPORTS ALL;" ? */
}
- }
- break;
-
- case 29:
+ ;
+ break;}
+case 28:
#line 491 "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 29:
#line 498 "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 30:
#line 511 "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 32:
+ ;
+ break;}
+case 31:
#line 522 "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 33:
+ ;
+ break;}
+case 32:
#line 536 "asn1p_y.y"
- {
+{
yyval.a_module = yyvsp[-1].a_module;
- }
- break;
-
- case 34:
+ ;
+ break;}
+case 33:
#line 542 "asn1p_y.y"
- {
+{
return yyerror("Empty IMPORTS list");
- }
- break;
-
- case 35:
+ ;
+ break;}
+case 34:
#line 548 "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 36:
+ ;
+ break;}
+case 35:
#line 553 "asn1p_y.y"
- {
+{
yyval.a_module = yyvsp[-1].a_module;
TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next);
- }
- break;
-
- case 37:
+ ;
+ break;}
+case 36:
#line 560 "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 38:
+ ;
+ break;}
+case 37:
#line 569 "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 39:
+ ;
+ break;}
+case 38:
#line 574 "asn1p_y.y"
- {
+{
yyval.a_xports = yyvsp[-2].a_xports;
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
- }
- break;
-
- case 40:
+ ;
+ break;}
+case 39:
#line 581 "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 40:
#line 587 "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 42:
+ ;
+ break;}
+case 41:
#line 596 "asn1p_y.y"
- {
+{
yyval.a_xports = yyvsp[-1].a_xports;
- }
- break;
-
- case 43:
+ ;
+ break;}
+case 42:
#line 599 "asn1p_y.y"
- {
+{
yyval.a_xports = 0;
- }
- break;
-
- case 44:
+ ;
+ break;}
+case 43:
#line 602 "asn1p_y.y"
- {
+{
/* Empty EXPORTS clause effectively prohibits export. */
yyval.a_xports = asn1p_xports_new();
checkmem(yyval.a_xports);
- }
- break;
-
- case 45:
+ ;
+ break;}
+case 44:
#line 610 "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 46:
+ ;
+ break;}
+case 45:
#line 615 "asn1p_y.y"
- {
+{
yyval.a_xports = yyvsp[-2].a_xports;
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
- }
- break;
-
- case 47:
+ ;
+ break;}
+case 46:
#line 622 "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 47:
#line 628 "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 49:
+ ;
+ break;}
+case 48:
#line 638 "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 50:
+ ;
+ break;}
+case 49:
#line 648 "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 51:
+ ;
+ break;}
+case 50:
#line 655 "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 52:
+ ;
+ break;}
+case 51:
#line 664 "asn1p_y.y"
- { }
- break;
-
- case 53:
+{ ;
+ break;}
+case 52:
#line 665 "asn1p_y.y"
- {
- }
- break;
-
- case 54:
+{
+ ;
+ break;}
+case 53:
#line 681 "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 55:
+ ;
+ break;}
+case 54:
#line 689 "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 56:
+ ;
+ break;}
+case 55:
#line 696 "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 57:
+ ;
+ break;}
+case 56:
#line 713 "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 58:
+ ;
+ break;}
+case 57:
#line 723 "asn1p_y.y"
- {
+{
int ret;
yyval.a_plist = asn1p_paramlist_new(yylineno);
checkmem(yyval.a_plist);
@@ -2207,168 +1764,150 @@ yyreduce:
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 58:
#line 732 "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 60:
+ ;
+ break;}
+case 59:
#line 743 "asn1p_y.y"
- {
+{
yyval.a_parg.governor = NULL;
yyval.a_parg.argument = yyvsp[0].tv_str;
- }
- break;
-
- case 61:
+ ;
+ break;}
+case 60:
#line 747 "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 62:
+ ;
+ break;}
+case 61:
#line 754 "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 63:
+ ;
+ break;}
+case 62:
#line 765 "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 64:
+ ;
+ break;}
+case 63:
#line 770 "asn1p_y.y"
- {
+{
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- }
- break;
-
- case 65:
+ ;
+ break;}
+case 64:
#line 777 "asn1p_y.y"
- {
+{
yyval.a_expr = yyvsp[0].a_expr;
- }
- break;
-
- case 66:
+ ;
+ break;}
+case 65:
#line 780 "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 67:
+ ;
+ break;}
+case 66:
#line 793 "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 68:
+ ;
+ break;}
+case 67:
#line 798 "asn1p_y.y"
- {
+{
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- }
- break;
-
- case 69:
+ ;
+ break;}
+case 68:
#line 805 "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 70:
+ ;
+ break;}
+case 69:
#line 815 "asn1p_y.y"
- { yyval.a_int = 0; }
- break;
-
- case 71:
+{ yyval.a_int = 0; ;
+ break;}
+case 70:
#line 816 "asn1p_y.y"
- { yyval.a_int = 1; }
- break;
-
- case 72:
+{ yyval.a_int = 1; ;
+ break;}
+case 71:
#line 820 "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 73:
+ ;
+ break;}
+case 72:
#line 827 "asn1p_y.y"
- {
+{
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- }
- break;
-
- case 74:
+ ;
+ break;}
+case 73:
#line 834 "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 75:
+ ;
+ break;}
+case 74:
#line 842 "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 76:
+ ;
+ break;}
+case 75:
#line 847 "asn1p_y.y"
- {
+{
int ret;
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -2382,59 +1921,51 @@ yyreduce:
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 77:
+ ;
+ break;}
+case 76:
#line 865 "asn1p_y.y"
- { yyval.a_wsynt = 0; }
- break;
-
- case 78:
+{ yyval.a_wsynt = 0; ;
+ break;}
+case 77:
#line 866 "asn1p_y.y"
- {
+{
yyval.a_wsynt = yyvsp[0].a_wsynt;
- }
- break;
-
- case 79:
+ ;
+ break;}
+case 78:
#line 873 "asn1p_y.y"
- { asn1p_lexer_hack_enable_with_syntax(); }
- break;
-
- case 80:
+{ asn1p_lexer_hack_enable_with_syntax(); ;
+ break;}
+case 79:
#line 875 "asn1p_y.y"
- {
+{
yyval.a_wsynt = yyvsp[-1].a_wsynt;
- }
- break;
-
- case 81:
+ ;
+ break;}
+case 80:
#line 881 "asn1p_y.y"
- {
+{
yyval.a_wsynt = asn1p_wsyntx_new();
TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
- }
- break;
-
- case 82:
+ ;
+ break;}
+case 81:
#line 885 "asn1p_y.y"
- {
+{
yyval.a_wsynt = yyvsp[-1].a_wsynt;
TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
- }
- break;
-
- case 83:
+ ;
+ break;}
+case 82:
#line 892 "asn1p_y.y"
- {
+{
yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
- }
- break;
-
- case 84:
+ ;
+ break;}
+case 83:
#line 895 "asn1p_y.y"
- {
+{
asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
@@ -2442,50 +1973,45 @@ yyreduce:
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 85:
+ ;
+ break;}
+case 84:
#line 921 "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 86:
+ ;
+ break;}
+case 85:
#line 927 "asn1p_y.y"
- {
+{
yyval.a_expr = yyvsp[0].a_expr;
- }
- break;
-
- case 87:
+ ;
+ break;}
+case 86:
#line 933 "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 88:
+ ;
+ break;}
+case 87:
#line 941 "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 89:
+ ;
+ break;}
+case 88:
#line 949 "asn1p_y.y"
- {
+{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = strdup("...");
@@ -2493,12 +2019,11 @@ yyreduce:
yyval.a_expr->value = yyvsp[0].a_value;
yyval.a_expr->expr_type = A1TC_EXTENSIBLE;
yyval.a_expr->meta_type = AMT_TYPE;
- }
- break;
-
- case 90:
+ ;
+ break;}
+case 89:
#line 958 "asn1p_y.y"
- {
+{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
yyval.a_expr->Identifier = strdup("...");
@@ -2506,38 +2031,34 @@ yyreduce:
checkmem(yyval.a_expr->Identifier);
yyval.a_expr->expr_type = A1TC_EXTENSIBLE;
yyval.a_expr->meta_type = AMT_TYPE;
- }
- break;
-
- case 91:
+ ;
+ break;}
+case 90:
#line 970 "asn1p_y.y"
- {
+{
yyval.a_expr = yyvsp[0].a_expr;
- }
- break;
-
- case 92:
+ ;
+ break;}
+case 91:
#line 973 "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 93:
+ ;
+ break;}
+case 92:
#line 979 "asn1p_y.y"
- {
+{
yyval.a_expr = yyvsp[0].a_expr;
checkmem(yyval.a_expr);
assert(yyval.a_expr->meta_type);
- }
- break;
-
- case 94:
+ ;
+ break;}
+case 93:
#line 987 "asn1p_y.y"
- {
+{
int ret;
yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == 0);
@@ -2550,46 +2071,42 @@ yyreduce:
free(yyvsp[-3].tv_str);
yyval.a_expr->expr_type = A1TC_PARAMETRIZED;
yyval.a_expr->meta_type = AMT_TYPE;
- }
- break;
-
- case 95:
+ ;
+ break;}
+case 94:
#line 1011 "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 96:
+ ;
+ break;}
+case 95:
#line 1018 "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 97:
+ ;
+ break;}
+case 96:
#line 1033 "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 98:
+ ;
+ break;}
+case 97:
#line 1041 "asn1p_y.y"
- {
+{
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
checkmem(yyval.a_ref);
@@ -2598,12 +2115,11 @@ yyreduce:
ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN);
checkmem(ret == 0);
free(yyvsp[-2].tv_str);
- }
- break;
-
- case 99:
+ ;
+ break;}
+case 98:
#line 1051 "asn1p_y.y"
- {
+{
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
checkmem(yyval.a_ref);
@@ -2612,24 +2128,22 @@ yyreduce:
ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_lowercase);
checkmem(ret == 0);
free(yyvsp[-2].tv_str);
- }
- break;
-
- case 100:
+ ;
+ break;}
+case 99:
#line 1061 "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 101:
+ ;
+ break;}
+case 100:
#line 1069 "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);
@@ -2647,114 +2161,101 @@ yyreduce:
* (yyval.a_ref->comp_count - 1));
yyval.a_ref->components[0] = tmp_comp;
}
- }
- break;
-
- case 102:
+ ;
+ break;}
+case 101:
#line 1091 "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 103:
+ ;
+ break;}
+case 102:
#line 1099 "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 106:
+ ;
+ break;}
+case 105:
#line 1113 "asn1p_y.y"
- {
+{
yyval.a_refcomp.lex_type = RLT_AmpUppercase;
yyval.a_refcomp.name = yyvsp[0].tv_str;
- }
- break;
-
- case 107:
+ ;
+ break;}
+case 106:
#line 1118 "asn1p_y.y"
- {
+{
yyval.a_refcomp.lex_type = RLT_Amplowercase;
yyval.a_refcomp.name = yyvsp[0].tv_str;
- }
- break;
-
- case 108:
+ ;
+ break;}
+case 107:
#line 1131 "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 109:
+ ;
+ break;}
+case 108:
#line 1141 "asn1p_y.y"
- { asn1p_lexer_hack_push_opaque_state(); }
- break;
-
- case 110:
+{ asn1p_lexer_hack_push_opaque_state(); ;
+ break;}
+case 109:
#line 1142 "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 111:
+ ;
+ break;}
+case 110:
#line 1147 "asn1p_y.y"
- {
+{
yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B');
checkmem(yyval.a_value);
- }
- break;
-
- case 112:
+ ;
+ break;}
+case 111:
#line 1151 "asn1p_y.y"
- {
+{
yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H');
checkmem(yyval.a_value);
- }
- break;
-
- case 113:
+ ;
+ break;}
+case 112:
#line 1155 "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 114:
+ ;
+ break;}
+case 113:
#line 1159 "asn1p_y.y"
- {
+{
yyval.a_value = yyvsp[0].a_value;
- }
- break;
-
- case 115:
+ ;
+ break;}
+case 114:
#line 1162 "asn1p_y.y"
- {
+{
yyval.a_value = yyvsp[0].a_value;
- }
- break;
-
- case 116:
+ ;
+ break;}
+case 115:
#line 1168 "asn1p_y.y"
- {
+{
asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
@@ -2764,12 +2265,11 @@ yyreduce:
yyval.a_value = asn1p_value_fromref(ref, 0);
checkmem(yyval.a_value);
free(yyvsp[0].tv_str);
- }
- break;
-
- case 117:
+ ;
+ break;}
+case 116:
#line 1179 "asn1p_y.y"
- {
+{
asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
@@ -2782,12 +2282,11 @@ yyreduce:
checkmem(yyval.a_value);
free(yyvsp[-2].tv_str);
free(yyvsp[0].tv_str);
- }
- break;
-
- case 118:
+ ;
+ break;}
+case 117:
#line 1196 "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);
@@ -2796,12 +2295,11 @@ yyreduce:
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 119:
+ ;
+ break;}
+case 118:
#line 1206 "asn1p_y.y"
- {
+{
int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len;
char *p = malloc(newsize + 1);
checkmem(p);
@@ -2812,97 +2310,80 @@ yyreduce:
free(yyvsp[0].tv_opaque.buf);
yyval.tv_opaque.buf = p;
yyval.tv_opaque.len = newsize;
- }
- break;
-
- case 120:
+ ;
+ break;}
+case 119:
#line 1221 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_BOOLEAN; }
- break;
-
- case 121:
+{ yyval.a_type = ASN_BASIC_BOOLEAN; ;
+ break;}
+case 120:
#line 1222 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_NULL; }
- break;
-
- case 122:
+{ yyval.a_type = ASN_BASIC_NULL; ;
+ break;}
+case 121:
#line 1223 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_REAL; }
- break;
-
- case 123:
+{ yyval.a_type = ASN_BASIC_REAL; ;
+ break;}
+case 122:
#line 1224 "asn1p_y.y"
- { yyval.a_type = yyvsp[0].a_type; }
- break;
-
- case 124:
+{ yyval.a_type = yyvsp[0].a_type; ;
+ break;}
+case 123:
#line 1225 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_OCTET_STRING; }
- break;
-
- case 125:
+{ yyval.a_type = ASN_BASIC_OCTET_STRING; ;
+ break;}
+case 124:
#line 1226 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; }
- break;
-
- case 126:
+{ yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ;
+ break;}
+case 125:
#line 1227 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_RELATIVE_OID; }
- break;
-
- case 127:
+{ yyval.a_type = ASN_BASIC_RELATIVE_OID; ;
+ break;}
+case 126:
#line 1228 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_EXTERNAL; }
- break;
-
- case 128:
+{ yyval.a_type = ASN_BASIC_EXTERNAL; ;
+ break;}
+case 127:
#line 1229 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; }
- break;
-
- case 129:
+{ yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ;
+ break;}
+case 128:
#line 1230 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_CHARACTER_STRING; }
- break;
-
- case 130:
+{ yyval.a_type = ASN_BASIC_CHARACTER_STRING; ;
+ break;}
+case 129:
#line 1231 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_UTCTime; }
- break;
-
- case 131:
+{ yyval.a_type = ASN_BASIC_UTCTime; ;
+ break;}
+case 130:
#line 1232 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_GeneralizedTime; }
- break;
-
- case 132:
+{ yyval.a_type = ASN_BASIC_GeneralizedTime; ;
+ break;}
+case 131:
#line 1239 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_INTEGER; }
- break;
-
- case 133:
+{ yyval.a_type = ASN_BASIC_INTEGER; ;
+ break;}
+case 132:
#line 1240 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_ENUMERATED; }
- break;
-
- case 134:
+{ yyval.a_type = ASN_BASIC_ENUMERATED; ;
+ break;}
+case 133:
#line 1241 "asn1p_y.y"
- { yyval.a_type = ASN_BASIC_BIT_STRING; }
- break;
-
- case 135:
+{ yyval.a_type = ASN_BASIC_BIT_STRING; ;
+ break;}
+case 134:
#line 1245 "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 136:
+ ;
+ break;}
+case 135:
#line 1251 "asn1p_y.y"
- {
+{
if(yyvsp[0].a_expr) {
yyval.a_expr = yyvsp[0].a_expr;
} else {
@@ -2911,158 +2392,137 @@ yyreduce:
}
yyval.a_expr->expr_type = yyvsp[-1].a_type;
yyval.a_expr->meta_type = AMT_TYPE;
- }
- break;
-
- case 137:
+ ;
+ break;}
+case 136:
#line 1264 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_BMPString; }
- break;
-
- case 138:
+{ yyval.a_type = ASN_STRING_BMPString; ;
+ break;}
+case 137:
#line 1265 "asn1p_y.y"
- {
+{
yyval.a_type = ASN_STRING_GeneralString;
return yyerror("GeneralString is not supported");
- }
- break;
-
- case 139:
+ ;
+ break;}
+case 138:
#line 1269 "asn1p_y.y"
- {
+{
yyval.a_type = ASN_STRING_GraphicString;
return yyerror("GraphicString is not supported");
- }
- break;
-
- case 140:
+ ;
+ break;}
+case 139:
#line 1273 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_IA5String; }
- break;
-
- case 141:
+{ yyval.a_type = ASN_STRING_IA5String; ;
+ break;}
+case 140:
#line 1274 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_ISO646String; }
- break;
-
- case 142:
+{ yyval.a_type = ASN_STRING_ISO646String; ;
+ break;}
+case 141:
#line 1275 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_NumericString; }
- break;
-
- case 143:
+{ yyval.a_type = ASN_STRING_NumericString; ;
+ break;}
+case 142:
#line 1276 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_PrintableString; }
- break;
-
- case 144:
+{ yyval.a_type = ASN_STRING_PrintableString; ;
+ break;}
+case 143:
#line 1277 "asn1p_y.y"
- {
+{
yyval.a_type = ASN_STRING_T61String;
return yyerror("T61String not implemented yet");
- }
- break;
-
- case 145:
+ ;
+ break;}
+case 144:
#line 1281 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_TeletexString; }
- break;
-
- case 146:
+{ yyval.a_type = ASN_STRING_TeletexString; ;
+ break;}
+case 145:
#line 1282 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_UniversalString; }
- break;
-
- case 147:
+{ yyval.a_type = ASN_STRING_UniversalString; ;
+ break;}
+case 146:
#line 1283 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_UTF8String; }
- break;
-
- case 148:
+{ yyval.a_type = ASN_STRING_UTF8String; ;
+ break;}
+case 147:
#line 1284 "asn1p_y.y"
- {
+{
yyval.a_type = ASN_STRING_VideotexString;
return yyerror("VideotexString is no longer supported");
- }
- break;
-
- case 149:
+ ;
+ break;}
+case 148:
#line 1288 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_VisibleString; }
- break;
-
- case 150:
+{ yyval.a_type = ASN_STRING_VisibleString; ;
+ break;}
+case 149:
#line 1289 "asn1p_y.y"
- { yyval.a_type = ASN_STRING_ObjectDescriptor; }
- break;
-
- case 151:
+{ yyval.a_type = ASN_STRING_ObjectDescriptor; ;
+ break;}
+case 150:
#line 1293 "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 152:
+ ;
+ break;}
+case 151:
#line 1299 "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 153:
+ ;
+ break;}
+case 152:
#line 1305 "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 154:
+ ;
+ break;}
+case 153:
#line 1311 "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 155:
+ ;
+ break;}
+case 154:
#line 1319 "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 156:
+ ;
+ break;}
+case 155:
#line 1327 "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 157:
+ ;
+ break;}
+case 156:
#line 1333 "asn1p_y.y"
- {
+{
int ret;
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -3072,22 +2532,19 @@ yyreduce:
checkmem(ret == 0);
yyval.a_expr->expr_type = ASN_CONSTR_ANY;
yyval.a_expr->meta_type = AMT_TYPE;
- }
- break;
-
- case 158:
+ ;
+ break;}
+case 157:
#line 1350 "asn1p_y.y"
- { yyval.a_constr = 0; }
- break;
-
- case 159:
+{ yyval.a_constr = 0; ;
+ break;}
+case 158:
#line 1351 "asn1p_y.y"
- { yyval.a_constr = yyvsp[0].a_constr; }
- break;
-
- case 165:
+{ yyval.a_constr = yyvsp[0].a_constr; ;
+ break;}
+case 164:
#line 1359 "asn1p_y.y"
- {
+{
/*
* This is a special case, for compatibility purposes.
* It goes without parenthesis.
@@ -3098,212 +2555,185 @@ yyreduce:
yyval.a_constr->type = ACT_CT_SIZE;
ret = asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr);
checkmem(ret == 0);
- }
- break;
-
- case 166:
+ ;
+ break;}
+case 165:
#line 1371 "asn1p_y.y"
- {
+{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
- }
- break;
-
- case 167:
+ ;
+ break;}
+case 166:
#line 1374 "asn1p_y.y"
- {
+{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-1].a_constr, yyvsp[0].a_constr);
- }
- break;
-
- case 168:
+ ;
+ break;}
+case 167:
#line 1380 "asn1p_y.y"
- {
+{
yyval.a_constr = yyvsp[-1].a_constr;
- }
- break;
-
- case 169:
+ ;
+ break;}
+case 168:
#line 1386 "asn1p_y.y"
- {
+{
yyval.a_constr = yyvsp[0].a_constr;
- }
- break;
-
- case 170:
+ ;
+ break;}
+case 169:
#line 1389 "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 171:
+ ;
+ break;}
+case 170:
#line 1396 "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 172:
-#line 1404 "asn1p_y.y"
- {
+ ct = yyval.a_constr;
+ CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, ct, yyvsp[0].a_constr);
+ ;
+ break;}
+case 171:
+#line 1405 "asn1p_y.y"
+{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_EXT;
- }
- break;
-
- case 173:
-#line 1409 "asn1p_y.y"
- {
+ ;
+ break;}
+case 172:
+#line 1410 "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 174:
-#line 1418 "asn1p_y.y"
- { yyval.a_constr = yyvsp[0].a_constr; }
- break;
-
- case 175:
-#line 1421 "asn1p_y.y"
- { yyval.a_constr = yyvsp[0].a_constr; }
- break;
-
- case 176:
+ ;
+ break;}
+case 173:
+#line 1419 "asn1p_y.y"
+{ yyval.a_constr = yyvsp[0].a_constr; ;
+ break;}
+case 174:
#line 1422 "asn1p_y.y"
- {
+{ yyval.a_constr = yyvsp[0].a_constr; ;
+ break;}
+case 175:
+#line 1423 "asn1p_y.y"
+{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr);
- }
- break;
-
- case 177:
-#line 1428 "asn1p_y.y"
- { yyval.a_constr = yyvsp[0].a_constr; }
- break;
-
- case 178:
-#line 1430 "asn1p_y.y"
- {
+ ;
+ break;}
+case 176:
+#line 1429 "asn1p_y.y"
+{ yyval.a_constr = yyvsp[0].a_constr; ;
+ break;}
+case 177:
+#line 1431 "asn1p_y.y"
+{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr);
- }
- break;
-
- case 179:
-#line 1436 "asn1p_y.y"
- { yyval.a_constr = yyvsp[0].a_constr; }
- break;
-
- case 180:
+ ;
+ break;}
+case 178:
#line 1437 "asn1p_y.y"
- {
+{ yyval.a_constr = yyvsp[0].a_constr; ;
+ break;}
+case 179:
+#line 1438 "asn1p_y.y"
+{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr);
- }
- break;
-
- case 181:
-#line 1443 "asn1p_y.y"
- {
+ ;
+ break;}
+case 180:
+#line 1444 "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 182:
-#line 1449 "asn1p_y.y"
- {
+ ;
+ break;}
+case 181:
+#line 1450 "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 183:
-#line 1456 "asn1p_y.y"
- {
+ ;
+ break;}
+case 182:
+#line 1457 "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 184:
-#line 1464 "asn1p_y.y"
- {
+ ;
+ break;}
+case 183:
+#line 1465 "asn1p_y.y"
+{
yyval.a_constr = yyvsp[0].a_constr;
- }
- break;
-
- case 185:
-#line 1467 "asn1p_y.y"
- {
+ ;
+ break;}
+case 184:
+#line 1468 "asn1p_y.y"
+{
yyval.a_constr = yyvsp[0].a_constr;
- }
- break;
-
- case 186:
-#line 1473 "asn1p_y.y"
- { yyval.a_ctype = ACT_EL_RANGE; }
- break;
-
- case 187:
+ ;
+ break;}
+case 185:
#line 1474 "asn1p_y.y"
- { yyval.a_ctype = ACT_EL_RLRANGE; }
- break;
-
- case 188:
+{ yyval.a_ctype = ACT_EL_RANGE; ;
+ break;}
+case 186:
#line 1475 "asn1p_y.y"
- { yyval.a_ctype = ACT_EL_LLRANGE; }
- break;
-
- case 189:
+{ yyval.a_ctype = ACT_EL_RLRANGE; ;
+ break;}
+case 187:
#line 1476 "asn1p_y.y"
- { yyval.a_ctype = ACT_EL_ULRANGE; }
- break;
-
- case 190:
-#line 1480 "asn1p_y.y"
- {
+{ yyval.a_ctype = ACT_EL_LLRANGE; ;
+ break;}
+case 188:
+#line 1477 "asn1p_y.y"
+{ yyval.a_ctype = ACT_EL_ULRANGE; ;
+ break;}
+case 189:
+#line 1481 "asn1p_y.y"
+{
yyval.a_ctype = ACT_CT_SIZE;
- }
- break;
-
- case 191:
-#line 1483 "asn1p_y.y"
- {
+ ;
+ break;}
+case 190:
+#line 1484 "asn1p_y.y"
+{
yyval.a_ctype = ACT_CT_FROM;
- }
- break;
-
- case 192:
-#line 1489 "asn1p_y.y"
- {
+ ;
+ break;}
+case 191:
+#line 1490 "asn1p_y.y"
+{
yyval.a_value = yyvsp[0].a_value;
- }
- break;
-
- case 193:
-#line 1492 "asn1p_y.y"
- {
+ ;
+ break;}
+case 192:
+#line 1493 "asn1p_y.y"
+{
asn1p_ref_t *ref;
int ret;
ref = asn1p_ref_new(yylineno);
@@ -3313,142 +2743,124 @@ yyreduce:
yyval.a_value = asn1p_value_fromref(ref, 0);
checkmem(yyval.a_value);
free(yyvsp[0].tv_str);
- }
- break;
-
- case 194:
-#line 1503 "asn1p_y.y"
- {
+ ;
+ break;}
+case 193:
+#line 1504 "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 195:
-#line 1507 "asn1p_y.y"
- {
+ ;
+ break;}
+case 194:
+#line 1508 "asn1p_y.y"
+{
yyval.a_value = asn1p_value_fromint(123);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_MIN;
- }
- break;
-
- case 196:
-#line 1512 "asn1p_y.y"
- {
+ ;
+ break;}
+case 195:
+#line 1513 "asn1p_y.y"
+{
yyval.a_value = asn1p_value_fromint(321);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_MAX;
- }
- break;
-
- case 197:
-#line 1517 "asn1p_y.y"
- {
+ ;
+ break;}
+case 196:
+#line 1518 "asn1p_y.y"
+{
yyval.a_value = asn1p_value_fromint(0);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_FALSE;
- }
- break;
-
- case 198:
-#line 1522 "asn1p_y.y"
- {
+ ;
+ break;}
+case 197:
+#line 1523 "asn1p_y.y"
+{
yyval.a_value = asn1p_value_fromint(1);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_TRUE;
- }
- break;
-
- case 199:
-#line 1530 "asn1p_y.y"
- {
+ ;
+ break;}
+case 198:
+#line 1531 "asn1p_y.y"
+{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
- }
- break;
-
- case 200:
-#line 1536 "asn1p_y.y"
- {
+ ;
+ break;}
+case 199:
+#line 1537 "asn1p_y.y"
+{
yyval.a_constr = yyvsp[0].a_constr;
- }
- break;
-
- case 201:
-#line 1539 "asn1p_y.y"
- {
+ ;
+ break;}
+case 200:
+#line 1540 "asn1p_y.y"
+{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
- }
- break;
-
- case 202:
-#line 1545 "asn1p_y.y"
- {
+ ;
+ break;}
+case 201:
+#line 1546 "asn1p_y.y"
+{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_EXT;
- }
- break;
-
- case 203:
-#line 1550 "asn1p_y.y"
- {
+ ;
+ break;}
+case 202:
+#line 1551 "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 204:
-#line 1563 "asn1p_y.y"
- { yyval.a_pres = ACPRES_DEFAULT; }
- break;
-
- case 205:
+ ;
+ break;}
+case 203:
#line 1564 "asn1p_y.y"
- { yyval.a_pres = yyvsp[0].a_pres; }
- break;
-
- case 206:
-#line 1568 "asn1p_y.y"
- {
+{ yyval.a_pres = ACPRES_DEFAULT; ;
+ break;}
+case 204:
+#line 1565 "asn1p_y.y"
+{ yyval.a_pres = yyvsp[0].a_pres; ;
+ break;}
+case 205:
+#line 1569 "asn1p_y.y"
+{
yyval.a_pres = ACPRES_PRESENT;
- }
- break;
-
- case 207:
-#line 1571 "asn1p_y.y"
- {
+ ;
+ break;}
+case 206:
+#line 1572 "asn1p_y.y"
+{
yyval.a_pres = ACPRES_ABSENT;
- }
- break;
-
- case 208:
-#line 1574 "asn1p_y.y"
- {
+ ;
+ break;}
+case 207:
+#line 1575 "asn1p_y.y"
+{
yyval.a_pres = ACPRES_OPTIONAL;
- }
- break;
-
- case 209:
-#line 1580 "asn1p_y.y"
- {
+ ;
+ break;}
+case 208:
+#line 1581 "asn1p_y.y"
+{
yyval.a_constr = yyvsp[0].a_constr;
- }
- break;
-
- case 210:
-#line 1583 "asn1p_y.y"
- {
+ ;
+ break;}
+case 209:
+#line 1584 "asn1p_y.y"
+{
yyval.a_constr = yyvsp[0].a_constr;
- }
- break;
-
- case 211:
-#line 1592 "asn1p_y.y"
- {
+ ;
+ break;}
+case 210:
+#line 1593 "asn1p_y.y"
+{
asn1p_ref_t *ref = asn1p_ref_new(yylineno);
asn1p_constraint_t *ct;
int ret;
@@ -3459,41 +2871,37 @@ yyreduce:
ct->type = ACT_EL_VALUE;
ct->value = asn1p_value_fromref(ref, 0);
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, ct, 0);
- }
- break;
-
- case 212:
-#line 1607 "asn1p_y.y"
- {
+ ;
+ break;}
+case 211:
+#line 1608 "asn1p_y.y"
+{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
- }
- break;
-
- case 213:
-#line 1613 "asn1p_y.y"
- {
+ ;
+ break;}
+case 212:
+#line 1614 "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 214:
-#line 1619 "asn1p_y.y"
- {
+ ;
+ break;}
+case 213:
+#line 1620 "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 215:
-#line 1633 "asn1p_y.y"
- {
+ ;
+ break;}
+case 214:
+#line 1634 "asn1p_y.y"
+{
char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
int ret;
*p = '@';
@@ -3503,12 +2911,11 @@ yyreduce:
checkmem(ret == 0);
free(p);
free(yyvsp[0].tv_str);
- }
- break;
-
- case 216:
-#line 1644 "asn1p_y.y"
- {
+ ;
+ break;}
+case 215:
+#line 1645 "asn1p_y.y"
+{
char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
int ret;
p[0] = '@';
@@ -3519,19 +2926,17 @@ yyreduce:
checkmem(ret == 0);
free(p);
free(yyvsp[0].tv_str);
- }
- break;
-
- case 217:
-#line 1660 "asn1p_y.y"
- {
+ ;
+ break;}
+case 216:
+#line 1661 "asn1p_y.y"
+{
yyval.tv_str = yyvsp[0].tv_str;
- }
- break;
-
- case 218:
-#line 1663 "asn1p_y.y"
- {
+ ;
+ break;}
+case 217:
+#line 1664 "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);
@@ -3539,469 +2944,437 @@ yyreduce:
yyval.tv_str[l1] = '.';
memcpy(yyval.tv_str + l1 + 1, yyvsp[0].tv_str, l3);
yyval.tv_str[l1 + 1 + l3] = '\0';
- }
- break;
-
- case 219:
-#line 1681 "asn1p_y.y"
- { yyval.a_marker = EM_NOMARK; }
- break;
-
- case 220:
+ ;
+ break;}
+case 218:
#line 1682 "asn1p_y.y"
- { yyval.a_marker = yyvsp[0].a_marker; }
- break;
-
- case 221:
-#line 1686 "asn1p_y.y"
- {
+{ yyval.a_marker = EM_NOMARK; ;
+ break;}
+case 219:
+#line 1683 "asn1p_y.y"
+{ yyval.a_marker = yyvsp[0].a_marker; ;
+ break;}
+case 220:
+#line 1687 "asn1p_y.y"
+{
yyval.a_marker = EM_OPTIONAL;
- }
- break;
-
- case 222:
-#line 1689 "asn1p_y.y"
- {
+ ;
+ break;}
+case 221:
+#line 1690 "asn1p_y.y"
+{
yyval.a_marker = EM_DEFAULT;
/* FIXME: store DefaultValue somewhere */
- }
- break;
-
- case 223:
-#line 1696 "asn1p_y.y"
- {
- }
- break;
-
- case 224:
-#line 1698 "asn1p_y.y"
- {
- }
- break;
-
- case 225:
-#line 1700 "asn1p_y.y"
- { asn1p_lexer_hack_push_opaque_state(); }
- break;
-
- case 226:
-#line 1700 "asn1p_y.y"
- {
- }
- break;
-
- case 227:
-#line 1721 "asn1p_y.y"
- {
+ ;
+ break;}
+case 222:
+#line 1697 "asn1p_y.y"
+{
+ ;
+ break;}
+case 223:
+#line 1699 "asn1p_y.y"
+{
+ ;
+ break;}
+case 224:
+#line 1701 "asn1p_y.y"
+{ asn1p_lexer_hack_push_opaque_state(); ;
+ break;}
+case 225:
+#line 1701 "asn1p_y.y"
+{
+ ;
+ break;}
+case 226:
+#line 1722 "asn1p_y.y"
+{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
- }
- break;
-
- case 228:
-#line 1725 "asn1p_y.y"
- {
+ ;
+ break;}
+case 227:
+#line 1726 "asn1p_y.y"
+{
yyval.a_expr = yyvsp[-1].a_expr;
- }
- break;
-
- case 229:
-#line 1731 "asn1p_y.y"
- {
+ ;
+ break;}
+case 228:
+#line 1732 "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 230:
-#line 1736 "asn1p_y.y"
- {
+ ;
+ break;}
+case 229:
+#line 1737 "asn1p_y.y"
+{
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
- }
- break;
-
- case 231:
-#line 1743 "asn1p_y.y"
- {
+ ;
+ break;}
+case 230:
+#line 1744 "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 232:
-#line 1750 "asn1p_y.y"
- {
+ ;
+ break;}
+case 231:
+#line 1751 "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:
-#line 1758 "asn1p_y.y"
- {
+ ;
+ break;}
+case 232:
+#line 1759 "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 234:
-#line 1766 "asn1p_y.y"
- {
+ ;
+ break;}
+case 233:
+#line 1767 "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 235:
-#line 1773 "asn1p_y.y"
- {
+ ;
+ break;}
+case 234:
+#line 1774 "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 236:
-#line 1784 "asn1p_y.y"
- {
+ ;
+ break;}
+case 235:
+#line 1785 "asn1p_y.y"
+{
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value);
- }
- break;
-
- case 237:
-#line 1788 "asn1p_y.y"
- {
+ ;
+ break;}
+case 236:
+#line 1789 "asn1p_y.y"
+{
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value);
- }
- break;
-
- case 238:
-#line 1819 "asn1p_y.y"
- { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); }
- break;
-
- case 239:
+ ;
+ break;}
+case 237:
#line 1820 "asn1p_y.y"
- { yyval.a_tag = yyvsp[0].a_tag; }
- break;
-
- case 240:
-#line 1824 "asn1p_y.y"
- {
+{ memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
+ break;}
+case 238:
+#line 1821 "asn1p_y.y"
+{ yyval.a_tag = yyvsp[0].a_tag; ;
+ break;}
+case 239:
+#line 1825 "asn1p_y.y"
+{
yyval.a_tag = yyvsp[0].a_tag;
yyval.a_tag.tag_mode = TM_DEFAULT;
- }
- break;
-
- case 241:
-#line 1828 "asn1p_y.y"
- {
+ ;
+ break;}
+case 240:
+#line 1829 "asn1p_y.y"
+{
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = TM_IMPLICIT;
- }
- break;
-
- case 242:
-#line 1832 "asn1p_y.y"
- {
+ ;
+ break;}
+case 241:
+#line 1833 "asn1p_y.y"
+{
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = TM_EXPLICIT;
- }
- break;
-
- case 243:
-#line 1839 "asn1p_y.y"
- {
+ ;
+ break;}
+case 242:
+#line 1840 "asn1p_y.y"
+{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
- }
- break;
-
- case 244:
-#line 1843 "asn1p_y.y"
- {
+ ;
+ break;}
+case 243:
+#line 1844 "asn1p_y.y"
+{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
- }
- break;
-
- case 245:
-#line 1850 "asn1p_y.y"
- {
+ ;
+ break;}
+case 244:
+#line 1851 "asn1p_y.y"
+{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
- }
- break;
-
- case 246:
-#line 1857 "asn1p_y.y"
- {
+ ;
+ break;}
+case 245:
+#line 1858 "asn1p_y.y"
+{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
- }
- break;
-
- case 247:
-#line 1864 "asn1p_y.y"
- {
+ ;
+ break;}
+case 246:
+#line 1865 "asn1p_y.y"
+{
memset(&yyval.tv_nametag, 0, sizeof(yyval.tv_nametag));
yyval.tv_nametag.name = yyvsp[0].tv_str;
- }
- break;
-
- case 248:
-#line 1868 "asn1p_y.y"
- {
+ ;
+ break;}
+case 247:
+#line 1869 "asn1p_y.y"
+{
yyval.tv_nametag.name = yyvsp[-1].tv_str;
yyval.tv_nametag.tag = yyvsp[0].a_tag;
- }
- break;
-
-
- }
-
-/* Line 1016 of /usr/local/share/bison/yacc.c. */
-#line 3786 "asn1p_y.c"
+ ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+#line 543 "/usr/share/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+#endif
-
-#if YYDEBUG
+#if YYDEBUG != 0
if (yydebug)
{
- short *yyssp1 = yyss - 1;
- YYFPRINTF (stderr, "state stack now");
- while (yyssp1 != yyssp)
- YYFPRINTF (stderr, " %d", *++yyssp1);
- YYFPRINTF (stderr, "\n");
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (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 - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
- yystate = yydefgoto[yyn - YYNTOKENS];
+ yystate = yydefgoto[yyn - YYNTBASE];
goto yynewstate;
+yyerrlab: /* here on detecting error */
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
{
++yynerrs;
-#if YYERROR_VERBOSE
+
+#ifdef YYERROR_VERBOSE
yyn = yypact[yystate];
- if (YYPACT_NINF < yyn && yyn < YYLAST)
+ if (yyn > YYFLAG && yyn < YYLAST)
{
- YYSIZE_T yysize = 0;
- int yytype = YYTRANSLATE (yychar);
- char *yymsg;
- int yyx, yycount;
-
- 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)
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (ssize_t)(sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += strlen(yytname[x]) + 15, count++;
+ msg = (char *) malloc(size + 15);
+ if (msg != 0)
{
- char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
- yyp = yystpcpy (yyp, yytname[yytype]);
+ strcpy(msg, "parse error");
- if (yycount < 5)
+ if (count < 5)
{
- yycount = 0;
- for (yyx = yyn < 0 ? -yyn : 0;
- yyx < (int) (sizeof (yytname) / sizeof (char *));
- yyx++)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (ssize_t)(sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
{
- const char *yyq = ! yycount ? ", expecting " : " or ";
- yyp = yystpcpy (yyp, yyq);
- yyp = yystpcpy (yyp, yytname[yyx]);
- yycount++;
+ strcat(msg, count == 0 ? ", expecting `" : " or `");
+ strcat(msg, yytname[x]);
+ strcat(msg, "'");
+ count++;
}
}
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
+ yyerror(msg);
+ free(msg);
}
else
- yyerror ("parse error; also virtual memory exhausted");
+ yyerror ("parse error; also virtual memory exceeded");
}
else
#endif /* YYERROR_VERBOSE */
- yyerror ("parse error");
+ yyerror("parse error");
}
- goto yyerrlab1;
+ 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)
- {
- /* 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;
- }
+ 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 */
- for (;;)
- {
- yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
+ goto yyerrhandle;
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
+yyerrdefault: /* current state does not do anything special for the error token. */
- YYDPRINTF ((stderr, "Error: popping "));
- YYDSYMPRINT ((stderr,
- yystos[*yyssp], *yyvsp));
- YYDPRINTF ((stderr, "\n"));
+#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
- yydestruct (yystos[yystate], *yyvsp);
- yyvsp--;
- yystate = *--yyssp;
+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
- if (yydebug)
- {
- short *yyssp1 = yyss - 1;
- YYFPRINTF (stderr, "Error: state stack now");
- while (yyssp1 != yyssp)
- YYFPRINTF (stderr, " %d", *++yyssp1);
- YYFPRINTF (stderr, "\n");
- }
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (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;
- YYDPRINTF ((stderr, "Shifting error token, "));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting error token, ");
+#endif
*++yyvsp = yylval;
-
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
yystate = yyn;
goto yynewstate;
-
-/*-------------------------------------.
-| 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. */
+ yyacceptlab:
+ /* YYACCEPT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
#endif
+ }
+ return 0;
-yyreturn:
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
+ yyabortlab:
+ /* YYABORT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
#endif
- return yyresult;
+ }
+ return 1;
}
-
-
-#line 1875 "asn1p_y.y"
+#line 1876 "asn1p_y.y"
@@ -4111,4 +3484,3 @@ yyerror(const char *msg) {
}
-
diff --git a/libasn1parser/asn1p_y.h b/libasn1parser/asn1p_y.h
index 49ab05ab..61679e3d 100644
--- a/libasn1parser/asn1p_y.h
+++ b/libasn1parser/asn1p_y.h
@@ -1,239 +1,3 @@
-/* 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_ASN_P_Y_H
-# define BISON_ASN_P_Y_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;
@@ -265,14 +29,104 @@ typedef union {
char *name;
struct asn1p_type_tag_s tag;
} tv_nametag;
-} yystype;
-/* Line 1281 of /usr/local/share/bison/yacc.c. */
-#line 271 "y.tab.h"
-# define YYSTYPE yystype
-#endif
+} 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
-extern YYSTYPE asn1p_lval;
-
-
-#endif /* not BISON_ASN_P_Y_H */
+extern YYSTYPE asn1p_lval;
diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y
index 3b9af314..7b2c1366 100644
--- a/libasn1parser/asn1p_y.y
+++ b/libasn1parser/asn1p_y.y
@@ -1399,7 +1399,8 @@ ConstraintElementSet:
checkmem(ct);
ct->type = ACT_EL_EXT;
CONSTRAINT_INSERT($$, ACT_CA_CSV, $1, ct);
- CONSTRAINT_INSERT($$, ACT_CA_CSV, $1, $5);
+ ct = $$;
+ CONSTRAINT_INSERT($$, ACT_CA_CSV, ct, $5);
}
| TOK_ThreeDots {
$$ = asn1p_constraint_new(yylineno);