mirror of https://gerrit.osmocom.org/asn1c
parsing-level support for [[ extension brackets ]]
This commit is contained in:
parent
46755ce200
commit
0e90aa040c
|
@ -214,6 +214,18 @@ asn1p_expr_add(asn1p_expr_t *to, asn1p_expr_t *what) {
|
||||||
what->parent_expr = to;
|
what->parent_expr = to;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add inner expressions as members of another.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
asn1p_expr_add_many(asn1p_expr_t *to, asn1p_expr_t *from_what) {
|
||||||
|
asn1p_expr_t *expr;
|
||||||
|
TQ_FOR(expr, &(from_what->members), next) {
|
||||||
|
expr->parent_expr = to;
|
||||||
|
}
|
||||||
|
TQ_CONCAT(&(to->members), &(from_what->members), next);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Destruct the types collection structure.
|
* Destruct the types collection structure.
|
||||||
|
|
|
@ -278,6 +278,7 @@ asn1p_expr_t *asn1p_expr_clone_with_resolver(asn1p_expr_t *,
|
||||||
asn1p_expr_t *(*resolver)(asn1p_expr_t *to_resolve, void *resolver_arg),
|
asn1p_expr_t *(*resolver)(asn1p_expr_t *to_resolve, void *resolver_arg),
|
||||||
void *resolver_arg);
|
void *resolver_arg);
|
||||||
void asn1p_expr_add(asn1p_expr_t *to, asn1p_expr_t *what);
|
void asn1p_expr_add(asn1p_expr_t *to, asn1p_expr_t *what);
|
||||||
|
void asn1p_expr_add_many(asn1p_expr_t *to, asn1p_expr_t *from_what);
|
||||||
void asn1p_expr_free(asn1p_expr_t *expr);
|
void asn1p_expr_free(asn1p_expr_t *expr);
|
||||||
|
|
||||||
#define TAG2STRING_BUFFER_SIZE 64 /* buf should be at least this big */
|
#define TAG2STRING_BUFFER_SIZE 64 /* buf should be at least this big */
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -510,6 +510,9 @@ WITH return TOK_WITH;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"[[" return TOK_VBracketLeft;
|
||||||
|
"]]" return TOK_VBracketRight;
|
||||||
|
|
||||||
[(){},;:|!.&@\[\]^] return yytext[0];
|
[(){},;:|!.&@\[\]^] return yytext[0];
|
||||||
|
|
||||||
[^A-Za-z0-9:=,{}<.@()[]'\"|&^*;!-] {
|
[^A-Za-z0-9:=,{}<.@()[]'\"|&^*;!-] {
|
||||||
|
|
|
@ -45,6 +45,14 @@
|
||||||
(head)->tq_tail = &TQ_NEXT((__el), field); \
|
(head)->tq_tail = &TQ_NEXT((__el), field); \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
|
#define TQ_CONCAT(head1, head2, field) do { \
|
||||||
|
if(TQ_FIRST(head2)) { \
|
||||||
|
*(head1)->tq_tail = (head2)->tq_head; \
|
||||||
|
(head1)->tq_tail = (head2)->tq_tail; \
|
||||||
|
TQ_INIT(head2); \
|
||||||
|
} \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Remove the first element and return it.
|
* Remove the first element and return it.
|
||||||
*/
|
*/
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,9 @@
|
||||||
/* A Bison parser, made from asn1p_y.y, by GNU bison 1.75. */
|
/* A Bison parser, made by GNU Bison 2.3. */
|
||||||
|
|
||||||
/* Skeleton parser for Yacc-like parsing with Bison,
|
/* Skeleton interface for Bison's Yacc-like parsers in C
|
||||||
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
|
|
||||||
|
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -15,16 +17,21 @@
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place - Suite 330,
|
Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02110-1301, USA. */
|
||||||
|
|
||||||
/* As a special exception, when this file is copied by Bison into a
|
/* As a special exception, you may create a larger work that contains
|
||||||
Bison output file, you may use that output file without restriction.
|
part or all of the Bison parser skeleton and distribute that work
|
||||||
This special exception was added by the Free Software Foundation
|
under terms of your choice, so long as that work isn't itself a
|
||||||
in version 1.24 of Bison. */
|
parser generator using the skeleton or a modified version thereof
|
||||||
|
as a parser skeleton. Alternatively, if you modify or redistribute
|
||||||
|
the parser skeleton itself, you may (at your option) remove this
|
||||||
|
special exception, which will cause the skeleton and the resulting
|
||||||
|
Bison output files to be licensed under the GNU General Public
|
||||||
|
License without this special exception.
|
||||||
|
|
||||||
#ifndef BISON_ASN_P_Y_H
|
This special exception was added by the Free Software Foundation in
|
||||||
# define BISON_ASN_P_Y_H
|
version 2.2 of Bison. */
|
||||||
|
|
||||||
/* Tokens. */
|
/* Tokens. */
|
||||||
#ifndef YYTOKENTYPE
|
#ifndef YYTOKENTYPE
|
||||||
|
@ -33,220 +40,226 @@
|
||||||
know about them. */
|
know about them. */
|
||||||
enum yytokentype {
|
enum yytokentype {
|
||||||
TOK_PPEQ = 258,
|
TOK_PPEQ = 258,
|
||||||
TOK_whitespace = 259,
|
TOK_VBracketLeft = 259,
|
||||||
TOK_opaque = 260,
|
TOK_VBracketRight = 260,
|
||||||
TOK_bstring = 261,
|
TOK_whitespace = 261,
|
||||||
TOK_cstring = 262,
|
TOK_opaque = 262,
|
||||||
TOK_hstring = 263,
|
TOK_bstring = 263,
|
||||||
TOK_identifier = 264,
|
TOK_cstring = 264,
|
||||||
TOK_number = 265,
|
TOK_hstring = 265,
|
||||||
TOK_number_negative = 266,
|
TOK_identifier = 266,
|
||||||
TOK_realnumber = 267,
|
TOK_number = 267,
|
||||||
TOK_tuple = 268,
|
TOK_number_negative = 268,
|
||||||
TOK_quadruple = 269,
|
TOK_realnumber = 269,
|
||||||
TOK_typereference = 270,
|
TOK_tuple = 270,
|
||||||
TOK_capitalreference = 271,
|
TOK_quadruple = 271,
|
||||||
TOK_typefieldreference = 272,
|
TOK_typereference = 272,
|
||||||
TOK_valuefieldreference = 273,
|
TOK_capitalreference = 273,
|
||||||
TOK_Literal = 274,
|
TOK_typefieldreference = 274,
|
||||||
TOK_ABSENT = 275,
|
TOK_valuefieldreference = 275,
|
||||||
TOK_ABSTRACT_SYNTAX = 276,
|
TOK_Literal = 276,
|
||||||
TOK_ALL = 277,
|
TOK_ABSENT = 277,
|
||||||
TOK_ANY = 278,
|
TOK_ABSTRACT_SYNTAX = 278,
|
||||||
TOK_APPLICATION = 279,
|
TOK_ALL = 279,
|
||||||
TOK_AUTOMATIC = 280,
|
TOK_ANY = 280,
|
||||||
TOK_BEGIN = 281,
|
TOK_APPLICATION = 281,
|
||||||
TOK_BIT = 282,
|
TOK_AUTOMATIC = 282,
|
||||||
TOK_BMPString = 283,
|
TOK_BEGIN = 283,
|
||||||
TOK_BOOLEAN = 284,
|
TOK_BIT = 284,
|
||||||
TOK_BY = 285,
|
TOK_BMPString = 285,
|
||||||
TOK_CHARACTER = 286,
|
TOK_BOOLEAN = 286,
|
||||||
TOK_CHOICE = 287,
|
TOK_BY = 287,
|
||||||
TOK_CLASS = 288,
|
TOK_CHARACTER = 288,
|
||||||
TOK_COMPONENT = 289,
|
TOK_CHOICE = 289,
|
||||||
TOK_COMPONENTS = 290,
|
TOK_CLASS = 290,
|
||||||
TOK_CONSTRAINED = 291,
|
TOK_COMPONENT = 291,
|
||||||
TOK_CONTAINING = 292,
|
TOK_COMPONENTS = 292,
|
||||||
TOK_DEFAULT = 293,
|
TOK_CONSTRAINED = 293,
|
||||||
TOK_DEFINITIONS = 294,
|
TOK_CONTAINING = 294,
|
||||||
TOK_DEFINED = 295,
|
TOK_DEFAULT = 295,
|
||||||
TOK_EMBEDDED = 296,
|
TOK_DEFINITIONS = 296,
|
||||||
TOK_ENCODED = 297,
|
TOK_DEFINED = 297,
|
||||||
TOK_ENCODING_CONTROL = 298,
|
TOK_EMBEDDED = 298,
|
||||||
TOK_END = 299,
|
TOK_ENCODED = 299,
|
||||||
TOK_ENUMERATED = 300,
|
TOK_ENCODING_CONTROL = 300,
|
||||||
TOK_EXPLICIT = 301,
|
TOK_END = 301,
|
||||||
TOK_EXPORTS = 302,
|
TOK_ENUMERATED = 302,
|
||||||
TOK_EXTENSIBILITY = 303,
|
TOK_EXPLICIT = 303,
|
||||||
TOK_EXTERNAL = 304,
|
TOK_EXPORTS = 304,
|
||||||
TOK_FALSE = 305,
|
TOK_EXTENSIBILITY = 305,
|
||||||
TOK_FROM = 306,
|
TOK_EXTERNAL = 306,
|
||||||
TOK_GeneralizedTime = 307,
|
TOK_FALSE = 307,
|
||||||
TOK_GeneralString = 308,
|
TOK_FROM = 308,
|
||||||
TOK_GraphicString = 309,
|
TOK_GeneralizedTime = 309,
|
||||||
TOK_IA5String = 310,
|
TOK_GeneralString = 310,
|
||||||
TOK_IDENTIFIER = 311,
|
TOK_GraphicString = 311,
|
||||||
TOK_IMPLICIT = 312,
|
TOK_IA5String = 312,
|
||||||
TOK_IMPLIED = 313,
|
TOK_IDENTIFIER = 313,
|
||||||
TOK_IMPORTS = 314,
|
TOK_IMPLICIT = 314,
|
||||||
TOK_INCLUDES = 315,
|
TOK_IMPLIED = 315,
|
||||||
TOK_INSTANCE = 316,
|
TOK_IMPORTS = 316,
|
||||||
TOK_INSTRUCTIONS = 317,
|
TOK_INCLUDES = 317,
|
||||||
TOK_INTEGER = 318,
|
TOK_INSTANCE = 318,
|
||||||
TOK_ISO646String = 319,
|
TOK_INSTRUCTIONS = 319,
|
||||||
TOK_MAX = 320,
|
TOK_INTEGER = 320,
|
||||||
TOK_MIN = 321,
|
TOK_ISO646String = 321,
|
||||||
TOK_MINUS_INFINITY = 322,
|
TOK_MAX = 322,
|
||||||
TOK_NULL = 323,
|
TOK_MIN = 323,
|
||||||
TOK_NumericString = 324,
|
TOK_MINUS_INFINITY = 324,
|
||||||
TOK_OBJECT = 325,
|
TOK_NULL = 325,
|
||||||
TOK_ObjectDescriptor = 326,
|
TOK_NumericString = 326,
|
||||||
TOK_OCTET = 327,
|
TOK_OBJECT = 327,
|
||||||
TOK_OF = 328,
|
TOK_ObjectDescriptor = 328,
|
||||||
TOK_OPTIONAL = 329,
|
TOK_OCTET = 329,
|
||||||
TOK_PATTERN = 330,
|
TOK_OF = 330,
|
||||||
TOK_PDV = 331,
|
TOK_OPTIONAL = 331,
|
||||||
TOK_PLUS_INFINITY = 332,
|
TOK_PATTERN = 332,
|
||||||
TOK_PRESENT = 333,
|
TOK_PDV = 333,
|
||||||
TOK_PrintableString = 334,
|
TOK_PLUS_INFINITY = 334,
|
||||||
TOK_PRIVATE = 335,
|
TOK_PRESENT = 335,
|
||||||
TOK_REAL = 336,
|
TOK_PrintableString = 336,
|
||||||
TOK_RELATIVE_OID = 337,
|
TOK_PRIVATE = 337,
|
||||||
TOK_SEQUENCE = 338,
|
TOK_REAL = 338,
|
||||||
TOK_SET = 339,
|
TOK_RELATIVE_OID = 339,
|
||||||
TOK_SIZE = 340,
|
TOK_SEQUENCE = 340,
|
||||||
TOK_STRING = 341,
|
TOK_SET = 341,
|
||||||
TOK_SYNTAX = 342,
|
TOK_SIZE = 342,
|
||||||
TOK_T61String = 343,
|
TOK_STRING = 343,
|
||||||
TOK_TAGS = 344,
|
TOK_SYNTAX = 344,
|
||||||
TOK_TeletexString = 345,
|
TOK_T61String = 345,
|
||||||
TOK_TRUE = 346,
|
TOK_TAGS = 346,
|
||||||
TOK_TYPE_IDENTIFIER = 347,
|
TOK_TeletexString = 347,
|
||||||
TOK_UNIQUE = 348,
|
TOK_TRUE = 348,
|
||||||
TOK_UNIVERSAL = 349,
|
TOK_TYPE_IDENTIFIER = 349,
|
||||||
TOK_UniversalString = 350,
|
TOK_UNIQUE = 350,
|
||||||
TOK_UTCTime = 351,
|
TOK_UNIVERSAL = 351,
|
||||||
TOK_UTF8String = 352,
|
TOK_UniversalString = 352,
|
||||||
TOK_VideotexString = 353,
|
TOK_UTCTime = 353,
|
||||||
TOK_VisibleString = 354,
|
TOK_UTF8String = 354,
|
||||||
TOK_WITH = 355,
|
TOK_VideotexString = 355,
|
||||||
TOK_EXCEPT = 356,
|
TOK_VisibleString = 356,
|
||||||
TOK_INTERSECTION = 357,
|
TOK_WITH = 357,
|
||||||
TOK_UNION = 358,
|
TOK_EXCEPT = 358,
|
||||||
TOK_TwoDots = 359,
|
TOK_INTERSECTION = 359,
|
||||||
TOK_ThreeDots = 360
|
TOK_UNION = 360,
|
||||||
|
TOK_TwoDots = 361,
|
||||||
|
TOK_ThreeDots = 362
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
/* Tokens. */
|
||||||
#define TOK_PPEQ 258
|
#define TOK_PPEQ 258
|
||||||
#define TOK_whitespace 259
|
#define TOK_VBracketLeft 259
|
||||||
#define TOK_opaque 260
|
#define TOK_VBracketRight 260
|
||||||
#define TOK_bstring 261
|
#define TOK_whitespace 261
|
||||||
#define TOK_cstring 262
|
#define TOK_opaque 262
|
||||||
#define TOK_hstring 263
|
#define TOK_bstring 263
|
||||||
#define TOK_identifier 264
|
#define TOK_cstring 264
|
||||||
#define TOK_number 265
|
#define TOK_hstring 265
|
||||||
#define TOK_number_negative 266
|
#define TOK_identifier 266
|
||||||
#define TOK_realnumber 267
|
#define TOK_number 267
|
||||||
#define TOK_tuple 268
|
#define TOK_number_negative 268
|
||||||
#define TOK_quadruple 269
|
#define TOK_realnumber 269
|
||||||
#define TOK_typereference 270
|
#define TOK_tuple 270
|
||||||
#define TOK_capitalreference 271
|
#define TOK_quadruple 271
|
||||||
#define TOK_typefieldreference 272
|
#define TOK_typereference 272
|
||||||
#define TOK_valuefieldreference 273
|
#define TOK_capitalreference 273
|
||||||
#define TOK_Literal 274
|
#define TOK_typefieldreference 274
|
||||||
#define TOK_ABSENT 275
|
#define TOK_valuefieldreference 275
|
||||||
#define TOK_ABSTRACT_SYNTAX 276
|
#define TOK_Literal 276
|
||||||
#define TOK_ALL 277
|
#define TOK_ABSENT 277
|
||||||
#define TOK_ANY 278
|
#define TOK_ABSTRACT_SYNTAX 278
|
||||||
#define TOK_APPLICATION 279
|
#define TOK_ALL 279
|
||||||
#define TOK_AUTOMATIC 280
|
#define TOK_ANY 280
|
||||||
#define TOK_BEGIN 281
|
#define TOK_APPLICATION 281
|
||||||
#define TOK_BIT 282
|
#define TOK_AUTOMATIC 282
|
||||||
#define TOK_BMPString 283
|
#define TOK_BEGIN 283
|
||||||
#define TOK_BOOLEAN 284
|
#define TOK_BIT 284
|
||||||
#define TOK_BY 285
|
#define TOK_BMPString 285
|
||||||
#define TOK_CHARACTER 286
|
#define TOK_BOOLEAN 286
|
||||||
#define TOK_CHOICE 287
|
#define TOK_BY 287
|
||||||
#define TOK_CLASS 288
|
#define TOK_CHARACTER 288
|
||||||
#define TOK_COMPONENT 289
|
#define TOK_CHOICE 289
|
||||||
#define TOK_COMPONENTS 290
|
#define TOK_CLASS 290
|
||||||
#define TOK_CONSTRAINED 291
|
#define TOK_COMPONENT 291
|
||||||
#define TOK_CONTAINING 292
|
#define TOK_COMPONENTS 292
|
||||||
#define TOK_DEFAULT 293
|
#define TOK_CONSTRAINED 293
|
||||||
#define TOK_DEFINITIONS 294
|
#define TOK_CONTAINING 294
|
||||||
#define TOK_DEFINED 295
|
#define TOK_DEFAULT 295
|
||||||
#define TOK_EMBEDDED 296
|
#define TOK_DEFINITIONS 296
|
||||||
#define TOK_ENCODED 297
|
#define TOK_DEFINED 297
|
||||||
#define TOK_ENCODING_CONTROL 298
|
#define TOK_EMBEDDED 298
|
||||||
#define TOK_END 299
|
#define TOK_ENCODED 299
|
||||||
#define TOK_ENUMERATED 300
|
#define TOK_ENCODING_CONTROL 300
|
||||||
#define TOK_EXPLICIT 301
|
#define TOK_END 301
|
||||||
#define TOK_EXPORTS 302
|
#define TOK_ENUMERATED 302
|
||||||
#define TOK_EXTENSIBILITY 303
|
#define TOK_EXPLICIT 303
|
||||||
#define TOK_EXTERNAL 304
|
#define TOK_EXPORTS 304
|
||||||
#define TOK_FALSE 305
|
#define TOK_EXTENSIBILITY 305
|
||||||
#define TOK_FROM 306
|
#define TOK_EXTERNAL 306
|
||||||
#define TOK_GeneralizedTime 307
|
#define TOK_FALSE 307
|
||||||
#define TOK_GeneralString 308
|
#define TOK_FROM 308
|
||||||
#define TOK_GraphicString 309
|
#define TOK_GeneralizedTime 309
|
||||||
#define TOK_IA5String 310
|
#define TOK_GeneralString 310
|
||||||
#define TOK_IDENTIFIER 311
|
#define TOK_GraphicString 311
|
||||||
#define TOK_IMPLICIT 312
|
#define TOK_IA5String 312
|
||||||
#define TOK_IMPLIED 313
|
#define TOK_IDENTIFIER 313
|
||||||
#define TOK_IMPORTS 314
|
#define TOK_IMPLICIT 314
|
||||||
#define TOK_INCLUDES 315
|
#define TOK_IMPLIED 315
|
||||||
#define TOK_INSTANCE 316
|
#define TOK_IMPORTS 316
|
||||||
#define TOK_INSTRUCTIONS 317
|
#define TOK_INCLUDES 317
|
||||||
#define TOK_INTEGER 318
|
#define TOK_INSTANCE 318
|
||||||
#define TOK_ISO646String 319
|
#define TOK_INSTRUCTIONS 319
|
||||||
#define TOK_MAX 320
|
#define TOK_INTEGER 320
|
||||||
#define TOK_MIN 321
|
#define TOK_ISO646String 321
|
||||||
#define TOK_MINUS_INFINITY 322
|
#define TOK_MAX 322
|
||||||
#define TOK_NULL 323
|
#define TOK_MIN 323
|
||||||
#define TOK_NumericString 324
|
#define TOK_MINUS_INFINITY 324
|
||||||
#define TOK_OBJECT 325
|
#define TOK_NULL 325
|
||||||
#define TOK_ObjectDescriptor 326
|
#define TOK_NumericString 326
|
||||||
#define TOK_OCTET 327
|
#define TOK_OBJECT 327
|
||||||
#define TOK_OF 328
|
#define TOK_ObjectDescriptor 328
|
||||||
#define TOK_OPTIONAL 329
|
#define TOK_OCTET 329
|
||||||
#define TOK_PATTERN 330
|
#define TOK_OF 330
|
||||||
#define TOK_PDV 331
|
#define TOK_OPTIONAL 331
|
||||||
#define TOK_PLUS_INFINITY 332
|
#define TOK_PATTERN 332
|
||||||
#define TOK_PRESENT 333
|
#define TOK_PDV 333
|
||||||
#define TOK_PrintableString 334
|
#define TOK_PLUS_INFINITY 334
|
||||||
#define TOK_PRIVATE 335
|
#define TOK_PRESENT 335
|
||||||
#define TOK_REAL 336
|
#define TOK_PrintableString 336
|
||||||
#define TOK_RELATIVE_OID 337
|
#define TOK_PRIVATE 337
|
||||||
#define TOK_SEQUENCE 338
|
#define TOK_REAL 338
|
||||||
#define TOK_SET 339
|
#define TOK_RELATIVE_OID 339
|
||||||
#define TOK_SIZE 340
|
#define TOK_SEQUENCE 340
|
||||||
#define TOK_STRING 341
|
#define TOK_SET 341
|
||||||
#define TOK_SYNTAX 342
|
#define TOK_SIZE 342
|
||||||
#define TOK_T61String 343
|
#define TOK_STRING 343
|
||||||
#define TOK_TAGS 344
|
#define TOK_SYNTAX 344
|
||||||
#define TOK_TeletexString 345
|
#define TOK_T61String 345
|
||||||
#define TOK_TRUE 346
|
#define TOK_TAGS 346
|
||||||
#define TOK_TYPE_IDENTIFIER 347
|
#define TOK_TeletexString 347
|
||||||
#define TOK_UNIQUE 348
|
#define TOK_TRUE 348
|
||||||
#define TOK_UNIVERSAL 349
|
#define TOK_TYPE_IDENTIFIER 349
|
||||||
#define TOK_UniversalString 350
|
#define TOK_UNIQUE 350
|
||||||
#define TOK_UTCTime 351
|
#define TOK_UNIVERSAL 351
|
||||||
#define TOK_UTF8String 352
|
#define TOK_UniversalString 352
|
||||||
#define TOK_VideotexString 353
|
#define TOK_UTCTime 353
|
||||||
#define TOK_VisibleString 354
|
#define TOK_UTF8String 354
|
||||||
#define TOK_WITH 355
|
#define TOK_VideotexString 355
|
||||||
#define TOK_EXCEPT 356
|
#define TOK_VisibleString 356
|
||||||
#define TOK_INTERSECTION 357
|
#define TOK_WITH 357
|
||||||
#define TOK_UNION 358
|
#define TOK_EXCEPT 358
|
||||||
#define TOK_TwoDots 359
|
#define TOK_INTERSECTION 359
|
||||||
#define TOK_ThreeDots 360
|
#define TOK_UNION 360
|
||||||
|
#define TOK_TwoDots 361
|
||||||
|
#define TOK_ThreeDots 362
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef YYSTYPE
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||||
|
typedef union YYSTYPE
|
||||||
#line 88 "asn1p_y.y"
|
#line 88 "asn1p_y.y"
|
||||||
typedef union {
|
{
|
||||||
asn1p_t *a_grammar;
|
asn1p_t *a_grammar;
|
||||||
asn1p_module_flags_e a_module_flags;
|
asn1p_module_flags_e a_module_flags;
|
||||||
asn1p_module_t *a_module;
|
asn1p_module_t *a_module;
|
||||||
|
@ -279,14 +292,14 @@ typedef union {
|
||||||
char *name;
|
char *name;
|
||||||
struct asn1p_type_tag_s tag;
|
struct asn1p_type_tag_s tag;
|
||||||
} tv_nametag;
|
} tv_nametag;
|
||||||
} yystype;
|
}
|
||||||
/* Line 1281 of /usr/local/share/bison/yacc.c. */
|
/* Line 1529 of yacc.c. */
|
||||||
#line 285 "asn1p_y.h"
|
#line 298 "y.tab.h"
|
||||||
# define YYSTYPE yystype
|
YYSTYPE;
|
||||||
|
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||||
|
# define YYSTYPE_IS_DECLARED 1
|
||||||
|
# define YYSTYPE_IS_TRIVIAL 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern YYSTYPE asn1p_lval;
|
extern YYSTYPE asn1p_lval;
|
||||||
|
|
||||||
|
|
||||||
#endif /* not BISON_ASN_P_Y_H */
|
|
||||||
|
|
||||||
|
|
|
@ -124,6 +124,7 @@ static asn1p_module_t *currentModule;
|
||||||
* Token types returned by scanner.
|
* Token types returned by scanner.
|
||||||
*/
|
*/
|
||||||
%token TOK_PPEQ /* "::=", Pseudo Pascal EQuality */
|
%token TOK_PPEQ /* "::=", Pseudo Pascal EQuality */
|
||||||
|
%token TOK_VBracketLeft TOK_VBracketRight /* "[[", "]]" */
|
||||||
%token <tv_opaque> TOK_whitespace /* A span of whitespace */
|
%token <tv_opaque> TOK_whitespace /* A span of whitespace */
|
||||||
%token <tv_opaque> TOK_opaque /* opaque data (driven from .y) */
|
%token <tv_opaque> TOK_opaque /* opaque data (driven from .y) */
|
||||||
%token <tv_str> TOK_bstring
|
%token <tv_str> TOK_bstring
|
||||||
|
@ -970,6 +971,10 @@ ComponentTypeLists:
|
||||||
$$ = $1;
|
$$ = $1;
|
||||||
asn1p_expr_add($$, $3);
|
asn1p_expr_add($$, $3);
|
||||||
}
|
}
|
||||||
|
| ComponentTypeLists ',' TOK_VBracketLeft ComponentTypeLists TOK_VBracketRight {
|
||||||
|
$$ = $1;
|
||||||
|
asn1p_expr_add_many($$, $4);
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
ComponentType:
|
ComponentType:
|
||||||
|
|
Loading…
Reference in New Issue