diff options
Diffstat (limited to 'print.c')
-rw-r--r-- | print.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -21,10 +21,10 @@ ppdatum(Datum d) case HybridTag: result = runesmprint("%C", primhybridnames[d.func.code]); break; case MonadicOpTag: case DyadicOpTag: result = ppoperator(d.operator); break; - case LParTag: result = runestrdup(L"("); break; + case LParTag: result = runesmprint("(%S", ppdatums(d.stmt.toks, d.stmt.ntoks)); break; case RParTag: result = runestrdup(L")"); break; case ArrowTag: result = runestrdup(L"ā"); break; - case AssignmentTag: result = runesmprint("%Sā", d.name); break; + case AssignmentTag: result = runesmprint("(%S)ā", ppdatums(d.stmt.toks, d.stmt.ntoks)); break; case NameTag: result = runestrdup(d.name); break; default: result = runesmprint("<not printable %d>", d.tag); } @@ -39,7 +39,7 @@ ppdatums(Datum *ds, int n) Rune *tmp; for(i = 0; i < n; i++){ tmp = res; - res = runesmprint("%S %S", res, ppdatum(ds[i])); + res = runesmprint("%S%S%s", res, ppdatum(ds[i]), (i+1) < n ? " " : ""); free(tmp); } return res; |