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
c8285715
Commit
c8285715
authored
Mar 04, 2005
by
Lev Walkin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
support for a class of circular references
parent
e0272aa0
Changes
30
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
766 additions
and
288 deletions
+766
-288
ChangeLog
ChangeLog
+2
-0
libasn1compiler/asn1c_C.c
libasn1compiler/asn1c_C.c
+61
-30
libasn1compiler/asn1c_misc.c
libasn1compiler/asn1c_misc.c
+16
-16
libasn1compiler/asn1c_misc.h
libasn1compiler/asn1c_misc.h
+0
-2
libasn1compiler/asn1c_out.c
libasn1compiler/asn1c_out.c
+3
-1
libasn1compiler/asn1c_out.h
libasn1compiler/asn1c_out.h
+11
-3
libasn1compiler/asn1c_save.c
libasn1compiler/asn1c_save.c
+18
-16
libasn1compiler/asn1compiler.c
libasn1compiler/asn1compiler.c
+0
-3
libasn1parser/asn1p_expr.h
libasn1parser/asn1p_expr.h
+1
-0
tests/19-param-OK.asn1.-P
tests/19-param-OK.asn1.-P
+19
-15
tests/30-set-OK.asn1.-P
tests/30-set-OK.asn1.-P
+4
-2
tests/31-set-of-OK.asn1.-P
tests/31-set-of-OK.asn1.-P
+28
-14
tests/32-sequence-of-OK.asn1.-P
tests/32-sequence-of-OK.asn1.-P
+26
-15
tests/39-sequence-of-OK.asn1.-P
tests/39-sequence-of-OK.asn1.-P
+15
-10
tests/42-real-life-OK.asn1.-PR
tests/42-real-life-OK.asn1.-PR
+27
-14
tests/43-recursion-OK.asn1.-P
tests/43-recursion-OK.asn1.-P
+38
-14
tests/44-choice-in-sequence-OK.asn1.-P
tests/44-choice-in-sequence-OK.asn1.-P
+4
-2
tests/46-redefine-OK.asn1.-PR
tests/46-redefine-OK.asn1.-PR
+4
-7
tests/47-set-ext-OK.asn1.-P
tests/47-set-ext-OK.asn1.-P
+16
-8
tests/50-constraint-OK.asn1.-P
tests/50-constraint-OK.asn1.-P
+0
-24
tests/59-choice-extended-OK.asn1.-P
tests/59-choice-extended-OK.asn1.-P
+6
-2
tests/60-any-OK.asn1.-P
tests/60-any-OK.asn1.-P
+8
-10
tests/65-multi-tag-OK.asn1.-P
tests/65-multi-tag-OK.asn1.-P
+4
-12
tests/65-multi-tag-OK.asn1.-Pfnative-types
tests/65-multi-tag-OK.asn1.-Pfnative-types
+4
-12
tests/66-ref-simple-OK.asn1.-P
tests/66-ref-simple-OK.asn1.-P
+5
-7
tests/69-reserved-words-OK.asn1.-P
tests/69-reserved-words-OK.asn1.-P
+4
-2
tests/70-xer-test-OK.asn1.-P
tests/70-xer-test-OK.asn1.-P
+42
-38
tests/72-same-names-OK.asn1.-P
tests/72-same-names-OK.asn1.-P
+12
-9
tests/73-circular-OK.asn1
tests/73-circular-OK.asn1
+31
-0
tests/73-circular-OK.asn1.-P
tests/73-circular-OK.asn1.-P
+357
-0
No files found.
ChangeLog
View file @
c8285715
...
@@ -6,6 +6,8 @@
...
@@ -6,6 +6,8 @@
* X.693:8.3.4 prohibits anything but SignedNumber; fixed XER codec.
* X.693:8.3.4 prohibits anything but SignedNumber; fixed XER codec.
* Fixed ENUMERATED identifier to value conversion in XER.
* Fixed ENUMERATED identifier to value conversion in XER.
Reported by <jacque.celaire@caramail.com>.
Reported by <jacque.celaire@caramail.com>.
* Compiler is taught to produce compilable code for yet another class
of circular ASN.1 type references.
* If the compiled file contents are the same as in already existing
* If the compiled file contents are the same as in already existing
file (left from previous compilation), the old file is retained.
file (left from previous compilation), the old file is retained.
This prevents thrashing `make` dependencies if amount of changes in
This prevents thrashing `make` dependencies if amount of changes in
...
...
libasn1compiler/asn1c_C.c
View file @
c8285715
...
@@ -35,6 +35,7 @@ static int expr_as_xmlvaluelist(arg_t *arg, asn1p_expr_t *expr);
...
@@ -35,6 +35,7 @@ static int expr_as_xmlvaluelist(arg_t *arg, asn1p_expr_t *expr);
static
int
expr_elements_count
(
arg_t
*
arg
,
asn1p_expr_t
*
expr
);
static
int
expr_elements_count
(
arg_t
*
arg
,
asn1p_expr_t
*
expr
);
static
int
emit_member_table
(
arg_t
*
arg
,
asn1p_expr_t
*
expr
);
static
int
emit_member_table
(
arg_t
*
arg
,
asn1p_expr_t
*
expr
);
static
int
emit_tag2member_map
(
arg_t
*
arg
,
tag2el_t
*
tag2el
,
int
tag2el_count
,
const
char
*
opt_modifier
);
static
int
emit_tag2member_map
(
arg_t
*
arg
,
tag2el_t
*
tag2el
,
int
tag2el_count
,
const
char
*
opt_modifier
);
static
int
emit_include_dependencies
(
arg_t
*
arg
);
static
int
out_name_chain
(
arg_t
*
arg
,
int
check_reserved_keywords
);
static
int
out_name_chain
(
arg_t
*
arg
,
int
check_reserved_keywords
);
enum
tvm_compat
{
enum
tvm_compat
{
...
@@ -59,16 +60,9 @@ static int emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode
...
@@ -59,16 +60,9 @@ static int emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode
OUT("
/* Context for parsing across buffer boundaries */
\n"); \
OUT("
/* Context for parsing across buffer boundaries */
\n"); \
OUT("asn_struct_ctx_t _asn_ctx;\n"));
OUT("asn_struct_ctx_t _asn_ctx;\n"));
#define DEPENDENCIES do { \
#define DEPENDENCIES do { \
asn1p_expr_t *__m; \
emit_include_dependencies(arg); \
TQ_FOR(__m, &(expr->members), next) { \
if((!(__m->expr_type & ASN_CONSTR_MASK) \
&& __m->expr_type > ASN_CONSTR_MASK) \
|| __m->meta_type == AMT_TYPEREF) { \
GEN_INCLUDE(asn1c_type_name(arg, \
__m, TNF_INCLUDE)); \
} \
} \
if(expr->expr_type == ASN_CONSTR_SET_OF) \
if(expr->expr_type == ASN_CONSTR_SET_OF) \
GEN_INCLUDE("asn_SET_OF"); \
GEN_INCLUDE("asn_SET_OF"); \
if(expr->expr_type == ASN_CONSTR_SEQUENCE_OF) \
if(expr->expr_type == ASN_CONSTR_SEQUENCE_OF) \
...
@@ -81,7 +75,6 @@ static int emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode
...
@@ -81,7 +75,6 @@ static int emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode
int
int
asn1c_lang_C_type_REAL
(
arg_t
*
arg
)
{
asn1c_lang_C_type_REAL
(
arg_t
*
arg
)
{
REDIR
(
OT_DEPS
);
return
asn1c_lang_C_type_SIMPLE_TYPE
(
arg
);
return
asn1c_lang_C_type_SIMPLE_TYPE
(
arg
);
}
}
...
@@ -245,7 +238,7 @@ asn1c_lang_C_type_SEQUENCE(arg_t *arg) {
...
@@ -245,7 +238,7 @@ asn1c_lang_C_type_SEQUENCE(arg_t *arg) {
}
}
PCTX_DEF
;
PCTX_DEF
;
OUT
(
"} %s%s%s"
,
expr
->
marker
.
flags
?
"*"
:
""
,
OUT
(
"} %s%s%s"
,
(
expr
->
marker
.
flags
&
EM_INDIRECT
)
?
"*"
:
""
,
expr
->
_anonymous_type
?
""
:
MKID
(
expr
->
Identifier
),
expr
->
_anonymous_type
?
""
:
MKID
(
expr
->
Identifier
),
arg
->
embed
?
""
:
"_t"
);
arg
->
embed
?
""
:
"_t"
);
...
@@ -406,7 +399,7 @@ asn1c_lang_C_type_SET(arg_t *arg) {
...
@@ -406,7 +399,7 @@ asn1c_lang_C_type_SET(arg_t *arg) {
);
);
PCTX_DEF
;
PCTX_DEF
;
OUT
(
"} %s%s%s"
,
expr
->
marker
.
flags
?
"*"
:
""
,
OUT
(
"} %s%s%s"
,
(
expr
->
marker
.
flags
&
EM_INDIRECT
)
?
"*"
:
""
,
expr
->
_anonymous_type
?
""
:
MKID
(
expr
->
Identifier
),
expr
->
_anonymous_type
?
""
:
MKID
(
expr
->
Identifier
),
arg
->
embed
?
""
:
"_t"
);
arg
->
embed
?
""
:
"_t"
);
...
@@ -567,7 +560,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) {
...
@@ -567,7 +560,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) {
int
int
asn1c_lang_C_type_SEx_OF
(
arg_t
*
arg
)
{
asn1c_lang_C_type_SEx_OF
(
arg_t
*
arg
)
{
asn1p_expr_t
*
expr
=
arg
->
expr
;
asn1p_expr_t
*
expr
=
arg
->
expr
;
asn1p_expr_t
*
memb
;
asn1p_expr_t
*
memb
=
TQ_FIRST
(
&
expr
->
members
)
;
DEPENDENCIES
;
DEPENDENCIES
;
...
@@ -579,8 +572,6 @@ asn1c_lang_C_type_SEx_OF(arg_t *arg) {
...
@@ -579,8 +572,6 @@ asn1c_lang_C_type_SEx_OF(arg_t *arg) {
OUT
(
"typedef struct %s {
\n
"
,
MKID
(
expr
->
Identifier
));
OUT
(
"typedef struct %s {
\n
"
,
MKID
(
expr
->
Identifier
));
}
}
memb
=
TQ_FIRST
(
&
expr
->
members
);
INDENT
(
+
1
);
INDENT
(
+
1
);
OUT
(
"A_%s_OF("
,
OUT
(
"A_%s_OF("
,
(
arg
->
expr
->
expr_type
==
ASN_CONSTR_SET_OF
)
(
arg
->
expr
->
expr_type
==
ASN_CONSTR_SET_OF
)
...
@@ -611,13 +602,13 @@ asn1c_lang_C_type_SEx_OF(arg_t *arg) {
...
@@ -611,13 +602,13 @@ asn1c_lang_C_type_SEx_OF(arg_t *arg) {
arg
->
embed
--
;
arg
->
embed
--
;
assert
(
arg
->
target
->
target
==
OT_TYPE_DECLS
);
assert
(
arg
->
target
->
target
==
OT_TYPE_DECLS
);
}
else
{
}
else
{
OUT
(
"%s"
,
asn1c_type_name
(
arg
,
memb
,
TNF_
CTYPE
|
TNF_CHECK
));
OUT
(
"%s"
,
asn1c_type_name
(
arg
,
memb
,
TNF_
RSAFE
));
}
}
OUT
(
") list;
\n
"
);
OUT
(
") list;
\n
"
);
INDENT
(
-
1
);
INDENT
(
-
1
);
PCTX_DEF
;
PCTX_DEF
;
OUT
(
"} %s%s%s"
,
expr
->
marker
.
flags
?
"*"
:
""
,
OUT
(
"} %s%s%s"
,
(
expr
->
marker
.
flags
&
EM_INDIRECT
)
?
"*"
:
""
,
expr
->
_anonymous_type
?
""
:
MKID
(
expr
->
Identifier
),
expr
->
_anonymous_type
?
""
:
MKID
(
expr
->
Identifier
),
arg
->
embed
?
""
:
"_t"
);
arg
->
embed
?
""
:
"_t"
);
...
@@ -752,7 +743,7 @@ asn1c_lang_C_type_CHOICE(arg_t *arg) {
...
@@ -752,7 +743,7 @@ asn1c_lang_C_type_CHOICE(arg_t *arg) {
);
);
PCTX_DEF
;
PCTX_DEF
;
OUT
(
"} %s%s%s"
,
expr
->
marker
.
flags
?
"*"
:
""
,
OUT
(
"} %s%s%s"
,
(
expr
->
marker
.
flags
&
EM_INDIRECT
)
?
"*"
:
""
,
expr
->
_anonymous_type
?
""
:
MKID
(
expr
->
Identifier
),
expr
->
_anonymous_type
?
""
:
MKID
(
expr
->
Identifier
),
arg
->
embed
?
""
:
"_t"
);
arg
->
embed
?
""
:
"_t"
);
...
@@ -918,24 +909,23 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) {
...
@@ -918,24 +909,23 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) {
* refer it using "struct X" convention,
* refer it using "struct X" convention,
* as it may recursively include the current structure.
* as it may recursively include the current structure.
*/
*/
if
(
expr
->
marker
.
flags
)
{
if
(
expr
->
marker
.
flags
&
(
EM_INDIRECT
|
EM_UNRECURSE
)
)
{
asn1p_expr_t
*
terminal
;
asn1p_expr_t
*
terminal
;
terminal
=
asn1f_find_terminal_type_ex
(
arg
->
asn
,
expr
);
terminal
=
asn1f_find_terminal_type_ex
(
arg
->
asn
,
expr
);
if
(
terminal
if
(
terminal
&&
(
terminal
->
expr_type
&
ASN_CONSTR_MASK
))
{
&&
(
terminal
->
expr_type
&
ASN_CONSTR_MASK
))
{
REDIR
(
OT_DEPS
);
tnfmt
=
TNF_RSAFE
;
tnfmt
=
TNF_RSAFE
;
REDIR
(
OT_FWD_DECLS
);
OUT
(
"
\n
"
);
OUT
(
"%s;
\t
/* Forward declaration */
\n
"
,
OUT
(
"%s;
\t
/* Forward declaration */
\n
"
,
asn1c_type_name
(
arg
,
arg
->
expr
,
tnfmt
|
TNF_CHECK
));
asn1c_type_name
(
arg
,
arg
->
expr
,
tnfmt
));
}
}
}
}
REDIR
(
OT_TYPE_DECLS
);
REDIR
(
OT_TYPE_DECLS
);
OUT
(
"%s"
,
asn1c_type_name
(
arg
,
arg
->
expr
,
tnfmt
|
TNF_CHECK
));
OUT
(
"%s"
,
asn1c_type_name
(
arg
,
arg
->
expr
,
tnfmt
));
if
(
!
expr
->
_anonymous_type
)
{
if
(
!
expr
->
_anonymous_type
)
{
OUT
(
"%s"
,
expr
->
marker
.
flags
?
"
\t
*"
:
"
\t
"
);
OUT
(
"%s"
,
(
expr
->
marker
.
flags
&
EM_INDIRECT
)
?
"
\t
*"
:
"
\t
"
);
OUT
(
"%s"
,
MKID
(
expr
->
Identifier
));
OUT
(
"%s"
,
MKID
(
expr
->
Identifier
));
if
((
expr
->
marker
.
flags
&
EM_DEFAULT
)
==
EM_DEFAULT
)
if
((
expr
->
marker
.
flags
&
EM_DEFAULT
)
==
EM_DEFAULT
)
OUT
(
"
\t
/* DEFAULT %s */"
,
OUT
(
"
\t
/* DEFAULT %s */"
,
...
@@ -951,11 +941,10 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) {
...
@@ -951,11 +941,10 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) {
REDIR
(
OT_TYPE_DECLS
);
REDIR
(
OT_TYPE_DECLS
);
OUT
(
"typedef %s
\t
"
,
OUT
(
"typedef %s
\t
"
,
asn1c_type_name
(
arg
,
arg
->
expr
,
TNF_CTYPE
|
TNF_CHECK
));
asn1c_type_name
(
arg
,
arg
->
expr
,
TNF_CTYPE
));
OUT
(
"%s%s_t"
,
OUT
(
"%s%s_t"
,
expr
->
marker
.
flags
?
"*"
:
" "
,
(
expr
->
marker
.
flags
&
EM_INDIRECT
)
?
"*"
:
" "
,
MKID
(
expr
->
Identifier
));
MKID_nc
(
expr
->
Identifier
));
OUT_DEBUG
(
"
\t
/* %s:%d */"
,
__FILE__
,
__LINE__
);
}
}
if
((
expr
->
expr_type
==
ASN_BASIC_ENUMERATED
)
if
((
expr
->
expr_type
==
ASN_BASIC_ENUMERATED
)
...
@@ -1556,6 +1545,47 @@ expr_elements_count(arg_t *arg, asn1p_expr_t *expr) {
...
@@ -1556,6 +1545,47 @@ expr_elements_count(arg_t *arg, asn1p_expr_t *expr) {
return
elements
;
return
elements
;
}
}
static
int
emit_include_dependencies
(
arg_t
*
arg
)
{
asn1p_expr_t
*
expr
=
arg
->
expr
;
asn1p_expr_t
*
memb
;
TQ_FOR
(
memb
,
&
(
expr
->
members
),
next
)
{
if
((
memb
->
meta_type
==
AMT_TYPEREF
&&
(
memb
->
marker
.
flags
&
EM_INDIRECT
))
||
expr
->
expr_type
==
ASN_CONSTR_SET_OF
||
expr
->
expr_type
==
ASN_CONSTR_SEQUENCE_OF
)
{
asn1p_expr_t
*
terminal
;
terminal
=
asn1f_find_terminal_type_ex
(
arg
->
asn
,
memb
);
if
(
terminal
&&
!
terminal
->
parent_expr
&&
(
terminal
->
expr_type
&
ASN_CONSTR_MASK
))
{
int
saved_target
=
arg
->
target
->
target
;
REDIR
(
OT_FWD_DECLS
);
OUT
(
"%s;
\t
/* Forward declaration */
\n
"
,
asn1c_type_name
(
arg
,
memb
,
TNF_RSAFE
));
REDIR
(
saved_target
);
memb
->
marker
.
flags
|=
EM_UNRECURSE
;
}
}
if
((
!
(
memb
->
expr_type
&
ASN_CONSTR_MASK
)
&&
memb
->
expr_type
>
ASN_CONSTR_MASK
)
||
memb
->
meta_type
==
AMT_TYPEREF
)
{
if
(
memb
->
marker
.
flags
&
EM_UNRECURSE
)
{
GEN_POSTINCLUDE
(
asn1c_type_name
(
arg
,
memb
,
TNF_INCLUDE
));
}
else
{
GEN_INCLUDE
(
asn1c_type_name
(
arg
,
memb
,
TNF_INCLUDE
));
}
}
}
return
0
;
}
static
int
static
int
emit_member_table
(
arg_t
*
arg
,
asn1p_expr_t
*
expr
)
{
emit_member_table
(
arg_t
*
arg
,
asn1p_expr_t
*
expr
)
{
int
save_target
;
int
save_target
;
...
@@ -1576,7 +1606,8 @@ emit_member_table(arg_t *arg, asn1p_expr_t *expr) {
...
@@ -1576,7 +1606,8 @@ emit_member_table(arg_t *arg, asn1p_expr_t *expr) {
if
(
outmost_tag
&&
outmost_tag
->
tag_value
==
-
1
)
if
(
outmost_tag
&&
outmost_tag
->
tag_value
==
-
1
)
OUT
(
"ATF_OPEN_TYPE | "
);
OUT
(
"ATF_OPEN_TYPE | "
);
OUT
(
"%s, "
,
expr
->
marker
.
flags
?
"ATF_POINTER"
:
"ATF_NOFLAGS"
);
OUT
(
"%s, "
,
(
expr
->
marker
.
flags
&
EM_INDIRECT
)
?
"ATF_POINTER"
:
"ATF_NOFLAGS"
);
if
((
expr
->
marker
.
flags
&
EM_OPTIONAL
)
==
EM_OPTIONAL
)
{
if
((
expr
->
marker
.
flags
&
EM_OPTIONAL
)
==
EM_OPTIONAL
)
{
asn1p_expr_t
*
tv
;
asn1p_expr_t
*
tv
;
int
opts
=
0
;
int
opts
=
0
;
...
...
libasn1compiler/asn1c_misc.c
View file @
c8285715
...
@@ -124,9 +124,6 @@ char *
...
@@ -124,9 +124,6 @@ char *
asn1c_type_name
(
arg_t
*
arg
,
asn1p_expr_t
*
expr
,
enum
tnfmt
_format
)
{
asn1c_type_name
(
arg_t
*
arg
,
asn1p_expr_t
*
expr
,
enum
tnfmt
_format
)
{
asn1p_expr_t
*
top_parent
;
asn1p_expr_t
*
top_parent
;
char
*
typename
;
char
*
typename
;
enum
ami_flags_e
ami_flags
=
(
_format
&
TNF_CHECK
)
?
AMI_CHECK_RESERVED
:
0
;
_format
&=
~
TNF_CHECK
;
/* Rewind to the topmost parent expression */
/* Rewind to the topmost parent expression */
if
((
top_parent
=
expr
->
parent_expr
))
if
((
top_parent
=
expr
->
parent_expr
))
...
@@ -152,10 +149,18 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) {
...
@@ -152,10 +149,18 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) {
return
asn1c_type_name
(
&
tmp
,
tmp
.
expr
,
_format
);
return
asn1c_type_name
(
&
tmp
,
tmp
.
expr
,
_format
);
}
}
if
(
_format
==
TNF_RSAFE
)
{
asn1p_expr_t
*
terminal
;
terminal
=
asn1f_find_terminal_type_ex
(
arg
->
asn
,
expr
);
if
(
terminal
&&
terminal
->
expr_type
&
ASN_CONSTR_MASK
)
{
typename
=
terminal
->
Identifier
;
}
}
if
(
_format
==
TNF_CTYPE
)
{
if
(
_format
==
TNF_CTYPE
)
{
/*
/*
* If the component references the type itself,
* If the component references the type itself,
* switch to a recursion
safe type representation
* switch to a recursion
-safe type naming
* ("struct foo" instead of "foo_t").
* ("struct foo" instead of "foo_t").
*/
*/
asn1p_expr_t
*
terminal
;
asn1p_expr_t
*
terminal
;
...
@@ -220,19 +225,14 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) {
...
@@ -220,19 +225,14 @@ asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) {
switch
(
_format
)
{
switch
(
_format
)
{
case
TNF_UNMODIFIED
:
case
TNF_UNMODIFIED
:
case
TNF_INCLUDE
:
case
TNF_INCLUDE
:
assert
(
ami_flags
==
0
);
/* (TNF_INCLUDE | TNF_CHECK)?! */
return
asn1c_make_identifier
(
AMI_MASK_ONLY_SPACES
,
typename
,
0
);
ami_flags
|=
AMI_MASK_ONLY_SPACES
;
return
asn1c_make_identifier
(
ami_flags
,
typename
,
0
);
case
TNF_SAFE
:
case
TNF_SAFE
:
return
asn1c_make_identifier
(
ami_flags
,
typename
,
0
);
return
asn1c_make_identifier
(
0
,
typename
,
0
);
case
TNF_CTYPE
:
case
TNF_CTYPE
:
/* C type */
return
asn1c_make_identifier
(
ami_flags
,
typename
,
"t"
,
0
);
return
asn1c_make_identifier
(
0
,
typename
,
"t"
,
0
);
case
TNF_RSAFE
:
case
TNF_RSAFE
:
/* Recursion-safe type */
return
asn1c_make_identifier
(
ami_flags
,
"struct"
,
" "
,
typename
,
0
);
return
asn1c_make_identifier
(
AMI_CHECK_RESERVED
,
case
TNF_NORCHECK
:
"struct"
,
" "
,
typename
,
0
);
case
TNF_CHECK
:
assert
(
_format
!=
TNF_NORCHECK
);
assert
(
_format
!=
TNF_CHECK
);
}
}
assert
(
!
"unreachable"
);
assert
(
!
"unreachable"
);
...
...
libasn1compiler/asn1c_misc.h
View file @
c8285715
...
@@ -16,8 +16,6 @@ char *asn1c_make_identifier(enum ami_flags_e, char *arg1, ...);
...
@@ -16,8 +16,6 @@ char *asn1c_make_identifier(enum ami_flags_e, char *arg1, ...);
* Return the type name of the specified expression.
* Return the type name of the specified expression.
*/
*/
enum
tnfmt
{
enum
tnfmt
{
TNF_NORCHECK
=
0x00
,
TNF_CHECK
=
0x01
,
TNF_UNMODIFIED
=
0x10
,
/* Return unmodified type name */
TNF_UNMODIFIED
=
0x10
,
/* Return unmodified type name */
TNF_INCLUDE
=
0x20
,
/* Format for #include <> */
TNF_INCLUDE
=
0x20
,
/* Format for #include <> */
TNF_CTYPE
=
0x30
,
/* Format as normal C-ish type (append "_t") */
TNF_CTYPE
=
0x30
,
/* Format as normal C-ish type (append "_t") */
...
...
libasn1compiler/asn1c_out.c
View file @
c8285715
...
@@ -72,7 +72,9 @@ asn1c_compiled_output(arg_t *arg, const char *fmt, ...) {
...
@@ -72,7 +72,9 @@ asn1c_compiled_output(arg_t *arg, const char *fmt, ...) {
m
->
len
=
ret
;
m
->
len
=
ret
;
if
(
arg
->
target
->
target
==
OT_INCLUDES
)
{
if
(
arg
->
target
->
target
==
OT_INCLUDES
||
arg
->
target
->
target
==
OT_FWD_DECLS
||
arg
->
target
->
target
==
OT_POST_INCLUDE
)
{
out_chunk_t
*
v
;
out_chunk_t
*
v
;
TQ_FOR
(
v
,
&
dst
->
chunks
,
next
)
{
TQ_FOR
(
v
,
&
dst
->
chunks
,
next
)
{
if
(
m
->
len
==
v
->
len
if
(
m
->
len
==
v
->
len
...
...
libasn1compiler/asn1c_out.h
View file @
c8285715
...
@@ -16,8 +16,10 @@ typedef struct compiler_streams {
...
@@ -16,8 +16,10 @@ typedef struct compiler_streams {
OT_IGNORE
,
/* Ignore this output */
OT_IGNORE
,
/* Ignore this output */
OT_INCLUDES
,
/* #include files */
OT_INCLUDES
,
/* #include files */
OT_DEPS
,
/* Dependencies (other than #includes) */
OT_DEPS
,
/* Dependencies (other than #includes) */
OT_FWD_DECLS
,
/* Forward declarations */
OT_TYPE_DECLS
,
/* Type declarations */
OT_TYPE_DECLS
,
/* Type declarations */
OT_FUNC_DECLS
,
/* Function declarations */
OT_FUNC_DECLS
,
/* Function declarations */
OT_POST_INCLUDE
,
/* #include after type definition */
OT_CTABLES
,
/* Constraint tables */
OT_CTABLES
,
/* Constraint tables */
OT_CODE
,
/* Some code */
OT_CODE
,
/* Some code */
OT_STAT_DEFS
,
/* Static definitions */
OT_STAT_DEFS
,
/* Static definitions */
...
@@ -32,7 +34,7 @@ typedef struct compiler_streams {
...
@@ -32,7 +34,7 @@ typedef struct compiler_streams {
}
compiler_streams_t
;
}
compiler_streams_t
;
static
char
*
_compiler_stream2str
[]
__attribute__
((
unused
))
static
char
*
_compiler_stream2str
[]
__attribute__
((
unused
))
=
{
"IGNORE"
,
"INCLUDES"
,
"DEPS"
,
"
TYPE-DECLS"
,
"FUNC-DECLS
"
,
"CTABLES"
,
"CODE"
,
"STAT-DEFS"
};
=
{
"IGNORE"
,
"INCLUDES"
,
"DEPS"
,
"
FWD-DECLS"
,
"TYPE-DECLS"
,
"FUNC-DECLS"
,
"POST-INCLUDE
"
,
"CTABLES"
,
"CODE"
,
"STAT-DEFS"
};
int
asn1c_compiled_output
(
arg_t
*
arg
,
const
char
*
fmt
,
...);
int
asn1c_compiled_output
(
arg_t
*
arg
,
const
char
*
fmt
,
...);
...
@@ -86,14 +88,20 @@ int asn1c_compiled_output(arg_t *arg, const char *fmt, ...);
...
@@ -86,14 +88,20 @@ int asn1c_compiled_output(arg_t *arg, const char *fmt, ...);
OUT_NOINDENT("#include <%s.h>\n", filename); \
OUT_NOINDENT("#include <%s.h>\n", filename); \
REDIR(saved_target); \
REDIR(saved_target); \
} while(0)
} while(0)
#define GEN_POSTINCLUDE(filename) do { \
int saved_target = arg->target->target; \
REDIR(OT_POST_INCLUDE); \
OUT_NOINDENT("#include <%s.h>\n", filename); \
REDIR(saved_target); \
} while(0)
/* Generate ASN.1 type declaration */
/* Generate ASN.1 type declaration */
#define GEN_DECLARE(expr) do { \
#define GEN_DECLARE(expr) do { \
int saved_target = arg->target->target; \
int saved_target = arg->target->target; \
REDIR(OT_
DEPS);
\
REDIR(OT_
FUNC_DECLS);
\
OUT_NOINDENT("extern asn_TYPE_descriptor_t " \
OUT_NOINDENT("extern asn_TYPE_descriptor_t " \
"asn_DEF_%s;\n", \
"asn_DEF_%s;\n", \
MKID(expr->Identifier)); \
MKID
_nc
(expr->Identifier)); \
REDIR(saved_target); \
REDIR(saved_target); \
} while(0)
} while(0)
...
...
libasn1compiler/asn1c_save.c
View file @
c8285715
...
@@ -222,21 +222,23 @@ asn1c_save_streams(arg_t *arg, asn1c_fdeps_t *deps) {
...
@@ -222,21 +222,23 @@ asn1c_save_streams(arg_t *arg, asn1c_fdeps_t *deps) {
fprintf
(
fp_h
,
"#ifdef __cplusplus
\n
extern
\"
C
\"
{
\n
#endif
\n\n
"
);
fprintf
(
fp_h
,
"#ifdef __cplusplus
\n
extern
\"
C
\"
{
\n
#endif
\n\n
"
);
fprintf
(
fp_h
,
"#include <asn_application.h>
\n\n
"
);
fprintf
(
fp_h
,
"#include <asn_application.h>
\n
"
);
TQ_FOR
(
ot
,
&
(
cs
->
destination
[
OT_INCLUDES
].
chunks
),
next
)
{
#define SAVE_STREAM(idx, msg, actdep) do { \
asn1c_activate_dependency
(
deps
,
0
,
ot
->
buf
);
if(TQ_FIRST(&(cs->destination[idx].chunks))) \
fwrite
(
ot
->
buf
,
ot
->
len
,
1
,
fp_h
);
fprintf(fp_h, "\n
/* %s */
\n", msg); \
}
TQ_FOR(ot, &(cs->destination[idx].chunks), next) { \
fprintf
(
fp_h
,
"
\n
"
);
if(actdep) asn1c_activate_dependency(deps, 0, ot->buf); \
TQ_FOR
(
ot
,
&
(
cs
->
destination
[
OT_DEPS
].
chunks
),
next
)
fwrite(ot->buf, ot->len, 1, fp_h); \
fwrite
(
ot
->
buf
,
ot
->
len
,
1
,
fp_h
);
} \
fprintf
(
fp_h
,
"
\n
"
);
} while(0)
TQ_FOR
(
ot
,
&
(
cs
->
destination
[
OT_TYPE_DECLS
].
chunks
),
next
)
fwrite
(
ot
->
buf
,
ot
->
len
,
1
,
fp_h
);
SAVE_STREAM
(
OT_INCLUDES
,
"Including external dependencies"
,
1
);
fprintf
(
fp_h
,
"
\n
"
);
SAVE_STREAM
(
OT_DEPS
,
"Dependencies"
,
0
);
TQ_FOR
(
ot
,
&
(
cs
->
destination
[
OT_FUNC_DECLS
].
chunks
),
next
)
SAVE_STREAM
(
OT_FWD_DECLS
,
"Forward declarations"
,
0
);
fwrite
(
ot
->
buf
,
ot
->
len
,
1
,
fp_h
);
SAVE_STREAM
(
OT_TYPE_DECLS
,
expr
->
Identifier
,
0
);
SAVE_STREAM
(
OT_FUNC_DECLS
,
"Implementation"
,
0
);
SAVE_STREAM
(
OT_POST_INCLUDE
,
"Referred external types"
,
1
);
fprintf
(
fp_h
,
"
\n
#ifdef __cplusplus
\n
}
\n
#endif
\n\n
"
fprintf
(
fp_h
,
"
\n
#ifdef __cplusplus
\n
}
\n
#endif
\n\n
"
"#endif
\t
/* _%s_H_ */
\n
"
,
"#endif
\t
/* _%s_H_ */
\n
"
,
...
@@ -251,7 +253,7 @@ asn1c_save_streams(arg_t *arg, asn1c_fdeps_t *deps) {
...
@@ -251,7 +253,7 @@ asn1c_save_streams(arg_t *arg, asn1c_fdeps_t *deps) {
TQ_FOR
(
ot
,
&
(
cs
->
destination
[
OT_STAT_DEFS
].
chunks
),
next
)
TQ_FOR
(
ot
,
&
(
cs
->
destination
[
OT_STAT_DEFS
].
chunks
),
next
)
fwrite
(
ot
->
buf
,
ot
->
len
,
1
,
fp_c
);
fwrite
(
ot
->
buf
,
ot
->
len
,
1
,
fp_c
);
assert
(
OT_MAX
==
8
);
assert
(
OT_MAX
==
10
);
/* Protection from reckless changes */
fclose
(
fp_c
);
fclose
(
fp_c
);
fclose
(
fp_h
);
fclose
(
fp_h
);
...
...
libasn1compiler/asn1compiler.c
View file @
c8285715
...
@@ -76,9 +76,6 @@ asn1c_compile_expr(arg_t *arg) {
...
@@ -76,9 +76,6 @@ asn1c_compile_expr(arg_t *arg) {
type_cb
=
asn1_lang_map
[
expr
->
meta_type
][
expr
->
expr_type
].
type_cb
;
type_cb
=
asn1_lang_map
[
expr
->
meta_type
][
expr
->
expr_type
].
type_cb
;
if
(
type_cb
)
{
if
(
type_cb
)
{
if
(
arg
->
target
->
destination
[
OT_TYPE_DECLS
].
indent_level
==
0
)
OUT
(
"
\n
"
);
DEBUG
(
"Compiling %s at line %d"
,
DEBUG
(
"Compiling %s at line %d"
,
expr
->
Identifier
,
expr
->
Identifier
,
expr
->
_lineno
);
expr
->
_lineno
);
...
...
libasn1parser/asn1p_expr.h
View file @
c8285715
...
@@ -178,6 +178,7 @@ typedef struct asn1p_expr_s {
...
@@ -178,6 +178,7 @@ typedef struct asn1p_expr_s {
EM_INDIRECT
=
0x01
,
/* 0001: Represent as pointer */
EM_INDIRECT
=
0x01
,
/* 0001: Represent as pointer */
EM_OPTIONAL
=
0x03
,
/* 0011: Optional member */
EM_OPTIONAL
=
0x03
,
/* 0011: Optional member */
EM_DEFAULT
=
0x07
,
/* 0111: default_value */
EM_DEFAULT
=
0x07
,
/* 0111: default_value */
EM_UNRECURSE
=
0x08
,
/* 1000: Use safe naming */
}
flags
;
}
flags
;
asn1p_value_t
*
default_value
;
/* For EM_DEFAULT case */
asn1p_value_t
*
default_value
;
/* For EM_DEFAULT case */
}
marker
;
}
marker
;
...
...
tests/19-param-OK.asn1.-P
View file @
c8285715
...
@@ -7,13 +7,8 @@
...
@@ -7,13 +7,8 @@
#include <Name.h>
#include <Name.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [Certificate] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Certificate;
/*** <<< TYPE-DECLS [Certificate] >>> ***/
/*** <<< TYPE-DECLS [Certificate] >>> ***/
typedef struct Certificate {
typedef struct Certificate {
struct toBeSigned {
struct toBeSigned {
INTEGER_t version;
INTEGER_t version;
...
@@ -30,6 +25,10 @@ typedef struct Certificate {
...
@@ -30,6 +25,10 @@ typedef struct Certificate {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Certificate_t;
} Certificate_t;
/*** <<< FUNC-DECLS [Certificate] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Certificate;
/*** <<< CODE [Certificate] >>> ***/
/*** <<< CODE [Certificate] >>> ***/
static int
static int
...
@@ -192,24 +191,30 @@ asn_TYPE_descriptor_t asn_DEF_Certificate = {
...
@@ -192,24 +191,30 @@ asn_TYPE_descriptor_t asn_DEF_Certificate = {
/*** <<< INCLUDES [Name] >>> ***/
/*** <<< INCLUDES [Name] >>> ***/
#include <RelativeDistinguishedName.h>
#include <asn_SEQUENCE_OF.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
/*** <<<
DEP
S [Name] >>> ***/
/*** <<<
FWD-DECL
S [Name] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Name;
struct RelativeDistinguishedName; /* Forward declaration */
/*** <<< TYPE-DECLS [Name] >>> ***/
/*** <<< TYPE-DECLS [Name] >>> ***/
typedef struct Name {
typedef struct Name {
A_SEQUENCE_OF(
RelativeDistinguishedName_t
) list;
A_SEQUENCE_OF(
struct RelativeDistinguishedName
) list;
/* Context for parsing across buffer boundaries */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Name_t;
} Name_t;
/*** <<< FUNC-DECLS [Name] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Name;
/*** <<< POST-INCLUDE [Name] >>> ***/
#include <RelativeDistinguishedName.h>
/*** <<< STAT-DEFS [Name] >>> ***/
/*** <<< STAT-DEFS [Name] >>> ***/
static asn_TYPE_member_t asn_MBR_Name_1[] = {
static asn_TYPE_member_t asn_MBR_Name_1[] = {
...
@@ -258,13 +263,8 @@ asn_TYPE_descriptor_t asn_DEF_Name = {
...
@@ -258,13 +263,8 @@ asn_TYPE_descriptor_t asn_DEF_Name = {
#include <asn_SET_OF.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<< DEPS [RelativeDistinguishedName] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_RelativeDistinguishedName;
/*** <<< TYPE-DECLS [RelativeDistinguishedName] >>> ***/
/*** <<< TYPE-DECLS [RelativeDistinguishedName] >>> ***/
typedef struct RelativeDistinguishedName {
typedef struct RelativeDistinguishedName {
A_SET_OF(IA5String_t) list;
A_SET_OF(IA5String_t) list;
...
@@ -272,6 +272,10 @@ typedef struct RelativeDistinguishedName {
...
@@ -272,6 +272,10 @@ typedef struct RelativeDistinguishedName {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} RelativeDistinguishedName_t;
} RelativeDistinguishedName_t;
/*** <<< FUNC-DECLS [RelativeDistinguishedName] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_RelativeDistinguishedName;
/*** <<< CTABLES [RelativeDistinguishedName] >>> ***/
/*** <<< CTABLES [RelativeDistinguishedName] >>> ***/
static int permitted_alphabet_table_1[256] = {
static int permitted_alphabet_table_1[256] = {
...
...
tests/30-set-OK.asn1.-P
View file @
c8285715
...
@@ -17,11 +17,9 @@ typedef enum T_PR {
...
@@ -17,11 +17,9 @@ typedef enum T_PR {
T_PR_s, /* Member s is present */
T_PR_s, /* Member s is present */
T_PR_b, /* Member b is present */
T_PR_b, /* Member b is present */
} T_PR;
} T_PR;
extern asn_TYPE_descriptor_t asn_DEF_T;
/*** <<< TYPE-DECLS [T] >>> ***/
/*** <<< TYPE-DECLS [T] >>> ***/
typedef struct T {
typedef struct T {
INTEGER_t i;
INTEGER_t i;
IA5String_t s;
IA5String_t s;
...
@@ -39,6 +37,10 @@ typedef struct T {
...
@@ -39,6 +37,10 @@ typedef struct T {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T_t;
} T_t;
/*** <<< FUNC-DECLS [T] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T;
/*** <<< STAT-DEFS [T] >>> ***/
/*** <<< STAT-DEFS [T] >>> ***/
static asn_TYPE_member_t asn_MBR_T_1[] = {
static asn_TYPE_member_t asn_MBR_T_1[] = {
...
...
tests/31-set-of-OK.asn1.-P
View file @
c8285715
/*** <<< INCLUDES [Forest] >>> ***/
/*** <<< INCLUDES [Forest] >>> ***/
#include <Tree.h>
#include <asn_SET_OF.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<<
DEP
S [Forest] >>> ***/
/*** <<<
FWD-DECL
S [Forest] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Forest;
struct Tree; /* Forward declaration */
/*** <<< TYPE-DECLS [Forest] >>> ***/
/*** <<< TYPE-DECLS [Forest] >>> ***/
typedef struct Forest {
typedef struct Forest {
A_SET_OF(
Tree_t
) list;
A_SET_OF(
struct Tree
) list;
/* Context for parsing across buffer boundaries */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Forest_t;
} Forest_t;
/*** <<< FUNC-DECLS [Forest] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Forest;
/*** <<< POST-INCLUDE [Forest] >>> ***/
#include <Tree.h>
/*** <<< STAT-DEFS [Forest] >>> ***/
/*** <<< STAT-DEFS [Forest] >>> ***/
static asn_TYPE_member_t asn_MBR_Forest_1[] = {
static asn_TYPE_member_t asn_MBR_Forest_1[] = {
...
@@ -66,13 +72,8 @@ asn_TYPE_descriptor_t asn_DEF_Forest = {
...
@@ -66,13 +72,8 @@ asn_TYPE_descriptor_t asn_DEF_Forest = {
#include <INTEGER.h>
#include <INTEGER.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [Tree] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Tree;
/*** <<< TYPE-DECLS [Tree] >>> ***/
/*** <<< TYPE-DECLS [Tree] >>> ***/
typedef struct Tree {
typedef struct Tree {
INTEGER_t height;
INTEGER_t height;
INTEGER_t width;
INTEGER_t width;
...
@@ -81,6 +82,10 @@ typedef struct Tree {
...
@@ -81,6 +82,10 @@ typedef struct Tree {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Tree_t;
} Tree_t;
/*** <<< FUNC-DECLS [Tree] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Tree;
/*** <<< STAT-DEFS [Tree] >>> ***/
/*** <<< STAT-DEFS [Tree] >>> ***/
static asn_TYPE_member_t asn_MBR_Tree_1[] = {
static asn_TYPE_member_t asn_MBR_Tree_1[] = {
...
@@ -139,7 +144,6 @@ asn_TYPE_descriptor_t asn_DEF_Tree = {
...
@@ -139,7 +144,6 @@ asn_TYPE_descriptor_t asn_DEF_Tree = {
/*** <<< INCLUDES [Stuff] >>> ***/
/*** <<< INCLUDES [Stuff] >>> ***/
#include <Forest.h>
#include <asn_SET_OF.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SET_OF.h>
#include <BIT_STRING.h>
#include <BIT_STRING.h>
...
@@ -164,14 +168,16 @@ typedef enum other_PR {
...
@@ -164,14 +168,16 @@ typedef enum other_PR {
other_PR_a,
other_PR_a,
other_PR_b,
other_PR_b,
} other_PR;
} other_PR;
extern asn_TYPE_descriptor_t asn_DEF_Stuff;
/*** <<< TYPE-DECLS [Stuff] >>> ***/
/*** <<< FWD-DECLS [Stuff] >>> ***/
struct Forest; /* Forward declaration */
/*** <<< TYPE-DECLS [Stuff] >>> ***/
typedef struct Stuff {
typedef struct Stuff {
struct trees {
struct trees {
A_SET_OF(
Forest_
t) list;
A_SET_OF(
struct Fores
t) list;
/* Context for parsing across buffer boundaries */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
...
@@ -214,6 +220,14 @@ typedef struct Stuff {
...
@@ -214,6 +220,14 @@ typedef struct Stuff {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Stuff_t;
} Stuff_t;
/*** <<< FUNC-DECLS [Stuff] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Stuff;
/*** <<< POST-INCLUDE [Stuff] >>> ***/
#include <Forest.h>
/*** <<< STAT-DEFS [Stuff] >>> ***/
/*** <<< STAT-DEFS [Stuff] >>> ***/
static asn_TYPE_member_t asn_MBR_trees_2[] = {
static asn_TYPE_member_t asn_MBR_trees_2[] = {
...
...
tests/32-sequence-of-OK.asn1.-P
View file @
c8285715
/*** <<< INCLUDES [Programming] >>> ***/
/*** <<< INCLUDES [Programming] >>> ***/
#include <Fault.h>
#include <asn_SEQUENCE_OF.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
/*** <<<
DEP
S [Programming] >>> ***/
/*** <<<
FWD-DECL
S [Programming] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Programming;
struct Fault; /* Forward declaration */
/*** <<< TYPE-DECLS [Programming] >>> ***/
/*** <<< TYPE-DECLS [Programming] >>> ***/
typedef struct Programming {
typedef struct Programming {
A_SEQUENCE_OF(
Fault_
t) list;
A_SEQUENCE_OF(
struct Faul
t) list;
/* Context for parsing across buffer boundaries */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Programming_t;
} Programming_t;
/*** <<< FUNC-DECLS [Programming] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Programming;
/*** <<< POST-INCLUDE [Programming] >>> ***/
#include <Fault.h>
/*** <<< STAT-DEFS [Programming] >>> ***/
/*** <<< STAT-DEFS [Programming] >>> ***/
static asn_TYPE_member_t asn_MBR_Programming_1[] = {
static asn_TYPE_member_t asn_MBR_Programming_1[] = {
...
@@ -63,24 +69,30 @@ asn_TYPE_descriptor_t asn_DEF_Programming = {
...
@@ -63,24 +69,30 @@ asn_TYPE_descriptor_t asn_DEF_Programming = {
/*** <<< INCLUDES [Fault] >>> ***/
/*** <<< INCLUDES [Fault] >>> ***/
#include <Error.h>
#include <asn_SET_OF.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<<
DEP
S [Fault] >>> ***/
/*** <<<
FWD-DECL
S [Fault] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Fault;
struct Error; /* Forward declaration */
/*** <<< TYPE-DECLS [Fault] >>> ***/
/*** <<< TYPE-DECLS [Fault] >>> ***/
typedef struct Fault {
typedef struct Fault {
A_SET_OF(
Error_t
) list;
A_SET_OF(
struct Error
) list;
/* Context for parsing across buffer boundaries */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Fault_t;
} Fault_t;
/*** <<< FUNC-DECLS [Fault] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Fault;
/*** <<< POST-INCLUDE [Fault] >>> ***/
#include <Error.h>
/*** <<< STAT-DEFS [Fault] >>> ***/
/*** <<< STAT-DEFS [Fault] >>> ***/
static asn_TYPE_member_t asn_MBR_Fault_1[] = {
static asn_TYPE_member_t asn_MBR_Fault_1[] = {
...
@@ -127,13 +139,8 @@ asn_TYPE_descriptor_t asn_DEF_Fault = {
...
@@ -127,13 +139,8 @@ asn_TYPE_descriptor_t asn_DEF_Fault = {
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [Error] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Error;
/*** <<< TYPE-DECLS [Error] >>> ***/
/*** <<< TYPE-DECLS [Error] >>> ***/
typedef struct Error {
typedef struct Error {
/*
/*
* This type is extensible,
* This type is extensible,
...
@@ -144,6 +151,10 @@ typedef struct Error {
...
@@ -144,6 +151,10 @@ typedef struct Error {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Error_t;
} Error_t;
/*** <<< FUNC-DECLS [Error] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Error;
/*** <<< STAT-DEFS [Error] >>> ***/
/*** <<< STAT-DEFS [Error] >>> ***/
static ber_tlv_tag_t asn_DEF_Error_1_tags[] = {
static ber_tlv_tag_t asn_DEF_Error_1_tags[] = {
...
...
tests/39-sequence-of-OK.asn1.-P
View file @
c8285715
...
@@ -2,22 +2,20 @@
...
@@ -2,22 +2,20 @@
/*** <<< INCLUDES [T] >>> ***/
/*** <<< INCLUDES [T] >>> ***/
#include <INTEGER.h>
#include <INTEGER.h>
#include <T2.h>
#include <asn_SEQUENCE_OF.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<<
DEP
S [T] >>> ***/
/*** <<<
FWD-DECL
S [T] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T;
struct T2; /* Forward declaration */
/*** <<< TYPE-DECLS [T] >>> ***/
/*** <<< TYPE-DECLS [T] >>> ***/
typedef struct T {
typedef struct T {
INTEGER_t Int;
INTEGER_t Int;
struct collection {
struct collection {
A_SEQUENCE_OF(
T2_t
) list;
A_SEQUENCE_OF(
struct T2
) list;
/* Context for parsing across buffer boundaries */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
...
@@ -27,6 +25,14 @@ typedef struct T {
...
@@ -27,6 +25,14 @@ typedef struct T {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T_t;
} T_t;
/*** <<< FUNC-DECLS [T] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T;
/*** <<< POST-INCLUDE [T] >>> ***/
#include <T2.h>
/*** <<< STAT-DEFS [T] >>> ***/
/*** <<< STAT-DEFS [T] >>> ***/
static asn_TYPE_member_t asn_MBR_collection_2[] = {
static asn_TYPE_member_t asn_MBR_collection_2[] = {
...
@@ -129,13 +135,8 @@ asn_TYPE_descriptor_t asn_DEF_T = {
...
@@ -129,13 +135,8 @@ asn_TYPE_descriptor_t asn_DEF_T = {
#include <UTF8String.h>
#include <UTF8String.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [T2] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T2;
/*** <<< TYPE-DECLS [T2] >>> ***/
/*** <<< TYPE-DECLS [T2] >>> ***/
typedef struct T2 {
typedef struct T2 {
BOOLEAN_t flag;
BOOLEAN_t flag;
UTF8String_t str;
UTF8String_t str;
...
@@ -144,6 +145,10 @@ typedef struct T2 {
...
@@ -144,6 +145,10 @@ typedef struct T2 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T2_t;
} T2_t;
/*** <<< FUNC-DECLS [T2] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T2;
/*** <<< STAT-DEFS [T2] >>> ***/
/*** <<< STAT-DEFS [T2] >>> ***/
static asn_TYPE_member_t asn_MBR_T2_1[] = {
static asn_TYPE_member_t asn_MBR_T2_1[] = {
...
...
tests/42-real-life-OK.asn1.-PR
View file @
c8285715
...
@@ -2,22 +2,20 @@
...
@@ -2,22 +2,20 @@
/*** <<< INCLUDES [LogLine] >>> ***/
/*** <<< INCLUDES [LogLine] >>> ***/
#include <IA5String.h>
#include <IA5String.h>
#include <VariablePartSet.h>
#include <asn_SEQUENCE_OF.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<<
DEP
S [LogLine] >>> ***/
/*** <<<
FWD-DECL
S [LogLine] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_LogLine;
struct VariablePartSet; /* Forward declaration */
/*** <<< TYPE-DECLS [LogLine] >>> ***/
/*** <<< TYPE-DECLS [LogLine] >>> ***/
typedef struct LogLine {
typedef struct LogLine {
IA5String_t line_digest;
IA5String_t line_digest;
struct varsets {
struct varsets {
A_SEQUENCE_OF(
VariablePartSet_
t) list;
A_SEQUENCE_OF(
struct VariablePartSe
t) list;
/* Context for parsing across buffer boundaries */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
...
@@ -31,6 +29,14 @@ typedef struct LogLine {
...
@@ -31,6 +29,14 @@ typedef struct LogLine {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} LogLine_t;
} LogLine_t;
/*** <<< FUNC-DECLS [LogLine] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_LogLine;
/*** <<< POST-INCLUDE [LogLine] >>> ***/
#include <VariablePartSet.h>
/*** <<< CODE [LogLine] >>> ***/
/*** <<< CODE [LogLine] >>> ***/
static int
static int
...
@@ -162,21 +168,19 @@ asn_TYPE_descriptor_t asn_DEF_LogLine = {
...
@@ -162,21 +168,19 @@ asn_TYPE_descriptor_t asn_DEF_LogLine = {
/*** <<< INCLUDES [VariablePartSet] >>> ***/
/*** <<< INCLUDES [VariablePartSet] >>> ***/
#include <ActionItem.h>
#include <ActionItem.h>
#include <VariablePart.h>
#include <asn_SEQUENCE_OF.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<<
DEP
S [VariablePartSet] >>> ***/
/*** <<<
FWD-DECL
S [VariablePartSet] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_VariablePartSet;
struct VariablePart; /* Forward declaration */
/*** <<< TYPE-DECLS [VariablePartSet] >>> ***/
/*** <<< TYPE-DECLS [VariablePartSet] >>> ***/
typedef struct VariablePartSet {
typedef struct VariablePartSet {
struct vparts {
struct vparts {
A_SEQUENCE_OF(
VariablePart_
t) list;
A_SEQUENCE_OF(
struct VariablePar
t) list;
/* Context for parsing across buffer boundaries */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
...
@@ -191,6 +195,14 @@ typedef struct VariablePartSet {
...
@@ -191,6 +195,14 @@ typedef struct VariablePartSet {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} VariablePartSet_t;
} VariablePartSet_t;
/*** <<< FUNC-DECLS [VariablePartSet] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_VariablePartSet;
/*** <<< POST-INCLUDE [VariablePartSet] >>> ***/
#include <VariablePart.h>
/*** <<< CODE [VariablePartSet] >>> ***/
/*** <<< CODE [VariablePartSet] >>> ***/
static int
static int
...
@@ -325,11 +337,9 @@ typedef enum VariablePart_PR {
...
@@ -325,11 +337,9 @@ typedef enum VariablePart_PR {
VariablePart_PR_vrange,
VariablePart_PR_vrange,
/* Extensions may appear below */
/* Extensions may appear below */
} VariablePart_PR;
} VariablePart_PR;
extern asn_TYPE_descriptor_t asn_DEF_VariablePart;
/*** <<< TYPE-DECLS [VariablePart] >>> ***/
/*** <<< TYPE-DECLS [VariablePart] >>> ***/
typedef struct VariablePart {
typedef struct VariablePart {
VariablePart_PR present;
VariablePart_PR present;
union {
union {
...
@@ -360,6 +370,10 @@ typedef struct VariablePart {
...
@@ -360,6 +370,10 @@ typedef struct VariablePart {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} VariablePart_t;
} VariablePart_t;
/*** <<< FUNC-DECLS [VariablePart] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_VariablePart;
/*** <<< CODE [VariablePart] >>> ***/
/*** <<< CODE [VariablePart] >>> ***/
static int
static int
...
@@ -557,11 +571,9 @@ typedef enum accept_as {
...
@@ -557,11 +571,9 @@ typedef enum accept_as {
* Enumeration is extensible
* Enumeration is extensible
*/
*/
} accept_as_e;
} accept_as_e;
extern asn_TYPE_descriptor_t asn_DEF_ActionItem;
/*** <<< TYPE-DECLS [ActionItem] >>> ***/
/*** <<< TYPE-DECLS [ActionItem] >>> ***/
typedef struct ActionItem {
typedef struct ActionItem {
ENUMERATED_t accept_as;
ENUMERATED_t accept_as;
struct notify {
struct notify {
...
@@ -592,6 +604,7 @@ typedef struct ActionItem {
...
@@ -592,6 +604,7 @@ typedef struct ActionItem {
/*** <<< FUNC-DECLS [ActionItem] >>> ***/
/*** <<< FUNC-DECLS [ActionItem] >>> ***/
/* extern asn_TYPE_descriptor_t asn_DEF_accept_as_2; // (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_accept_as_2; // (Use -fall-defs-global to expose) */
extern asn_TYPE_descriptor_t asn_DEF_ActionItem;
/*** <<< CODE [ActionItem] >>> ***/
/*** <<< CODE [ActionItem] >>> ***/
...
...
tests/43-recursion-OK.asn1.-P
View file @
c8285715
/*** <<< INCLUDES [Test-structure-1] >>> ***/
/*** <<< INCLUDES [Test-structure-1] >>> ***/
#include <Test-structure-1.h>
#include <INTEGER.h>
#include <INTEGER.h>
#include <asn_SET_OF.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SET_OF.h>
...
@@ -9,15 +8,12 @@
...
@@ -9,15 +8,12 @@
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [Test-structure-1] >>> ***/
/*** <<< FWD-DECLS [Test-structure-1] >>> ***/
struct Test_structure_1; /* Forward declaration */
struct Test_structure_1; /* Forward declaration */
extern asn_TYPE_descriptor_t asn_DEF_Test_structure_1;
/*** <<< TYPE-DECLS [Test-structure-1] >>> ***/
/*** <<< TYPE-DECLS [Test-structure-1] >>> ***/
typedef struct Test_structure_1 {
typedef struct Test_structure_1 {
struct t_member1 {
struct t_member1 {
A_SET_OF(struct Test_structure_1) list;
A_SET_OF(struct Test_structure_1) list;
...
@@ -38,6 +34,14 @@ typedef struct Test_structure_1 {
...
@@ -38,6 +34,14 @@ typedef struct Test_structure_1 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Test_structure_1_t;
} Test_structure_1_t;
/*** <<< FUNC-DECLS [Test-structure-1] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Test_structure_1;
/*** <<< POST-INCLUDE [Test-structure-1] >>> ***/
#include <Test-structure-1.h>
/*** <<< STAT-DEFS [Test-structure-1] >>> ***/
/*** <<< STAT-DEFS [Test-structure-1] >>> ***/
static asn_TYPE_member_t asn_MBR_t_member1_2[] = {
static asn_TYPE_member_t asn_MBR_t_member1_2[] = {
...
@@ -208,14 +212,12 @@ typedef enum Choice_1_PR {
...
@@ -208,14 +212,12 @@ typedef enum Choice_1_PR {
Choice_1_PR_other,
Choice_1_PR_other,
} Choice_1_PR;
} Choice_1_PR;
struct Choice_1; /* Forward declaration
*/
/*** <<< FWD-DECLS [Choice-1] >>> **
*/
struct Choice_1; /* Forward declaration */
struct Choice_1; /* Forward declaration */
extern asn_TYPE_descriptor_t asn_DEF_Choice_1;
/*** <<< TYPE-DECLS [Choice-1] >>> ***/
/*** <<< TYPE-DECLS [Choice-1] >>> ***/
typedef struct Choice_1 {
typedef struct Choice_1 {
Choice_1_PR present;
Choice_1_PR present;
union {
union {
...
@@ -234,6 +236,14 @@ typedef struct Choice_1 {
...
@@ -234,6 +236,14 @@ typedef struct Choice_1 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Choice_1_t;
} Choice_1_t;
/*** <<< FUNC-DECLS [Choice-1] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Choice_1;
/*** <<< POST-INCLUDE [Choice-1] >>> ***/
#include <Choice-1.h>
/*** <<< STAT-DEFS [Choice-1] >>> ***/
/*** <<< STAT-DEFS [Choice-1] >>> ***/
static asn_TYPE_member_t asn_MBR_or_2[] = {
static asn_TYPE_member_t asn_MBR_or_2[] = {
...
@@ -345,7 +355,6 @@ asn_TYPE_descriptor_t asn_DEF_Choice_1 = {
...
@@ -345,7 +355,6 @@ asn_TYPE_descriptor_t asn_DEF_Choice_1 = {
/*** <<< INCLUDES [Test-structure-2] >>> ***/
/*** <<< INCLUDES [Test-structure-2] >>> ***/
#include <Test-structure-3.h>
#include <constr_SET.h>
#include <constr_SET.h>
/*** <<< DEPS [Test-structure-2] >>> ***/
/*** <<< DEPS [Test-structure-2] >>> ***/
...
@@ -358,12 +367,12 @@ typedef enum Test_structure_2_PR {
...
@@ -358,12 +367,12 @@ typedef enum Test_structure_2_PR {
Test_structure_2_PR_m1, /* Member m1 is present */
Test_structure_2_PR_m1, /* Member m1 is present */
} Test_structure_2_PR;
} Test_structure_2_PR;
/*** <<< FWD-DECLS [Test-structure-2] >>> ***/
struct Test_structure_3; /* Forward declaration */
struct Test_structure_3; /* Forward declaration */
extern asn_TYPE_descriptor_t asn_DEF_Test_structure_2;
/*** <<< TYPE-DECLS [Test-structure-2] >>> ***/
/*** <<< TYPE-DECLS [Test-structure-2] >>> ***/
typedef struct Test_structure_2 {
typedef struct Test_structure_2 {
struct Test_structure_3 *m1 /* OPTIONAL */;
struct Test_structure_3 *m1 /* OPTIONAL */;
...
@@ -375,6 +384,14 @@ typedef struct Test_structure_2 {
...
@@ -375,6 +384,14 @@ typedef struct Test_structure_2 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Test_structure_2_t;
} Test_structure_2_t;
/*** <<< FUNC-DECLS [Test-structure-2] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Test_structure_2;
/*** <<< POST-INCLUDE [Test-structure-2] >>> ***/
#include <Test-structure-3.h>
/*** <<< STAT-DEFS [Test-structure-2] >>> ***/
/*** <<< STAT-DEFS [Test-structure-2] >>> ***/
static asn_TYPE_member_t asn_MBR_Test_structure_2_1[] = {
static asn_TYPE_member_t asn_MBR_Test_structure_2_1[] = {
...
@@ -431,7 +448,6 @@ asn_TYPE_descriptor_t asn_DEF_Test_structure_2 = {
...
@@ -431,7 +448,6 @@ asn_TYPE_descriptor_t asn_DEF_Test_structure_2 = {
/*** <<< INCLUDES [Test-structure-3] >>> ***/
/*** <<< INCLUDES [Test-structure-3] >>> ***/
#include <Test-structure-2.h>
#include <constr_SET.h>
#include <constr_SET.h>
/*** <<< DEPS [Test-structure-3] >>> ***/
/*** <<< DEPS [Test-structure-3] >>> ***/
...
@@ -444,12 +460,12 @@ typedef enum Test_structure_3_PR {
...
@@ -444,12 +460,12 @@ typedef enum Test_structure_3_PR {
Test_structure_3_PR_m1, /* Member m1 is present */
Test_structure_3_PR_m1, /* Member m1 is present */
} Test_structure_3_PR;
} Test_structure_3_PR;
/*** <<< FWD-DECLS [Test-structure-3] >>> ***/
struct Test_structure_2; /* Forward declaration */
struct Test_structure_2; /* Forward declaration */
extern asn_TYPE_descriptor_t asn_DEF_Test_structure_3;
/*** <<< TYPE-DECLS [Test-structure-3] >>> ***/
/*** <<< TYPE-DECLS [Test-structure-3] >>> ***/
typedef struct Test_structure_3 {
typedef struct Test_structure_3 {
struct Test_structure_2 *m1 /* OPTIONAL */;
struct Test_structure_2 *m1 /* OPTIONAL */;
...
@@ -461,6 +477,14 @@ typedef struct Test_structure_3 {
...
@@ -461,6 +477,14 @@ typedef struct Test_structure_3 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Test_structure_3_t;
} Test_structure_3_t;
/*** <<< FUNC-DECLS [Test-structure-3] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Test_structure_3;
/*** <<< POST-INCLUDE [Test-structure-3] >>> ***/
#include <Test-structure-2.h>
/*** <<< STAT-DEFS [Test-structure-3] >>> ***/
/*** <<< STAT-DEFS [Test-structure-3] >>> ***/
static asn_TYPE_member_t asn_MBR_Test_structure_3_1[] = {
static asn_TYPE_member_t asn_MBR_Test_structure_3_1[] = {
...
...
tests/44-choice-in-sequence-OK.asn1.-P
View file @
c8285715
...
@@ -24,11 +24,9 @@ typedef enum h_PR {
...
@@ -24,11 +24,9 @@ typedef enum h_PR {
h_PR_i,
h_PR_i,
h_PR_j,
h_PR_j,
} h_PR;
} h_PR;
extern asn_TYPE_descriptor_t asn_DEF_T;
/*** <<< TYPE-DECLS [T] >>> ***/
/*** <<< TYPE-DECLS [T] >>> ***/
typedef struct T {
typedef struct T {
NULL_t a;
NULL_t a;
struct b {
struct b {
...
@@ -66,6 +64,10 @@ typedef struct T {
...
@@ -66,6 +64,10 @@ typedef struct T {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T_t;
} T_t;
/*** <<< FUNC-DECLS [T] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T;
/*** <<< STAT-DEFS [T] >>> ***/
/*** <<< STAT-DEFS [T] >>> ***/
static asn_TYPE_member_t asn_MBR_e_3[] = {
static asn_TYPE_member_t asn_MBR_e_3[] = {
...
...
tests/46-redefine-OK.asn1.-PR
View file @
c8285715
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
/*** <<< TYPE-DECLS [PrimitiveType] >>> ***/
/*** <<< TYPE-DECLS [PrimitiveType] >>> ***/
typedef OCTET_STRING_t PrimitiveType_t;
typedef OCTET_STRING_t PrimitiveType_t;
/*** <<< FUNC-DECLS [PrimitiveType] >>> ***/
/*** <<< FUNC-DECLS [PrimitiveType] >>> ***/
...
@@ -23,13 +22,8 @@ typedef OCTET_STRING_t PrimitiveType_t;
...
@@ -23,13 +22,8 @@ typedef OCTET_STRING_t PrimitiveType_t;
#include <PrimitiveType.h>
#include <PrimitiveType.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [ConstructedType] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_ConstructedType;
/*** <<< TYPE-DECLS [ConstructedType] >>> ***/
/*** <<< TYPE-DECLS [ConstructedType] >>> ***/
typedef struct ConstructedType {
typedef struct ConstructedType {
PrimitiveType_t field;
PrimitiveType_t field;
...
@@ -37,6 +31,10 @@ typedef struct ConstructedType {
...
@@ -37,6 +31,10 @@ typedef struct ConstructedType {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} ConstructedType_t;
} ConstructedType_t;
/*** <<< FUNC-DECLS [ConstructedType] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_ConstructedType;
/*** <<< STAT-DEFS [ConstructedType] >>> ***/
/*** <<< STAT-DEFS [ConstructedType] >>> ***/
static asn_TYPE_member_t asn_MBR_ConstructedType_1[] = {
static asn_TYPE_member_t asn_MBR_ConstructedType_1[] = {
...
@@ -91,7 +89,6 @@ asn_TYPE_descriptor_t asn_DEF_ConstructedType = {
...
@@ -91,7 +89,6 @@ asn_TYPE_descriptor_t asn_DEF_ConstructedType = {
/*** <<< TYPE-DECLS [T] >>> ***/
/*** <<< TYPE-DECLS [T] >>> ***/
typedef ConstructedType_t T_t;
typedef ConstructedType_t T_t;
/*** <<< FUNC-DECLS [T] >>> ***/
/*** <<< FUNC-DECLS [T] >>> ***/
...
...
tests/47-set-ext-OK.asn1.-P
View file @
c8285715
...
@@ -13,11 +13,9 @@
...
@@ -13,11 +13,9 @@
typedef enum T1_PR {
typedef enum T1_PR {
T1_PR_i, /* Member i is present */
T1_PR_i, /* Member i is present */
} T1_PR;
} T1_PR;
extern asn_TYPE_descriptor_t asn_DEF_T1;
/*** <<< TYPE-DECLS [T1] >>> ***/
/*** <<< TYPE-DECLS [T1] >>> ***/
typedef struct T1 {
typedef struct T1 {
INTEGER_t i;
INTEGER_t i;
/*
/*
...
@@ -33,6 +31,10 @@ typedef struct T1 {
...
@@ -33,6 +31,10 @@ typedef struct T1 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T1_t;
} T1_t;
/*** <<< FUNC-DECLS [T1] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T1;
/*** <<< STAT-DEFS [T1] >>> ***/
/*** <<< STAT-DEFS [T1] >>> ***/
static asn_TYPE_member_t asn_MBR_T1_1[] = {
static asn_TYPE_member_t asn_MBR_T1_1[] = {
...
@@ -101,11 +103,9 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
...
@@ -101,11 +103,9 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
typedef enum T2_PR {
typedef enum T2_PR {
T2_PR_i, /* Member i is present */
T2_PR_i, /* Member i is present */
} T2_PR;
} T2_PR;
extern asn_TYPE_descriptor_t asn_DEF_T2;
/*** <<< TYPE-DECLS [T2] >>> ***/
/*** <<< TYPE-DECLS [T2] >>> ***/
typedef struct T2 {
typedef struct T2 {
INTEGER_t i;
INTEGER_t i;
/*
/*
...
@@ -121,6 +121,10 @@ typedef struct T2 {
...
@@ -121,6 +121,10 @@ typedef struct T2 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T2_t;
} T2_t;
/*** <<< FUNC-DECLS [T2] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T2;
/*** <<< STAT-DEFS [T2] >>> ***/
/*** <<< STAT-DEFS [T2] >>> ***/
static asn_TYPE_member_t asn_MBR_T2_1[] = {
static asn_TYPE_member_t asn_MBR_T2_1[] = {
...
@@ -187,11 +191,9 @@ typedef enum T3_PR {
...
@@ -187,11 +191,9 @@ typedef enum T3_PR {
T3_PR_i,
T3_PR_i,
/* Extensions may appear below */
/* Extensions may appear below */
} T3_PR;
} T3_PR;
extern asn_TYPE_descriptor_t asn_DEF_T3;
/*** <<< TYPE-DECLS [T3] >>> ***/
/*** <<< TYPE-DECLS [T3] >>> ***/
typedef struct T3 {
typedef struct T3 {
T3_PR present;
T3_PR present;
union {
union {
...
@@ -206,6 +208,10 @@ typedef struct T3 {
...
@@ -206,6 +208,10 @@ typedef struct T3 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T3_t;
} T3_t;
/*** <<< FUNC-DECLS [T3] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T3;
/*** <<< STAT-DEFS [T3] >>> ***/
/*** <<< STAT-DEFS [T3] >>> ***/
static asn_TYPE_member_t asn_MBR_T3_1[] = {
static asn_TYPE_member_t asn_MBR_T3_1[] = {
...
@@ -262,11 +268,9 @@ typedef enum T4_PR {
...
@@ -262,11 +268,9 @@ typedef enum T4_PR {
T4_PR_i,
T4_PR_i,
/* Extensions may appear below */
/* Extensions may appear below */
} T4_PR;
} T4_PR;
extern asn_TYPE_descriptor_t asn_DEF_T4;
/*** <<< TYPE-DECLS [T4] >>> ***/
/*** <<< TYPE-DECLS [T4] >>> ***/
typedef struct T4 {
typedef struct T4 {
T4_PR present;
T4_PR present;
union {
union {
...
@@ -281,6 +285,10 @@ typedef struct T4 {
...
@@ -281,6 +285,10 @@ typedef struct T4 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T4_t;
} T4_t;
/*** <<< FUNC-DECLS [T4] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T4;
/*** <<< STAT-DEFS [T4] >>> ***/
/*** <<< STAT-DEFS [T4] >>> ***/
static asn_TYPE_member_t asn_MBR_T4_1[] = {
static asn_TYPE_member_t asn_MBR_T4_1[] = {
...
...
tests/50-constraint-OK.asn1.-P
View file @
c8285715
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
/*** <<< TYPE-DECLS [Int1] >>> ***/
/*** <<< TYPE-DECLS [Int1] >>> ***/
typedef INTEGER_t Int1_t;
typedef INTEGER_t Int1_t;
/*** <<< FUNC-DECLS [Int1] >>> ***/
/*** <<< FUNC-DECLS [Int1] >>> ***/
...
@@ -24,7 +23,6 @@ typedef INTEGER_t Int1_t;
...
@@ -24,7 +23,6 @@ typedef INTEGER_t Int1_t;
/*** <<< TYPE-DECLS [Int2] >>> ***/
/*** <<< TYPE-DECLS [Int2] >>> ***/
typedef Int1_t Int2_t;
typedef Int1_t Int2_t;
/*** <<< FUNC-DECLS [Int2] >>> ***/
/*** <<< FUNC-DECLS [Int2] >>> ***/
...
@@ -162,7 +160,6 @@ asn_TYPE_descriptor_t asn_DEF_Int2 = {
...
@@ -162,7 +160,6 @@ asn_TYPE_descriptor_t asn_DEF_Int2 = {
/*** <<< TYPE-DECLS [Int3] >>> ***/
/*** <<< TYPE-DECLS [Int3] >>> ***/
typedef Int2_t Int3_t;
typedef Int2_t Int3_t;
/*** <<< FUNC-DECLS [Int3] >>> ***/
/*** <<< FUNC-DECLS [Int3] >>> ***/
...
@@ -304,7 +301,6 @@ asn_TYPE_descriptor_t asn_DEF_Int3 = {
...
@@ -304,7 +301,6 @@ asn_TYPE_descriptor_t asn_DEF_Int3 = {
/*** <<< TYPE-DECLS [Int4] >>> ***/
/*** <<< TYPE-DECLS [Int4] >>> ***/
typedef Int3_t Int4_t;
typedef Int3_t Int4_t;
/*** <<< FUNC-DECLS [Int4] >>> ***/
/*** <<< FUNC-DECLS [Int4] >>> ***/
...
@@ -446,7 +442,6 @@ asn_TYPE_descriptor_t asn_DEF_Int4 = {
...
@@ -446,7 +442,6 @@ asn_TYPE_descriptor_t asn_DEF_Int4 = {
/*** <<< TYPE-DECLS [Int5] >>> ***/
/*** <<< TYPE-DECLS [Int5] >>> ***/
typedef Int4_t Int5_t;
typedef Int4_t Int5_t;
/*** <<< FUNC-DECLS [Int5] >>> ***/
/*** <<< FUNC-DECLS [Int5] >>> ***/
...
@@ -588,7 +583,6 @@ asn_TYPE_descriptor_t asn_DEF_Int5 = {
...
@@ -588,7 +583,6 @@ asn_TYPE_descriptor_t asn_DEF_Int5 = {
/*** <<< TYPE-DECLS [ExtensibleExtensions] >>> ***/
/*** <<< TYPE-DECLS [ExtensibleExtensions] >>> ***/
typedef INTEGER_t ExtensibleExtensions_t;
typedef INTEGER_t ExtensibleExtensions_t;
/*** <<< FUNC-DECLS [ExtensibleExtensions] >>> ***/
/*** <<< FUNC-DECLS [ExtensibleExtensions] >>> ***/
...
@@ -730,7 +724,6 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions = {
...
@@ -730,7 +724,6 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleExtensions = {
/*** <<< TYPE-DECLS [Str1] >>> ***/
/*** <<< TYPE-DECLS [Str1] >>> ***/
typedef IA5String_t Str1_t;
typedef IA5String_t Str1_t;
/*** <<< FUNC-DECLS [Str1] >>> ***/
/*** <<< FUNC-DECLS [Str1] >>> ***/
...
@@ -749,7 +742,6 @@ typedef IA5String_t Str1_t;
...
@@ -749,7 +742,6 @@ typedef IA5String_t Str1_t;
/*** <<< TYPE-DECLS [Str2] >>> ***/
/*** <<< TYPE-DECLS [Str2] >>> ***/
typedef Str1_t Str2_t;
typedef Str1_t Str2_t;
/*** <<< FUNC-DECLS [Str2] >>> ***/
/*** <<< FUNC-DECLS [Str2] >>> ***/
...
@@ -903,7 +895,6 @@ asn_TYPE_descriptor_t asn_DEF_Str2 = {
...
@@ -903,7 +895,6 @@ asn_TYPE_descriptor_t asn_DEF_Str2 = {
/*** <<< TYPE-DECLS [Str3] >>> ***/
/*** <<< TYPE-DECLS [Str3] >>> ***/
typedef Str2_t Str3_t;
typedef Str2_t Str3_t;
/*** <<< FUNC-DECLS [Str3] >>> ***/
/*** <<< FUNC-DECLS [Str3] >>> ***/
...
@@ -1068,7 +1059,6 @@ asn_TYPE_descriptor_t asn_DEF_Str3 = {
...
@@ -1068,7 +1059,6 @@ asn_TYPE_descriptor_t asn_DEF_Str3 = {
/*** <<< TYPE-DECLS [Str4] >>> ***/
/*** <<< TYPE-DECLS [Str4] >>> ***/
typedef IA5String_t Str4_t;
typedef IA5String_t Str4_t;
/*** <<< FUNC-DECLS [Str4] >>> ***/
/*** <<< FUNC-DECLS [Str4] >>> ***/
...
@@ -1219,7 +1209,6 @@ asn_TYPE_descriptor_t asn_DEF_Str4 = {
...
@@ -1219,7 +1209,6 @@ asn_TYPE_descriptor_t asn_DEF_Str4 = {
/*** <<< TYPE-DECLS [PER-Visible] >>> ***/
/*** <<< TYPE-DECLS [PER-Visible] >>> ***/
typedef IA5String_t PER_Visible_t;
typedef IA5String_t PER_Visible_t;
/*** <<< FUNC-DECLS [PER-Visible] >>> ***/
/*** <<< FUNC-DECLS [PER-Visible] >>> ***/
...
@@ -1370,7 +1359,6 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible = {
...
@@ -1370,7 +1359,6 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible = {
/*** <<< TYPE-DECLS [PER-Visible-2] >>> ***/
/*** <<< TYPE-DECLS [PER-Visible-2] >>> ***/
typedef PER_Visible_t PER_Visible_2_t;
typedef PER_Visible_t PER_Visible_2_t;
/*** <<< FUNC-DECLS [PER-Visible-2] >>> ***/
/*** <<< FUNC-DECLS [PER-Visible-2] >>> ***/
...
@@ -1521,7 +1509,6 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = {
...
@@ -1521,7 +1509,6 @@ asn_TYPE_descriptor_t asn_DEF_PER_Visible_2 = {
/*** <<< TYPE-DECLS [Not-PER-Visible-1] >>> ***/
/*** <<< TYPE-DECLS [Not-PER-Visible-1] >>> ***/
typedef PER_Visible_t Not_PER_Visible_1_t;
typedef PER_Visible_t Not_PER_Visible_1_t;
/*** <<< FUNC-DECLS [Not-PER-Visible-1] >>> ***/
/*** <<< FUNC-DECLS [Not-PER-Visible-1] >>> ***/
...
@@ -1672,7 +1659,6 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = {
...
@@ -1672,7 +1659,6 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_1 = {
/*** <<< TYPE-DECLS [Not-PER-Visible-2] >>> ***/
/*** <<< TYPE-DECLS [Not-PER-Visible-2] >>> ***/
typedef PER_Visible_t Not_PER_Visible_2_t;
typedef PER_Visible_t Not_PER_Visible_2_t;
/*** <<< FUNC-DECLS [Not-PER-Visible-2] >>> ***/
/*** <<< FUNC-DECLS [Not-PER-Visible-2] >>> ***/
...
@@ -1823,7 +1809,6 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2 = {
...
@@ -1823,7 +1809,6 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_2 = {
/*** <<< TYPE-DECLS [Not-PER-Visible-3] >>> ***/
/*** <<< TYPE-DECLS [Not-PER-Visible-3] >>> ***/
typedef PER_Visible_t Not_PER_Visible_3_t;
typedef PER_Visible_t Not_PER_Visible_3_t;
/*** <<< FUNC-DECLS [Not-PER-Visible-3] >>> ***/
/*** <<< FUNC-DECLS [Not-PER-Visible-3] >>> ***/
...
@@ -1974,7 +1959,6 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3 = {
...
@@ -1974,7 +1959,6 @@ asn_TYPE_descriptor_t asn_DEF_Not_PER_Visible_3 = {
/*** <<< TYPE-DECLS [SIZE-but-not-FROM] >>> ***/
/*** <<< TYPE-DECLS [SIZE-but-not-FROM] >>> ***/
typedef PER_Visible_t SIZE_but_not_FROM_t;
typedef PER_Visible_t SIZE_but_not_FROM_t;
/*** <<< FUNC-DECLS [SIZE-but-not-FROM] >>> ***/
/*** <<< FUNC-DECLS [SIZE-but-not-FROM] >>> ***/
...
@@ -2128,7 +2112,6 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM = {
...
@@ -2128,7 +2112,6 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_but_not_FROM = {
/*** <<< TYPE-DECLS [SIZE-and-FROM] >>> ***/
/*** <<< TYPE-DECLS [SIZE-and-FROM] >>> ***/
typedef PER_Visible_t SIZE_and_FROM_t;
typedef PER_Visible_t SIZE_and_FROM_t;
/*** <<< FUNC-DECLS [SIZE-and-FROM] >>> ***/
/*** <<< FUNC-DECLS [SIZE-and-FROM] >>> ***/
...
@@ -2282,7 +2265,6 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = {
...
@@ -2282,7 +2265,6 @@ asn_TYPE_descriptor_t asn_DEF_SIZE_and_FROM = {
/*** <<< TYPE-DECLS [Neither-SIZE-nor-FROM] >>> ***/
/*** <<< TYPE-DECLS [Neither-SIZE-nor-FROM] >>> ***/
typedef PER_Visible_t Neither_SIZE_nor_FROM_t;
typedef PER_Visible_t Neither_SIZE_nor_FROM_t;
/*** <<< FUNC-DECLS [Neither-SIZE-nor-FROM] >>> ***/
/*** <<< FUNC-DECLS [Neither-SIZE-nor-FROM] >>> ***/
...
@@ -2433,7 +2415,6 @@ asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = {
...
@@ -2433,7 +2415,6 @@ asn_TYPE_descriptor_t asn_DEF_Neither_SIZE_nor_FROM = {
/*** <<< TYPE-DECLS [Utf8-4] >>> ***/
/*** <<< TYPE-DECLS [Utf8-4] >>> ***/
typedef UTF8String_t Utf8_4_t;
typedef UTF8String_t Utf8_4_t;
/*** <<< FUNC-DECLS [Utf8-4] >>> ***/
/*** <<< FUNC-DECLS [Utf8-4] >>> ***/
...
@@ -2578,7 +2559,6 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_4 = {
...
@@ -2578,7 +2559,6 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_4 = {
/*** <<< TYPE-DECLS [Utf8-3] >>> ***/
/*** <<< TYPE-DECLS [Utf8-3] >>> ***/
typedef Utf8_2_t Utf8_3_t;
typedef Utf8_2_t Utf8_3_t;
/*** <<< FUNC-DECLS [Utf8-3] >>> ***/
/*** <<< FUNC-DECLS [Utf8-3] >>> ***/
...
@@ -2751,7 +2731,6 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_3 = {
...
@@ -2751,7 +2731,6 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_3 = {
/*** <<< TYPE-DECLS [Utf8-2] >>> ***/
/*** <<< TYPE-DECLS [Utf8-2] >>> ***/
typedef Utf8_1_t Utf8_2_t;
typedef Utf8_1_t Utf8_2_t;
/*** <<< FUNC-DECLS [Utf8-2] >>> ***/
/*** <<< FUNC-DECLS [Utf8-2] >>> ***/
...
@@ -2894,7 +2873,6 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_2 = {
...
@@ -2894,7 +2873,6 @@ asn_TYPE_descriptor_t asn_DEF_Utf8_2 = {
/*** <<< TYPE-DECLS [Utf8-1] >>> ***/
/*** <<< TYPE-DECLS [Utf8-1] >>> ***/
typedef UTF8String_t Utf8_1_t;
typedef UTF8String_t Utf8_1_t;
/*** <<< FUNC-DECLS [Utf8-1] >>> ***/
/*** <<< FUNC-DECLS [Utf8-1] >>> ***/
...
@@ -2913,7 +2891,6 @@ typedef UTF8String_t Utf8_1_t;
...
@@ -2913,7 +2891,6 @@ typedef UTF8String_t Utf8_1_t;
/*** <<< TYPE-DECLS [VisibleIdentifier] >>> ***/
/*** <<< TYPE-DECLS [VisibleIdentifier] >>> ***/
typedef Identifier_t VisibleIdentifier_t;
typedef Identifier_t VisibleIdentifier_t;
/*** <<< FUNC-DECLS [VisibleIdentifier] >>> ***/
/*** <<< FUNC-DECLS [VisibleIdentifier] >>> ***/
...
@@ -2932,7 +2909,6 @@ typedef Identifier_t VisibleIdentifier_t;
...
@@ -2932,7 +2909,6 @@ typedef Identifier_t VisibleIdentifier_t;
/*** <<< TYPE-DECLS [Identifier] >>> ***/
/*** <<< TYPE-DECLS [Identifier] >>> ***/
typedef VisibleString_t Identifier_t;
typedef VisibleString_t Identifier_t;
/*** <<< FUNC-DECLS [Identifier] >>> ***/
/*** <<< FUNC-DECLS [Identifier] >>> ***/
...
...
tests/59-choice-extended-OK.asn1.-P
View file @
c8285715
...
@@ -15,12 +15,12 @@ typedef enum Choice_PR {
...
@@ -15,12 +15,12 @@ typedef enum Choice_PR {
Choice_PR_c,
Choice_PR_c,
} Choice_PR;
} Choice_PR;
/*** <<< FWD-DECLS [Choice] >>> ***/
struct Choice; /* Forward declaration */
struct Choice; /* Forward declaration */
extern asn_TYPE_descriptor_t asn_DEF_Choice;
/*** <<< TYPE-DECLS [Choice] >>> ***/
/*** <<< TYPE-DECLS [Choice] >>> ***/
typedef struct Choice {
typedef struct Choice {
Choice_PR present;
Choice_PR present;
union {
union {
...
@@ -37,6 +37,10 @@ typedef struct Choice {
...
@@ -37,6 +37,10 @@ typedef struct Choice {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Choice_t;
} Choice_t;
/*** <<< FUNC-DECLS [Choice] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Choice;
/*** <<< STAT-DEFS [Choice] >>> ***/
/*** <<< STAT-DEFS [Choice] >>> ***/
static asn_TYPE_member_t asn_MBR_Choice_1[] = {
static asn_TYPE_member_t asn_MBR_Choice_1[] = {
...
...
tests/60-any-OK.asn1.-P
View file @
c8285715
...
@@ -5,13 +5,8 @@
...
@@ -5,13 +5,8 @@
#include <ANY.h>
#include <ANY.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [T1] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T1;
/*** <<< TYPE-DECLS [T1] >>> ***/
/*** <<< TYPE-DECLS [T1] >>> ***/
typedef struct T1 {
typedef struct T1 {
INTEGER_t i;
INTEGER_t i;
ANY_t any;
ANY_t any;
...
@@ -20,6 +15,10 @@ typedef struct T1 {
...
@@ -20,6 +15,10 @@ typedef struct T1 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T1_t;
} T1_t;
/*** <<< FUNC-DECLS [T1] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T1;
/*** <<< STAT-DEFS [T1] >>> ***/
/*** <<< STAT-DEFS [T1] >>> ***/
static asn_TYPE_member_t asn_MBR_T1_1[] = {
static asn_TYPE_member_t asn_MBR_T1_1[] = {
...
@@ -81,13 +80,8 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
...
@@ -81,13 +80,8 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
#include <ANY.h>
#include <ANY.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [T2] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T2;
/*** <<< TYPE-DECLS [T2] >>> ***/
/*** <<< TYPE-DECLS [T2] >>> ***/
typedef struct T2 {
typedef struct T2 {
INTEGER_t i;
INTEGER_t i;
ANY_t *any /* OPTIONAL */;
ANY_t *any /* OPTIONAL */;
...
@@ -96,6 +90,10 @@ typedef struct T2 {
...
@@ -96,6 +90,10 @@ typedef struct T2 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T2_t;
} T2_t;
/*** <<< FUNC-DECLS [T2] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T2;
/*** <<< STAT-DEFS [T2] >>> ***/
/*** <<< STAT-DEFS [T2] >>> ***/
static asn_TYPE_member_t asn_MBR_T2_1[] = {
static asn_TYPE_member_t asn_MBR_T2_1[] = {
...
...
tests/65-multi-tag-OK.asn1.-P
View file @
c8285715
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
/*** <<< TYPE-DECLS [T1] >>> ***/
/*** <<< TYPE-DECLS [T1] >>> ***/
typedef T2_t T1_t;
typedef T2_t T1_t;
/*** <<< FUNC-DECLS [T1] >>> ***/
/*** <<< FUNC-DECLS [T1] >>> ***/
...
@@ -135,7 +134,6 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
...
@@ -135,7 +134,6 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
/*** <<< TYPE-DECLS [T2] >>> ***/
/*** <<< TYPE-DECLS [T2] >>> ***/
typedef T3_t T2_t;
typedef T3_t T2_t;
/*** <<< FUNC-DECLS [T2] >>> ***/
/*** <<< FUNC-DECLS [T2] >>> ***/
...
@@ -263,7 +261,6 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
...
@@ -263,7 +261,6 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
/*** <<< TYPE-DECLS [T3] >>> ***/
/*** <<< TYPE-DECLS [T3] >>> ***/
typedef T4_t T3_t;
typedef T4_t T3_t;
/*** <<< FUNC-DECLS [T3] >>> ***/
/*** <<< FUNC-DECLS [T3] >>> ***/
...
@@ -389,7 +386,6 @@ asn_TYPE_descriptor_t asn_DEF_T3 = {
...
@@ -389,7 +386,6 @@ asn_TYPE_descriptor_t asn_DEF_T3 = {
/*** <<< TYPE-DECLS [T4] >>> ***/
/*** <<< TYPE-DECLS [T4] >>> ***/
typedef T5_t T4_t;
typedef T5_t T4_t;
/*** <<< FUNC-DECLS [T4] >>> ***/
/*** <<< FUNC-DECLS [T4] >>> ***/
...
@@ -510,7 +506,6 @@ asn_TYPE_descriptor_t asn_DEF_T4 = {
...
@@ -510,7 +506,6 @@ asn_TYPE_descriptor_t asn_DEF_T4 = {
/*** <<< TYPE-DECLS [T5] >>> ***/
/*** <<< TYPE-DECLS [T5] >>> ***/
typedef T6_t T5_t;
typedef T6_t T5_t;
/*** <<< FUNC-DECLS [T5] >>> ***/
/*** <<< FUNC-DECLS [T5] >>> ***/
...
@@ -630,7 +625,6 @@ asn_TYPE_descriptor_t asn_DEF_T5 = {
...
@@ -630,7 +625,6 @@ asn_TYPE_descriptor_t asn_DEF_T5 = {
/*** <<< TYPE-DECLS [T6] >>> ***/
/*** <<< TYPE-DECLS [T6] >>> ***/
typedef REAL_t T6_t;
typedef REAL_t T6_t;
/*** <<< FUNC-DECLS [T6] >>> ***/
/*** <<< FUNC-DECLS [T6] >>> ***/
...
@@ -649,7 +643,6 @@ typedef REAL_t T6_t;
...
@@ -649,7 +643,6 @@ typedef REAL_t T6_t;
/*** <<< TYPE-DECLS [T] >>> ***/
/*** <<< TYPE-DECLS [T] >>> ***/
typedef Ts_t T_t;
typedef Ts_t T_t;
/*** <<< FUNC-DECLS [T] >>> ***/
/*** <<< FUNC-DECLS [T] >>> ***/
...
@@ -770,13 +763,8 @@ asn_TYPE_descriptor_t asn_DEF_T = {
...
@@ -770,13 +763,8 @@ asn_TYPE_descriptor_t asn_DEF_T = {
#include <T3.h>
#include <T3.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [Ts] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Ts;
/*** <<< TYPE-DECLS [Ts] >>> ***/
/*** <<< TYPE-DECLS [Ts] >>> ***/
typedef struct Ts {
typedef struct Ts {
T2_t m1;
T2_t m1;
T3_t *m2 /* OPTIONAL */;
T3_t *m2 /* OPTIONAL */;
...
@@ -786,6 +774,10 @@ typedef struct Ts {
...
@@ -786,6 +774,10 @@ typedef struct Ts {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Ts_t;
} Ts_t;
/*** <<< FUNC-DECLS [Ts] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Ts;
/*** <<< STAT-DEFS [Ts] >>> ***/
/*** <<< STAT-DEFS [Ts] >>> ***/
static asn_TYPE_member_t asn_MBR_Ts_1[] = {
static asn_TYPE_member_t asn_MBR_Ts_1[] = {
...
...
tests/65-multi-tag-OK.asn1.-Pfnative-types
View file @
c8285715
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
/*** <<< TYPE-DECLS [T1] >>> ***/
/*** <<< TYPE-DECLS [T1] >>> ***/
typedef T2_t T1_t;
typedef T2_t T1_t;
/*** <<< FUNC-DECLS [T1] >>> ***/
/*** <<< FUNC-DECLS [T1] >>> ***/
...
@@ -135,7 +134,6 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
...
@@ -135,7 +134,6 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
/*** <<< TYPE-DECLS [T2] >>> ***/
/*** <<< TYPE-DECLS [T2] >>> ***/
typedef T3_t T2_t;
typedef T3_t T2_t;
/*** <<< FUNC-DECLS [T2] >>> ***/
/*** <<< FUNC-DECLS [T2] >>> ***/
...
@@ -263,7 +261,6 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
...
@@ -263,7 +261,6 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
/*** <<< TYPE-DECLS [T3] >>> ***/
/*** <<< TYPE-DECLS [T3] >>> ***/
typedef T4_t T3_t;
typedef T4_t T3_t;
/*** <<< FUNC-DECLS [T3] >>> ***/
/*** <<< FUNC-DECLS [T3] >>> ***/
...
@@ -389,7 +386,6 @@ asn_TYPE_descriptor_t asn_DEF_T3 = {
...
@@ -389,7 +386,6 @@ asn_TYPE_descriptor_t asn_DEF_T3 = {
/*** <<< TYPE-DECLS [T4] >>> ***/
/*** <<< TYPE-DECLS [T4] >>> ***/
typedef T5_t T4_t;
typedef T5_t T4_t;
/*** <<< FUNC-DECLS [T4] >>> ***/
/*** <<< FUNC-DECLS [T4] >>> ***/
...
@@ -510,7 +506,6 @@ asn_TYPE_descriptor_t asn_DEF_T4 = {
...
@@ -510,7 +506,6 @@ asn_TYPE_descriptor_t asn_DEF_T4 = {
/*** <<< TYPE-DECLS [T5] >>> ***/
/*** <<< TYPE-DECLS [T5] >>> ***/
typedef T6_t T5_t;
typedef T6_t T5_t;
/*** <<< FUNC-DECLS [T5] >>> ***/
/*** <<< FUNC-DECLS [T5] >>> ***/
...
@@ -630,7 +625,6 @@ asn_TYPE_descriptor_t asn_DEF_T5 = {
...
@@ -630,7 +625,6 @@ asn_TYPE_descriptor_t asn_DEF_T5 = {
/*** <<< TYPE-DECLS [T6] >>> ***/
/*** <<< TYPE-DECLS [T6] >>> ***/
typedef double T6_t;
typedef double T6_t;
/*** <<< FUNC-DECLS [T6] >>> ***/
/*** <<< FUNC-DECLS [T6] >>> ***/
...
@@ -649,7 +643,6 @@ typedef double T6_t;
...
@@ -649,7 +643,6 @@ typedef double T6_t;
/*** <<< TYPE-DECLS [T] >>> ***/
/*** <<< TYPE-DECLS [T] >>> ***/
typedef Ts_t T_t;
typedef Ts_t T_t;
/*** <<< FUNC-DECLS [T] >>> ***/
/*** <<< FUNC-DECLS [T] >>> ***/
...
@@ -770,13 +763,8 @@ asn_TYPE_descriptor_t asn_DEF_T = {
...
@@ -770,13 +763,8 @@ asn_TYPE_descriptor_t asn_DEF_T = {
#include <T3.h>
#include <T3.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [Ts] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Ts;
/*** <<< TYPE-DECLS [Ts] >>> ***/
/*** <<< TYPE-DECLS [Ts] >>> ***/
typedef struct Ts {
typedef struct Ts {
T2_t m1;
T2_t m1;
T3_t *m2 /* OPTIONAL */;
T3_t *m2 /* OPTIONAL */;
...
@@ -786,6 +774,10 @@ typedef struct Ts {
...
@@ -786,6 +774,10 @@ typedef struct Ts {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Ts_t;
} Ts_t;
/*** <<< FUNC-DECLS [Ts] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Ts;
/*** <<< STAT-DEFS [Ts] >>> ***/
/*** <<< STAT-DEFS [Ts] >>> ***/
static asn_TYPE_member_t asn_MBR_Ts_1[] = {
static asn_TYPE_member_t asn_MBR_Ts_1[] = {
...
...
tests/66-ref-simple-OK.asn1.-P
View file @
c8285715
...
@@ -5,20 +5,19 @@
...
@@ -5,20 +5,19 @@
#include <asn_SET_OF.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<< DEPS [T] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T;
/*** <<< TYPE-DECLS [T] >>> ***/
/*** <<< TYPE-DECLS [T] >>> ***/
typedef struct T {
typedef struct T {
A_SET_OF(
SimpleType_t
) list;
A_SET_OF(
struct SimpleType
) list;
/* Context for parsing across buffer boundaries */
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T_t;
} T_t;
/*** <<< FUNC-DECLS [T] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T;
/*** <<< STAT-DEFS [T] >>> ***/
/*** <<< STAT-DEFS [T] >>> ***/
static asn_TYPE_member_t asn_MBR_T_1[] = {
static asn_TYPE_member_t asn_MBR_T_1[] = {
...
@@ -75,7 +74,6 @@ typedef enum SimpleType {
...
@@ -75,7 +74,6 @@ typedef enum SimpleType {
/*** <<< TYPE-DECLS [SimpleType] >>> ***/
/*** <<< TYPE-DECLS [SimpleType] >>> ***/
typedef ENUMERATED_t SimpleType_t;
typedef ENUMERATED_t SimpleType_t;
/*** <<< FUNC-DECLS [SimpleType] >>> ***/
/*** <<< FUNC-DECLS [SimpleType] >>> ***/
...
...
tests/69-reserved-words-OK.asn1.-P
View file @
c8285715
...
@@ -15,11 +15,9 @@
...
@@ -15,11 +15,9 @@
*/
*/
typedef enum class_PR {
typedef enum class_PR {
} class_PR;
} class_PR;
extern asn_TYPE_descriptor_t asn_DEF_T;
/*** <<< TYPE-DECLS [T] >>> ***/
/*** <<< TYPE-DECLS [T] >>> ***/
typedef struct T {
typedef struct T {
INTEGER_t Int;
INTEGER_t Int;
OCTET_STRING_t Char;
OCTET_STRING_t Char;
...
@@ -42,6 +40,10 @@ typedef struct T {
...
@@ -42,6 +40,10 @@ typedef struct T {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} T_t;
} T_t;
/*** <<< FUNC-DECLS [T] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_T;
/*** <<< CODE [T] >>> ***/
/*** <<< CODE [T] >>> ***/
static int
static int
...
...
tests/70-xer-test-OK.asn1.-P
View file @
c8285715
...
@@ -27,11 +27,9 @@ typedef enum PDU_PR {
...
@@ -27,11 +27,9 @@ typedef enum PDU_PR {
PDU_PR_seqOfZuka,
PDU_PR_seqOfZuka,
/* Extensions may appear below */
/* Extensions may appear below */
} PDU_PR;
} PDU_PR;
extern asn_TYPE_descriptor_t asn_DEF_PDU;
/*** <<< TYPE-DECLS [PDU] >>> ***/
/*** <<< TYPE-DECLS [PDU] >>> ***/
typedef struct PDU {
typedef struct PDU {
PDU_PR present;
PDU_PR present;
union {
union {
...
@@ -54,6 +52,10 @@ typedef struct PDU {
...
@@ -54,6 +52,10 @@ typedef struct PDU {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} PDU_t;
} PDU_t;
/*** <<< FUNC-DECLS [PDU] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_PDU;
/*** <<< STAT-DEFS [PDU] >>> ***/
/*** <<< STAT-DEFS [PDU] >>> ***/
static asn_TYPE_member_t asn_MBR_PDU_1[] = {
static asn_TYPE_member_t asn_MBR_PDU_1[] = {
...
@@ -165,20 +167,16 @@ asn_TYPE_descriptor_t asn_DEF_PDU = {
...
@@ -165,20 +167,16 @@ asn_TYPE_descriptor_t asn_DEF_PDU = {
/*** <<< INCLUDES [Sequence] >>> ***/
/*** <<< INCLUDES [Sequence] >>> ***/
#include <INTEGER.h>
#include <INTEGER.h>
#include <Sequence.h>
#include <BIT_STRING.h>
#include <BIT_STRING.h>
#include <UTF8String.h>
#include <UTF8String.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [Sequence] >>> ***/
/*** <<< FWD-DECLS [Sequence] >>> ***/
struct Sequence; /* Forward declaration */
struct Sequence; /* Forward declaration */
extern asn_TYPE_descriptor_t asn_DEF_Sequence;
/*** <<< TYPE-DECLS [Sequence] >>> ***/
/*** <<< TYPE-DECLS [Sequence] >>> ***/
typedef struct Sequence {
typedef struct Sequence {
INTEGER_t integer;
INTEGER_t integer;
struct Sequence *sequence /* OPTIONAL */;
struct Sequence *sequence /* OPTIONAL */;
...
@@ -189,6 +187,14 @@ typedef struct Sequence {
...
@@ -189,6 +187,14 @@ typedef struct Sequence {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Sequence_t;
} Sequence_t;
/*** <<< FUNC-DECLS [Sequence] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Sequence;
/*** <<< POST-INCLUDE [Sequence] >>> ***/
#include <Sequence.h>
/*** <<< STAT-DEFS [Sequence] >>> ***/
/*** <<< STAT-DEFS [Sequence] >>> ***/
static asn_TYPE_member_t asn_MBR_Sequence_1[] = {
static asn_TYPE_member_t asn_MBR_Sequence_1[] = {
...
@@ -277,11 +283,9 @@ typedef enum Set_PR {
...
@@ -277,11 +283,9 @@ typedef enum Set_PR {
Set_PR_roid, /* Member roid is present */
Set_PR_roid, /* Member roid is present */
Set_PR_opaque, /* Member opaque is present */
Set_PR_opaque, /* Member opaque is present */
} Set_PR;
} Set_PR;
extern asn_TYPE_descriptor_t asn_DEF_Set;
/*** <<< TYPE-DECLS [Set] >>> ***/
/*** <<< TYPE-DECLS [Set] >>> ***/
typedef struct Set {
typedef struct Set {
RELATIVE_OID_t roid;
RELATIVE_OID_t roid;
OCTET_STRING_t *opaque /* OPTIONAL */;
OCTET_STRING_t *opaque /* OPTIONAL */;
...
@@ -294,6 +298,10 @@ typedef struct Set {
...
@@ -294,6 +298,10 @@ typedef struct Set {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Set_t;
} Set_t;
/*** <<< FUNC-DECLS [Set] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Set;
/*** <<< STAT-DEFS [Set] >>> ***/
/*** <<< STAT-DEFS [Set] >>> ***/
static asn_TYPE_member_t asn_MBR_Set_1[] = {
static asn_TYPE_member_t asn_MBR_Set_1[] = {
...
@@ -370,11 +378,9 @@ asn_TYPE_descriptor_t asn_DEF_Set = {
...
@@ -370,11 +378,9 @@ asn_TYPE_descriptor_t asn_DEF_Set = {
typedef enum ExtensibleSet_PR {
typedef enum ExtensibleSet_PR {
ExtensibleSet_PR_string, /* Member string is present */
ExtensibleSet_PR_string, /* Member string is present */
} ExtensibleSet_PR;
} ExtensibleSet_PR;
extern asn_TYPE_descriptor_t asn_DEF_ExtensibleSet;
/*** <<< TYPE-DECLS [ExtensibleSet] >>> ***/
/*** <<< TYPE-DECLS [ExtensibleSet] >>> ***/
typedef struct ExtensibleSet {
typedef struct ExtensibleSet {
UTF8String_t *string /* OPTIONAL */;
UTF8String_t *string /* OPTIONAL */;
/*
/*
...
@@ -390,6 +396,10 @@ typedef struct ExtensibleSet {
...
@@ -390,6 +396,10 @@ typedef struct ExtensibleSet {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} ExtensibleSet_t;
} ExtensibleSet_t;
/*** <<< FUNC-DECLS [ExtensibleSet] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_ExtensibleSet;
/*** <<< STAT-DEFS [ExtensibleSet] >>> ***/
/*** <<< STAT-DEFS [ExtensibleSet] >>> ***/
static asn_TYPE_member_t asn_MBR_ExtensibleSet_1[] = {
static asn_TYPE_member_t asn_MBR_ExtensibleSet_1[] = {
...
@@ -450,13 +460,8 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleSet = {
...
@@ -450,13 +460,8 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleSet = {
#include <INTEGER.h>
#include <INTEGER.h>
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
/*** <<< DEPS [ExtensibleSequence] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_ExtensibleSequence;
/*** <<< TYPE-DECLS [ExtensibleSequence] >>> ***/
/*** <<< TYPE-DECLS [ExtensibleSequence] >>> ***/
typedef struct ExtensibleSequence {
typedef struct ExtensibleSequence {
UTF8String_t *string /* OPTIONAL */;
UTF8String_t *string /* OPTIONAL */;
/*
/*
...
@@ -469,6 +474,10 @@ typedef struct ExtensibleSequence {
...
@@ -469,6 +474,10 @@ typedef struct ExtensibleSequence {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} ExtensibleSequence_t;
} ExtensibleSequence_t;
/*** <<< FUNC-DECLS [ExtensibleSequence] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_ExtensibleSequence;
/*** <<< STAT-DEFS [ExtensibleSequence] >>> ***/
/*** <<< STAT-DEFS [ExtensibleSequence] >>> ***/
static asn_TYPE_member_t asn_MBR_ExtensibleSequence_1[] = {
static asn_TYPE_member_t asn_MBR_ExtensibleSequence_1[] = {
...
@@ -531,13 +540,8 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleSequence = {
...
@@ -531,13 +540,8 @@ asn_TYPE_descriptor_t asn_DEF_ExtensibleSequence = {
#include <asn_SET_OF.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<< DEPS [SetOf] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SetOf;
/*** <<< TYPE-DECLS [SetOf] >>> ***/
/*** <<< TYPE-DECLS [SetOf] >>> ***/
typedef struct SetOf {
typedef struct SetOf {
A_SET_OF(REAL_t) list;
A_SET_OF(REAL_t) list;
...
@@ -545,6 +549,10 @@ typedef struct SetOf {
...
@@ -545,6 +549,10 @@ typedef struct SetOf {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} SetOf_t;
} SetOf_t;
/*** <<< FUNC-DECLS [SetOf] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SetOf;
/*** <<< STAT-DEFS [SetOf] >>> ***/
/*** <<< STAT-DEFS [SetOf] >>> ***/
static asn_TYPE_member_t asn_MBR_SetOf_1[] = {
static asn_TYPE_member_t asn_MBR_SetOf_1[] = {
...
@@ -593,13 +601,8 @@ asn_TYPE_descriptor_t asn_DEF_SetOf = {
...
@@ -593,13 +601,8 @@ asn_TYPE_descriptor_t asn_DEF_SetOf = {
#include <asn_SET_OF.h>
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<< DEPS [SetOfNULL] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SetOfNULL;
/*** <<< TYPE-DECLS [SetOfNULL] >>> ***/
/*** <<< TYPE-DECLS [SetOfNULL] >>> ***/
typedef struct SetOfNULL {
typedef struct SetOfNULL {
A_SET_OF(NULL_t) list;
A_SET_OF(NULL_t) list;
...
@@ -607,6 +610,10 @@ typedef struct SetOfNULL {
...
@@ -607,6 +610,10 @@ typedef struct SetOfNULL {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} SetOfNULL_t;
} SetOfNULL_t;
/*** <<< FUNC-DECLS [SetOfNULL] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SetOfNULL;
/*** <<< STAT-DEFS [SetOfNULL] >>> ***/
/*** <<< STAT-DEFS [SetOfNULL] >>> ***/
static asn_TYPE_member_t asn_MBR_SetOfNULL_1[] = {
static asn_TYPE_member_t asn_MBR_SetOfNULL_1[] = {
...
@@ -661,11 +668,9 @@ typedef enum Member {
...
@@ -661,11 +668,9 @@ typedef enum Member {
Member_one = 0,
Member_one = 0,
Member_oneMore = 1
Member_oneMore = 1
} Member_e;
} Member_e;
extern asn_TYPE_descriptor_t asn_DEF_SetOfEnums;
/*** <<< TYPE-DECLS [SetOfEnums] >>> ***/
/*** <<< TYPE-DECLS [SetOfEnums] >>> ***/
typedef struct SetOfEnums {
typedef struct SetOfEnums {
A_SET_OF(ENUMERATED_t) list;
A_SET_OF(ENUMERATED_t) list;
...
@@ -676,6 +681,7 @@ typedef struct SetOfEnums {
...
@@ -676,6 +681,7 @@ typedef struct SetOfEnums {
/*** <<< FUNC-DECLS [SetOfEnums] >>> ***/
/*** <<< FUNC-DECLS [SetOfEnums] >>> ***/
/* extern asn_TYPE_descriptor_t asn_DEF_Member_2; // (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_Member_2; // (Use -fall-defs-global to expose) */
extern asn_TYPE_descriptor_t asn_DEF_SetOfEnums;
/*** <<< CODE [SetOfEnums] >>> ***/
/*** <<< CODE [SetOfEnums] >>> ***/
...
@@ -837,13 +843,8 @@ asn_TYPE_descriptor_t asn_DEF_SetOfEnums = {
...
@@ -837,13 +843,8 @@ asn_TYPE_descriptor_t asn_DEF_SetOfEnums = {
#include <asn_SEQUENCE_OF.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
/*** <<< DEPS [SequenceOf] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SequenceOf;
/*** <<< TYPE-DECLS [SequenceOf] >>> ***/
/*** <<< TYPE-DECLS [SequenceOf] >>> ***/
typedef struct SequenceOf {
typedef struct SequenceOf {
A_SEQUENCE_OF(INTEGER_t) list;
A_SEQUENCE_OF(INTEGER_t) list;
...
@@ -851,6 +852,10 @@ typedef struct SequenceOf {
...
@@ -851,6 +852,10 @@ typedef struct SequenceOf {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} SequenceOf_t;
} SequenceOf_t;
/*** <<< FUNC-DECLS [SequenceOf] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SequenceOf;
/*** <<< STAT-DEFS [SequenceOf] >>> ***/
/*** <<< STAT-DEFS [SequenceOf] >>> ***/
static asn_TYPE_member_t asn_MBR_SequenceOf_1[] = {
static asn_TYPE_member_t asn_MBR_SequenceOf_1[] = {
...
@@ -899,13 +904,8 @@ asn_TYPE_descriptor_t asn_DEF_SequenceOf = {
...
@@ -899,13 +904,8 @@ asn_TYPE_descriptor_t asn_DEF_SequenceOf = {
#include <asn_SEQUENCE_OF.h>
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
/*** <<< DEPS [SeqOfZuka] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SeqOfZuka;
/*** <<< TYPE-DECLS [SeqOfZuka] >>> ***/
/*** <<< TYPE-DECLS [SeqOfZuka] >>> ***/
typedef struct SeqOfZuka {
typedef struct SeqOfZuka {
A_SEQUENCE_OF(NULL_t) list;
A_SEQUENCE_OF(NULL_t) list;
...
@@ -913,6 +913,10 @@ typedef struct SeqOfZuka {
...
@@ -913,6 +913,10 @@ typedef struct SeqOfZuka {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} SeqOfZuka_t;
} SeqOfZuka_t;
/*** <<< FUNC-DECLS [SeqOfZuka] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_SeqOfZuka;
/*** <<< STAT-DEFS [SeqOfZuka] >>> ***/
/*** <<< STAT-DEFS [SeqOfZuka] >>> ***/
static asn_TYPE_member_t asn_MBR_SeqOfZuka_1[] = {
static asn_TYPE_member_t asn_MBR_SeqOfZuka_1[] = {
...
...
tests/72-same-names-OK.asn1.-P
View file @
c8285715
...
@@ -7,13 +7,8 @@
...
@@ -7,13 +7,8 @@
#include <constr_SEQUENCE.h>
#include <constr_SEQUENCE.h>
#include <constr_SET_OF.h>
#include <constr_SET_OF.h>
/*** <<< DEPS [Type] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Type;
/*** <<< TYPE-DECLS [Type] >>> ***/
/*** <<< TYPE-DECLS [Type] >>> ***/
typedef struct Type {
typedef struct Type {
A_SET_OF(struct Member {
A_SET_OF(struct Member {
Type1_t t1;
Type1_t t1;
...
@@ -27,6 +22,10 @@ typedef struct Type {
...
@@ -27,6 +22,10 @@ typedef struct Type {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Type_t;
} Type_t;
/*** <<< FUNC-DECLS [Type] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Type;
/*** <<< STAT-DEFS [Type] >>> ***/
/*** <<< STAT-DEFS [Type] >>> ***/
static asn_TYPE_member_t asn_MBR_Member_2[] = {
static asn_TYPE_member_t asn_MBR_Member_2[] = {
...
@@ -136,11 +135,9 @@ typedef enum one_name_PR {
...
@@ -136,11 +135,9 @@ typedef enum one_name_PR {
one_name_PR_NOTHING, /* No components present */
one_name_PR_NOTHING, /* No components present */
one_name_PR_another_name,
one_name_PR_another_name,
} one_name_PR;
} one_name_PR;
extern asn_TYPE_descriptor_t asn_DEF_Type1;
/*** <<< TYPE-DECLS [Type1] >>> ***/
/*** <<< TYPE-DECLS [Type1] >>> ***/
typedef struct Type1 {
typedef struct Type1 {
struct one_name {
struct one_name {
one_name_PR present;
one_name_PR present;
...
@@ -162,6 +159,10 @@ typedef struct Type1 {
...
@@ -162,6 +159,10 @@ typedef struct Type1 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Type1_t;
} Type1_t;
/*** <<< FUNC-DECLS [Type1] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Type1;
/*** <<< STAT-DEFS [Type1] >>> ***/
/*** <<< STAT-DEFS [Type1] >>> ***/
static asn_TYPE_member_t asn_MBR_another_name_3[] = {
static asn_TYPE_member_t asn_MBR_another_name_3[] = {
...
@@ -328,11 +329,9 @@ typedef enum Type2_PR {
...
@@ -328,11 +329,9 @@ typedef enum Type2_PR {
typedef enum two_name_PR {
typedef enum two_name_PR {
two_name_PR_another_name, /* Member another_name is present */
two_name_PR_another_name, /* Member another_name is present */
} two_name_PR;
} two_name_PR;
extern asn_TYPE_descriptor_t asn_DEF_Type2;
/*** <<< TYPE-DECLS [Type2] >>> ***/
/*** <<< TYPE-DECLS [Type2] >>> ***/
typedef struct Type2 {
typedef struct Type2 {
Type2_PR present;
Type2_PR present;
union {
union {
...
@@ -370,6 +369,10 @@ typedef struct Type2 {
...
@@ -370,6 +369,10 @@ typedef struct Type2 {
asn_struct_ctx_t _asn_ctx;
asn_struct_ctx_t _asn_ctx;
} Type2_t;
} Type2_t;
/*** <<< FUNC-DECLS [Type2] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Type2;
/*** <<< CODE [Type2] >>> ***/
/*** <<< CODE [Type2] >>> ***/
static int
static int
...
...
tests/73-circular-OK.asn1
0 → 100644
View file @
c8285715
-- OK: Everything is Fine
-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
-- .spelio.software.asn1c.test (9363.1.5.1)
-- .73
ModuleTestCircularReferences
{ iso org(3) dod(6) internet(1) private(4) enterprise(1)
spelio(9363) software(1) asn1c(5) test(1) 73 }
DEFINITIONS ::=
BEGIN
Type ::= SEQUENCE {
data SEQUENCE OF Epyt
}
-- EpytRef ::= Epyt
Epyt ::= SEQUENCE {
stype SET OF Type,
type Type OPTIONAL,
ypet Ypet OPTIONAL
}
Ypet ::= SET {
epyt Epyt,
plain INTEGER DEFAULT 7
}
END
tests/73-circular-OK.asn1.-P
0 → 100644
View file @
c8285715
/*** <<< INCLUDES [Type] >>> ***/
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>
/*** <<< FWD-DECLS [Type] >>> ***/
struct Epyt; /* Forward declaration */
/*** <<< TYPE-DECLS [Type] >>> ***/
typedef struct Type {
struct data {
A_SEQUENCE_OF(struct Epyt) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} data;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} Type_t;
/*** <<< FUNC-DECLS [Type] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Type;
/*** <<< POST-INCLUDE [Type] >>> ***/
#include <Epyt.h>
/*** <<< STAT-DEFS [Type] >>> ***/
static asn_TYPE_member_t asn_MBR_data_2[] = {
{ ATF_NOFLAGS, 0, 0,
.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_Epyt,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = ""
},
};
static ber_tlv_tag_t asn_DEF_data_2_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_SET_OF_specifics_t asn_SPC_data_2_specs = {
sizeof(struct data),
offsetof(struct data, _asn_ctx),
0, /* XER encoding is XMLDelimitedItemList */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_data_2 = {
"data",
"data",
SEQUENCE_OF_free,
SEQUENCE_OF_print,
SEQUENCE_OF_constraint,
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
SEQUENCE_OF_decode_xer,
SEQUENCE_OF_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_data_2_tags,
sizeof(asn_DEF_data_2_tags)
/sizeof(asn_DEF_data_2_tags[0]), /* 1 */
asn_DEF_data_2_tags, /* Same as above */
sizeof(asn_DEF_data_2_tags)
/sizeof(asn_DEF_data_2_tags[0]), /* 1 */
asn_MBR_data_2,
1, /* Single element */
&asn_SPC_data_2_specs /* Additional specs */
};
static asn_TYPE_member_t asn_MBR_Type_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct Type, data),
.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_data_2,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "data"
},
};
static ber_tlv_tag_t asn_DEF_Type_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_TYPE_tag2member_t asn_MAP_Type_1_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* data at 16 */
};
static asn_SEQUENCE_specifics_t asn_SPC_Type_1_specs = {
sizeof(struct Type),
offsetof(struct Type, _asn_ctx),
asn_MAP_Type_1_tag2el,
1, /* Count of tags in the map */
-1, /* Start extensions */
-1 /* Stop extensions */
};
asn_TYPE_descriptor_t asn_DEF_Type = {
"Type",
"Type",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_Type_1_tags,
sizeof(asn_DEF_Type_1_tags)
/sizeof(asn_DEF_Type_1_tags[0]), /* 1 */
asn_DEF_Type_1_tags, /* Same as above */
sizeof(asn_DEF_Type_1_tags)
/sizeof(asn_DEF_Type_1_tags[0]), /* 1 */
asn_MBR_Type_1,
1, /* Elements count */
&asn_SPC_Type_1_specs /* Additional specs */
};
/*** <<< INCLUDES [Epyt] >>> ***/
#include <asn_SET_OF.h>
#include <constr_SET_OF.h>
#include <constr_SEQUENCE.h>
/*** <<< FWD-DECLS [Epyt] >>> ***/
struct Type; /* Forward declaration */
struct Ypet; /* Forward declaration */
/*** <<< TYPE-DECLS [Epyt] >>> ***/
typedef struct Epyt {
struct stype {
A_SET_OF(struct Type) list;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} stype;
struct Type *type /* OPTIONAL */;
struct Ypet *ypet /* OPTIONAL */;
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} Epyt_t;
/*** <<< FUNC-DECLS [Epyt] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Epyt;
/*** <<< POST-INCLUDE [Epyt] >>> ***/
#include <Type.h>
#include <Ypet.h>
/*** <<< STAT-DEFS [Epyt] >>> ***/
static asn_TYPE_member_t asn_MBR_stype_2[] = {
{ ATF_NOFLAGS, 0, 0,
.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_Type,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = ""
},
};
static ber_tlv_tag_t asn_DEF_stype_2_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn_SET_OF_specifics_t asn_SPC_stype_2_specs = {
sizeof(struct stype),
offsetof(struct stype, _asn_ctx),
0, /* XER encoding is XMLDelimitedItemList */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_stype_2 = {
"stype",
"stype",
SET_OF_free,
SET_OF_print,
SET_OF_constraint,
SET_OF_decode_ber,
SET_OF_encode_der,
SET_OF_decode_xer,
SET_OF_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_stype_2_tags,
sizeof(asn_DEF_stype_2_tags)
/sizeof(asn_DEF_stype_2_tags[0]), /* 1 */
asn_DEF_stype_2_tags, /* Same as above */
sizeof(asn_DEF_stype_2_tags)
/sizeof(asn_DEF_stype_2_tags[0]), /* 1 */
asn_MBR_stype_2,
1, /* Single element */
&asn_SPC_stype_2_specs /* Additional specs */
};
static asn_TYPE_member_t asn_MBR_Epyt_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct Epyt, stype),
.tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_stype_2,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "stype"
},
{ ATF_POINTER, 2, offsetof(struct Epyt, type),
.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_Type,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "type"
},
{ ATF_POINTER, 1, offsetof(struct Epyt, ypet),
.tag = (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_Ypet,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "ypet"
},
};
static ber_tlv_tag_t asn_DEF_Epyt_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_TYPE_tag2member_t asn_MAP_Epyt_1_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* type at 22 */
{ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 0, 0, 1 }, /* stype at 21 */
{ (ASN_TAG_CLASS_UNIVERSAL | (17 << 2)), 2, -1, 0 } /* ypet at 23 */
};
static asn_SEQUENCE_specifics_t asn_SPC_Epyt_1_specs = {
sizeof(struct Epyt),
offsetof(struct Epyt, _asn_ctx),
asn_MAP_Epyt_1_tag2el,
3, /* Count of tags in the map */
-1, /* Start extensions */
-1 /* Stop extensions */
};
asn_TYPE_descriptor_t asn_DEF_Epyt = {
"Epyt",
"Epyt",
SEQUENCE_free,
SEQUENCE_print,
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_Epyt_1_tags,
sizeof(asn_DEF_Epyt_1_tags)
/sizeof(asn_DEF_Epyt_1_tags[0]), /* 1 */
asn_DEF_Epyt_1_tags, /* Same as above */
sizeof(asn_DEF_Epyt_1_tags)
/sizeof(asn_DEF_Epyt_1_tags[0]), /* 1 */
asn_MBR_Epyt_1,
3, /* Elements count */
&asn_SPC_Epyt_1_specs /* Additional specs */
};
/*** <<< INCLUDES [Ypet] >>> ***/
#include <Epyt.h>
#include <INTEGER.h>
#include <constr_SET.h>
/*** <<< DEPS [Ypet] >>> ***/
/*
* Method of determining the components presence
*/
typedef enum Ypet_PR {
Ypet_PR_epyt, /* Member epyt is present */
Ypet_PR_plain, /* Member plain is present */
} Ypet_PR;
/*** <<< TYPE-DECLS [Ypet] >>> ***/
typedef struct Ypet {
Epyt_t epyt;
INTEGER_t *plain /* DEFAULT 7 */;
/* Presence bitmask: ASN_SET_ISPRESENT(pYpet, Ypet_PR_x) */
unsigned int _presence_map
[((2+(8*sizeof(unsigned int))-1)/(8*sizeof(unsigned int)))];
/* Context for parsing across buffer boundaries */
asn_struct_ctx_t _asn_ctx;
} Ypet_t;
/*** <<< FUNC-DECLS [Ypet] >>> ***/
extern asn_TYPE_descriptor_t asn_DEF_Ypet;
/*** <<< STAT-DEFS [Ypet] >>> ***/
static asn_TYPE_member_t asn_MBR_Ypet_1[] = {
{ ATF_NOFLAGS, 0, offsetof(struct Ypet, epyt),
.tag = (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_Epyt,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "epyt"
},
{ ATF_POINTER, 1, offsetof(struct Ypet, plain),
.tag = (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
.tag_mode = 0,
.type = (void *)&asn_DEF_INTEGER,
.memb_constraints = 0, /* Defer constraints checking to the member type */
.name = "plain"
},
};
static ber_tlv_tag_t asn_DEF_Ypet_1_tags[] = {
(ASN_TAG_CLASS_UNIVERSAL | (17 << 2))
};
static asn_TYPE_tag2member_t asn_MAP_Ypet_1_tag2el[] = {
{ (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* plain at 28 */
{ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* epyt at 27 */
};
static uint8_t asn_MAP_Ypet_1_mmap[(2 + (8 * sizeof(unsigned int)) - 1) / 8] = {
(1 << 7) | (0 << 6)
};
static asn_SET_specifics_t asn_SPC_Ypet_1_specs = {
sizeof(struct Ypet),
offsetof(struct Ypet, _asn_ctx),
offsetof(struct Ypet, _presence_map),
asn_MAP_Ypet_1_tag2el,
2, /* Count of tags in the map */
asn_MAP_Ypet_1_tag2el, /* Same as above */
2, /* Count of tags in the CXER map */
0, /* Whether extensible */
(unsigned int *)asn_MAP_Ypet_1_mmap /* Mandatory elements map */
};
asn_TYPE_descriptor_t asn_DEF_Ypet = {
"Ypet",
"Ypet",
SET_free,
SET_print,
SET_constraint,
SET_decode_ber,
SET_encode_der,
SET_decode_xer,
SET_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_Ypet_1_tags,
sizeof(asn_DEF_Ypet_1_tags)
/sizeof(asn_DEF_Ypet_1_tags[0]), /* 1 */
asn_DEF_Ypet_1_tags, /* Same as above */
sizeof(asn_DEF_Ypet_1_tags)
/sizeof(asn_DEF_Ypet_1_tags[0]), /* 1 */
asn_MBR_Ypet_1,
2, /* Elements count */
&asn_SPC_Ypet_1_specs /* Additional specs */
};
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