blob: ca5410ec6d1b950a269c004957423b979df8c2b4 [file] [log] [blame]
Lev Walkinfb872bd2006-03-18 06:53:11 +00001/* A Bison parser, made by GNU Bison 2.1. */
2
3/* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA. */
20
21/* As a special exception, when this file is copied by Bison into a
22 Bison output file, you may use that output file without restriction.
23 This special exception was added by the Free Software Foundation
24 in version 1.24 of Bison. */
25
26/* Tokens. */
27#ifndef YYTOKENTYPE
28# define YYTOKENTYPE
29 /* Put the tokens into the symbol table, so that GDB and other debuggers
30 know about them. */
31 enum yytokentype {
32 TOK_PPEQ = 258,
33 TOK_whitespace = 259,
34 TOK_opaque = 260,
35 TOK_bstring = 261,
36 TOK_cstring = 262,
37 TOK_hstring = 263,
38 TOK_identifier = 264,
39 TOK_number = 265,
40 TOK_tuple = 266,
41 TOK_quadruple = 267,
42 TOK_number_negative = 268,
43 TOK_typereference = 269,
44 TOK_capitalreference = 270,
45 TOK_typefieldreference = 271,
46 TOK_valuefieldreference = 272,
47 TOK_Literal = 273,
48 TOK_ABSENT = 274,
49 TOK_ABSTRACT_SYNTAX = 275,
50 TOK_ALL = 276,
51 TOK_ANY = 277,
52 TOK_APPLICATION = 278,
53 TOK_AUTOMATIC = 279,
54 TOK_BEGIN = 280,
55 TOK_BIT = 281,
56 TOK_BMPString = 282,
57 TOK_BOOLEAN = 283,
58 TOK_BY = 284,
59 TOK_CHARACTER = 285,
60 TOK_CHOICE = 286,
61 TOK_CLASS = 287,
62 TOK_COMPONENT = 288,
63 TOK_COMPONENTS = 289,
64 TOK_CONSTRAINED = 290,
65 TOK_CONTAINING = 291,
66 TOK_DEFAULT = 292,
67 TOK_DEFINITIONS = 293,
68 TOK_DEFINED = 294,
69 TOK_EMBEDDED = 295,
70 TOK_ENCODED = 296,
71 TOK_ENCODING_CONTROL = 297,
72 TOK_END = 298,
73 TOK_ENUMERATED = 299,
74 TOK_EXPLICIT = 300,
75 TOK_EXPORTS = 301,
76 TOK_EXTENSIBILITY = 302,
77 TOK_EXTERNAL = 303,
78 TOK_FALSE = 304,
79 TOK_FROM = 305,
80 TOK_GeneralizedTime = 306,
81 TOK_GeneralString = 307,
82 TOK_GraphicString = 308,
83 TOK_IA5String = 309,
84 TOK_IDENTIFIER = 310,
85 TOK_IMPLICIT = 311,
86 TOK_IMPLIED = 312,
87 TOK_IMPORTS = 313,
88 TOK_INCLUDES = 314,
89 TOK_INSTANCE = 315,
90 TOK_INSTRUCTIONS = 316,
91 TOK_INTEGER = 317,
92 TOK_ISO646String = 318,
93 TOK_MAX = 319,
94 TOK_MIN = 320,
95 TOK_MINUS_INFINITY = 321,
96 TOK_NULL = 322,
97 TOK_NumericString = 323,
98 TOK_OBJECT = 324,
99 TOK_ObjectDescriptor = 325,
100 TOK_OCTET = 326,
101 TOK_OF = 327,
102 TOK_OPTIONAL = 328,
103 TOK_PATTERN = 329,
104 TOK_PDV = 330,
105 TOK_PLUS_INFINITY = 331,
106 TOK_PRESENT = 332,
107 TOK_PrintableString = 333,
108 TOK_PRIVATE = 334,
109 TOK_REAL = 335,
110 TOK_RELATIVE_OID = 336,
111 TOK_SEQUENCE = 337,
112 TOK_SET = 338,
113 TOK_SIZE = 339,
114 TOK_STRING = 340,
115 TOK_SYNTAX = 341,
116 TOK_T61String = 342,
117 TOK_TAGS = 343,
118 TOK_TeletexString = 344,
119 TOK_TRUE = 345,
120 TOK_TYPE_IDENTIFIER = 346,
121 TOK_UNIQUE = 347,
122 TOK_UNIVERSAL = 348,
123 TOK_UniversalString = 349,
124 TOK_UTCTime = 350,
125 TOK_UTF8String = 351,
126 TOK_VideotexString = 352,
127 TOK_VisibleString = 353,
128 TOK_WITH = 354,
129 TOK_EXCEPT = 355,
130 TOK_INTERSECTION = 356,
131 TOK_UNION = 357,
132 TOK_TwoDots = 358,
133 TOK_ThreeDots = 359
134 };
135#endif
136/* Tokens. */
137#define TOK_PPEQ 258
138#define TOK_whitespace 259
139#define TOK_opaque 260
140#define TOK_bstring 261
141#define TOK_cstring 262
142#define TOK_hstring 263
143#define TOK_identifier 264
144#define TOK_number 265
145#define TOK_tuple 266
146#define TOK_quadruple 267
147#define TOK_number_negative 268
148#define TOK_typereference 269
149#define TOK_capitalreference 270
150#define TOK_typefieldreference 271
151#define TOK_valuefieldreference 272
152#define TOK_Literal 273
153#define TOK_ABSENT 274
154#define TOK_ABSTRACT_SYNTAX 275
155#define TOK_ALL 276
156#define TOK_ANY 277
157#define TOK_APPLICATION 278
158#define TOK_AUTOMATIC 279
159#define TOK_BEGIN 280
160#define TOK_BIT 281
161#define TOK_BMPString 282
162#define TOK_BOOLEAN 283
163#define TOK_BY 284
164#define TOK_CHARACTER 285
165#define TOK_CHOICE 286
166#define TOK_CLASS 287
167#define TOK_COMPONENT 288
168#define TOK_COMPONENTS 289
169#define TOK_CONSTRAINED 290
170#define TOK_CONTAINING 291
171#define TOK_DEFAULT 292
172#define TOK_DEFINITIONS 293
173#define TOK_DEFINED 294
174#define TOK_EMBEDDED 295
175#define TOK_ENCODED 296
176#define TOK_ENCODING_CONTROL 297
177#define TOK_END 298
178#define TOK_ENUMERATED 299
179#define TOK_EXPLICIT 300
180#define TOK_EXPORTS 301
181#define TOK_EXTENSIBILITY 302
182#define TOK_EXTERNAL 303
183#define TOK_FALSE 304
184#define TOK_FROM 305
185#define TOK_GeneralizedTime 306
186#define TOK_GeneralString 307
187#define TOK_GraphicString 308
188#define TOK_IA5String 309
189#define TOK_IDENTIFIER 310
190#define TOK_IMPLICIT 311
191#define TOK_IMPLIED 312
192#define TOK_IMPORTS 313
193#define TOK_INCLUDES 314
194#define TOK_INSTANCE 315
195#define TOK_INSTRUCTIONS 316
196#define TOK_INTEGER 317
197#define TOK_ISO646String 318
198#define TOK_MAX 319
199#define TOK_MIN 320
200#define TOK_MINUS_INFINITY 321
201#define TOK_NULL 322
202#define TOK_NumericString 323
203#define TOK_OBJECT 324
204#define TOK_ObjectDescriptor 325
205#define TOK_OCTET 326
206#define TOK_OF 327
207#define TOK_OPTIONAL 328
208#define TOK_PATTERN 329
209#define TOK_PDV 330
210#define TOK_PLUS_INFINITY 331
211#define TOK_PRESENT 332
212#define TOK_PrintableString 333
213#define TOK_PRIVATE 334
214#define TOK_REAL 335
215#define TOK_RELATIVE_OID 336
216#define TOK_SEQUENCE 337
217#define TOK_SET 338
218#define TOK_SIZE 339
219#define TOK_STRING 340
220#define TOK_SYNTAX 341
221#define TOK_T61String 342
222#define TOK_TAGS 343
223#define TOK_TeletexString 344
224#define TOK_TRUE 345
225#define TOK_TYPE_IDENTIFIER 346
226#define TOK_UNIQUE 347
227#define TOK_UNIVERSAL 348
228#define TOK_UniversalString 349
229#define TOK_UTCTime 350
230#define TOK_UTF8String 351
231#define TOK_VideotexString 352
232#define TOK_VisibleString 353
233#define TOK_WITH 354
234#define TOK_EXCEPT 355
235#define TOK_INTERSECTION 356
236#define TOK_UNION 357
237#define TOK_TwoDots 358
238#define TOK_ThreeDots 359
239
240
241
242
243#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
244#line 72 "asn1p_y.y"
245typedef union YYSTYPE {
Lev Walkinf15320b2004-06-03 03:38:44 +0000246 asn1p_t *a_grammar;
247 asn1p_module_flags_e a_module_flags;
248 asn1p_module_t *a_module;
249 asn1p_expr_type_e a_type; /* ASN.1 Type */
250 asn1p_expr_t *a_expr; /* Constructed collection */
251 asn1p_constraint_t *a_constr; /* Constraint */
252 enum asn1p_constraint_type_e a_ctype;/* Constraint type */
253 asn1p_xports_t *a_xports; /* IMports/EXports */
Lev Walkinb36317c2005-08-12 10:09:10 +0000254 struct AssignedIdentifier a_aid; /* Assigned Identifier */
Lev Walkinf15320b2004-06-03 03:38:44 +0000255 asn1p_oid_t *a_oid; /* Object Identifier */
256 asn1p_oid_arc_t a_oid_arc; /* Single OID's arc */
257 struct asn1p_type_tag_s a_tag; /* A tag */
258 asn1p_ref_t *a_ref; /* Reference to custom type */
259 asn1p_wsyntx_t *a_wsynt; /* WITH SYNTAX contents */
260 asn1p_wsyntx_chunk_t *a_wchunk; /* WITH SYNTAX chunk */
261 struct asn1p_ref_component_s a_refcomp; /* Component of a reference */
262 asn1p_value_t *a_value; /* Number, DefinedValue, etc */
263 struct asn1p_param_s a_parg; /* A parameter argument */
264 asn1p_paramlist_t *a_plist; /* A pargs list */
Lev Walkin9c974182004-09-15 11:59:51 +0000265 struct asn1p_expr_marker_s a_marker; /* OPTIONAL/DEFAULT */
Lev Walkinf15320b2004-06-03 03:38:44 +0000266 enum asn1p_constr_pres_e a_pres; /* PRESENT/ABSENT/OPTIONAL */
Lev Walkind21c5052004-09-29 13:18:09 +0000267 asn1c_integer_t a_int;
Lev Walkinf15320b2004-06-03 03:38:44 +0000268 char *tv_str;
269 struct {
270 char *buf;
271 int len;
272 } tv_opaque;
273 struct {
274 char *name;
275 struct asn1p_type_tag_s tag;
276 } tv_nametag;
Lev Walkin1004aa92004-09-08 00:28:11 +0000277} YYSTYPE;
Lev Walkinfb872bd2006-03-18 06:53:11 +0000278/* Line 1447 of yacc.c. */
279#line 280 "y.tab.h"
280# define yystype YYSTYPE /* obsolescent; will be withdrawn */
281# define YYSTYPE_IS_DECLARED 1
282# define YYSTYPE_IS_TRIVIAL 1
283#endif
Lev Walkinf15320b2004-06-03 03:38:44 +0000284
285extern YYSTYPE asn1p_lval;
Lev Walkinfb872bd2006-03-18 06:53:11 +0000286
287
288