Skip to content
Snippets Groups Projects
Commit c74ea225 authored by Lev Walkin's avatar Lev Walkin
Browse files

better ValueSet printing

parent d35c8b56
No related branches found
No related tags found
No related merge requests found
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
PER visibility rules for actual constraints checking code generator. PER visibility rules for actual constraints checking code generator.
* Indirect references in constraints resolver code fixed. * Indirect references in constraints resolver code fixed.
* Avoided compilation warning on gcc 3.3.3 systems. * Avoided compilation warning on gcc 3.3.3 systems.
* Better ValueSet printing.
0.9.1: 2004-Aug-23 0.9.1: 2004-Aug-23
......
...@@ -442,6 +442,7 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri ...@@ -442,6 +442,7 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri
} }
if(tc->meta_type != AMT_VALUE if(tc->meta_type != AMT_VALUE
&& tc->meta_type != AMT_VALUESET
&& tc->expr_type != A1TC_EXTENSIBLE) { && tc->expr_type != A1TC_EXTENSIBLE) {
if(level) { if(level) {
if(tc->Identifier) if(tc->Identifier)
...@@ -503,14 +504,27 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri ...@@ -503,14 +504,27 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri
asn1print_ref(tc->reference, flags); asn1print_ref(tc->reference, flags);
} }
if(tc->meta_type == AMT_VALUESET)
printf(" ::=");
/* /*
* Display the descendants (children) of the current type. * Display the descendants (children) of the current type.
*/ */
if(TQ_FIRST(&(tc->members))) { if(TQ_FIRST(&(tc->members))
|| (tc->expr_type & ASN_CONSTR_MASK)
|| tc->meta_type == AMT_VALUESET
|| tc->meta_type == AMT_OBJECT
|| tc->meta_type == AMT_OBJECTSET
) {
asn1p_expr_t *se; /* SubExpression */ asn1p_expr_t *se; /* SubExpression */
int put_braces = !SEQ_OF; /* Don't need 'em, if SET OF... */ int put_braces = !SEQ_OF; /* Don't need 'em, if SET OF... */
if(put_braces) printf(" {\n"); if(put_braces) {
printf(" {");
if(TQ_FIRST(&tc->members))
printf("\n");
else printf(" }");
}
TQ_FOR(se, &(tc->members), next) { TQ_FOR(se, &(tc->members), next) {
/* /*
...@@ -528,7 +542,7 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri ...@@ -528,7 +542,7 @@ asn1print_expr(asn1p_t *asn, asn1p_module_t *mod, asn1p_expr_t *tc, enum asn1pri
} }
} }
if(put_braces) { if(put_braces && TQ_FIRST(&tc->members)) {
printf("\n"); printf("\n");
INDENT("}"); INDENT("}");
} }
......
...@@ -9,7 +9,7 @@ int123456 INTEGER ::= 123456 ...@@ -9,7 +9,7 @@ int123456 INTEGER ::= 123456
Interval ::= INTEGER (1..123456) Interval ::= INTEGER (1..123456)
SameInterval ::= INTEGER SameInterval INTEGER ::= { }
Reason ::= INTEGER { Reason ::= INTEGER {
no-reason(0), no-reason(0),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment