aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2004-10-23 15:07:45 +0000
committerLev Walkin <vlm@lionet.info>2004-10-23 15:07:45 +0000
commit61b40d81b7cd8c5133a9bd16a7026c8f333f772b (patch)
treed1ce69b10b9571cba04230d8b766463556c26595
parentda3ca411d2450d02de171f6964aab59a04204db9 (diff)
CHOICE XER decoder
-rw-r--r--libasn1compiler/asn1c_C.c14
-rw-r--r--tests/19-param-OK.asn1.-P4
-rw-r--r--tests/31-set-of-OK.asn1.-P6
-rw-r--r--tests/32-sequence-of-OK.asn1.-P2
-rw-r--r--tests/39-sequence-of-OK.asn1.-P4
-rw-r--r--tests/42-real-life-OK.asn1.-PR12
-rw-r--r--tests/43-recursion-OK.asn1.-P4
-rw-r--r--tests/44-choice-in-sequence-OK.asn1.-P8
-rw-r--r--tests/46-redefine-OK.asn1.-PR2
-rw-r--r--tests/47-set-ext-OK.asn1.-P4
-rw-r--r--tests/60-any-OK.asn1.-P4
-rw-r--r--tests/65-multi-tag-OK.asn1.-P2
-rw-r--r--tests/65-multi-tag-OK.asn1.-Pfnative-types2
13 files changed, 36 insertions, 32 deletions
diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c
index 5b9eae69..2cbe258c 100644
--- a/libasn1compiler/asn1c_C.c
+++ b/libasn1compiler/asn1c_C.c
@@ -1508,11 +1508,15 @@ emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode, int tags_
OUT("%s_constraint,\n", p);
OUT("%s_decode_ber,\n", p);
OUT("%s_encode_der,\n", p);
- if(!(expr->expr_type & ASN_CONSTR_MASK)
- && (expr->expr_type != ASN_CONSTR_SEQUENCE))
- OUT("%s_decode_xer,\n", p);
- else
- OUT("0,\t\t\t\t/* Not implemented yet */\n");
+ switch(expr->expr_type) {
+ case ASN_CONSTR_SET:
+ case ASN_CONSTR_SET_OF:
+ case ASN_CONSTR_SEQUENCE_OF:
+ OUT("0,\t\t\t\t/* Not implemented yet */\n");
+ break;
+ default:
+ OUT("%s_decode_xer,\n", p);
+ }
OUT("%s_encode_xer,\n", p);
p = MKID(expr->Identifier);
diff --git a/tests/19-param-OK.asn1.-P b/tests/19-param-OK.asn1.-P
index 0d07f8b2..fe64c771 100644
--- a/tests/19-param-OK.asn1.-P
+++ b/tests/19-param-OK.asn1.-P
@@ -114,7 +114,7 @@ asn_TYPE_descriptor_t asn_DEF_toBeSigned = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_toBeSigned_tags,
@@ -175,7 +175,7 @@ asn_TYPE_descriptor_t asn_DEF_Certificate = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_Certificate_tags,
diff --git a/tests/31-set-of-OK.asn1.-P b/tests/31-set-of-OK.asn1.-P
index c245bf88..e9ccac14 100644
--- a/tests/31-set-of-OK.asn1.-P
+++ b/tests/31-set-of-OK.asn1.-P
@@ -122,7 +122,7 @@ asn_TYPE_descriptor_t asn_DEF_Tree = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_Tree_tags,
@@ -289,7 +289,7 @@ asn_TYPE_descriptor_t asn_DEF_anything_member = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_anything_member_tags,
@@ -382,7 +382,7 @@ asn_TYPE_descriptor_t asn_DEF_other = {
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
- 0, /* Not implemented yet */
+ CHOICE_decode_xer,
CHOICE_encode_xer,
CHOICE_outmost_tag,
0, /* No effective tags (pointer) */
diff --git a/tests/32-sequence-of-OK.asn1.-P b/tests/32-sequence-of-OK.asn1.-P
index 5c2c9b29..46c7ea82 100644
--- a/tests/32-sequence-of-OK.asn1.-P
+++ b/tests/32-sequence-of-OK.asn1.-P
@@ -167,7 +167,7 @@ asn_TYPE_descriptor_t asn_DEF_Error = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_Error_tags,
diff --git a/tests/39-sequence-of-OK.asn1.-P b/tests/39-sequence-of-OK.asn1.-P
index 1fecb6f5..76aded23 100644
--- a/tests/39-sequence-of-OK.asn1.-P
+++ b/tests/39-sequence-of-OK.asn1.-P
@@ -108,7 +108,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_T_tags,
@@ -185,7 +185,7 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_T2_tags,
diff --git a/tests/42-real-life-OK.asn1.-PR b/tests/42-real-life-OK.asn1.-PR
index 951e6693..974c0160 100644
--- a/tests/42-real-life-OK.asn1.-PR
+++ b/tests/42-real-life-OK.asn1.-PR
@@ -144,7 +144,7 @@ asn_TYPE_descriptor_t asn_DEF_LogLine = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_LogLine_tags,
@@ -294,7 +294,7 @@ asn_TYPE_descriptor_t asn_DEF_VariablePartSet = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_VariablePartSet_tags,
@@ -474,7 +474,7 @@ asn_TYPE_descriptor_t asn_DEF_vrange = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_vrange_tags,
@@ -525,7 +525,7 @@ asn_TYPE_descriptor_t asn_DEF_VariablePart = {
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
- 0, /* Not implemented yet */
+ CHOICE_decode_xer,
CHOICE_encode_xer,
CHOICE_outmost_tag,
0, /* No effective tags (pointer) */
@@ -671,7 +671,7 @@ asn_TYPE_descriptor_t asn_DEF_notify = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_notify_tags,
@@ -724,7 +724,7 @@ asn_TYPE_descriptor_t asn_DEF_ActionItem = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_ActionItem_tags,
diff --git a/tests/43-recursion-OK.asn1.-P b/tests/43-recursion-OK.asn1.-P
index 004e0f05..9e8d4074 100644
--- a/tests/43-recursion-OK.asn1.-P
+++ b/tests/43-recursion-OK.asn1.-P
@@ -175,7 +175,7 @@ asn_TYPE_descriptor_t asn_DEF_Test_structure_1 = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_Test_structure_1_tags,
@@ -330,7 +330,7 @@ asn_TYPE_descriptor_t asn_DEF_Choice_1 = {
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
- 0, /* Not implemented yet */
+ CHOICE_decode_xer,
CHOICE_encode_xer,
CHOICE_outmost_tag,
0, /* No effective tags (pointer) */
diff --git a/tests/44-choice-in-sequence-OK.asn1.-P b/tests/44-choice-in-sequence-OK.asn1.-P
index bb51a570..77886f10 100644
--- a/tests/44-choice-in-sequence-OK.asn1.-P
+++ b/tests/44-choice-in-sequence-OK.asn1.-P
@@ -106,7 +106,7 @@ asn_TYPE_descriptor_t asn_DEF_e = {
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
- 0, /* Not implemented yet */
+ CHOICE_decode_xer,
CHOICE_encode_xer,
CHOICE_outmost_tag,
0, /* No effective tags (pointer) */
@@ -156,7 +156,7 @@ asn_TYPE_descriptor_t asn_DEF_h = {
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
- 0, /* Not implemented yet */
+ CHOICE_decode_xer,
CHOICE_encode_xer,
CHOICE_outmost_tag,
0, /* No effective tags (pointer) */
@@ -223,7 +223,7 @@ asn_TYPE_descriptor_t asn_DEF_b = {
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
- 0, /* Not implemented yet */
+ CHOICE_decode_xer,
CHOICE_encode_xer,
CHOICE_outmost_tag,
0, /* No effective tags (pointer) */
@@ -279,7 +279,7 @@ asn_TYPE_descriptor_t asn_DEF_T = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_T_tags,
diff --git a/tests/46-redefine-OK.asn1.-PR b/tests/46-redefine-OK.asn1.-PR
index 5ba6bccf..2dc369cd 100644
--- a/tests/46-redefine-OK.asn1.-PR
+++ b/tests/46-redefine-OK.asn1.-PR
@@ -70,7 +70,7 @@ asn_TYPE_descriptor_t asn_DEF_ConstructedType = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_ConstructedType_tags,
diff --git a/tests/47-set-ext-OK.asn1.-P b/tests/47-set-ext-OK.asn1.-P
index 8c2bc270..cdd6f530 100644
--- a/tests/47-set-ext-OK.asn1.-P
+++ b/tests/47-set-ext-OK.asn1.-P
@@ -237,7 +237,7 @@ asn_TYPE_descriptor_t asn_DEF_T3 = {
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
- 0, /* Not implemented yet */
+ CHOICE_decode_xer,
CHOICE_encode_xer,
CHOICE_outmost_tag,
0, /* No effective tags (pointer) */
@@ -312,7 +312,7 @@ asn_TYPE_descriptor_t asn_DEF_T4 = {
CHOICE_constraint,
CHOICE_decode_ber,
CHOICE_encode_der,
- 0, /* Not implemented yet */
+ CHOICE_decode_xer,
CHOICE_encode_xer,
CHOICE_outmost_tag,
0, /* No effective tags (pointer) */
diff --git a/tests/60-any-OK.asn1.-P b/tests/60-any-OK.asn1.-P
index f740e8a8..4f55417c 100644
--- a/tests/60-any-OK.asn1.-P
+++ b/tests/60-any-OK.asn1.-P
@@ -60,7 +60,7 @@ asn_TYPE_descriptor_t asn_DEF_T1 = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_T1_tags,
@@ -137,7 +137,7 @@ asn_TYPE_descriptor_t asn_DEF_T2 = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_T2_tags,
diff --git a/tests/65-multi-tag-OK.asn1.-P b/tests/65-multi-tag-OK.asn1.-P
index 5319d50e..4c398343 100644
--- a/tests/65-multi-tag-OK.asn1.-P
+++ b/tests/65-multi-tag-OK.asn1.-P
@@ -836,7 +836,7 @@ asn_TYPE_descriptor_t asn_DEF_Ts = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_Ts_tags,
diff --git a/tests/65-multi-tag-OK.asn1.-Pfnative-types b/tests/65-multi-tag-OK.asn1.-Pfnative-types
index eb2f1c41..55742035 100644
--- a/tests/65-multi-tag-OK.asn1.-Pfnative-types
+++ b/tests/65-multi-tag-OK.asn1.-Pfnative-types
@@ -836,7 +836,7 @@ asn_TYPE_descriptor_t asn_DEF_Ts = {
SEQUENCE_constraint,
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
- 0, /* Not implemented yet */
+ SEQUENCE_decode_xer,
SEQUENCE_encode_xer,
0, /* Use generic outmost tag fetcher */
asn_DEF_Ts_tags,