Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
asn1c
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
asn1c
Commits
1a49ced9
Commit
1a49ced9
authored
7 years ago
by
Lev Walkin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use hash for name lookup
parent
a67d1106
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
453 additions
and
414 deletions
+453
-414
libasn1fix/asn1fix_cws.c
libasn1fix/asn1fix_cws.c
+7
-4
libasn1fix/asn1fix_internal.h
libasn1fix/asn1fix_internal.h
+1
-0
libasn1fix/asn1fix_retrieve.c
libasn1fix/asn1fix_retrieve.c
+35
-32
libasn1fix/check_fixer.c
libasn1fix/check_fixer.c
+2
-5
libasn1parser/asn1p_module.c
libasn1parser/asn1p_module.c
+31
-1
libasn1parser/asn1p_module.h
libasn1parser/asn1p_module.h
+8
-1
libasn1parser/asn1p_xports.c
libasn1parser/asn1p_xports.c
+2
-2
libasn1parser/asn1p_xports.h
libasn1parser/asn1p_xports.h
+1
-1
libasn1parser/asn1p_y.c
libasn1parser/asn1p_y.c
+348
-349
libasn1parser/asn1p_y.h
libasn1parser/asn1p_y.h
+1
-1
libasn1parser/asn1p_y.y
libasn1parser/asn1p_y.y
+17
-18
No files found.
libasn1fix/asn1fix_cws.c
View file @
1a49ced9
...
@@ -389,7 +389,6 @@ _asn1f_assign_cell_value(arg_t *arg, struct asn1p_ioc_cell_s *cell,
...
@@ -389,7 +389,6 @@ _asn1f_assign_cell_value(arg_t *arg, struct asn1p_ioc_cell_s *cell,
char
*
mivr
;
/* Most Immediate Value Representation */
char
*
mivr
;
/* Most Immediate Value Representation */
int
new_ref
=
1
;
int
new_ref
=
1
;
asn1p_t
*
asn
;
asn1p_t
*
asn
;
asn1p_module_t
*
mod
;
asn1p_expr_t
*
type_expr
=
(
asn1p_expr_t
*
)
NULL
;
asn1p_expr_t
*
type_expr
=
(
asn1p_expr_t
*
)
NULL
;
int
i
,
ret
=
0
,
psize
;
int
i
,
ret
=
0
,
psize
;
char
*
pp
;
char
*
pp
;
...
@@ -458,8 +457,12 @@ _asn1f_assign_cell_value(arg_t *arg, struct asn1p_ioc_cell_s *cell,
...
@@ -458,8 +457,12 @@ _asn1f_assign_cell_value(arg_t *arg, struct asn1p_ioc_cell_s *cell,
free
(
mivr
);
free
(
mivr
);
return
-
1
;
return
-
1
;
}
else
{
}
else
{
mod
=
TQ_FIRST
(
&
(
asn
->
modules
));
asn1p_module_t
*
mod
=
TQ_FIRST
(
&
(
asn
->
modules
));
assert
(
mod
);
assert
(
mod
);
/* This member removal is safe with respect to members hash since the
* entire asn module will be deleted down below.
*/
expr
=
TQ_REMOVE
(
&
(
mod
->
members
),
next
);
expr
=
TQ_REMOVE
(
&
(
mod
->
members
),
next
);
assert
(
expr
);
assert
(
expr
);
...
...
This diff is collapsed.
Click to expand it.
libasn1fix/asn1fix_internal.h
View file @
1a49ced9
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
#include <asn1parser.h>
/* Our lovely ASN.1 parser module */
#include <asn1parser.h>
/* Our lovely ASN.1 parser module */
#include <asn1_namespace.h>
#include <asn1_namespace.h>
#include <genhash.h>
#include "asn1fix.h"
#include "asn1fix.h"
#ifdef _WIN32
#ifdef _WIN32
...
...
This diff is collapsed.
Click to expand it.
libasn1fix/asn1fix_retrieve.c
View file @
1a49ced9
...
@@ -28,34 +28,43 @@ asn1f_lookup_child(asn1p_expr_t *tc, const char *name) {
...
@@ -28,34 +28,43 @@ asn1f_lookup_child(asn1p_expr_t *tc, const char *name) {
return
NULL
;
return
NULL
;
}
}
static
asn1p_expr_t
*
asn1f_lookup_in_module
(
asn1p_module_t
*
mod
,
const
char
*
name
)
{
asn1p_expr_t
*
expr
=
genhash_get
(
mod
->
members_hash
,
name
);
if
(
!
expr
)
{
asn1p_expr_t
*
memb
;
TQ_FOR
(
memb
,
&
mod
->
members
,
next
)
{
if
(
memb
->
expr_type
==
ASN_BASIC_ENUMERATED
)
{
asn1p_expr_t
*
v
=
asn1f_lookup_child
(
memb
,
name
);
if
(
v
)
return
v
;
}
}
}
return
expr
;
}
asn1p_module_t
*
asn1p_module_t
*
asn1f_lookup_in_imports
(
arg_t
*
arg
,
asn1p_module_t
*
mod
,
const
char
*
name
)
{
asn1f_lookup_in_imports
(
arg_t
*
arg
,
asn1p_module_t
*
mod
,
const
char
*
name
)
{
asn1p_xports_t
*
xp
;
asn1p_xports_t
*
xp
;
asn1p_module_t
*
fromModule
;
asn1p_expr_t
*
tc
=
(
asn1p_expr_t
*
)
0
;
asn1p_expr_t
*
memb
=
(
asn1p_expr_t
*
)
0
;
asn1p_expr_t
*
v
=
(
asn1p_expr_t
*
)
0
;
/*
/*
* Search in which exactly module this name is defined.
* Search in which exactly module this name is defined.
*/
*/
TQ_FOR
(
xp
,
&
(
mod
->
imports
),
xp_next
)
{
TQ_FOR
(
xp
,
&
(
mod
->
imports
),
xp_next
)
{
fromModule
=
asn1f_lookup_module
(
arg
,
xp
->
fromModuleName
,
NULL
);
asn1p_module_t
*
fromModule
=
TQ_FOR
(
tc
,
&
(
xp
->
members
),
next
)
{
asn1f_lookup_module
(
arg
,
xp
->
fromModuleName
,
NULL
);
asn1p_expr_t
*
tc
=
(
asn1p_expr_t
*
)
0
;
TQ_FOR
(
tc
,
&
(
xp
->
xp_members
),
next
)
{
if
(
strcmp
(
name
,
tc
->
Identifier
)
==
0
)
if
(
strcmp
(
name
,
tc
->
Identifier
)
==
0
)
break
;
break
;
if
(
!
fromModule
)
if
(
!
fromModule
)
continue
;
continue
;
TQ_FOR
(
memb
,
&
(
fromModule
->
members
),
next
)
{
asn1p_expr_t
*
v
=
v
=
if
((
memb
->
expr_type
!=
ASN_BASIC_ENUMERATED
)
||
asn1f_lookup_in_module
(
fromModule
,
tc
->
Identifier
);
(
strcmp
(
memb
->
Identifier
,
tc
->
Identifier
)
!=
0
))
continue
;
v
=
asn1f_lookup_child
(
memb
,
name
);
if
(
v
)
break
;
}
if
(
v
)
break
;
if
(
v
)
break
;
}
}
if
(
tc
)
break
;
if
(
tc
)
break
;
...
@@ -291,8 +300,6 @@ asn1f_lookup_symbol_impl(arg_t *arg, asn1p_expr_t *rhs_pspecs, const asn1p_ref_t
...
@@ -291,8 +300,6 @@ asn1f_lookup_symbol_impl(arg_t *arg, asn1p_expr_t *rhs_pspecs, const asn1p_ref_t
ns_item
--
)
{
ns_item
--
)
{
struct
asn1_namespace_element_s
*
ns_el
=
struct
asn1_namespace_element_s
*
ns_el
=
&
my_namespace
->
elements
[
ns_item
];
&
my_namespace
->
elements
[
ns_item
];
asn1p_expr_t
*
ref_tc
;
/* Referenced tc */
asn1p_expr_t
*
v
=
(
asn1p_expr_t
*
)
0
;
switch
(
ns_el
->
selector
)
{
switch
(
ns_el
->
selector
)
{
case
NAM_SYMBOL
:
case
NAM_SYMBOL
:
...
@@ -312,22 +319,12 @@ asn1f_lookup_symbol_impl(arg_t *arg, asn1p_expr_t *rhs_pspecs, const asn1p_ref_t
...
@@ -312,22 +319,12 @@ asn1f_lookup_symbol_impl(arg_t *arg, asn1p_expr_t *rhs_pspecs, const asn1p_ref_t
DISPOSE_OF_MY_NAMESPACE
();
DISPOSE_OF_MY_NAMESPACE
();
return
ns_el
->
u
.
symbol
.
resolution
;
return
ns_el
->
u
.
symbol
.
resolution
;
}
}
case
NAM_SPACE
:
case
NAM_SPACE
:
{
asn1p_expr_t
*
ref_tc
;
/* Referenced tc */
/*
/*
* Do a direct symbol search in the given module.
* Do a direct symbol search in the given module.
*/
*/
TQ_FOR
(
ref_tc
,
&
(
ns_el
->
u
.
space
.
module
->
members
),
next
)
{
ref_tc
=
asn1f_lookup_in_module
(
ns_el
->
u
.
space
.
module
,
identifier
);
if
(
ref_tc
->
Identifier
)
if
(
strcmp
(
ref_tc
->
Identifier
,
identifier
)
==
0
)
break
;
if
(
ref_tc
->
expr_type
==
ASN_BASIC_ENUMERATED
)
{
v
=
asn1f_lookup_child
(
ref_tc
,
identifier
);
if
(
v
)
{
ref_tc
=
v
;
break
;
}
}
}
if
(
ref_tc
)
{
if
(
ref_tc
)
{
/* It is acceptable that we don't use input parameters */
/* It is acceptable that we don't use input parameters */
if
(
rhs_pspecs
&&
!
ref_tc
->
lhs_params
)
{
if
(
rhs_pspecs
&&
!
ref_tc
->
lhs_params
)
{
...
@@ -355,6 +352,7 @@ asn1f_lookup_symbol_impl(arg_t *arg, asn1p_expr_t *rhs_pspecs, const asn1p_ref_t
...
@@ -355,6 +352,7 @@ asn1f_lookup_symbol_impl(arg_t *arg, asn1p_expr_t *rhs_pspecs, const asn1p_ref_t
DISPOSE_OF_MY_NAMESPACE
();
DISPOSE_OF_MY_NAMESPACE
();
return
ref_tc
;
return
ref_tc
;
}
}
}
/*
/*
if(!expr && !(arg->expr->_mark & TM_BROKEN)
if(!expr && !(arg->expr->_mark & TM_BROKEN)
...
@@ -479,6 +477,11 @@ asn1f_find_terminal_thing(arg_t *arg, asn1p_expr_t *expr, enum ftt_what what) {
...
@@ -479,6 +477,11 @@ asn1f_find_terminal_thing(arg_t *arg, asn1p_expr_t *expr, enum ftt_what what) {
ref
=
expr
->
reference
;
ref
=
expr
->
reference
;
break
;
break
;
case
FTT_VALUE
:
case
FTT_VALUE
:
DEBUG
(
"%s(%s->%s) meta %d for line %d"
,
"VALUE"
,
expr
->
Identifier
,
asn1f_printable_reference
(
ref
),
expr
->
meta_type
,
expr
->
_lineno
);
assert
(
expr
->
meta_type
==
AMT_VALUE
);
assert
(
expr
->
meta_type
==
AMT_VALUE
);
assert
(
expr
->
value
);
assert
(
expr
->
value
);
/* Expression may be a terminal type itself */
/* Expression may be a terminal type itself */
...
@@ -574,7 +577,7 @@ asn1f_compatible_with_exports(arg_t *arg, asn1p_module_t *mod, const char *name)
...
@@ -574,7 +577,7 @@ asn1f_compatible_with_exports(arg_t *arg, asn1p_module_t *mod, const char *name)
return
0
;
return
0
;
}
}
TQ_FOR
(
item
,
&
(
exports
->
members
),
next
)
{
TQ_FOR
(
item
,
&
(
exports
->
xp_
members
),
next
)
{
if
(
strcmp
(
item
->
Identifier
,
name
)
==
0
)
if
(
strcmp
(
item
->
Identifier
,
name
)
==
0
)
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
libasn1fix/check_fixer.c
View file @
1a49ced9
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
#include <errno.h>
#include <errno.h>
#include <libgen.h>
#include <libgen.h>
#include "genhash.h"
#include "asn1fix.h"
#include "asn1fix.h"
#include "asn1_buffer.h"
#include "asn1_buffer.h"
#include "asn1_namespace.h"
#include "asn1_namespace.h"
...
@@ -340,11 +341,7 @@ post_fix_check_element(asn1p_module_t *mod, asn1p_expr_t *check_expr) {
...
@@ -340,11 +341,7 @@ post_fix_check_element(asn1p_module_t *mod, asn1p_expr_t *check_expr) {
/*
/*
* Scan in search for the original.
* Scan in search for the original.
*/
*/
TQ_FOR
(
expr
,
&
(
mod
->
members
),
next
)
{
expr
=
genhash_get
(
mod
->
members_hash
,
name
);
if
(
strcmp
(
expr
->
Identifier
,
name
)
==
0
)
break
;
}
if
(
expr
==
NULL
)
{
if
(
expr
==
NULL
)
{
fprintf
(
stderr
,
fprintf
(
stderr
,
"CHECKER: Value
\"
%s
\"
requested by "
"CHECKER: Value
\"
%s
\"
requested by "
...
...
This diff is collapsed.
Click to expand it.
libasn1parser/asn1p_module.c
View file @
1a49ced9
#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>
#include <genhash.h>
#include "asn1parser.h"
#include "asn1parser.h"
...
@@ -15,6 +16,9 @@ asn1p_module_new() {
...
@@ -15,6 +16,9 @@ asn1p_module_new() {
TQ_INIT
(
&
(
mod
->
exports
));
TQ_INIT
(
&
(
mod
->
exports
));
TQ_INIT
(
&
(
mod
->
imports
));
TQ_INIT
(
&
(
mod
->
imports
));
TQ_INIT
(
&
(
mod
->
members
));
TQ_INIT
(
&
(
mod
->
members
));
mod
->
members_hash
=
genhash_new
(
cmpf_string
,
hashf_string
,
NULL
,
NULL
);
assert
(
mod
->
members_hash
);
}
}
return
mod
;
return
mod
;
}
}
...
@@ -42,6 +46,9 @@ asn1p_module_free(asn1p_module_t *mod) {
...
@@ -42,6 +46,9 @@ asn1p_module_free(asn1p_module_t *mod) {
while
((
expr
=
TQ_REMOVE
(
&
(
mod
->
members
),
next
)))
while
((
expr
=
TQ_REMOVE
(
&
(
mod
->
members
),
next
)))
asn1p_expr_free
(
expr
);
asn1p_expr_free
(
expr
);
genhash_destroy
(
mod
->
members_hash
);
mod
->
members_hash
=
NULL
;
free
(
mod
);
free
(
mod
);
}
}
}
}
...
@@ -66,3 +73,26 @@ asn1p_delete(asn1p_t *asn) {
...
@@ -66,3 +73,26 @@ asn1p_delete(asn1p_t *asn) {
free
(
asn
);
free
(
asn
);
}
}
}
}
void
asn1p_module_move_members
(
asn1p_module_t
*
to
,
asn1p_module_t
*
from
)
{
if
(
from
)
{
while
(
TQ_FIRST
(
&
(
from
->
members
)))
{
asn1p_expr_t
*
expr
=
TQ_REMOVE
(
&
from
->
members
,
next
);
TQ_ADD
(
&
to
->
members
,
expr
,
next
);
genhash_add
(
to
->
members_hash
,
expr
->
Identifier
,
expr
);
}
assert
(
TQ_FIRST
(
&
from
->
members
)
==
0
);
genhash_empty
(
from
->
members_hash
,
0
,
0
);
}
}
void
asn1p_module_member_add
(
asn1p_module_t
*
mod
,
asn1p_expr_t
*
expr
)
{
if
(
expr
)
{
TQ_ADD
(
&
mod
->
members
,
expr
,
next
);
genhash_add
(
mod
->
members_hash
,
expr
->
Identifier
,
expr
);
}
}
This diff is collapsed.
Click to expand it.
libasn1parser/asn1p_module.h
View file @
1a49ced9
...
@@ -16,6 +16,8 @@ typedef struct asn1p_s {
...
@@ -16,6 +16,8 @@ typedef struct asn1p_s {
asn1p_t
*
asn1p_new
(
void
);
asn1p_t
*
asn1p_new
(
void
);
void
asn1p_delete
(
asn1p_t
*
asn
);
void
asn1p_delete
(
asn1p_t
*
asn
);
struct
genhash_s
;
/* Forward declaration */
/*
/*
* Flags specific to a module.
* Flags specific to a module.
*/
*/
...
@@ -75,7 +77,8 @@ typedef struct asn1p_module_s {
...
@@ -75,7 +77,8 @@ typedef struct asn1p_module_s {
/*
/*
* List of everything that this module defines itself.
* List of everything that this module defines itself.
*/
*/
TQ_HEAD
(
struct
asn1p_expr_s
)
members
;
TQ_HEAD
(
struct
asn1p_expr_s
)
members
;
/* Do not access directly */
struct
genhash_s
*
members_hash
;
/*
/*
* Next module in the list.
* Next module in the list.
...
@@ -100,4 +103,8 @@ typedef struct asn1p_module_s {
...
@@ -100,4 +103,8 @@ typedef struct asn1p_module_s {
asn1p_module_t
*
asn1p_module_new
(
void
);
asn1p_module_t
*
asn1p_module_new
(
void
);
void
asn1p_module_free
(
asn1p_module_t
*
mod
);
void
asn1p_module_free
(
asn1p_module_t
*
mod
);
void
asn1p_module_move_members
(
asn1p_module_t
*
to
,
asn1p_module_t
*
from
);
void
asn1p_module_member_add
(
asn1p_module_t
*
mod
,
struct
asn1p_expr_s
*
expr
);
#endif
/* ASN1_PARSER_MODULE_H */
#endif
/* ASN1_PARSER_MODULE_H */
This diff is collapsed.
Click to expand it.
libasn1parser/asn1p_xports.c
View file @
1a49ced9
...
@@ -13,7 +13,7 @@ asn1p_xports_new() {
...
@@ -13,7 +13,7 @@ asn1p_xports_new() {
xp
=
calloc
(
1
,
sizeof
*
xp
);
xp
=
calloc
(
1
,
sizeof
*
xp
);
if
(
xp
)
{
if
(
xp
)
{
TQ_INIT
(
&
(
xp
->
members
));
TQ_INIT
(
&
(
xp
->
xp_
members
));
}
}
return
xp
;
return
xp
;
...
@@ -30,7 +30,7 @@ asn1p_xports_free(asn1p_xports_t *xp) {
...
@@ -30,7 +30,7 @@ asn1p_xports_free(asn1p_xports_t *xp) {
free
(
xp
->
fromModuleName
);
free
(
xp
->
fromModuleName
);
asn1p_oid_free
(
xp
->
identifier
.
oid
);
asn1p_oid_free
(
xp
->
identifier
.
oid
);
while
((
expr
=
TQ_REMOVE
(
&
(
xp
->
members
),
next
)))
while
((
expr
=
TQ_REMOVE
(
&
(
xp
->
xp_
members
),
next
)))
asn1p_expr_free
(
expr
);
asn1p_expr_free
(
expr
);
free
(
xp
);
free
(
xp
);
...
...
This diff is collapsed.
Click to expand it.
libasn1parser/asn1p_xports.h
View file @
1a49ced9
...
@@ -26,7 +26,7 @@ typedef struct asn1p_xports_s {
...
@@ -26,7 +26,7 @@ typedef struct asn1p_xports_s {
/*
/*
* Number of entities to import.
* Number of entities to import.
*/
*/
TQ_HEAD
(
struct
asn1p_expr_s
)
members
;
TQ_HEAD
(
struct
asn1p_expr_s
)
xp_
members
;
/*
/*
* Pointer to the next xports structure in whatever list.
* Pointer to the next xports structure in whatever list.
...
...
This diff is collapsed.
Click to expand it.
libasn1parser/asn1p_y.c
View file @
1a49ced9
...
@@ -394,12 +394,11 @@ static asn1p_module_t *currentModule;
...
@@ -394,12 +394,11 @@ static asn1p_module_t *currentModule;
#ifdef AL_IMPORT
#ifdef AL_IMPORT
#error AL_IMPORT DEFINED ELSEWHERE!
#error AL_IMPORT DEFINED ELSEWHERE!
#endif
#endif
#define AL_IMPORT(to,where,from,field) do { \
#define AL_IMPORT(to, where, from, field) \
do { \
if(!(from)) break; \
if(!(from)) break; \
while(TQ_FIRST(&((from)->where))) { \
while(TQ_FIRST(&((from)->where))) { \
TQ_ADD(&((to)->where), \
TQ_ADD(&((to)->where), TQ_REMOVE(&((from)->where), field), field); \
TQ_REMOVE(&((from)->where), field), \
field); \
} \
} \
assert(TQ_FIRST(&((from)->where)) == 0); \
assert(TQ_FIRST(&((from)->where)) == 0); \
} while(0)
} while(0)
...
@@ -426,7 +425,7 @@ static asn1p_module_t *currentModule;
...
@@ -426,7 +425,7 @@ static asn1p_module_t *currentModule;
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef
union
YYSTYPE
typedef
union
YYSTYPE
#line 11
6
"asn1p_y.y"
#line 11
5
"asn1p_y.y"
{
{
asn1p_t
*
a_grammar
;
asn1p_t
*
a_grammar
;
asn1p_module_flags_e
a_module_flags
;
asn1p_module_flags_e
a_module_flags
;
...
@@ -462,7 +461,7 @@ typedef union YYSTYPE
...
@@ -462,7 +461,7 @@ typedef union YYSTYPE
}
tv_nametag
;
}
tv_nametag
;
}
}
/* Line 193 of yacc.c. */
/* Line 193 of yacc.c. */
#line 46
6
"asn1p_y.c"
#line 46
5
"asn1p_y.c"
YYSTYPE
;
YYSTYPE
;
# define yystype YYSTYPE
/* obsolescent; will be withdrawn */
# define yystype YYSTYPE
/* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_DECLARED 1
...
@@ -475,7 +474,7 @@ typedef union YYSTYPE
...
@@ -475,7 +474,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
/* Line 216 of yacc.c. */
#line 47
9
"asn1p_y.c"
#line 47
8
"asn1p_y.c"
#ifdef short
#ifdef short
# undef short
# undef short
...
@@ -895,41 +894,41 @@ static const yytype_int16 yyrhs[] =
...
@@ -895,41 +894,41 @@ static const yytype_int16 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static
const
yytype_uint16
yyrline
[]
=
static
const
yytype_uint16
yyrline
[]
=
{
{
0
,
41
5
,
415
,
418
,
424
,
429
,
446
,
446
,
475
,
476
,
0
,
41
4
,
414
,
417
,
423
,
428
,
445
,
445
,
474
,
475
,
4
80
,
483
,
489
,
495
,
504
,
508
,
512
,
522
,
523
,
532
,
4
79
,
482
,
488
,
494
,
503
,
507
,
511
,
521
,
522
,
531
,
53
5
,
544
,
547
,
550
,
553
,
557
,
578
,
579
,
588
,
601
,
53
4
,
543
,
546
,
549
,
552
,
556
,
577
,
578
,
587
,
600
,
60
4
,
621
,
628
,
642
,
650
,
649
,
663
,
676
,
677
,
680
,
60
3
,
620
,
627
,
641
,
649
,
648
,
662
,
675
,
676
,
679
,
6
90
,
696
,
697
,
700
,
705
,
712
,
713
,
717
,
728
,
733
,
6
89
,
695
,
696
,
699
,
704
,
711
,
712
,
716
,
727
,
732
,
7
40
,
746
,
752
,
762
,
763
,
775
,
778
,
781
,
789
,
794
,
7
39
,
745
,
751
,
761
,
762
,
774
,
777
,
780
,
788
,
793
,
80
1
,
807
,
813
,
822
,
825
,
845
,
855
,
875
,
881
,
897
,
80
0
,
806
,
812
,
821
,
824
,
844
,
854
,
874
,
880
,
896
,
90
3
,
911
,
920
,
931
,
935
,
943
,
951
,
959
,
970
,
975
,
90
2
,
910
,
919
,
930
,
934
,
942
,
950
,
958
,
969
,
974
,
98
2
,
983
,
991
,
999
,
1022
,
1023
,
1026
,
1031
,
1035
,
1043
,
98
1
,
982
,
990
,
998
,
1021
,
1022
,
1025
,
1030
,
1034
,
1042
,
10
50
,
1056
,
1063
,
1069
,
1074
,
1081
,
1086
,
1089
,
1096
,
1106
,
10
49
,
1055
,
1062
,
1068
,
1073
,
1080
,
1085
,
1088
,
1095
,
1105
,
110
7
,
1111
,
1118
,
1128
,
1138
,
1149
,
1159
,
1170
,
1180
,
1191
,
110
6
,
1110
,
1117
,
1127
,
1137
,
1148
,
1158
,
1169
,
1179
,
1190
,
120
3
,
1204
,
1211
,
1210
,
1219
,
1223
,
1230
,
1234
,
1237
,
1241
,
120
2
,
1203
,
1210
,
1209
,
1218
,
1222
,
1229
,
1233
,
1236
,
1240
,
124
7
,
1255
,
1264
,
1275
,
1278
,
1285
,
1308
,
1331
,
1355
,
1362
,
124
6
,
1254
,
1263
,
1274
,
1277
,
1284
,
1307
,
1330
,
1354
,
1361
,
138
1
,
1382
,
1385
,
1386
,
1392
,
1398
,
1404
,
1414
,
1424
,
1430
,
138
0
,
1381
,
1384
,
1385
,
1391
,
1397
,
1403
,
1413
,
1423
,
1429
,
144
2
,
1457
,
1465
,
1473
,
1484
,
1495
,
1517
,
1525
,
1534
,
1538
,
144
1
,
1456
,
1464
,
1472
,
1483
,
1494
,
1516
,
1524
,
1533
,
1537
,
154
3
,
1552
,
1557
,
1562
,
1570
,
1593
,
1603
,
1604
,
1605
,
1605
,
154
2
,
1551
,
1556
,
1561
,
1569
,
1592
,
1602
,
1603
,
1604
,
1604
,
161
3
,
1618
,
1623
,
1628
,
1629
,
1630
,
1631
,
1635
,
1636
,
1654
,
161
2
,
1617
,
1622
,
1627
,
1628
,
1629
,
1630
,
1634
,
1635
,
1653
,
165
8
,
1663
,
1671
,
1680
,
1695
,
1696
,
1702
,
1703
,
1704
,
1705
,
165
7
,
1662
,
1670
,
1679
,
1694
,
1695
,
1701
,
1702
,
1703
,
1704
,
170
6
,
1707
,
1708
,
1709
,
1710
,
1711
,
1712
,
1713
,
1714
,
1721
,
170
5
,
1706
,
1707
,
1708
,
1709
,
1710
,
1711
,
1712
,
1713
,
1720
,
172
2
,
1723
,
1727
,
1733
,
1738
,
1743
,
1748
,
1753
,
1762
,
1763
,
172
1
,
1722
,
1726
,
1732
,
1737
,
1742
,
1747
,
1752
,
1761
,
1762
,
176
7
,
1771
,
1772
,
1773
,
1774
,
1775
,
1779
,
1780
,
1781
,
1782
,
176
6
,
1770
,
1771
,
1772
,
1773
,
1774
,
1778
,
1779
,
1780
,
1781
,
178
6
,
1787
,
1794
,
1794
,
1795
,
1795
,
1799
,
1800
,
1804
,
1805
,
178
5
,
1786
,
1793
,
1793
,
1794
,
1794
,
1798
,
1799
,
1803
,
1804
,
180
9
,
1810
,
1811
,
1815
,
1821
,
1822
,
1831
,
1831
,
1833
,
1836
,
180
8
,
1809
,
1810
,
1814
,
1820
,
1821
,
1830
,
1830
,
1832
,
1835
,
18
40
,
1841
,
1847
,
1858
,
1859
,
1865
,
1866
,
1872
,
1873
,
1880
,
18
39
,
1840
,
1846
,
1857
,
1858
,
1864
,
1865
,
1871
,
1872
,
1879
,
188
1
,
1887
,
1888
,
1899
,
1905
,
1911
,
1912
,
1914
,
1915
,
1916
,
188
0
,
1886
,
1887
,
1898
,
1904
,
1910
,
1911
,
1913
,
1914
,
1915
,
192
1
,
1926
,
1931
,
1936
,
1948
,
1957
,
1958
,
1964
,
1965
,
1970
,
192
0
,
1925
,
1930
,
1935
,
1947
,
1956
,
1957
,
1963
,
1964
,
1969
,
197
3
,
1978
,
1986
,
1992
,
2004
,
2007
,
2013
,
2014
,
2014
,
2015
,
197
2
,
1977
,
1985
,
1991
,
2003
,
2006
,
2012
,
2013
,
2013
,
2014
,
201
7
,
2030
,
2035
,
2041
,
2055
,
2056
,
2060
,
2063
,
2066
,
2074
,
201
6
,
2029
,
2034
,
2040
,
2054
,
2055
,
2059
,
2062
,
2065
,
2073
,
207
5
,
2076
,
2081
,
2080
,
2092
,
2101
,
2102
,
2103
,
2104
,
2107
,
207
4
,
2075
,
2080
,
2079
,
2091
,
2100
,
2101
,
2102
,
2103
,
2106
,
21
10
,
2119
,
2135
,
2141
,
2147
,
2161
,
2172
,
2188
,
2191
,
2211
,
21
09
,
2118
,
2134
,
2140
,
2146
,
2160
,
2171
,
2187
,
2190
,
2210
,
221
5
,
2219
,
2223
,
2230
,
2235
,
2241
,
2250
,
2255
,
2262
,
2270
,
221
4
,
2218
,
2222
,
2229
,
2234
,
2240
,
2249
,
2254
,
2261
,
2269
,
22
80
,
2285
,
2292
,
2300
,
2310
,
2325
,
2330
,
2337
,
2344
,
2352
,
22
79
,
2284
,
2291
,
2299
,
2309
,
2324
,
2329
,
2336
,
2343
,
2351
,
23
60
,
2367
,
2378
,
2382
,
2389
,
2420
,
2421
,
2425
,
2432
,
2438
,
23
59
,
2366
,
2377
,
2381
,
2388
,
2419
,
2420
,
2424
,
2431
,
2437
,
243
9
,
2440
,
2441
,
2445
,
2446
,
2447
,
2451
,
2455
,
2463
,
2464
,
243
8
,
2439
,
2440
,
2444
,
2445
,
2446
,
2450
,
2454
,
2462
,
2463
,
24
70
,
2477
,
2484
24
69
,
2476
,
2483
};
};
#endif
#endif
...
@@ -2342,21 +2341,21 @@ yyreduce:
...
@@ -2342,21 +2341,21 @@ yyreduce:
switch
(
yyn
)
switch
(
yyn
)
{
{
case
2
:
case
2
:
#line 41
5
"asn1p_y.y"
#line 41
4
"asn1p_y.y"
{
{
*
(
void
**
)
param
=
(
yyvsp
[(
2
)
-
(
2
)].
a_grammar
);
*
(
void
**
)
param
=
(
yyvsp
[(
2
)
-
(
2
)].
a_grammar
);
}
}
break
;
break
;
case
3
:
case
3
:
#line 41
8
"asn1p_y.y"
#line 41
7
"asn1p_y.y"
{
{
*
(
void
**
)
param
=
(
yyvsp
[(
1
)
-
(
1
)].
a_grammar
);
*
(
void
**
)
param
=
(
yyvsp
[(
1
)
-
(
1
)].
a_grammar
);
}
}
break
;
break
;
case
4
:
case
4
:
#line 42
4
"asn1p_y.y"
#line 42
3
"asn1p_y.y"
{
{
(
yyval
.
a_grammar
)
=
asn1p_new
();
(
yyval
.
a_grammar
)
=
asn1p_new
();
checkmem
((
yyval
.
a_grammar
));
checkmem
((
yyval
.
a_grammar
));
...
@@ -2365,7 +2364,7 @@ yyreduce:
...
@@ -2365,7 +2364,7 @@ yyreduce:
break
;
break
;
case
5
:
case
5
:
#line 42
9
"asn1p_y.y"
#line 42
8
"asn1p_y.y"
{
{
(
yyval
.
a_grammar
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_grammar
);
(
yyval
.
a_grammar
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_grammar
);
TQ_ADD
(
&
((
yyval
.
a_grammar
)
->
modules
),
(
yyvsp
[(
2
)
-
(
2
)].
a_module
),
mod_next
);
TQ_ADD
(
&
((
yyval
.
a_grammar
)
->
modules
),
(
yyvsp
[(
2
)
-
(
2
)].
a_module
),
mod_next
);
...
@@ -2373,12 +2372,12 @@ yyreduce:
...
@@ -2373,12 +2372,12 @@ yyreduce:
break
;
break
;
case
6
:
case
6
:
#line 44
6
"asn1p_y.y"
#line 44
5
"asn1p_y.y"
{
currentModule
=
asn1p_module_new
();
}
{
currentModule
=
asn1p_module_new
();
}
break
;
break
;
case
7
:
case
7
:
#line 45
1
"asn1p_y.y"
#line 45
0
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
currentModule
;
(
yyval
.
a_module
)
=
currentModule
;
...
@@ -2399,31 +2398,31 @@ yyreduce:
...
@@ -2399,31 +2398,31 @@ yyreduce:
break
;
break
;
case
8
:
case
8
:
#line 47
5
"asn1p_y.y"
#line 47
4
"asn1p_y.y"
{
(
yyval
.
a_oid
)
=
0
;
}
{
(
yyval
.
a_oid
)
=
0
;
}
break
;
break
;
case
9
:
case
9
:
#line 47
6
"asn1p_y.y"
#line 47
5
"asn1p_y.y"
{
(
yyval
.
a_oid
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_oid
);
}
{
(
yyval
.
a_oid
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_oid
);
}
break
;
break
;
case
10
:
case
10
:
#line 4
80
"asn1p_y.y"
#line 4
79
"asn1p_y.y"
{
{
(
yyval
.
a_oid
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_oid
);
(
yyval
.
a_oid
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_oid
);
}
}
break
;
break
;
case
11
:
case
11
:
#line 48
3
"asn1p_y.y"
#line 48
2
"asn1p_y.y"
{
{
(
yyval
.
a_oid
)
=
0
;
(
yyval
.
a_oid
)
=
0
;
}
}
break
;
break
;
case
12
:
case
12
:
#line 48
9
"asn1p_y.y"
#line 48
8
"asn1p_y.y"
{
{
(
yyval
.
a_oid
)
=
asn1p_oid_new
();
(
yyval
.
a_oid
)
=
asn1p_oid_new
();
asn1p_oid_add_arc
((
yyval
.
a_oid
),
&
(
yyvsp
[(
1
)
-
(
1
)].
a_oid_arc
));
asn1p_oid_add_arc
((
yyval
.
a_oid
),
&
(
yyvsp
[(
1
)
-
(
1
)].
a_oid_arc
));
...
@@ -2433,7 +2432,7 @@ yyreduce:
...
@@ -2433,7 +2432,7 @@ yyreduce:
break
;
break
;
case
13
:
case
13
:
#line 49
5
"asn1p_y.y"
#line 49
4
"asn1p_y.y"
{
{
(
yyval
.
a_oid
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_oid
);
(
yyval
.
a_oid
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_oid
);
asn1p_oid_add_arc
((
yyval
.
a_oid
),
&
(
yyvsp
[(
2
)
-
(
2
)].
a_oid_arc
));
asn1p_oid_add_arc
((
yyval
.
a_oid
),
&
(
yyvsp
[(
2
)
-
(
2
)].
a_oid_arc
));
...
@@ -2443,7 +2442,7 @@ yyreduce:
...
@@ -2443,7 +2442,7 @@ yyreduce:
break
;
break
;
case
14
:
case
14
:
#line 50
4
"asn1p_y.y"
#line 50
3
"asn1p_y.y"
{
/* iso */
{
/* iso */
(
yyval
.
a_oid_arc
).
name
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
a_oid_arc
).
name
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
a_oid_arc
).
number
=
-
1
;
(
yyval
.
a_oid_arc
).
number
=
-
1
;
...
@@ -2451,7 +2450,7 @@ yyreduce:
...
@@ -2451,7 +2450,7 @@ yyreduce:
break
;
break
;
case
15
:
case
15
:
#line 50
8
"asn1p_y.y"
#line 50
7
"asn1p_y.y"
{
/* iso(1) */
{
/* iso(1) */
(
yyval
.
a_oid_arc
).
name
=
(
yyvsp
[(
1
)
-
(
4
)].
tv_str
);
(
yyval
.
a_oid_arc
).
name
=
(
yyvsp
[(
1
)
-
(
4
)].
tv_str
);
(
yyval
.
a_oid_arc
).
number
=
(
yyvsp
[(
3
)
-
(
4
)].
a_int
);
(
yyval
.
a_oid_arc
).
number
=
(
yyvsp
[(
3
)
-
(
4
)].
a_int
);
...
@@ -2459,7 +2458,7 @@ yyreduce:
...
@@ -2459,7 +2458,7 @@ yyreduce:
break
;
break
;
case
16
:
case
16
:
#line 51
2
"asn1p_y.y"
#line 51
1
"asn1p_y.y"
{
/* 1 */
{
/* 1 */
(
yyval
.
a_oid_arc
).
name
=
0
;
(
yyval
.
a_oid_arc
).
name
=
0
;
(
yyval
.
a_oid_arc
).
number
=
(
yyvsp
[(
1
)
-
(
1
)].
a_int
);
(
yyval
.
a_oid_arc
).
number
=
(
yyvsp
[(
1
)
-
(
1
)].
a_int
);
...
@@ -2467,61 +2466,61 @@ yyreduce:
...
@@ -2467,61 +2466,61 @@ yyreduce:
break
;
break
;
case
17
:
case
17
:
#line 52
2
"asn1p_y.y"
#line 52
1
"asn1p_y.y"
{
(
yyval
.
a_module_flags
)
=
MSF_NOFLAGS
;
}
{
(
yyval
.
a_module_flags
)
=
MSF_NOFLAGS
;
}
break
;
break
;
case
18
:
case
18
:
#line 52
3
"asn1p_y.y"
#line 52
2
"asn1p_y.y"
{
{
(
yyval
.
a_module_flags
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_module_flags
);
(
yyval
.
a_module_flags
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_module_flags
);
}
}
break
;
break
;
case
19
:
case
19
:
#line 53
2
"asn1p_y.y"
#line 53
1
"asn1p_y.y"
{
{
(
yyval
.
a_module_flags
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_module_flags
);
(
yyval
.
a_module_flags
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_module_flags
);
}
}
break
;
break
;
case
20
:
case
20
:
#line 53
5
"asn1p_y.y"
#line 53
4
"asn1p_y.y"
{
{
(
yyval
.
a_module_flags
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_module_flags
)
|
(
yyvsp
[(
2
)
-
(
2
)].
a_module_flags
);
(
yyval
.
a_module_flags
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_module_flags
)
|
(
yyvsp
[(
2
)
-
(
2
)].
a_module_flags
);
}
}
break
;
break
;
case
21
:
case
21
:
#line 54
4
"asn1p_y.y"
#line 54
3
"asn1p_y.y"
{
{
(
yyval
.
a_module_flags
)
=
MSF_EXPLICIT_TAGS
;
(
yyval
.
a_module_flags
)
=
MSF_EXPLICIT_TAGS
;
}
}
break
;
break
;
case
22
:
case
22
:
#line 54
7
"asn1p_y.y"
#line 54
6
"asn1p_y.y"
{
{
(
yyval
.
a_module_flags
)
=
MSF_IMPLICIT_TAGS
;
(
yyval
.
a_module_flags
)
=
MSF_IMPLICIT_TAGS
;
}
}
break
;
break
;
case
23
:
case
23
:
#line 5
50
"asn1p_y.y"
#line 5
49
"asn1p_y.y"
{
{
(
yyval
.
a_module_flags
)
=
MSF_AUTOMATIC_TAGS
;
(
yyval
.
a_module_flags
)
=
MSF_AUTOMATIC_TAGS
;
}
}
break
;
break
;
case
24
:
case
24
:
#line 55
3
"asn1p_y.y"
#line 55
2
"asn1p_y.y"
{
{
(
yyval
.
a_module_flags
)
=
MSF_EXTENSIBILITY_IMPLIED
;
(
yyval
.
a_module_flags
)
=
MSF_EXTENSIBILITY_IMPLIED
;
}
}
break
;
break
;
case
25
:
case
25
:
#line 55
7
"asn1p_y.y"
#line 55
6
"asn1p_y.y"
{
{
/* X.680Amd1 specifies TAG and XER */
/* X.680Amd1 specifies TAG and XER */
if
(
strcmp
((
yyvsp
[(
1
)
-
(
2
)].
tv_str
),
"TAG"
)
==
0
)
{
if
(
strcmp
((
yyvsp
[(
1
)
-
(
2
)].
tv_str
),
"TAG"
)
==
0
)
{
...
@@ -2540,24 +2539,24 @@ yyreduce:
...
@@ -2540,24 +2539,24 @@ yyreduce:
break
;
break
;
case
26
:
case
26
:
#line 57
8
"asn1p_y.y"
#line 57
7
"asn1p_y.y"
{
(
yyval
.
a_module
)
=
0
;
}
{
(
yyval
.
a_module
)
=
0
;
}
break
;
break
;
case
27
:
case
27
:
#line 57
9
"asn1p_y.y"
#line 57
8
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_module
);
(
yyval
.
a_module
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_module
);
}
}
break
;
break
;
case
28
:
case
28
:
#line 58
8
"asn1p_y.y"
#line 58
7
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
asn1p_module_new
();
(
yyval
.
a_module
)
=
asn1p_module_new
();
AL_IMPORT
((
yyval
.
a_module
),
exports
,
(
yyvsp
[(
1
)
-
(
3
)].
a_module
),
xp_next
);
AL_IMPORT
((
yyval
.
a_module
),
exports
,
(
yyvsp
[(
1
)
-
(
3
)].
a_module
),
xp_next
);
AL_IMPORT
((
yyval
.
a_module
),
imports
,
(
yyvsp
[(
2
)
-
(
3
)].
a_module
),
xp_next
);
AL_IMPORT
((
yyval
.
a_module
),
imports
,
(
yyvsp
[(
2
)
-
(
3
)].
a_module
),
xp_next
);
AL_IMPORT
((
yyval
.
a_module
),
members
,
(
yyvsp
[(
3
)
-
(
3
)].
a_module
),
next
);
asn1p_module_move_members
((
yyval
.
a_module
),
(
yyvsp
[(
3
)
-
(
3
)].
a_module
)
);
asn1p_module_free
((
yyvsp
[(
1
)
-
(
3
)].
a_module
));
asn1p_module_free
((
yyvsp
[(
1
)
-
(
3
)].
a_module
));
asn1p_module_free
((
yyvsp
[(
2
)
-
(
3
)].
a_module
));
asn1p_module_free
((
yyvsp
[(
2
)
-
(
3
)].
a_module
));
...
@@ -2566,14 +2565,14 @@ yyreduce:
...
@@ -2566,14 +2565,14 @@ yyreduce:
break
;
break
;
case
29
:
case
29
:
#line 60
1
"asn1p_y.y"
#line 60
0
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_module
);
(
yyval
.
a_module
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_module
);
}
}
break
;
break
;
case
30
:
case
30
:
#line 60
4
"asn1p_y.y"
#line 60
3
"asn1p_y.y"
{
{
if
((
yyvsp
[(
1
)
-
(
2
)].
a_module
))
{
if
((
yyvsp
[(
1
)
-
(
2
)].
a_module
))
{
(
yyval
.
a_module
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_module
);
(
yyval
.
a_module
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_module
);
...
@@ -2581,51 +2580,51 @@ yyreduce:
...
@@ -2581,51 +2580,51 @@ yyreduce:
(
yyval
.
a_module
)
=
(
yyvsp
[(
2
)
-
(
2
)].
a_module
);
(
yyval
.
a_module
)
=
(
yyvsp
[(
2
)
-
(
2
)].
a_module
);
break
;
break
;
}
}
AL_IMPORT
((
yyval
.
a_module
),
members
,
(
yyvsp
[(
2
)
-
(
2
)].
a_module
),
next
);
asn1p_module_move_members
((
yyval
.
a_module
),
(
yyvsp
[(
2
)
-
(
2
)].
a_module
)
);
asn1p_module_free
((
yyvsp
[(
2
)
-
(
2
)].
a_module
));
asn1p_module_free
((
yyvsp
[(
2
)
-
(
2
)].
a_module
));
}
}
break
;
break
;
case
31
:
case
31
:
#line 62
1
"asn1p_y.y"
#line 62
0
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
asn1p_module_new
();
(
yyval
.
a_module
)
=
asn1p_module_new
();
checkmem
((
yyval
.
a_module
));
checkmem
((
yyval
.
a_module
));
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
expr_type
!=
A1TC_INVALID
);
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
expr_type
!=
A1TC_INVALID
);
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
meta_type
!=
AMT_INVALID
);
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
meta_type
!=
AMT_INVALID
);
TQ_ADD
(
&
((
yyval
.
a_module
)
->
members
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
),
next
);
asn1p_module_member_add
((
yyval
.
a_module
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
);
}
}
break
;
break
;
case
32
:
case
32
:
#line 62
8
"asn1p_y.y"
#line 62
7
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
asn1p_module_new
();
(
yyval
.
a_module
)
=
asn1p_module_new
();
checkmem
((
yyval
.
a_module
));
checkmem
((
yyval
.
a_module
));
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
expr_type
!=
A1TC_INVALID
);
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
expr_type
!=
A1TC_INVALID
);
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
meta_type
!=
AMT_INVALID
);
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
meta_type
!=
AMT_INVALID
);
TQ_ADD
(
&
((
yyval
.
a_module
)
->
members
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
),
next
);
asn1p_module_member_add
((
yyval
.
a_module
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
);
}
}
break
;
break
;
case
33
:
case
33
:
#line 64
2
"asn1p_y.y"
#line 64
1
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
asn1p_module_new
();
(
yyval
.
a_module
)
=
asn1p_module_new
();
checkmem
((
yyval
.
a_module
));
checkmem
((
yyval
.
a_module
));
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
expr_type
!=
A1TC_INVALID
);
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
expr_type
!=
A1TC_INVALID
);
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
meta_type
!=
AMT_INVALID
);
assert
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
->
meta_type
!=
AMT_INVALID
);
TQ_ADD
(
&
((
yyval
.
a_module
)
->
members
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
),
next
);
asn1p_module_member_add
((
yyval
.
a_module
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
)
);
}
}
break
;
break
;
case
34
:
case
34
:
#line 6
50
"asn1p_y.y"
#line 6
49
"asn1p_y.y"
{
asn1p_lexer_hack_push_encoding_control
();
}
{
asn1p_lexer_hack_push_encoding_control
();
}
break
;
break
;
case
35
:
case
35
:
#line 65
1
"asn1p_y.y"
#line 65
0
"asn1p_y.y"
{
{
fprintf
(
stderr
,
fprintf
(
stderr
,
"WARNING: ENCODING-CONTROL %s "
"WARNING: ENCODING-CONTROL %s "
...
@@ -2637,7 +2636,7 @@ yyreduce:
...
@@ -2637,7 +2636,7 @@ yyreduce:
break
;
break
;
case
36
:
case
36
:
#line 66
3
"asn1p_y.y"
#line 66
2
"asn1p_y.y"
{
{
return
yyerror
(
return
yyerror
(
"Attempt to redefine a standard basic string type, "
"Attempt to redefine a standard basic string type, "
...
@@ -2646,12 +2645,12 @@ yyreduce:
...
@@ -2646,12 +2645,12 @@ yyreduce:
break
;
break
;
case
37
:
case
37
:
#line 67
6
"asn1p_y.y"
#line 67
5
"asn1p_y.y"
{
(
yyval
.
a_module
)
=
0
;
}
{
(
yyval
.
a_module
)
=
0
;
}
break
;
break
;
case
39
:
case
39
:
#line 6
80
"asn1p_y.y"
#line 6
79
"asn1p_y.y"
{
{
if
(
!
saved_aid
&&
0
)
if
(
!
saved_aid
&&
0
)
return
yyerror
(
"Unterminated IMPORTS FROM, "
return
yyerror
(
"Unterminated IMPORTS FROM, "
...
@@ -2662,19 +2661,19 @@ yyreduce:
...
@@ -2662,19 +2661,19 @@ yyreduce:
break
;
break
;
case
40
:
case
40
:
#line 6
90
"asn1p_y.y"
#line 6
89
"asn1p_y.y"
{
{
return
yyerror
(
"Empty IMPORTS list"
);
return
yyerror
(
"Empty IMPORTS list"
);
}
}
break
;
break
;
case
41
:
case
41
:
#line 69
6
"asn1p_y.y"
#line 69
5
"asn1p_y.y"
{
(
yyval
.
a_module
)
=
asn1p_module_new
();
}
{
(
yyval
.
a_module
)
=
asn1p_module_new
();
}
break
;
break
;
case
43
:
case
43
:
#line
700
"asn1p_y.y"
#line
699
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
asn1p_module_new
();
(
yyval
.
a_module
)
=
asn1p_module_new
();
checkmem
((
yyval
.
a_module
));
checkmem
((
yyval
.
a_module
));
...
@@ -2683,7 +2682,7 @@ yyreduce:
...
@@ -2683,7 +2682,7 @@ yyreduce:
break
;
break
;
case
44
:
case
44
:
#line 70
5
"asn1p_y.y"
#line 70
4
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_module
);
(
yyval
.
a_module
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_module
);
TQ_ADD
(
&
((
yyval
.
a_module
)
->
imports
),
(
yyvsp
[(
2
)
-
(
2
)].
a_xports
),
xp_next
);
TQ_ADD
(
&
((
yyval
.
a_module
)
->
imports
),
(
yyvsp
[(
2
)
-
(
2
)].
a_xports
),
xp_next
);
...
@@ -2691,17 +2690,17 @@ yyreduce:
...
@@ -2691,17 +2690,17 @@ yyreduce:
break
;
break
;
case
45
:
case
45
:
#line 71
2
"asn1p_y.y"
#line 71
1
"asn1p_y.y"
{
memset
(
&
(
yyval
.
a_aid
),
0
,
sizeof
((
yyval
.
a_aid
)));
}
{
memset
(
&
(
yyval
.
a_aid
),
0
,
sizeof
((
yyval
.
a_aid
)));
}
break
;
break
;
case
46
:
case
46
:
#line 71
3
"asn1p_y.y"
#line 71
2
"asn1p_y.y"
{
(
yyval
.
a_aid
).
oid
=
(
yyvsp
[(
1
)
-
(
1
)].
a_oid
);
}
{
(
yyval
.
a_aid
).
oid
=
(
yyvsp
[(
1
)
-
(
1
)].
a_oid
);
}
break
;
break
;
case
47
:
case
47
:
#line 71
7
"asn1p_y.y"
#line 71
6
"asn1p_y.y"
{
{
(
yyval
.
a_xports
)
=
(
yyvsp
[(
1
)
-
(
4
)].
a_xports
);
(
yyval
.
a_xports
)
=
(
yyvsp
[(
1
)
-
(
4
)].
a_xports
);
(
yyval
.
a_xports
)
->
fromModuleName
=
(
yyvsp
[(
3
)
-
(
4
)].
tv_str
);
(
yyval
.
a_xports
)
->
fromModuleName
=
(
yyvsp
[(
3
)
-
(
4
)].
tv_str
);
...
@@ -2713,24 +2712,24 @@ yyreduce:
...
@@ -2713,24 +2712,24 @@ yyreduce:
break
;
break
;
case
48
:
case
48
:
#line 72
8
"asn1p_y.y"
#line 72
7
"asn1p_y.y"
{
{
(
yyval
.
a_xports
)
=
asn1p_xports_new
();
(
yyval
.
a_xports
)
=
asn1p_xports_new
();
checkmem
((
yyval
.
a_xports
));
checkmem
((
yyval
.
a_xports
));
TQ_ADD
(
&
((
yyval
.
a_xports
)
->
members
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
),
next
);
TQ_ADD
(
&
((
yyval
.
a_xports
)
->
xp_
members
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
),
next
);
}
}
break
;
break
;
case
49
:
case
49
:
#line 73
3
"asn1p_y.y"
#line 73
2
"asn1p_y.y"
{
{
(
yyval
.
a_xports
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_xports
);
(
yyval
.
a_xports
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_xports
);
TQ_ADD
(
&
((
yyval
.
a_xports
)
->
members
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
),
next
);
TQ_ADD
(
&
((
yyval
.
a_xports
)
->
xp_
members
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
),
next
);
}
}
break
;
break
;
case
50
:
case
50
:
#line 7
40
"asn1p_y.y"
#line 7
39
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -2740,7 +2739,7 @@ yyreduce:
...
@@ -2740,7 +2739,7 @@ yyreduce:
break
;
break
;
case
51
:
case
51
:
#line 74
6
"asn1p_y.y"
#line 74
5
"asn1p_y.y"
{
/* Completely equivalent to above */
{
/* Completely equivalent to above */
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -2750,7 +2749,7 @@ yyreduce:
...
@@ -2750,7 +2749,7 @@ yyreduce:
break
;
break
;
case
52
:
case
52
:
#line 75
2
"asn1p_y.y"
#line 75
1
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -2760,12 +2759,12 @@ yyreduce:
...
@@ -2760,12 +2759,12 @@ yyreduce:
break
;
break
;
case
53
:
case
53
:
#line 76
2
"asn1p_y.y"
#line 76
1
"asn1p_y.y"
{
(
yyval
.
a_module
)
=
0
;
}
{
(
yyval
.
a_module
)
=
0
;
}
break
;
break
;
case
54
:
case
54
:
#line 76
3
"asn1p_y.y"
#line 76
2
"asn1p_y.y"
{
{
(
yyval
.
a_module
)
=
asn1p_module_new
();
(
yyval
.
a_module
)
=
asn1p_module_new
();
checkmem
((
yyval
.
a_module
));
checkmem
((
yyval
.
a_module
));
...
@@ -2778,21 +2777,21 @@ yyreduce:
...
@@ -2778,21 +2777,21 @@ yyreduce:
break
;
break
;
case
55
:
case
55
:
#line 77
5
"asn1p_y.y"
#line 77
4
"asn1p_y.y"
{
{
(
yyval
.
a_xports
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_xports
);
(
yyval
.
a_xports
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_xports
);
}
}
break
;
break
;
case
56
:
case
56
:
#line 77
8
"asn1p_y.y"
#line 77
7
"asn1p_y.y"
{
{
(
yyval
.
a_xports
)
=
0
;
(
yyval
.
a_xports
)
=
0
;
}
}
break
;
break
;
case
57
:
case
57
:
#line 78
1
"asn1p_y.y"
#line 78
0
"asn1p_y.y"
{
{
/* Empty EXPORTS clause effectively prohibits export. */
/* Empty EXPORTS clause effectively prohibits export. */
(
yyval
.
a_xports
)
=
asn1p_xports_new
();
(
yyval
.
a_xports
)
=
asn1p_xports_new
();
...
@@ -2801,24 +2800,24 @@ yyreduce:
...
@@ -2801,24 +2800,24 @@ yyreduce:
break
;
break
;
case
58
:
case
58
:
#line 78
9
"asn1p_y.y"
#line 78
8
"asn1p_y.y"
{
{
(
yyval
.
a_xports
)
=
asn1p_xports_new
();
(
yyval
.
a_xports
)
=
asn1p_xports_new
();
assert
((
yyval
.
a_xports
));
assert
((
yyval
.
a_xports
));
TQ_ADD
(
&
((
yyval
.
a_xports
)
->
members
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
),
next
);
TQ_ADD
(
&
((
yyval
.
a_xports
)
->
xp_
members
),
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
),
next
);
}
}
break
;
break
;
case
59
:
case
59
:
#line 79
4
"asn1p_y.y"
#line 79
3
"asn1p_y.y"
{
{
(
yyval
.
a_xports
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_xports
);
(
yyval
.
a_xports
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_xports
);
TQ_ADD
(
&
((
yyval
.
a_xports
)
->
members
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
),
next
);
TQ_ADD
(
&
((
yyval
.
a_xports
)
->
xp_
members
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
),
next
);
}
}
break
;
break
;
case
60
:
case
60
:
#line 80
1
"asn1p_y.y"
#line 80
0
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -2828,7 +2827,7 @@ yyreduce:
...
@@ -2828,7 +2827,7 @@ yyreduce:
break
;
break
;
case
61
:
case
61
:
#line 80
7
"asn1p_y.y"
#line 80
6
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -2838,7 +2837,7 @@ yyreduce:
...
@@ -2838,7 +2837,7 @@ yyreduce:
break
;
break
;
case
62
:
case
62
:
#line 81
3
"asn1p_y.y"
#line 81
2
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -2848,12 +2847,12 @@ yyreduce:
...
@@ -2848,12 +2847,12 @@ yyreduce:
break
;
break
;
case
63
:
case
63
:
#line 82
2
"asn1p_y.y"
#line 82
1
"asn1p_y.y"
{
(
yyval
.
a_constr
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_constr
);
}
{
(
yyval
.
a_constr
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_constr
);
}
break
;
break
;
case
64
:
case
64
:
#line 82
5
"asn1p_y.y"
#line 82
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
4
)].
a_expr
);
assert
((
yyval
.
a_expr
)
->
Identifier
==
0
);
assert
((
yyval
.
a_expr
)
->
Identifier
==
0
);
...
@@ -2864,7 +2863,7 @@ yyreduce:
...
@@ -2864,7 +2863,7 @@ yyreduce:
break
;
break
;
case
65
:
case
65
:
#line 84
5
"asn1p_y.y"
#line 84
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -2875,7 +2874,7 @@ yyreduce:
...
@@ -2875,7 +2874,7 @@ yyreduce:
break
;
break
;
case
66
:
case
66
:
#line 85
5
"asn1p_y.y"
#line 85
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -2887,7 +2886,7 @@ yyreduce:
...
@@ -2887,7 +2886,7 @@ yyreduce:
break
;
break
;
case
67
:
case
67
:
#line 87
5
"asn1p_y.y"
#line 87
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
3
)].
tv_str
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
3
)].
tv_str
);
...
@@ -2897,7 +2896,7 @@ yyreduce:
...
@@ -2897,7 +2896,7 @@ yyreduce:
break
;
break
;
case
68
:
case
68
:
#line 88
1
"asn1p_y.y"
#line 88
0
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
3
)].
tv_str
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
3
)].
tv_str
);
...
@@ -2907,7 +2906,7 @@ yyreduce:
...
@@ -2907,7 +2906,7 @@ yyreduce:
break
;
break
;
case
69
:
case
69
:
#line 89
7
"asn1p_y.y"
#line 89
6
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
6
)
-
(
6
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
6
)
-
(
6
)].
a_expr
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
6
)].
tv_str
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
6
)].
tv_str
);
...
@@ -2916,7 +2915,7 @@ yyreduce:
...
@@ -2916,7 +2915,7 @@ yyreduce:
break
;
break
;
case
70
:
case
70
:
#line 90
3
"asn1p_y.y"
#line 90
2
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
6
)
-
(
6
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
6
)
-
(
6
)].
a_expr
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
6
)].
tv_str
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
6
)].
tv_str
);
...
@@ -2925,7 +2924,7 @@ yyreduce:
...
@@ -2925,7 +2924,7 @@ yyreduce:
break
;
break
;
case
71
:
case
71
:
#line 91
1
"asn1p_y.y"
#line 91
0
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_plist
)
=
asn1p_paramlist_new
(
yylineno
);
(
yyval
.
a_plist
)
=
asn1p_paramlist_new
(
yylineno
);
...
@@ -2938,7 +2937,7 @@ yyreduce:
...
@@ -2938,7 +2937,7 @@ yyreduce:
break
;
break
;
case
72
:
case
72
:
#line 9
20
"asn1p_y.y"
#line 9
19
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_plist
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_plist
);
(
yyval
.
a_plist
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_plist
);
...
@@ -2950,7 +2949,7 @@ yyreduce:
...
@@ -2950,7 +2949,7 @@ yyreduce:
break
;
break
;
case
73
:
case
73
:
#line 93
1
"asn1p_y.y"
#line 93
0
"asn1p_y.y"
{
{
(
yyval
.
a_parg
).
governor
=
NULL
;
(
yyval
.
a_parg
).
governor
=
NULL
;
(
yyval
.
a_parg
).
argument
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
a_parg
).
argument
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
...
@@ -2958,7 +2957,7 @@ yyreduce:
...
@@ -2958,7 +2957,7 @@ yyreduce:
break
;
break
;
case
74
:
case
74
:
#line 93
5
"asn1p_y.y"
#line 93
4
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_parg
).
governor
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_parg
).
governor
=
asn1p_ref_new
(
yylineno
,
currentModule
);
...
@@ -2970,7 +2969,7 @@ yyreduce:
...
@@ -2970,7 +2969,7 @@ yyreduce:
break
;
break
;
case
75
:
case
75
:
#line 94
3
"asn1p_y.y"
#line 94
2
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_parg
).
governor
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_parg
).
governor
=
asn1p_ref_new
(
yylineno
,
currentModule
);
...
@@ -2982,7 +2981,7 @@ yyreduce:
...
@@ -2982,7 +2981,7 @@ yyreduce:
break
;
break
;
case
76
:
case
76
:
#line 95
1
"asn1p_y.y"
#line 95
0
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_parg
).
governor
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_parg
).
governor
=
asn1p_ref_new
(
yylineno
,
currentModule
);
...
@@ -2994,7 +2993,7 @@ yyreduce:
...
@@ -2994,7 +2993,7 @@ yyreduce:
break
;
break
;
case
77
:
case
77
:
#line 95
9
"asn1p_y.y"
#line 95
8
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_parg
).
governor
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_parg
).
governor
=
asn1p_ref_new
(
yylineno
,
currentModule
);
...
@@ -3006,7 +3005,7 @@ yyreduce:
...
@@ -3006,7 +3005,7 @@ yyreduce:
break
;
break
;
case
78
:
case
78
:
#line 9
70
"asn1p_y.y"
#line 9
69
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3015,7 +3014,7 @@ yyreduce:
...
@@ -3015,7 +3014,7 @@ yyreduce:
break
;
break
;
case
79
:
case
79
:
#line 97
5
"asn1p_y.y"
#line 97
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
...
@@ -3023,7 +3022,7 @@ yyreduce:
...
@@ -3023,7 +3022,7 @@ yyreduce:
break
;
break
;
case
81
:
case
81
:
#line 98
3
"asn1p_y.y"
#line 98
2
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3035,7 +3034,7 @@ yyreduce:
...
@@ -3035,7 +3034,7 @@ yyreduce:
break
;
break
;
case
82
:
case
82
:
#line 99
1
"asn1p_y.y"
#line 99
0
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3047,7 +3046,7 @@ yyreduce:
...
@@ -3047,7 +3046,7 @@ yyreduce:
break
;
break
;
case
83
:
case
83
:
#line 99
9
"asn1p_y.y"
#line 99
8
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
->
expr_type
=
A1TC_VALUESET
;
(
yyval
.
a_expr
)
->
expr_type
=
A1TC_VALUESET
;
...
@@ -3057,17 +3056,17 @@ yyreduce:
...
@@ -3057,17 +3056,17 @@ yyreduce:
break
;
break
;
case
84
:
case
84
:
#line 102
2
"asn1p_y.y"
#line 102
1
"asn1p_y.y"
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
}
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
}
break
;
break
;
case
85
:
case
85
:
#line 102
3
"asn1p_y.y"
#line 102
2
"asn1p_y.y"
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
}
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
}
break
;
break
;
case
86
:
case
86
:
#line 102
6
"asn1p_y.y"
#line 102
5
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3076,7 +3075,7 @@ yyreduce:
...
@@ -3076,7 +3075,7 @@ yyreduce:
break
;
break
;
case
87
:
case
87
:
#line 103
1
"asn1p_y.y"
#line 103
0
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
...
@@ -3084,7 +3083,7 @@ yyreduce:
...
@@ -3084,7 +3083,7 @@ yyreduce:
break
;
break
;
case
88
:
case
88
:
#line 103
5
"asn1p_y.y"
#line 103
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
5
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
5
)].
a_expr
);
asn1p_expr_add_many
((
yyval
.
a_expr
),
(
yyvsp
[(
4
)
-
(
5
)].
a_expr
));
asn1p_expr_add_many
((
yyval
.
a_expr
),
(
yyvsp
[(
4
)
-
(
5
)].
a_expr
));
...
@@ -3093,7 +3092,7 @@ yyreduce:
...
@@ -3093,7 +3092,7 @@ yyreduce:
break
;
break
;
case
89
:
case
89
:
#line 104
3
"asn1p_y.y"
#line 104
2
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_expr
);
assert
((
yyval
.
a_expr
)
->
Identifier
==
0
);
assert
((
yyval
.
a_expr
)
->
Identifier
==
0
);
...
@@ -3104,7 +3103,7 @@ yyreduce:
...
@@ -3104,7 +3103,7 @@ yyreduce:
break
;
break
;
case
90
:
case
90
:
#line 10
50
"asn1p_y.y"
#line 10
49
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_expr
);
(
yyvsp
[(
2
)
-
(
2
)].
a_marker
).
flags
|=
(
yyval
.
a_expr
)
->
marker
.
flags
;
(
yyvsp
[(
2
)
-
(
2
)].
a_marker
).
flags
|=
(
yyval
.
a_expr
)
->
marker
.
flags
;
...
@@ -3114,7 +3113,7 @@ yyreduce:
...
@@ -3114,7 +3113,7 @@ yyreduce:
break
;
break
;
case
91
:
case
91
:
#line 105
6
"asn1p_y.y"
#line 105
5
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3125,14 +3124,14 @@ yyreduce:
...
@@ -3125,14 +3124,14 @@ yyreduce:
break
;
break
;
case
92
:
case
92
:
#line 106
3
"asn1p_y.y"
#line 106
2
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
}
}
break
;
break
;
case
93
:
case
93
:
#line 106
9
"asn1p_y.y"
#line 106
8
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3141,7 +3140,7 @@ yyreduce:
...
@@ -3141,7 +3140,7 @@ yyreduce:
break
;
break
;
case
94
:
case
94
:
#line 107
4
"asn1p_y.y"
#line 107
3
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
...
@@ -3149,7 +3148,7 @@ yyreduce:
...
@@ -3149,7 +3148,7 @@ yyreduce:
break
;
break
;
case
95
:
case
95
:
#line 108
1
"asn1p_y.y"
#line 108
0
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
2
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
2
)].
a_expr
);
assert
((
yyval
.
a_expr
)
->
Identifier
==
0
);
assert
((
yyval
.
a_expr
)
->
Identifier
==
0
);
...
@@ -3158,14 +3157,14 @@ yyreduce:
...
@@ -3158,14 +3157,14 @@ yyreduce:
break
;
break
;
case
96
:
case
96
:
#line 108
6
"asn1p_y.y"
#line 108
5
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
}
}
break
;
break
;
case
97
:
case
97
:
#line 108
9
"asn1p_y.y"
#line 108
8
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
_fixup_anonymous_identifier
((
yyval
.
a_expr
));
_fixup_anonymous_identifier
((
yyval
.
a_expr
));
...
@@ -3173,7 +3172,7 @@ yyreduce:
...
@@ -3173,7 +3172,7 @@ yyreduce:
break
;
break
;
case
98
:
case
98
:
#line 109
6
"asn1p_y.y"
#line 109
5
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
5
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
5
)].
a_expr
);
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3184,17 +3183,17 @@ yyreduce:
...
@@ -3184,17 +3183,17 @@ yyreduce:
break
;
break
;
case
99
:
case
99
:
#line 110
6
"asn1p_y.y"
#line 110
5
"asn1p_y.y"
{
(
yyval
.
a_int
)
=
0
;
}
{
(
yyval
.
a_int
)
=
0
;
}
break
;
break
;
case
100
:
case
100
:
#line 110
7
"asn1p_y.y"
#line 110
6
"asn1p_y.y"
{
(
yyval
.
a_int
)
=
1
;
}
{
(
yyval
.
a_int
)
=
1
;
}
break
;
break
;
case
101
:
case
101
:
#line 111
1
"asn1p_y.y"
#line 111
0
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3205,7 +3204,7 @@ yyreduce:
...
@@ -3205,7 +3204,7 @@ yyreduce:
break
;
break
;
case
102
:
case
102
:
#line 111
8
"asn1p_y.y"
#line 111
7
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
...
@@ -3213,7 +3212,7 @@ yyreduce:
...
@@ -3213,7 +3212,7 @@ yyreduce:
break
;
break
;
case
103
:
case
103
:
#line 112
8
"asn1p_y.y"
#line 112
7
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3225,7 +3224,7 @@ yyreduce:
...
@@ -3225,7 +3224,7 @@ yyreduce:
break
;
break
;
case
104
:
case
104
:
#line 113
8
"asn1p_y.y"
#line 113
7
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
4
)].
tv_str
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
4
)].
tv_str
);
...
@@ -3238,7 +3237,7 @@ yyreduce:
...
@@ -3238,7 +3237,7 @@ yyreduce:
break
;
break
;
case
105
:
case
105
:
#line 114
9
"asn1p_y.y"
#line 114
8
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
3
)].
tv_str
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
3
)].
tv_str
);
...
@@ -3250,7 +3249,7 @@ yyreduce:
...
@@ -3250,7 +3249,7 @@ yyreduce:
break
;
break
;
case
106
:
case
106
:
#line 115
9
"asn1p_y.y"
#line 115
8
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3263,7 +3262,7 @@ yyreduce:
...
@@ -3263,7 +3262,7 @@ yyreduce:
break
;
break
;
case
107
:
case
107
:
#line 11
70
"asn1p_y.y"
#line 11
69
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
3
)].
tv_str
);
(
yyval
.
a_expr
)
->
Identifier
=
(
yyvsp
[(
1
)
-
(
3
)].
tv_str
);
...
@@ -3275,7 +3274,7 @@ yyreduce:
...
@@ -3275,7 +3274,7 @@ yyreduce:
break
;
break
;
case
108
:
case
108
:
#line 11
80
"asn1p_y.y"
#line 11
79
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3288,7 +3287,7 @@ yyreduce:
...
@@ -3288,7 +3287,7 @@ yyreduce:
break
;
break
;
case
109
:
case
109
:
#line 119
1
"asn1p_y.y"
#line 119
0
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3301,31 +3300,31 @@ yyreduce:
...
@@ -3301,31 +3300,31 @@ yyreduce:
break
;
break
;
case
110
:
case
110
:
#line 120
3
"asn1p_y.y"
#line 120
2
"asn1p_y.y"
{
(
yyval
.
a_wsynt
)
=
0
;
}
{
(
yyval
.
a_wsynt
)
=
0
;
}
break
;
break
;
case
111
:
case
111
:
#line 120
4
"asn1p_y.y"
#line 120
3
"asn1p_y.y"
{
{
(
yyval
.
a_wsynt
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_wsynt
);
(
yyval
.
a_wsynt
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_wsynt
);
}
}
break
;
break
;
case
112
:
case
112
:
#line 121
1
"asn1p_y.y"
#line 121
0
"asn1p_y.y"
{
asn1p_lexer_hack_enable_with_syntax
();
}
{
asn1p_lexer_hack_enable_with_syntax
();
}
break
;
break
;
case
113
:
case
113
:
#line 121
3
"asn1p_y.y"
#line 121
2
"asn1p_y.y"
{
{
(
yyval
.
a_wsynt
)
=
(
yyvsp
[(
5
)
-
(
6
)].
a_wsynt
);
(
yyval
.
a_wsynt
)
=
(
yyvsp
[(
5
)
-
(
6
)].
a_wsynt
);
}
}
break
;
break
;
case
114
:
case
114
:
#line 121
9
"asn1p_y.y"
#line 121
8
"asn1p_y.y"
{
{
(
yyval
.
a_wsynt
)
=
asn1p_wsyntx_new
();
(
yyval
.
a_wsynt
)
=
asn1p_wsyntx_new
();
TQ_ADD
(
&
((
yyval
.
a_wsynt
)
->
chunks
),
(
yyvsp
[(
1
)
-
(
1
)].
a_wchunk
),
next
);
TQ_ADD
(
&
((
yyval
.
a_wsynt
)
->
chunks
),
(
yyvsp
[(
1
)
-
(
1
)].
a_wchunk
),
next
);
...
@@ -3333,7 +3332,7 @@ yyreduce:
...
@@ -3333,7 +3332,7 @@ yyreduce:
break
;
break
;
case
115
:
case
115
:
#line 122
3
"asn1p_y.y"
#line 122
2
"asn1p_y.y"
{
{
(
yyval
.
a_wsynt
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_wsynt
);
(
yyval
.
a_wsynt
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_wsynt
);
TQ_ADD
(
&
((
yyval
.
a_wsynt
)
->
chunks
),
(
yyvsp
[(
2
)
-
(
2
)].
a_wchunk
),
next
);
TQ_ADD
(
&
((
yyval
.
a_wsynt
)
->
chunks
),
(
yyvsp
[(
2
)
-
(
2
)].
a_wchunk
),
next
);
...
@@ -3341,7 +3340,7 @@ yyreduce:
...
@@ -3341,7 +3340,7 @@ yyreduce:
break
;
break
;
case
116
:
case
116
:
#line 12
30
"asn1p_y.y"
#line 12
29
"asn1p_y.y"
{
{
(
yyval
.
a_wchunk
)
=
asn1p_wsyntx_chunk_fromstring
((
yyvsp
[(
1
)
-
(
1
)].
tv_opaque
).
buf
,
0
);
(
yyval
.
a_wchunk
)
=
asn1p_wsyntx_chunk_fromstring
((
yyvsp
[(
1
)
-
(
1
)].
tv_opaque
).
buf
,
0
);
(
yyval
.
a_wchunk
)
->
type
=
WC_WHITESPACE
;
(
yyval
.
a_wchunk
)
->
type
=
WC_WHITESPACE
;
...
@@ -3349,14 +3348,14 @@ yyreduce:
...
@@ -3349,14 +3348,14 @@ yyreduce:
break
;
break
;
case
117
:
case
117
:
#line 123
4
"asn1p_y.y"
#line 123
3
"asn1p_y.y"
{
{
(
yyval
.
a_wchunk
)
=
asn1p_wsyntx_chunk_fromstring
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
0
);
(
yyval
.
a_wchunk
)
=
asn1p_wsyntx_chunk_fromstring
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
0
);
}
}
break
;
break
;
case
118
:
case
118
:
#line 123
7
"asn1p_y.y"
#line 123
6
"asn1p_y.y"
{
{
(
yyval
.
a_wchunk
)
=
asn1p_wsyntx_chunk_fromstring
((
yyvsp
[(
1
)
-
(
1
)].
a_refcomp
).
name
,
0
);
(
yyval
.
a_wchunk
)
=
asn1p_wsyntx_chunk_fromstring
((
yyvsp
[(
1
)
-
(
1
)].
a_refcomp
).
name
,
0
);
(
yyval
.
a_wchunk
)
->
type
=
WC_FIELD
;
(
yyval
.
a_wchunk
)
->
type
=
WC_FIELD
;
...
@@ -3364,14 +3363,14 @@ yyreduce:
...
@@ -3364,14 +3363,14 @@ yyreduce:
break
;
break
;
case
119
:
case
119
:
#line 124
1
"asn1p_y.y"
#line 124
0
"asn1p_y.y"
{
{
(
yyval
.
a_wchunk
)
=
asn1p_wsyntx_chunk_fromsyntax
((
yyvsp
[(
2
)
-
(
3
)].
a_wsynt
));
(
yyval
.
a_wchunk
)
=
asn1p_wsyntx_chunk_fromsyntax
((
yyvsp
[(
2
)
-
(
3
)].
a_wsynt
));
}
}
break
;
break
;
case
120
:
case
120
:
#line 124
7
"asn1p_y.y"
#line 124
6
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3383,7 +3382,7 @@ yyreduce:
...
@@ -3383,7 +3382,7 @@ yyreduce:
break
;
break
;
case
121
:
case
121
:
#line 125
5
"asn1p_y.y"
#line 125
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3396,7 +3395,7 @@ yyreduce:
...
@@ -3396,7 +3395,7 @@ yyreduce:
break
;
break
;
case
122
:
case
122
:
#line 126
4
"asn1p_y.y"
#line 126
3
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3409,7 +3408,7 @@ yyreduce:
...
@@ -3409,7 +3408,7 @@ yyreduce:
break
;
break
;
case
124
:
case
124
:
#line 127
8
"asn1p_y.y"
#line 127
7
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
2
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
2
)].
a_expr
);
(
yyval
.
a_expr
)
->
tag
=
(
yyvsp
[(
1
)
-
(
2
)].
a_tag
);
(
yyval
.
a_expr
)
->
tag
=
(
yyvsp
[(
1
)
-
(
2
)].
a_tag
);
...
@@ -3417,7 +3416,7 @@ yyreduce:
...
@@ -3417,7 +3416,7 @@ yyreduce:
break
;
break
;
case
125
:
case
125
:
#line 128
5
"asn1p_y.y"
#line 128
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_expr
);
/*
/*
...
@@ -3441,7 +3440,7 @@ yyreduce:
...
@@ -3441,7 +3440,7 @@ yyreduce:
break
;
break
;
case
126
:
case
126
:
#line 130
8
"asn1p_y.y"
#line 130
7
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_expr
);
/*
/*
...
@@ -3465,7 +3464,7 @@ yyreduce:
...
@@ -3465,7 +3464,7 @@ yyreduce:
break
;
break
;
case
127
:
case
127
:
#line 133
1
"asn1p_y.y"
#line 133
0
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
->
tag
=
(
yyvsp
[(
1
)
-
(
3
)].
a_tag
);
(
yyval
.
a_expr
)
->
tag
=
(
yyvsp
[(
1
)
-
(
3
)].
a_tag
);
...
@@ -3490,7 +3489,7 @@ yyreduce:
...
@@ -3490,7 +3489,7 @@ yyreduce:
break
;
break
;
case
128
:
case
128
:
#line 135
5
"asn1p_y.y"
#line 135
4
"asn1p_y.y"
{
{
(
yyval
.
a_int
)
=
asn1p_as_pointer
?
EM_INDIRECT
:
0
;
(
yyval
.
a_int
)
=
asn1p_as_pointer
?
EM_INDIRECT
:
0
;
asn1p_as_pointer
=
0
;
asn1p_as_pointer
=
0
;
...
@@ -3498,7 +3497,7 @@ yyreduce:
...
@@ -3498,7 +3497,7 @@ yyreduce:
break
;
break
;
case
129
:
case
129
:
#line 136
2
"asn1p_y.y"
#line 136
1
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
2
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
2
)].
a_expr
);
(
yyval
.
a_expr
)
->
marker
.
flags
|=
(
yyvsp
[(
1
)
-
(
2
)].
a_int
);
(
yyval
.
a_expr
)
->
marker
.
flags
|=
(
yyvsp
[(
1
)
-
(
2
)].
a_int
);
...
@@ -3518,7 +3517,7 @@ yyreduce:
...
@@ -3518,7 +3517,7 @@ yyreduce:
break
;
break
;
case
133
:
case
133
:
#line 138
6
"asn1p_y.y"
#line 138
5
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
assert
((
yyval
.
a_expr
)
->
expr_type
==
A1TC_INVALID
);
assert
((
yyval
.
a_expr
)
->
expr_type
==
A1TC_INVALID
);
...
@@ -3528,7 +3527,7 @@ yyreduce:
...
@@ -3528,7 +3527,7 @@ yyreduce:
break
;
break
;
case
134
:
case
134
:
#line 139
2
"asn1p_y.y"
#line 139
1
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
assert
((
yyval
.
a_expr
)
->
expr_type
==
A1TC_INVALID
);
assert
((
yyval
.
a_expr
)
->
expr_type
==
A1TC_INVALID
);
...
@@ -3538,7 +3537,7 @@ yyreduce:
...
@@ -3538,7 +3537,7 @@ yyreduce:
break
;
break
;
case
135
:
case
135
:
#line 139
8
"asn1p_y.y"
#line 139
7
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
assert
((
yyval
.
a_expr
)
->
expr_type
==
A1TC_INVALID
);
assert
((
yyval
.
a_expr
)
->
expr_type
==
A1TC_INVALID
);
...
@@ -3548,7 +3547,7 @@ yyreduce:
...
@@ -3548,7 +3547,7 @@ yyreduce:
break
;
break
;
case
136
:
case
136
:
#line 140
4
"asn1p_y.y"
#line 140
3
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3562,7 +3561,7 @@ yyreduce:
...
@@ -3562,7 +3561,7 @@ yyreduce:
break
;
break
;
case
137
:
case
137
:
#line 141
4
"asn1p_y.y"
#line 141
3
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3576,7 +3575,7 @@ yyreduce:
...
@@ -3576,7 +3575,7 @@ yyreduce:
break
;
break
;
case
138
:
case
138
:
#line 142
4
"asn1p_y.y"
#line 142
3
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3586,7 +3585,7 @@ yyreduce:
...
@@ -3586,7 +3585,7 @@ yyreduce:
break
;
break
;
case
139
:
case
139
:
#line 14
30
"asn1p_y.y"
#line 14
29
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
...
@@ -3602,7 +3601,7 @@ yyreduce:
...
@@ -3602,7 +3601,7 @@ yyreduce:
break
;
break
;
case
140
:
case
140
:
#line 144
2
"asn1p_y.y"
#line 144
1
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3613,7 +3612,7 @@ yyreduce:
...
@@ -3613,7 +3612,7 @@ yyreduce:
break
;
break
;
case
141
:
case
141
:
#line 145
7
"asn1p_y.y"
#line 145
6
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
...
@@ -3625,7 +3624,7 @@ yyreduce:
...
@@ -3625,7 +3624,7 @@ yyreduce:
break
;
break
;
case
142
:
case
142
:
#line 146
5
"asn1p_y.y"
#line 146
4
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
...
@@ -3637,7 +3636,7 @@ yyreduce:
...
@@ -3637,7 +3636,7 @@ yyreduce:
break
;
break
;
case
143
:
case
143
:
#line 147
3
"asn1p_y.y"
#line 147
2
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
...
@@ -3652,7 +3651,7 @@ yyreduce:
...
@@ -3652,7 +3651,7 @@ yyreduce:
break
;
break
;
case
144
:
case
144
:
#line 148
4
"asn1p_y.y"
#line 148
3
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
...
@@ -3667,7 +3666,7 @@ yyreduce:
...
@@ -3667,7 +3666,7 @@ yyreduce:
break
;
break
;
case
145
:
case
145
:
#line 149
5
"asn1p_y.y"
#line 149
4
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_ref
)
=
(
yyvsp
[(
3
)
-
(
3
)].
a_ref
);
(
yyval
.
a_ref
)
=
(
yyvsp
[(
3
)
-
(
3
)].
a_ref
);
...
@@ -3690,7 +3689,7 @@ yyreduce:
...
@@ -3690,7 +3689,7 @@ yyreduce:
break
;
break
;
case
146
:
case
146
:
#line 151
7
"asn1p_y.y"
#line 151
6
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
...
@@ -3702,7 +3701,7 @@ yyreduce:
...
@@ -3702,7 +3701,7 @@ yyreduce:
break
;
break
;
case
147
:
case
147
:
#line 152
5
"asn1p_y.y"
#line 152
4
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_ref
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_ref
);
(
yyval
.
a_ref
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_ref
);
...
@@ -3713,7 +3712,7 @@ yyreduce:
...
@@ -3713,7 +3712,7 @@ yyreduce:
break
;
break
;
case
149
:
case
149
:
#line 153
8
"asn1p_y.y"
#line 153
7
"asn1p_y.y"
{
{
(
yyval
.
a_refcomp
).
lex_type
=
RLT_AmpUppercase
;
(
yyval
.
a_refcomp
).
lex_type
=
RLT_AmpUppercase
;
(
yyval
.
a_refcomp
).
name
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
a_refcomp
).
name
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
...
@@ -3721,7 +3720,7 @@ yyreduce:
...
@@ -3721,7 +3720,7 @@ yyreduce:
break
;
break
;
case
150
:
case
150
:
#line 154
3
"asn1p_y.y"
#line 154
2
"asn1p_y.y"
{
{
(
yyval
.
a_refcomp
).
lex_type
=
RLT_Amplowercase
;
(
yyval
.
a_refcomp
).
lex_type
=
RLT_Amplowercase
;
(
yyval
.
a_refcomp
).
name
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
a_refcomp
).
name
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
...
@@ -3729,7 +3728,7 @@ yyreduce:
...
@@ -3729,7 +3728,7 @@ yyreduce:
break
;
break
;
case
151
:
case
151
:
#line 155
2
"asn1p_y.y"
#line 155
1
"asn1p_y.y"
{
{
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
RLT_AmpUppercase
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
RLT_AmpUppercase
);
...
@@ -3738,7 +3737,7 @@ yyreduce:
...
@@ -3738,7 +3737,7 @@ yyreduce:
break
;
break
;
case
152
:
case
152
:
#line 155
7
"asn1p_y.y"
#line 155
6
"asn1p_y.y"
{
{
(
yyval
.
a_ref
)
=
(
yyval
.
a_ref
);
(
yyval
.
a_ref
)
=
(
yyval
.
a_ref
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
3
)
-
(
3
)].
tv_str
),
RLT_AmpUppercase
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
3
)
-
(
3
)].
tv_str
),
RLT_AmpUppercase
);
...
@@ -3747,7 +3746,7 @@ yyreduce:
...
@@ -3747,7 +3746,7 @@ yyreduce:
break
;
break
;
case
153
:
case
153
:
#line 156
2
"asn1p_y.y"
#line 156
1
"asn1p_y.y"
{
{
(
yyval
.
a_ref
)
=
(
yyval
.
a_ref
);
(
yyval
.
a_ref
)
=
(
yyval
.
a_ref
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
3
)
-
(
3
)].
tv_str
),
RLT_Amplowercase
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
3
)
-
(
3
)].
tv_str
),
RLT_Amplowercase
);
...
@@ -3756,7 +3755,7 @@ yyreduce:
...
@@ -3756,7 +3755,7 @@ yyreduce:
break
;
break
;
case
154
:
case
154
:
#line 15
70
"asn1p_y.y"
#line 15
69
"asn1p_y.y"
{
{
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
RLT_CAPITALS
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
RLT_CAPITALS
);
...
@@ -3765,7 +3764,7 @@ yyreduce:
...
@@ -3765,7 +3764,7 @@ yyreduce:
break
;
break
;
case
155
:
case
155
:
#line 159
3
"asn1p_y.y"
#line 159
2
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
2
)
-
(
4
)].
a_expr
);
assert
((
yyval
.
a_expr
)
->
Identifier
==
NULL
);
assert
((
yyval
.
a_expr
)
->
Identifier
==
NULL
);
...
@@ -3776,12 +3775,12 @@ yyreduce:
...
@@ -3776,12 +3775,12 @@ yyreduce:
break
;
break
;
case
158
:
case
158
:
#line 160
5
"asn1p_y.y"
#line 160
4
"asn1p_y.y"
{
asn1p_lexer_hack_push_opaque_state
();
}
{
asn1p_lexer_hack_push_opaque_state
();
}
break
;
break
;
case
159
:
case
159
:
#line 160
5
"asn1p_y.y"
#line 160
4
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_frombuf
((
yyvsp
[(
3
)
-
(
3
)].
tv_opaque
).
buf
,
(
yyvsp
[(
3
)
-
(
3
)].
tv_opaque
).
len
,
0
);
(
yyval
.
a_value
)
=
asn1p_value_frombuf
((
yyvsp
[(
3
)
-
(
3
)].
tv_opaque
).
buf
,
(
yyvsp
[(
3
)
-
(
3
)].
tv_opaque
).
len
,
0
);
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -3790,7 +3789,7 @@ yyreduce:
...
@@ -3790,7 +3789,7 @@ yyreduce:
break
;
break
;
case
160
:
case
160
:
#line 161
3
"asn1p_y.y"
#line 161
2
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
0
);
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
0
);
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -3799,7 +3798,7 @@ yyreduce:
...
@@ -3799,7 +3798,7 @@ yyreduce:
break
;
break
;
case
161
:
case
161
:
#line 161
8
"asn1p_y.y"
#line 161
7
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
0
);
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
0
);
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -3808,7 +3807,7 @@ yyreduce:
...
@@ -3808,7 +3807,7 @@ yyreduce:
break
;
break
;
case
162
:
case
162
:
#line 162
3
"asn1p_y.y"
#line 162
2
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
1
);
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
1
);
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -3817,7 +3816,7 @@ yyreduce:
...
@@ -3817,7 +3816,7 @@ yyreduce:
break
;
break
;
case
168
:
case
168
:
#line 163
6
"asn1p_y.y"
#line 163
5
"asn1p_y.y"
{
{
asn1p_ref_t
*
ref
;
asn1p_ref_t
*
ref
;
int
ret
;
int
ret
;
...
@@ -3835,7 +3834,7 @@ yyreduce:
...
@@ -3835,7 +3834,7 @@ yyreduce:
break
;
break
;
case
169
:
case
169
:
#line 165
4
"asn1p_y.y"
#line 165
3
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_frombuf
((
yyvsp
[(
1
)
-
(
1
)].
tv_opaque
).
buf
,
(
yyvsp
[(
1
)
-
(
1
)].
tv_opaque
).
len
,
0
);
(
yyval
.
a_value
)
=
asn1p_value_frombuf
((
yyvsp
[(
1
)
-
(
1
)].
tv_opaque
).
buf
,
(
yyvsp
[(
1
)
-
(
1
)].
tv_opaque
).
len
,
0
);
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -3843,7 +3842,7 @@ yyreduce:
...
@@ -3843,7 +3842,7 @@ yyreduce:
break
;
break
;
case
170
:
case
170
:
#line 165
8
"asn1p_y.y"
#line 165
7
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromint
((
yyvsp
[(
1
)
-
(
1
)].
a_int
));
(
yyval
.
a_value
)
=
asn1p_value_fromint
((
yyvsp
[(
1
)
-
(
1
)].
a_int
));
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -3852,7 +3851,7 @@ yyreduce:
...
@@ -3852,7 +3851,7 @@ yyreduce:
break
;
break
;
case
171
:
case
171
:
#line 166
3
"asn1p_y.y"
#line 166
2
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromint
((
yyvsp
[(
1
)
-
(
1
)].
a_int
));
(
yyval
.
a_value
)
=
asn1p_value_fromint
((
yyvsp
[(
1
)
-
(
1
)].
a_int
));
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -3861,7 +3860,7 @@ yyreduce:
...
@@ -3861,7 +3860,7 @@ yyreduce:
break
;
break
;
case
172
:
case
172
:
#line 167
1
"asn1p_y.y"
#line 167
0
"asn1p_y.y"
{
{
(
yyval
.
tv_opaque
).
len
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_opaque
).
len
+
1
;
(
yyval
.
tv_opaque
).
len
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_opaque
).
len
+
1
;
(
yyval
.
tv_opaque
).
buf
=
malloc
(
1
+
(
yyval
.
tv_opaque
).
len
+
1
);
(
yyval
.
tv_opaque
).
buf
=
malloc
(
1
+
(
yyval
.
tv_opaque
).
len
+
1
);
...
@@ -3874,7 +3873,7 @@ yyreduce:
...
@@ -3874,7 +3873,7 @@ yyreduce:
break
;
break
;
case
173
:
case
173
:
#line 16
80
"asn1p_y.y"
#line 16
79
"asn1p_y.y"
{
{
int
newsize
=
(
yyvsp
[(
1
)
-
(
2
)].
tv_opaque
).
len
+
(
yyvsp
[(
2
)
-
(
2
)].
tv_opaque
).
len
;
int
newsize
=
(
yyvsp
[(
1
)
-
(
2
)].
tv_opaque
).
len
+
(
yyvsp
[(
2
)
-
(
2
)].
tv_opaque
).
len
;
char
*
p
=
malloc
(
newsize
+
1
);
char
*
p
=
malloc
(
newsize
+
1
);
...
@@ -3890,7 +3889,7 @@ yyreduce:
...
@@ -3890,7 +3889,7 @@ yyreduce:
break
;
break
;
case
175
:
case
175
:
#line 169
6
"asn1p_y.y"
#line 169
5
"asn1p_y.y"
{
{
(
yyval
.
tv_opaque
).
len
=
strlen
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
));
(
yyval
.
tv_opaque
).
len
=
strlen
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
));
(
yyval
.
tv_opaque
).
buf
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
tv_opaque
).
buf
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
...
@@ -3898,77 +3897,77 @@ yyreduce:
...
@@ -3898,77 +3897,77 @@ yyreduce:
break
;
break
;
case
176
:
case
176
:
#line 170
2
"asn1p_y.y"
#line 170
1
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_BOOLEAN
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_BOOLEAN
;
}
break
;
break
;
case
177
:
case
177
:
#line 170
3
"asn1p_y.y"
#line 170
2
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_NULL
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_NULL
;
}
break
;
break
;
case
178
:
case
178
:
#line 170
4
"asn1p_y.y"
#line 170
3
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_REAL
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_REAL
;
}
break
;
break
;
case
179
:
case
179
:
#line 170
5
"asn1p_y.y"
#line 170
4
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_OCTET_STRING
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_OCTET_STRING
;
}
break
;
break
;
case
180
:
case
180
:
#line 170
6
"asn1p_y.y"
#line 170
5
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_OBJECT_IDENTIFIER
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_OBJECT_IDENTIFIER
;
}
break
;
break
;
case
181
:
case
181
:
#line 170
7
"asn1p_y.y"
#line 170
6
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_RELATIVE_OID
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_RELATIVE_OID
;
}
break
;
break
;
case
182
:
case
182
:
#line 170
8
"asn1p_y.y"
#line 170
7
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_EXTERNAL
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_EXTERNAL
;
}
break
;
break
;
case
183
:
case
183
:
#line 170
9
"asn1p_y.y"
#line 170
8
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_EMBEDDED_PDV
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_EMBEDDED_PDV
;
}
break
;
break
;
case
184
:
case
184
:
#line 17
10
"asn1p_y.y"
#line 17
09
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_CHARACTER_STRING
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_CHARACTER_STRING
;
}
break
;
break
;
case
185
:
case
185
:
#line 171
1
"asn1p_y.y"
#line 171
0
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_UTCTime
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_UTCTime
;
}
break
;
break
;
case
186
:
case
186
:
#line 171
2
"asn1p_y.y"
#line 171
1
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_GeneralizedTime
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_GeneralizedTime
;
}
break
;
break
;
case
189
:
case
189
:
#line 172
1
"asn1p_y.y"
#line 172
0
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_INTEGER
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_INTEGER
;
}
break
;
break
;
case
190
:
case
190
:
#line 172
2
"asn1p_y.y"
#line 172
1
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_ENUMERATED
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_ENUMERATED
;
}
break
;
break
;
case
191
:
case
191
:
#line 172
3
"asn1p_y.y"
#line 172
2
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_BASIC_BIT_STRING
;
}
{
(
yyval
.
a_type
)
=
ASN_BASIC_BIT_STRING
;
}
break
;
break
;
case
192
:
case
192
:
#line 172
7
"asn1p_y.y"
#line 172
6
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -3978,7 +3977,7 @@ yyreduce:
...
@@ -3978,7 +3977,7 @@ yyreduce:
break
;
break
;
case
193
:
case
193
:
#line 173
3
"asn1p_y.y"
#line 173
2
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
->
expr_type
=
ASN_BASIC_INTEGER
;
(
yyval
.
a_expr
)
->
expr_type
=
ASN_BASIC_INTEGER
;
...
@@ -3987,7 +3986,7 @@ yyreduce:
...
@@ -3987,7 +3986,7 @@ yyreduce:
break
;
break
;
case
194
:
case
194
:
#line 173
8
"asn1p_y.y"
#line 173
7
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
->
expr_type
=
ASN_BASIC_ENUMERATED
;
(
yyval
.
a_expr
)
->
expr_type
=
ASN_BASIC_ENUMERATED
;
...
@@ -3996,7 +3995,7 @@ yyreduce:
...
@@ -3996,7 +3995,7 @@ yyreduce:
break
;
break
;
case
195
:
case
195
:
#line 174
3
"asn1p_y.y"
#line 174
2
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
4
)
-
(
5
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
4
)
-
(
5
)].
a_expr
);
(
yyval
.
a_expr
)
->
expr_type
=
ASN_BASIC_BIT_STRING
;
(
yyval
.
a_expr
)
->
expr_type
=
ASN_BASIC_BIT_STRING
;
...
@@ -4005,7 +4004,7 @@ yyreduce:
...
@@ -4005,7 +4004,7 @@ yyreduce:
break
;
break
;
case
196
:
case
196
:
#line 174
8
"asn1p_y.y"
#line 174
7
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
3
)
-
(
4
)].
a_expr
);
(
yyval
.
a_expr
)
->
expr_type
=
ASN_BASIC_BIT_STRING
;
(
yyval
.
a_expr
)
->
expr_type
=
ASN_BASIC_BIT_STRING
;
...
@@ -4014,7 +4013,7 @@ yyreduce:
...
@@ -4014,7 +4013,7 @@ yyreduce:
break
;
break
;
case
197
:
case
197
:
#line 175
3
"asn1p_y.y"
#line 175
2
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4024,12 +4023,12 @@ yyreduce:
...
@@ -4024,12 +4023,12 @@ yyreduce:
break
;
break
;
case
198
:
case
198
:
#line 176
2
"asn1p_y.y"
#line 176
1
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_BMPString
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_BMPString
;
}
break
;
break
;
case
199
:
case
199
:
#line 176
3
"asn1p_y.y"
#line 176
2
"asn1p_y.y"
{
{
(
yyval
.
a_type
)
=
ASN_STRING_GeneralString
;
(
yyval
.
a_type
)
=
ASN_STRING_GeneralString
;
fprintf
(
stderr
,
"WARNING: GeneralString is not fully supported
\n
"
);
fprintf
(
stderr
,
"WARNING: GeneralString is not fully supported
\n
"
);
...
@@ -4037,7 +4036,7 @@ yyreduce:
...
@@ -4037,7 +4036,7 @@ yyreduce:
break
;
break
;
case
200
:
case
200
:
#line 176
7
"asn1p_y.y"
#line 176
6
"asn1p_y.y"
{
{
(
yyval
.
a_type
)
=
ASN_STRING_GraphicString
;
(
yyval
.
a_type
)
=
ASN_STRING_GraphicString
;
fprintf
(
stderr
,
"WARNING: GraphicString is not fully supported
\n
"
);
fprintf
(
stderr
,
"WARNING: GraphicString is not fully supported
\n
"
);
...
@@ -4045,27 +4044,27 @@ yyreduce:
...
@@ -4045,27 +4044,27 @@ yyreduce:
break
;
break
;
case
201
:
case
201
:
#line 177
1
"asn1p_y.y"
#line 177
0
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_IA5String
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_IA5String
;
}
break
;
break
;
case
202
:
case
202
:
#line 177
2
"asn1p_y.y"
#line 177
1
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_ISO646String
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_ISO646String
;
}
break
;
break
;
case
203
:
case
203
:
#line 177
3
"asn1p_y.y"
#line 177
2
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_NumericString
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_NumericString
;
}
break
;
break
;
case
204
:
case
204
:
#line 177
4
"asn1p_y.y"
#line 177
3
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_PrintableString
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_PrintableString
;
}
break
;
break
;
case
205
:
case
205
:
#line 177
5
"asn1p_y.y"
#line 177
4
"asn1p_y.y"
{
{
(
yyval
.
a_type
)
=
ASN_STRING_T61String
;
(
yyval
.
a_type
)
=
ASN_STRING_T61String
;
fprintf
(
stderr
,
"WARNING: T61String is not fully supported
\n
"
);
fprintf
(
stderr
,
"WARNING: T61String is not fully supported
\n
"
);
...
@@ -4073,22 +4072,22 @@ yyreduce:
...
@@ -4073,22 +4072,22 @@ yyreduce:
break
;
break
;
case
206
:
case
206
:
#line 177
9
"asn1p_y.y"
#line 177
8
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_TeletexString
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_TeletexString
;
}
break
;
break
;
case
207
:
case
207
:
#line 17
80
"asn1p_y.y"
#line 17
79
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_UniversalString
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_UniversalString
;
}
break
;
break
;
case
208
:
case
208
:
#line 178
1
"asn1p_y.y"
#line 178
0
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_UTF8String
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_UTF8String
;
}
break
;
break
;
case
209
:
case
209
:
#line 178
2
"asn1p_y.y"
#line 178
1
"asn1p_y.y"
{
{
(
yyval
.
a_type
)
=
ASN_STRING_VideotexString
;
(
yyval
.
a_type
)
=
ASN_STRING_VideotexString
;
fprintf
(
stderr
,
"WARNING: VideotexString is not fully supported
\n
"
);
fprintf
(
stderr
,
"WARNING: VideotexString is not fully supported
\n
"
);
...
@@ -4096,39 +4095,39 @@ yyreduce:
...
@@ -4096,39 +4095,39 @@ yyreduce:
break
;
break
;
case
210
:
case
210
:
#line 178
6
"asn1p_y.y"
#line 178
5
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_VisibleString
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_VisibleString
;
}
break
;
break
;
case
211
:
case
211
:
#line 178
7
"asn1p_y.y"
#line 178
6
"asn1p_y.y"
{
(
yyval
.
a_type
)
=
ASN_STRING_ObjectDescriptor
;
}
{
(
yyval
.
a_type
)
=
ASN_STRING_ObjectDescriptor
;
}
break
;
break
;
case
216
:
case
216
:
#line 179
9
"asn1p_y.y"
#line 179
8
"asn1p_y.y"
{
(
yyval
.
a_constr
)
=
0
;
}
{
(
yyval
.
a_constr
)
=
0
;
}
break
;
break
;
case
218
:
case
218
:
#line 180
4
"asn1p_y.y"
#line 180
3
"asn1p_y.y"
{
(
yyval
.
a_constr
)
=
0
;
}
{
(
yyval
.
a_constr
)
=
0
;
}
break
;
break
;
case
220
:
case
220
:
#line 180
9
"asn1p_y.y"
#line 180
8
"asn1p_y.y"
{
(
yyval
.
a_constr
)
=
0
;
}
{
(
yyval
.
a_constr
)
=
0
;
}
break
;
break
;
case
223
:
case
223
:
#line 181
5
"asn1p_y.y"
#line 181
4
"asn1p_y.y"
{
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_SET
,
(
yyvsp
[(
2
)
-
(
3
)].
a_constr
),
0
);
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_SET
,
(
yyvsp
[(
2
)
-
(
3
)].
a_constr
),
0
);
}
}
break
;
break
;
case
225
:
case
225
:
#line 182
2
"asn1p_y.y"
#line 182
1
"asn1p_y.y"
{
{
if
((
yyvsp
[(
2
)
-
(
2
)].
a_constr
)
->
type
==
ACT_CA_SET
&&
(
yyvsp
[(
2
)
-
(
2
)].
a_constr
)
->
el_count
==
1
)
{
if
((
yyvsp
[(
2
)
-
(
2
)].
a_constr
)
->
type
==
ACT_CA_SET
&&
(
yyvsp
[(
2
)
-
(
2
)].
a_constr
)
->
el_count
==
1
)
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_SET
,
(
yyvsp
[(
1
)
-
(
2
)].
a_constr
),
(
yyvsp
[(
2
)
-
(
2
)].
a_constr
)
->
elements
[
0
]);
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_SET
,
(
yyvsp
[(
1
)
-
(
2
)].
a_constr
),
(
yyvsp
[(
2
)
-
(
2
)].
a_constr
)
->
elements
[
0
]);
...
@@ -4139,7 +4138,7 @@ yyreduce:
...
@@ -4139,7 +4138,7 @@ yyreduce:
break
;
break
;
case
229
:
case
229
:
#line 183
6
"asn1p_y.y"
#line 183
5
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
->
type
=
ACT_EL_EXT
;
(
yyval
.
a_constr
)
->
type
=
ACT_EL_EXT
;
...
@@ -4147,7 +4146,7 @@ yyreduce:
...
@@ -4147,7 +4146,7 @@ yyreduce:
break
;
break
;
case
231
:
case
231
:
#line 184
1
"asn1p_y.y"
#line 184
0
"asn1p_y.y"
{
{
asn1p_constraint_t
*
ct
;
asn1p_constraint_t
*
ct
;
ct
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
ct
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
...
@@ -4157,7 +4156,7 @@ yyreduce:
...
@@ -4157,7 +4156,7 @@ yyreduce:
break
;
break
;
case
232
:
case
232
:
#line 184
7
"asn1p_y.y"
#line 184
6
"asn1p_y.y"
{
{
asn1p_constraint_t
*
ct
;
asn1p_constraint_t
*
ct
;
ct
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
ct
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
...
@@ -4169,35 +4168,35 @@ yyreduce:
...
@@ -4169,35 +4168,35 @@ yyreduce:
break
;
break
;
case
234
:
case
234
:
#line 185
9
"asn1p_y.y"
#line 185
8
"asn1p_y.y"
{
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_AEX
,
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
),
0
);
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_AEX
,
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
),
0
);
}
}
break
;
break
;
case
236
:
case
236
:
#line 186
6
"asn1p_y.y"
#line 186
5
"asn1p_y.y"
{
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_UNI
,
(
yyvsp
[(
1
)
-
(
3
)].
a_constr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
));
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_UNI
,
(
yyvsp
[(
1
)
-
(
3
)].
a_constr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
));
}
}
break
;
break
;
case
238
:
case
238
:
#line 187
3
"asn1p_y.y"
#line 187
2
"asn1p_y.y"
{
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_INT
,
(
yyvsp
[(
1
)
-
(
3
)].
a_constr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
));
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_INT
,
(
yyvsp
[(
1
)
-
(
3
)].
a_constr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
));
}
}
break
;
break
;
case
240
:
case
240
:
#line 188
1
"asn1p_y.y"
#line 188
0
"asn1p_y.y"
{
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_EXC
,
(
yyvsp
[(
1
)
-
(
3
)].
a_constr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
));
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_EXC
,
(
yyvsp
[(
1
)
-
(
3
)].
a_constr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
));
}
}
break
;
break
;
case
242
:
case
242
:
#line 188
8
"asn1p_y.y"
#line 188
7
"asn1p_y.y"
{
{
int
ret
;
int
ret
;
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
...
@@ -4209,7 +4208,7 @@ yyreduce:
...
@@ -4209,7 +4208,7 @@ yyreduce:
break
;
break
;
case
243
:
case
243
:
#line 189
9
"asn1p_y.y"
#line 189
8
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
checkmem
((
yyval
.
a_constr
));
checkmem
((
yyval
.
a_constr
));
...
@@ -4219,7 +4218,7 @@ yyreduce:
...
@@ -4219,7 +4218,7 @@ yyreduce:
break
;
break
;
case
244
:
case
244
:
#line 190
5
"asn1p_y.y"
#line 190
4
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
checkmem
((
yyval
.
a_constr
));
checkmem
((
yyval
.
a_constr
));
...
@@ -4229,21 +4228,21 @@ yyreduce:
...
@@ -4229,21 +4228,21 @@ yyreduce:
break
;
break
;
case
250
:
case
250
:
#line 192
1
"asn1p_y.y"
#line 192
0
"asn1p_y.y"
{
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CT_FROM
,
(
yyvsp
[(
2
)
-
(
2
)].
a_constr
),
0
);
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CT_FROM
,
(
yyvsp
[(
2
)
-
(
2
)].
a_constr
),
0
);
}
}
break
;
break
;
case
251
:
case
251
:
#line 192
6
"asn1p_y.y"
#line 192
5
"asn1p_y.y"
{
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CT_SIZE
,
(
yyvsp
[(
2
)
-
(
2
)].
a_constr
),
0
);
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CT_SIZE
,
(
yyvsp
[(
2
)
-
(
2
)].
a_constr
),
0
);
}
}
break
;
break
;
case
252
:
case
252
:
#line 193
1
"asn1p_y.y"
#line 193
0
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
->
type
=
ACT_CT_PATTERN
;
(
yyval
.
a_constr
)
->
type
=
ACT_CT_PATTERN
;
...
@@ -4252,7 +4251,7 @@ yyreduce:
...
@@ -4252,7 +4251,7 @@ yyreduce:
break
;
break
;
case
253
:
case
253
:
#line 193
6
"asn1p_y.y"
#line 193
5
"asn1p_y.y"
{
{
asn1p_ref_t
*
ref
;
asn1p_ref_t
*
ref
;
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
...
@@ -4265,7 +4264,7 @@ yyreduce:
...
@@ -4265,7 +4264,7 @@ yyreduce:
break
;
break
;
case
254
:
case
254
:
#line 194
8
"asn1p_y.y"
#line 194
7
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
checkmem
((
yyval
.
a_constr
));
checkmem
((
yyval
.
a_constr
));
...
@@ -4276,7 +4275,7 @@ yyreduce:
...
@@ -4276,7 +4275,7 @@ yyreduce:
break
;
break
;
case
256
:
case
256
:
#line 195
8
"asn1p_y.y"
#line 195
7
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
-
123
);
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
-
123
);
(
yyval
.
a_value
)
->
type
=
ATV_MIN
;
(
yyval
.
a_value
)
->
type
=
ATV_MIN
;
...
@@ -4284,7 +4283,7 @@ yyreduce:
...
@@ -4284,7 +4283,7 @@ yyreduce:
break
;
break
;
case
258
:
case
258
:
#line 196
5
"asn1p_y.y"
#line 196
4
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
321
);
(
yyval
.
a_value
)
=
asn1p_value_fromint
(
321
);
(
yyval
.
a_value
)
->
type
=
ATV_MAX
;
(
yyval
.
a_value
)
->
type
=
ATV_MAX
;
...
@@ -4292,7 +4291,7 @@ yyreduce:
...
@@ -4292,7 +4291,7 @@ yyreduce:
break
;
break
;
case
260
:
case
260
:
#line 197
3
"asn1p_y.y"
#line 197
2
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
_convert_bitstring2binary
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
'B'
);
(
yyval
.
a_value
)
=
_convert_bitstring2binary
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
'B'
);
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -4301,7 +4300,7 @@ yyreduce:
...
@@ -4301,7 +4300,7 @@ yyreduce:
break
;
break
;
case
261
:
case
261
:
#line 197
8
"asn1p_y.y"
#line 197
7
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
_convert_bitstring2binary
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
'H'
);
(
yyval
.
a_value
)
=
_convert_bitstring2binary
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
'H'
);
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -4310,7 +4309,7 @@ yyreduce:
...
@@ -4310,7 +4309,7 @@ yyreduce:
break
;
break
;
case
262
:
case
262
:
#line 198
6
"asn1p_y.y"
#line 198
5
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromtype
((
yyvsp
[(
2
)
-
(
2
)].
a_expr
));
(
yyval
.
a_value
)
=
asn1p_value_fromtype
((
yyvsp
[(
2
)
-
(
2
)].
a_expr
));
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -4319,7 +4318,7 @@ yyreduce:
...
@@ -4319,7 +4318,7 @@ yyreduce:
break
;
break
;
case
263
:
case
263
:
#line 199
2
"asn1p_y.y"
#line 199
1
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromtype
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
));
(
yyval
.
a_value
)
=
asn1p_value_fromtype
((
yyvsp
[(
1
)
-
(
1
)].
a_expr
));
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -4328,14 +4327,14 @@ yyreduce:
...
@@ -4328,14 +4327,14 @@ yyreduce:
break
;
break
;
case
264
:
case
264
:
#line 200
4
"asn1p_y.y"
#line 200
3
"asn1p_y.y"
{
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CT_WCOMP
,
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
),
0
);
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CT_WCOMP
,
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
),
0
);
}
}
break
;
break
;
case
265
:
case
265
:
#line 200
7
"asn1p_y.y"
#line 200
6
"asn1p_y.y"
{
{
assert
((
yyvsp
[(
3
)
-
(
3
)].
a_constr
)
->
type
==
ACT_CA_CSV
);
assert
((
yyvsp
[(
3
)
-
(
3
)].
a_constr
)
->
type
==
ACT_CA_CSV
);
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
)
->
type
=
ACT_CT_WCOMPS
;
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
)
->
type
=
ACT_CT_WCOMPS
;
...
@@ -4344,12 +4343,12 @@ yyreduce:
...
@@ -4344,12 +4343,12 @@ yyreduce:
break
;
break
;
case
269
:
case
269
:
#line 201
5
"asn1p_y.y"
#line 201
4
"asn1p_y.y"
{
(
yyval
.
a_constr
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_constr
);
}
{
(
yyval
.
a_constr
)
=
(
yyvsp
[(
2
)
-
(
3
)].
a_constr
);
}
break
;
break
;
case
270
:
case
270
:
#line 201
7
"asn1p_y.y"
#line 201
6
"asn1p_y.y"
{
{
assert
((
yyvsp
[(
4
)
-
(
5
)].
a_constr
)
->
type
==
ACT_CA_CSV
);
assert
((
yyvsp
[(
4
)
-
(
5
)].
a_constr
)
->
type
==
ACT_CA_CSV
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
...
@@ -4365,7 +4364,7 @@ yyreduce:
...
@@ -4365,7 +4364,7 @@ yyreduce:
break
;
break
;
case
271
:
case
271
:
#line 20
30
"asn1p_y.y"
#line 20
29
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
->
type
=
ACT_CA_CSV
;
(
yyval
.
a_constr
)
->
type
=
ACT_CA_CSV
;
...
@@ -4374,7 +4373,7 @@ yyreduce:
...
@@ -4374,7 +4373,7 @@ yyreduce:
break
;
break
;
case
272
:
case
272
:
#line 203
5
"asn1p_y.y"
#line 203
4
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_constr
);
(
yyval
.
a_constr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_constr
);
asn1p_constraint_insert
((
yyval
.
a_constr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
));
asn1p_constraint_insert
((
yyval
.
a_constr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_constr
));
...
@@ -4382,7 +4381,7 @@ yyreduce:
...
@@ -4382,7 +4381,7 @@ yyreduce:
break
;
break
;
case
273
:
case
273
:
#line 204
1
"asn1p_y.y"
#line 204
0
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
checkmem
((
yyval
.
a_constr
));
checkmem
((
yyval
.
a_constr
));
...
@@ -4394,43 +4393,43 @@ yyreduce:
...
@@ -4394,43 +4393,43 @@ yyreduce:
break
;
break
;
case
274
:
case
274
:
#line 205
5
"asn1p_y.y"
#line 205
4
"asn1p_y.y"
{
(
yyval
.
a_pres
)
=
ACPRES_DEFAULT
;
}
{
(
yyval
.
a_pres
)
=
ACPRES_DEFAULT
;
}
break
;
break
;
case
275
:
case
275
:
#line 205
6
"asn1p_y.y"
#line 205
5
"asn1p_y.y"
{
(
yyval
.
a_pres
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_pres
);
}
{
(
yyval
.
a_pres
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_pres
);
}
break
;
break
;
case
276
:
case
276
:
#line 20
60
"asn1p_y.y"
#line 20
59
"asn1p_y.y"
{
{
(
yyval
.
a_pres
)
=
ACPRES_PRESENT
;
(
yyval
.
a_pres
)
=
ACPRES_PRESENT
;
}
}
break
;
break
;
case
277
:
case
277
:
#line 206
3
"asn1p_y.y"
#line 206
2
"asn1p_y.y"
{
{
(
yyval
.
a_pres
)
=
ACPRES_ABSENT
;
(
yyval
.
a_pres
)
=
ACPRES_ABSENT
;
}
}
break
;
break
;
case
278
:
case
278
:
#line 206
6
"asn1p_y.y"
#line 206
5
"asn1p_y.y"
{
{
(
yyval
.
a_pres
)
=
ACPRES_OPTIONAL
;
(
yyval
.
a_pres
)
=
ACPRES_OPTIONAL
;
}
}
break
;
break
;
case
282
:
case
282
:
#line 208
1
"asn1p_y.y"
#line 208
0
"asn1p_y.y"
{
asn1p_lexer_hack_push_opaque_state
();
}
{
asn1p_lexer_hack_push_opaque_state
();
}
break
;
break
;
case
283
:
case
283
:
#line 208
1
"asn1p_y.y"
#line 208
0
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
checkmem
((
yyval
.
a_constr
));
checkmem
((
yyval
.
a_constr
));
...
@@ -4442,7 +4441,7 @@ yyreduce:
...
@@ -4442,7 +4441,7 @@ yyreduce:
break
;
break
;
case
284
:
case
284
:
#line 209
2
"asn1p_y.y"
#line 209
1
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
->
type
=
ACT_CT_CTNG
;
(
yyval
.
a_constr
)
->
type
=
ACT_CT_CTNG
;
...
@@ -4452,41 +4451,41 @@ yyreduce:
...
@@ -4452,41 +4451,41 @@ yyreduce:
break
;
break
;
case
285
:
case
285
:
#line 210
1
"asn1p_y.y"
#line 210
0
"asn1p_y.y"
{
(
yyval
.
a_ctype
)
=
ACT_EL_RANGE
;
}
{
(
yyval
.
a_ctype
)
=
ACT_EL_RANGE
;
}
break
;
break
;
case
286
:
case
286
:
#line 210
2
"asn1p_y.y"
#line 210
1
"asn1p_y.y"
{
(
yyval
.
a_ctype
)
=
ACT_EL_RLRANGE
;
}
{
(
yyval
.
a_ctype
)
=
ACT_EL_RLRANGE
;
}
break
;
break
;
case
287
:
case
287
:
#line 210
3
"asn1p_y.y"
#line 210
2
"asn1p_y.y"
{
(
yyval
.
a_ctype
)
=
ACT_EL_LLRANGE
;
}
{
(
yyval
.
a_ctype
)
=
ACT_EL_LLRANGE
;
}
break
;
break
;
case
288
:
case
288
:
#line 210
4
"asn1p_y.y"
#line 210
3
"asn1p_y.y"
{
(
yyval
.
a_ctype
)
=
ACT_EL_ULRANGE
;
}
{
(
yyval
.
a_ctype
)
=
ACT_EL_ULRANGE
;
}
break
;
break
;
case
289
:
case
289
:
#line 210
7
"asn1p_y.y"
#line 210
6
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_constr
);
(
yyval
.
a_constr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_constr
);
}
}
break
;
break
;
case
290
:
case
290
:
#line 21
10
"asn1p_y.y"
#line 21
09
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_constr
);
(
yyval
.
a_constr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_constr
);
}
}
break
;
break
;
case
291
:
case
291
:
#line 211
9
"asn1p_y.y"
#line 211
8
"asn1p_y.y"
{
{
asn1p_ref_t
*
ref
=
asn1p_ref_new
(
yylineno
,
currentModule
);
asn1p_ref_t
*
ref
=
asn1p_ref_new
(
yylineno
,
currentModule
);
asn1p_constraint_t
*
ct
;
asn1p_constraint_t
*
ct
;
...
@@ -4503,14 +4502,14 @@ yyreduce:
...
@@ -4503,14 +4502,14 @@ yyreduce:
break
;
break
;
case
292
:
case
292
:
#line 213
5
"asn1p_y.y"
#line 213
4
"asn1p_y.y"
{
{
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_CRC
,
(
yyvsp
[(
1
)
-
(
4
)].
a_constr
),
(
yyvsp
[(
3
)
-
(
4
)].
a_constr
));
CONSTRAINT_INSERT
((
yyval
.
a_constr
),
ACT_CA_CRC
,
(
yyvsp
[(
1
)
-
(
4
)].
a_constr
),
(
yyvsp
[(
3
)
-
(
4
)].
a_constr
));
}
}
break
;
break
;
case
293
:
case
293
:
#line 214
1
"asn1p_y.y"
#line 214
0
"asn1p_y.y"
{
{
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
(
yyval
.
a_constr
)
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
checkmem
((
yyval
.
a_constr
));
checkmem
((
yyval
.
a_constr
));
...
@@ -4520,7 +4519,7 @@ yyreduce:
...
@@ -4520,7 +4519,7 @@ yyreduce:
break
;
break
;
case
294
:
case
294
:
#line 214
7
"asn1p_y.y"
#line 214
6
"asn1p_y.y"
{
{
asn1p_constraint_t
*
ct
;
asn1p_constraint_t
*
ct
;
ct
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
ct
=
asn1p_constraint_new
(
yylineno
,
currentModule
);
...
@@ -4532,7 +4531,7 @@ yyreduce:
...
@@ -4532,7 +4531,7 @@ yyreduce:
break
;
break
;
case
295
:
case
295
:
#line 216
1
"asn1p_y.y"
#line 216
0
"asn1p_y.y"
{
{
char
*
p
=
malloc
(
strlen
((
yyvsp
[(
2
)
-
(
2
)].
tv_str
))
+
2
);
char
*
p
=
malloc
(
strlen
((
yyvsp
[(
2
)
-
(
2
)].
tv_str
))
+
2
);
int
ret
;
int
ret
;
...
@@ -4547,7 +4546,7 @@ yyreduce:
...
@@ -4547,7 +4546,7 @@ yyreduce:
break
;
break
;
case
296
:
case
296
:
#line 217
2
"asn1p_y.y"
#line 217
1
"asn1p_y.y"
{
{
char
*
p
=
malloc
(
strlen
((
yyvsp
[(
3
)
-
(
3
)].
tv_str
))
+
3
);
char
*
p
=
malloc
(
strlen
((
yyvsp
[(
3
)
-
(
3
)].
tv_str
))
+
3
);
int
ret
;
int
ret
;
...
@@ -4563,14 +4562,14 @@ yyreduce:
...
@@ -4563,14 +4562,14 @@ yyreduce:
break
;
break
;
case
297
:
case
297
:
#line 218
8
"asn1p_y.y"
#line 218
7
"asn1p_y.y"
{
{
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
}
}
break
;
break
;
case
298
:
case
298
:
#line 219
1
"asn1p_y.y"
#line 219
0
"asn1p_y.y"
{
{
int
l1
=
strlen
((
yyvsp
[(
1
)
-
(
3
)].
tv_str
));
int
l1
=
strlen
((
yyvsp
[(
1
)
-
(
3
)].
tv_str
));
int
l3
=
strlen
((
yyvsp
[(
3
)
-
(
3
)].
tv_str
));
int
l3
=
strlen
((
yyvsp
[(
3
)
-
(
3
)].
tv_str
));
...
@@ -4585,7 +4584,7 @@ yyreduce:
...
@@ -4585,7 +4584,7 @@ yyreduce:
break
;
break
;
case
299
:
case
299
:
#line 221
1
"asn1p_y.y"
#line 221
0
"asn1p_y.y"
{
{
(
yyval
.
a_marker
).
flags
=
EM_NOMARK
;
(
yyval
.
a_marker
).
flags
=
EM_NOMARK
;
(
yyval
.
a_marker
).
default_value
=
0
;
(
yyval
.
a_marker
).
default_value
=
0
;
...
@@ -4593,12 +4592,12 @@ yyreduce:
...
@@ -4593,12 +4592,12 @@ yyreduce:
break
;
break
;
case
300
:
case
300
:
#line 221
5
"asn1p_y.y"
#line 221
4
"asn1p_y.y"
{
(
yyval
.
a_marker
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_marker
);
}
{
(
yyval
.
a_marker
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_marker
);
}
break
;
break
;
case
301
:
case
301
:
#line 221
9
"asn1p_y.y"
#line 221
8
"asn1p_y.y"
{
{
(
yyval
.
a_marker
).
flags
=
EM_OPTIONAL
|
EM_INDIRECT
;
(
yyval
.
a_marker
).
flags
=
EM_OPTIONAL
|
EM_INDIRECT
;
(
yyval
.
a_marker
).
default_value
=
0
;
(
yyval
.
a_marker
).
default_value
=
0
;
...
@@ -4606,7 +4605,7 @@ yyreduce:
...
@@ -4606,7 +4605,7 @@ yyreduce:
break
;
break
;
case
302
:
case
302
:
#line 222
3
"asn1p_y.y"
#line 222
2
"asn1p_y.y"
{
{
(
yyval
.
a_marker
).
flags
=
EM_DEFAULT
;
(
yyval
.
a_marker
).
flags
=
EM_DEFAULT
;
(
yyval
.
a_marker
).
default_value
=
(
yyvsp
[(
2
)
-
(
2
)].
a_value
);
(
yyval
.
a_marker
).
default_value
=
(
yyvsp
[(
2
)
-
(
2
)].
a_value
);
...
@@ -4614,7 +4613,7 @@ yyreduce:
...
@@ -4614,7 +4613,7 @@ yyreduce:
break
;
break
;
case
303
:
case
303
:
#line 22
30
"asn1p_y.y"
#line 22
29
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4623,7 +4622,7 @@ yyreduce:
...
@@ -4623,7 +4622,7 @@ yyreduce:
break
;
break
;
case
304
:
case
304
:
#line 223
5
"asn1p_y.y"
#line 223
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
...
@@ -4631,7 +4630,7 @@ yyreduce:
...
@@ -4631,7 +4630,7 @@ yyreduce:
break
;
break
;
case
305
:
case
305
:
#line 224
1
"asn1p_y.y"
#line 224
0
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4642,7 +4641,7 @@ yyreduce:
...
@@ -4642,7 +4641,7 @@ yyreduce:
break
;
break
;
case
306
:
case
306
:
#line 22
50
"asn1p_y.y"
#line 22
49
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4651,7 +4650,7 @@ yyreduce:
...
@@ -4651,7 +4650,7 @@ yyreduce:
break
;
break
;
case
307
:
case
307
:
#line 225
5
"asn1p_y.y"
#line 225
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
...
@@ -4659,7 +4658,7 @@ yyreduce:
...
@@ -4659,7 +4658,7 @@ yyreduce:
break
;
break
;
case
308
:
case
308
:
#line 226
2
"asn1p_y.y"
#line 226
1
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4671,7 +4670,7 @@ yyreduce:
...
@@ -4671,7 +4670,7 @@ yyreduce:
break
;
break
;
case
309
:
case
309
:
#line 22
70
"asn1p_y.y"
#line 22
69
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4683,7 +4682,7 @@ yyreduce:
...
@@ -4683,7 +4682,7 @@ yyreduce:
break
;
break
;
case
310
:
case
310
:
#line 22
80
"asn1p_y.y"
#line 22
79
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4692,7 +4691,7 @@ yyreduce:
...
@@ -4692,7 +4691,7 @@ yyreduce:
break
;
break
;
case
311
:
case
311
:
#line 228
5
"asn1p_y.y"
#line 228
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
...
@@ -4700,7 +4699,7 @@ yyreduce:
...
@@ -4700,7 +4699,7 @@ yyreduce:
break
;
break
;
case
312
:
case
312
:
#line 229
2
"asn1p_y.y"
#line 229
1
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4712,7 +4711,7 @@ yyreduce:
...
@@ -4712,7 +4711,7 @@ yyreduce:
break
;
break
;
case
313
:
case
313
:
#line 2
300
"asn1p_y.y"
#line 2
299
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4724,7 +4723,7 @@ yyreduce:
...
@@ -4724,7 +4723,7 @@ yyreduce:
break
;
break
;
case
314
:
case
314
:
#line 23
10
"asn1p_y.y"
#line 23
09
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_expr
);
asn1p_expr_t
*
first_memb
=
TQ_FIRST
(
&
((
yyval
.
a_expr
)
->
members
));
asn1p_expr_t
*
first_memb
=
TQ_FIRST
(
&
((
yyval
.
a_expr
)
->
members
));
...
@@ -4741,7 +4740,7 @@ yyreduce:
...
@@ -4741,7 +4740,7 @@ yyreduce:
break
;
break
;
case
315
:
case
315
:
#line 232
5
"asn1p_y.y"
#line 232
4
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4750,7 +4749,7 @@ yyreduce:
...
@@ -4750,7 +4749,7 @@ yyreduce:
break
;
break
;
case
316
:
case
316
:
#line 23
30
"asn1p_y.y"
#line 23
29
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
(
yyval
.
a_expr
)
=
(
yyvsp
[(
1
)
-
(
3
)].
a_expr
);
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
asn1p_expr_add
((
yyval
.
a_expr
),
(
yyvsp
[(
3
)
-
(
3
)].
a_expr
));
...
@@ -4758,7 +4757,7 @@ yyreduce:
...
@@ -4758,7 +4757,7 @@ yyreduce:
break
;
break
;
case
317
:
case
317
:
#line 233
7
"asn1p_y.y"
#line 233
6
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4769,7 +4768,7 @@ yyreduce:
...
@@ -4769,7 +4768,7 @@ yyreduce:
break
;
break
;
case
318
:
case
318
:
#line 234
4
"asn1p_y.y"
#line 234
3
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4781,7 +4780,7 @@ yyreduce:
...
@@ -4781,7 +4780,7 @@ yyreduce:
break
;
break
;
case
319
:
case
319
:
#line 235
2
"asn1p_y.y"
#line 235
1
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4793,7 +4792,7 @@ yyreduce:
...
@@ -4793,7 +4792,7 @@ yyreduce:
break
;
break
;
case
320
:
case
320
:
#line 23
60
"asn1p_y.y"
#line 23
59
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4804,7 +4803,7 @@ yyreduce:
...
@@ -4804,7 +4803,7 @@ yyreduce:
break
;
break
;
case
321
:
case
321
:
#line 236
7
"asn1p_y.y"
#line 236
6
"asn1p_y.y"
{
{
(
yyval
.
a_expr
)
=
NEW_EXPR
();
(
yyval
.
a_expr
)
=
NEW_EXPR
();
checkmem
((
yyval
.
a_expr
));
checkmem
((
yyval
.
a_expr
));
...
@@ -4816,7 +4815,7 @@ yyreduce:
...
@@ -4816,7 +4815,7 @@ yyreduce:
break
;
break
;
case
322
:
case
322
:
#line 237
8
"asn1p_y.y"
#line 237
7
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromint
((
yyvsp
[(
1
)
-
(
1
)].
a_int
));
(
yyval
.
a_value
)
=
asn1p_value_fromint
((
yyvsp
[(
1
)
-
(
1
)].
a_int
));
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -4824,7 +4823,7 @@ yyreduce:
...
@@ -4824,7 +4823,7 @@ yyreduce:
break
;
break
;
case
323
:
case
323
:
#line 238
2
"asn1p_y.y"
#line 238
1
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromint
((
yyvsp
[(
1
)
-
(
1
)].
a_int
));
(
yyval
.
a_value
)
=
asn1p_value_fromint
((
yyvsp
[(
1
)
-
(
1
)].
a_int
));
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -4832,7 +4831,7 @@ yyreduce:
...
@@ -4832,7 +4831,7 @@ yyreduce:
break
;
break
;
case
324
:
case
324
:
#line 238
9
"asn1p_y.y"
#line 238
8
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromdouble
((
yyvsp
[(
1
)
-
(
1
)].
a_dbl
));
(
yyval
.
a_value
)
=
asn1p_value_fromdouble
((
yyvsp
[(
1
)
-
(
1
)].
a_dbl
));
checkmem
((
yyval
.
a_value
));
checkmem
((
yyval
.
a_value
));
...
@@ -4840,17 +4839,17 @@ yyreduce:
...
@@ -4840,17 +4839,17 @@ yyreduce:
break
;
break
;
case
325
:
case
325
:
#line 24
20
"asn1p_y.y"
#line 24
19
"asn1p_y.y"
{
memset
(
&
(
yyval
.
a_tag
),
0
,
sizeof
((
yyval
.
a_tag
)));
}
{
memset
(
&
(
yyval
.
a_tag
),
0
,
sizeof
((
yyval
.
a_tag
)));
}
break
;
break
;
case
326
:
case
326
:
#line 242
1
"asn1p_y.y"
#line 242
0
"asn1p_y.y"
{
(
yyval
.
a_tag
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_tag
);
}
{
(
yyval
.
a_tag
)
=
(
yyvsp
[(
1
)
-
(
1
)].
a_tag
);
}
break
;
break
;
case
327
:
case
327
:
#line 242
5
"asn1p_y.y"
#line 242
4
"asn1p_y.y"
{
{
(
yyval
.
a_tag
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_tag
);
(
yyval
.
a_tag
)
=
(
yyvsp
[(
1
)
-
(
2
)].
a_tag
);
(
yyval
.
a_tag
).
tag_mode
=
(
yyvsp
[(
2
)
-
(
2
)].
a_tag
).
tag_mode
;
(
yyval
.
a_tag
).
tag_mode
=
(
yyvsp
[(
2
)
-
(
2
)].
a_tag
).
tag_mode
;
...
@@ -4858,7 +4857,7 @@ yyreduce:
...
@@ -4858,7 +4857,7 @@ yyreduce:
break
;
break
;
case
328
:
case
328
:
#line 243
2
"asn1p_y.y"
#line 243
1
"asn1p_y.y"
{
{
(
yyval
.
a_tag
)
=
(
yyvsp
[(
2
)
-
(
4
)].
a_tag
);
(
yyval
.
a_tag
)
=
(
yyvsp
[(
2
)
-
(
4
)].
a_tag
);
(
yyval
.
a_tag
).
tag_value
=
(
yyvsp
[(
3
)
-
(
4
)].
a_int
);
(
yyval
.
a_tag
).
tag_value
=
(
yyvsp
[(
3
)
-
(
4
)].
a_int
);
...
@@ -4866,42 +4865,42 @@ yyreduce:
...
@@ -4866,42 +4865,42 @@ yyreduce:
break
;
break
;
case
329
:
case
329
:
#line 243
8
"asn1p_y.y"
#line 243
7
"asn1p_y.y"
{
(
yyval
.
a_tag
).
tag_class
=
TC_CONTEXT_SPECIFIC
;
}
{
(
yyval
.
a_tag
).
tag_class
=
TC_CONTEXT_SPECIFIC
;
}
break
;
break
;
case
330
:
case
330
:
#line 243
9
"asn1p_y.y"
#line 243
8
"asn1p_y.y"
{
(
yyval
.
a_tag
).
tag_class
=
TC_UNIVERSAL
;
}
{
(
yyval
.
a_tag
).
tag_class
=
TC_UNIVERSAL
;
}
break
;
break
;
case
331
:
case
331
:
#line 24
40
"asn1p_y.y"
#line 24
39
"asn1p_y.y"
{
(
yyval
.
a_tag
).
tag_class
=
TC_APPLICATION
;
}
{
(
yyval
.
a_tag
).
tag_class
=
TC_APPLICATION
;
}
break
;
break
;
case
332
:
case
332
:
#line 244
1
"asn1p_y.y"
#line 244
0
"asn1p_y.y"
{
(
yyval
.
a_tag
).
tag_class
=
TC_PRIVATE
;
}
{
(
yyval
.
a_tag
).
tag_class
=
TC_PRIVATE
;
}
break
;
break
;
case
333
:
case
333
:
#line 244
5
"asn1p_y.y"
#line 244
4
"asn1p_y.y"
{
(
yyval
.
a_tag
).
tag_mode
=
TM_DEFAULT
;
}
{
(
yyval
.
a_tag
).
tag_mode
=
TM_DEFAULT
;
}
break
;
break
;
case
334
:
case
334
:
#line 244
6
"asn1p_y.y"
#line 244
5
"asn1p_y.y"
{
(
yyval
.
a_tag
).
tag_mode
=
TM_IMPLICIT
;
}
{
(
yyval
.
a_tag
).
tag_mode
=
TM_IMPLICIT
;
}
break
;
break
;
case
335
:
case
335
:
#line 244
7
"asn1p_y.y"
#line 244
6
"asn1p_y.y"
{
(
yyval
.
a_tag
).
tag_mode
=
TM_EXPLICIT
;
}
{
(
yyval
.
a_tag
).
tag_mode
=
TM_EXPLICIT
;
}
break
;
break
;
case
336
:
case
336
:
#line 245
1
"asn1p_y.y"
#line 245
0
"asn1p_y.y"
{
{
checkmem
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
));
checkmem
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
));
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
...
@@ -4909,7 +4908,7 @@ yyreduce:
...
@@ -4909,7 +4908,7 @@ yyreduce:
break
;
break
;
case
337
:
case
337
:
#line 245
5
"asn1p_y.y"
#line 245
4
"asn1p_y.y"
{
{
checkmem
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
));
checkmem
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
));
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
...
@@ -4917,19 +4916,19 @@ yyreduce:
...
@@ -4917,19 +4916,19 @@ yyreduce:
break
;
break
;
case
338
:
case
338
:
#line 246
3
"asn1p_y.y"
#line 246
2
"asn1p_y.y"
{
(
yyval
.
tv_str
)
=
0
;
}
{
(
yyval
.
tv_str
)
=
0
;
}
break
;
break
;
case
339
:
case
339
:
#line 246
4
"asn1p_y.y"
#line 246
3
"asn1p_y.y"
{
{
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
}
}
break
;
break
;
case
340
:
case
340
:
#line 24
70
"asn1p_y.y"
#line 24
69
"asn1p_y.y"
{
{
checkmem
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
));
checkmem
((
yyvsp
[(
1
)
-
(
1
)].
tv_str
));
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
(
yyval
.
tv_str
)
=
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
);
...
@@ -4937,7 +4936,7 @@ yyreduce:
...
@@ -4937,7 +4936,7 @@ yyreduce:
break
;
break
;
case
341
:
case
341
:
#line 247
7
"asn1p_y.y"
#line 247
6
"asn1p_y.y"
{
{
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
(
yyval
.
a_ref
)
=
asn1p_ref_new
(
yylineno
,
currentModule
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
RLT_lowercase
);
asn1p_ref_add_component
((
yyval
.
a_ref
),
(
yyvsp
[(
1
)
-
(
1
)].
tv_str
),
RLT_lowercase
);
...
@@ -4946,7 +4945,7 @@ yyreduce:
...
@@ -4946,7 +4945,7 @@ yyreduce:
break
;
break
;
case
342
:
case
342
:
#line 248
4
"asn1p_y.y"
#line 248
3
"asn1p_y.y"
{
{
(
yyval
.
a_value
)
=
asn1p_value_fromref
((
yyvsp
[(
1
)
-
(
1
)].
a_ref
),
0
);
(
yyval
.
a_value
)
=
asn1p_value_fromref
((
yyvsp
[(
1
)
-
(
1
)].
a_ref
),
0
);
}
}
...
@@ -4954,7 +4953,7 @@ yyreduce:
...
@@ -4954,7 +4953,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
/* Line 1267 of yacc.c. */
#line 495
8
"asn1p_y.c"
#line 495
7
"asn1p_y.c"
default:
break
;
default:
break
;
}
}
YY_SYMBOL_PRINT
(
"-> $$ ="
,
yyr1
[
yyn
],
&
yyval
,
&
yyloc
);
YY_SYMBOL_PRINT
(
"-> $$ ="
,
yyr1
[
yyn
],
&
yyval
,
&
yyloc
);
...
@@ -5168,7 +5167,7 @@ yyreturn:
...
@@ -5168,7 +5167,7 @@ yyreturn:
}
}
#line 248
8
"asn1p_y.y"
#line 248
7
"asn1p_y.y"
...
...
This diff is collapsed.
Click to expand it.
libasn1parser/asn1p_y.h
View file @
1a49ced9
...
@@ -262,7 +262,7 @@
...
@@ -262,7 +262,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef
union
YYSTYPE
typedef
union
YYSTYPE
#line 11
6
"asn1p_y.y"
#line 11
5
"asn1p_y.y"
{
{
asn1p_t
*
a_grammar
;
asn1p_t
*
a_grammar
;
asn1p_module_flags_e
a_module_flags
;
asn1p_module_flags_e
a_module_flags
;
...
...
This diff is collapsed.
Click to expand it.
libasn1parser/asn1p_y.y
View file @
1a49ced9
...
@@ -95,12 +95,11 @@ static asn1p_module_t *currentModule;
...
@@ -95,12 +95,11 @@ static asn1p_module_t *currentModule;
#ifdef AL_IMPORT
#ifdef AL_IMPORT
#error AL_IMPORT DEFINED ELSEWHERE!
#error AL_IMPORT DEFINED ELSEWHERE!
#endif
#endif
#define AL_IMPORT(to,where,from,field) do { \
#define AL_IMPORT(to, where, from, field) \
do { \
if(!(from)) break; \
if(!(from)) break; \
while(TQ_FIRST(&((from)->where))) { \
while(TQ_FIRST(&((from)->where))) { \
TQ_ADD(&((to)->where), \
TQ_ADD(&((to)->where), TQ_REMOVE(&((from)->where), field), field); \
TQ_REMOVE(&((from)->where), field), \
field); \
} \
} \
assert(TQ_FIRST(&((from)->where)) == 0); \
assert(TQ_FIRST(&((from)->where)) == 0); \
} while(0)
} while(0)
...
@@ -589,7 +588,7 @@ ModuleBody:
...
@@ -589,7 +588,7 @@ ModuleBody:
$$ = asn1p_module_new();
$$ = asn1p_module_new();
AL_IMPORT($$, exports, $1, xp_next);
AL_IMPORT($$, exports, $1, xp_next);
AL_IMPORT($$, imports, $2, xp_next);
AL_IMPORT($$, imports, $2, xp_next);
AL_IMPORT($$, members, $3, next
);
asn1p_module_move_members($$, $3
);
asn1p_module_free($1);
asn1p_module_free($1);
asn1p_module_free($2);
asn1p_module_free($2);
...
@@ -608,7 +607,7 @@ AssignmentList:
...
@@ -608,7 +607,7 @@ AssignmentList:
$$ = $2;
$$ = $2;
break;
break;
}
}
AL_IMPORT($$, members, $2, next
);
asn1p_module_move_members($$, $2
);
asn1p_module_free($2);
asn1p_module_free($2);
}
}
;
;
...
@@ -623,14 +622,14 @@ Assignment:
...
@@ -623,14 +622,14 @@ Assignment:
checkmem($$);
checkmem($$);
assert($1->expr_type != A1TC_INVALID);
assert($1->expr_type != A1TC_INVALID);
assert($1->meta_type != AMT_INVALID);
assert($1->meta_type != AMT_INVALID);
TQ_ADD(&($$->members), $1, next
);
asn1p_module_member_add($$, $1
);
}
}
| ValueAssignment {
| ValueAssignment {
$$ = asn1p_module_new();
$$ = asn1p_module_new();
checkmem($$);
checkmem($$);
assert($1->expr_type != A1TC_INVALID);
assert($1->expr_type != A1TC_INVALID);
assert($1->meta_type != AMT_INVALID);
assert($1->meta_type != AMT_INVALID);
TQ_ADD(&($$->members), $1, next
);
asn1p_module_member_add($$, $1
);
}
}
/*
/*
* Value set definition
* Value set definition
...
@@ -644,7 +643,7 @@ Assignment:
...
@@ -644,7 +643,7 @@ Assignment:
checkmem($$);
checkmem($$);
assert($1->expr_type != A1TC_INVALID);
assert($1->expr_type != A1TC_INVALID);
assert($1->meta_type != AMT_INVALID);
assert($1->meta_type != AMT_INVALID);
TQ_ADD(&($$->members), $1, next
);
asn1p_module_member_add($$, $1
);
}
}
| TOK_ENCODING_CONTROL TOK_capitalreference
| TOK_ENCODING_CONTROL TOK_capitalreference
{ asn1p_lexer_hack_push_encoding_control(); }
{ asn1p_lexer_hack_push_encoding_control(); }
...
@@ -728,11 +727,11 @@ ImportsList:
...
@@ -728,11 +727,11 @@ ImportsList:
ImportsElement {
ImportsElement {
$$ = asn1p_xports_new();
$$ = asn1p_xports_new();
checkmem($$);
checkmem($$);
TQ_ADD(&($$->members), $1, next);
TQ_ADD(&($$->
xp_
members), $1, next);
}
}
| ImportsList ',' ImportsElement {
| ImportsList ',' ImportsElement {
$$ = $1;
$$ = $1;
TQ_ADD(&($$->members), $3, next);
TQ_ADD(&($$->
xp_
members), $3, next);
}
}
;
;
...
@@ -789,11 +788,11 @@ ExportsBody:
...
@@ -789,11 +788,11 @@ ExportsBody:
ExportsElement {
ExportsElement {
$$ = asn1p_xports_new();
$$ = asn1p_xports_new();
assert($$);
assert($$);
TQ_ADD(&($$->members), $1, next);
TQ_ADD(&($$->
xp_
members), $1, next);
}
}
| ExportsBody ',' ExportsElement {
| ExportsBody ',' ExportsElement {
$$ = $1;
$$ = $1;
TQ_ADD(&($$->members), $3, next);
TQ_ADD(&($$->
xp_
members), $3, next);
}
}
;
;
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment