X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=blobdiff_plain;f=csrc%2Foceani.mdc;fp=csrc%2Foceani.mdc;h=910d0953572c639ed76f985e764c0402eec8a482;hp=543ca75a300a6ae740b19ccb15b9ff1d24a92a2a;hb=bc3045b3d8e8140d94a7bfd0cff1dbf8a7b491a1;hpb=c1571dc004d832a6656664e814c238deb0f00513 diff --git a/csrc/oceani.mdc b/csrc/oceani.mdc index 543ca75..910d095 100644 --- a/csrc/oceani.mdc +++ b/csrc/oceani.mdc @@ -3552,6 +3552,7 @@ further detailed when Expression Lists are introduced. static void function_print(struct type *type, struct value *val, FILE *f) { + fprintf(f, "\n"); print_exec(val->function, 1, 0); } @@ -3585,7 +3586,6 @@ further detailed when Expression Lists are introduced. } else type_print(type->function.return_type, f); } - fprintf(f, "\n"); } static void function_free_type(struct type *t) @@ -4313,9 +4313,10 @@ parentheses around an expression converts it into a Term, if (bracket) printf(")"); break; case Bracket: - printf("("); + /* Avoid double brackets... */ + if (!bracket) printf("("); print_exec(b->right, indent, bracket); - printf(")"); + if (!bracket) printf(")"); break; ###### propagate binode cases @@ -5802,10 +5803,13 @@ is a bit more interesting at this level. struct value *val = var_value(&context, v); printf("func %.*s", v->name->name.len, v->name->name.txt); v->type->print_type_decl(v->type, stdout); - if (brackets) - print_exec(val->function, 0, brackets); - else + if (brackets) { + printf(" {\n"); + print_exec(val->function, 1, brackets); + printf("}\n"); + } else { print_value(v->type, val, stdout); + } printf("/* frame size %d */\n", v->type->function.local_size); target -= 1; }