Commit 0204fa63 authored by Lev Walkin's avatar Lev Walkin

marker definition changed

parent 51bb0a71
...@@ -139,12 +139,12 @@ asn1c_lang_C_type_SEQUENCE(arg_t *arg) { ...@@ -139,12 +139,12 @@ asn1c_lang_C_type_SEQUENCE(arg_t *arg) {
} }
if(comp_mode == 1 if(comp_mode == 1
|| expr_better_indirect(arg, v)) || expr_better_indirect(arg, v))
v->marker |= EM_INDIRECT; v->marker.flags |= EM_INDIRECT;
EMBED(v); EMBED(v);
} }
PCTX_DEF; PCTX_DEF;
OUT("} %s%s%s", expr->marker?"*":"", OUT("} %s%s%s", expr->marker.flags?"*":"",
expr->_anonymous_type ? "" : MKID(expr->Identifier), expr->_anonymous_type ? "" : MKID(expr->Identifier),
arg->embed ? "" : "_t"); arg->embed ? "" : "_t");
...@@ -281,7 +281,7 @@ asn1c_lang_C_type_SET(arg_t *arg) { ...@@ -281,7 +281,7 @@ asn1c_lang_C_type_SET(arg_t *arg) {
} }
if(comp_mode == 1 if(comp_mode == 1
|| expr_better_indirect(arg, v)) || expr_better_indirect(arg, v))
v->marker |= EM_INDIRECT; v->marker.flags |= EM_INDIRECT;
EMBED(v); EMBED(v);
} }
...@@ -295,7 +295,7 @@ asn1c_lang_C_type_SET(arg_t *arg) { ...@@ -295,7 +295,7 @@ asn1c_lang_C_type_SET(arg_t *arg) {
); );
PCTX_DEF; PCTX_DEF;
OUT("} %s%s%s", expr->marker?"*":"", OUT("} %s%s%s", expr->marker.flags?"*":"",
expr->_anonymous_type ? "" : MKID(expr->Identifier), expr->_anonymous_type ? "" : MKID(expr->Identifier),
arg->embed ? "" : "_t"); arg->embed ? "" : "_t");
...@@ -342,7 +342,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) { ...@@ -342,7 +342,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) {
} else { } else {
if(comp_mode == 1 if(comp_mode == 1
|| expr_better_indirect(arg, v)) || expr_better_indirect(arg, v))
v->marker |= EM_INDIRECT; v->marker.flags |= EM_INDIRECT;
elements++; elements++;
emit_member_table(arg, v); emit_member_table(arg, v);
} }
...@@ -379,7 +379,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) { ...@@ -379,7 +379,7 @@ asn1c_lang_C_type_SET_def(arg_t *arg) {
OUT(" | "); OUT(" | ");
} }
OUT("(%d << %d)", OUT("(%d << %d)",
v->marker?0:1, v->marker.flags?0:1,
7 - (el % 8)); 7 - (el % 8));
if(el && (el % 8) == 0) if(el && (el % 8) == 0)
delimit = 1; delimit = 1;
...@@ -458,7 +458,7 @@ asn1c_lang_C_type_SEx_OF(arg_t *arg) { ...@@ -458,7 +458,7 @@ asn1c_lang_C_type_SEx_OF(arg_t *arg) {
INDENT(-1); INDENT(-1);
PCTX_DEF; PCTX_DEF;
OUT("} %s%s%s", expr->marker?"*":"", OUT("} %s%s%s", expr->marker.flags?"*":"",
expr->_anonymous_type ? "" : MKID(expr->Identifier), expr->_anonymous_type ? "" : MKID(expr->Identifier),
arg->embed ? "" : "_t"); arg->embed ? "" : "_t");
...@@ -569,7 +569,7 @@ asn1c_lang_C_type_CHOICE(arg_t *arg) { ...@@ -569,7 +569,7 @@ asn1c_lang_C_type_CHOICE(arg_t *arg) {
OUT("union {\n", id); OUT("union {\n", id);
TQ_FOR(v, &(expr->members), next) { TQ_FOR(v, &(expr->members), next) {
if(expr_better_indirect(arg, v)) if(expr_better_indirect(arg, v))
v->marker |= EM_INDIRECT; v->marker.flags |= EM_INDIRECT;
EMBED(v); EMBED(v);
} }
if(UNNAMED_UNIONS) OUT("};\n"); if(UNNAMED_UNIONS) OUT("};\n");
...@@ -577,7 +577,7 @@ asn1c_lang_C_type_CHOICE(arg_t *arg) { ...@@ -577,7 +577,7 @@ asn1c_lang_C_type_CHOICE(arg_t *arg) {
); );
PCTX_DEF; PCTX_DEF;
OUT("} %s%s%s", expr->marker?"*":"", OUT("} %s%s%s", expr->marker.flags?"*":"",
expr->_anonymous_type ? "" : MKID(expr->Identifier), expr->_anonymous_type ? "" : MKID(expr->Identifier),
arg->embed ? "" : "_t"); arg->embed ? "" : "_t");
...@@ -624,7 +624,7 @@ asn1c_lang_C_type_CHOICE_def(arg_t *arg) { ...@@ -624,7 +624,7 @@ asn1c_lang_C_type_CHOICE_def(arg_t *arg) {
} else { } else {
if(comp_mode == 1 if(comp_mode == 1
|| expr_better_indirect(arg, v)) || expr_better_indirect(arg, v))
v->marker |= EM_INDIRECT; v->marker.flags |= EM_INDIRECT;
elements++; elements++;
emit_member_table(arg, v); emit_member_table(arg, v);
} }
...@@ -729,12 +729,13 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { ...@@ -729,12 +729,13 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) {
REDIR(OT_TYPE_DECLS); REDIR(OT_TYPE_DECLS);
OUT("%s\t", asn1c_type_name(arg, arg->expr, OUT("%s\t", asn1c_type_name(arg, arg->expr,
expr->marker?TNF_RSAFE:TNF_CTYPE)); expr->marker.flags?TNF_RSAFE:TNF_CTYPE));
OUT("%s", expr->marker?"*":" "); OUT("%s", expr->marker.flags?"*":" ");
OUT("%s", MKID(expr->Identifier)); OUT("%s", MKID(expr->Identifier));
if((expr->marker & EM_DEFAULT) == EM_DEFAULT) if((expr->marker.flags & EM_DEFAULT) == EM_DEFAULT)
OUT("\t/* DEFAULT */"); OUT("\t/* DEFAULT %s */",
else if((expr->marker & EM_OPTIONAL) == EM_OPTIONAL) asn1f_printable_value(expr->marker.default_value));
else if((expr->marker.flags & EM_OPTIONAL) == EM_OPTIONAL)
OUT("\t/* OPTIONAL */"); OUT("\t/* OPTIONAL */");
REDIR(OT_TYPE_DECLS); REDIR(OT_TYPE_DECLS);
...@@ -747,7 +748,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) { ...@@ -747,7 +748,7 @@ asn1c_lang_C_type_SIMPLE_TYPE(arg_t *arg) {
REDIR(OT_TYPE_DECLS); REDIR(OT_TYPE_DECLS);
OUT("typedef %s\t", asn1c_type_name(arg, arg->expr, TNF_CTYPE)); OUT("typedef %s\t", asn1c_type_name(arg, arg->expr, TNF_CTYPE));
OUT("%s", expr->marker?"*":" "); OUT("%s", expr->marker.flags?"*":" ");
OUT("%s_t", MKID(expr->Identifier)); OUT("%s_t", MKID(expr->Identifier));
REDIR(OT_STAT_DEFS); REDIR(OT_STAT_DEFS);
...@@ -1241,11 +1242,11 @@ emit_member_table(arg_t *arg, asn1p_expr_t *expr) { ...@@ -1241,11 +1242,11 @@ 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?"ATF_POINTER":"ATF_NOFLAGS"); OUT("%s, ", expr->marker.flags?"ATF_POINTER":"ATF_NOFLAGS");
if((expr->marker & 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;
for(tv = expr; tv && tv->marker; for(tv = expr; tv && tv->marker.flags;
tv = TQ_NEXT(tv, next), opts++) { tv = TQ_NEXT(tv, next), opts++) {
if(tv->expr_type == A1TC_EXTENSIBLE) if(tv->expr_type == A1TC_EXTENSIBLE)
opts--; opts--;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment