diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-11 23:21:05 +0000 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-11 23:21:05 +0000 |
commit | 37fe04b08b3cae7390f75eb1bb25d8fd4e958384 (patch) | |
tree | 53a6fd51258c5a7113b7bd7fa3766a47a0173070 /print.c | |
parent | ba681c740d09deb36587b847a3307c68de933c4c (diff) |
First try at implementing variables
Diffstat (limited to 'print.c')
-rw-r--r-- | print.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -10,16 +10,20 @@ ppdatum(Datum d) Rune *result; switch(d.tag){ case ArrayTag: result = pparray(d.array); break; - case FunctionTag: result = runesmprint("%C", primfuncnames[d.code]); break; - case HybridTag: result = runesmprint("%C", primhybridnames[d.code]); break; - case MonadicOpTag: result = runesmprint("%C", primmonopnames[d.code]); break; - case DyadicOpTag: result = runesmprint("%C", primdyadopnames[d.code]); break; + case FunctionTag: result = runesmprint("%C", primfuncnames[d.func.code]); break; + case HybridTag: result = runesmprint("%C", primhybridnames[d.func.code]); break; + case MonadicOpTag: result = runesmprint("%C", primmonopnames[d.func.code]); break; + case DyadicOpTag: result = runesmprint("%C", primdyadopnames[d.func.code]); break; + case BoundFunctionTag: result = runesmprint("%Sā%C", pparray(d.func.left), primfuncnames[d.func.code]); break; case LParTag: result = runestrdup(L"("); break; case RParTag: result = runestrdup(L")"); break; case LCurlTag: result = runestrdup(L"{"); break; case RCurlTag: result = runestrdup(L"}"); break; case LBracketTag: result = runestrdup(L"["); break; case RBracketTag: result = runestrdup(L"]"); break; + case ArrowTag: result = runestrdup(L"ā"); break; + case AssignmentTag: result = runesmprint("%Sā", d.symbol->name); break; + case NameTag: result = runestrdup(d.symbol->name); break; default: result = runesmprint("<not printable %d>", d.tag); } return result; |