From 37fe04b08b3cae7390f75eb1bb25d8fd4e958384 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Tue, 11 Jan 2022 23:21:05 +0000 Subject: First try at implementing variables --- print.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'print.c') diff --git a/print.c b/print.c index e0443b3..588ce0a 100644 --- a/print.c +++ b/print.c @@ -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("", d.tag); } return result; -- cgit v1.2.3