diff options
-rwxr-xr-x | APLDemo | 1 | ||||
-rw-r--r-- | demos/demos | 3 | ||||
-rw-r--r-- | print.c | 12 |
3 files changed, 11 insertions, 5 deletions
@@ -2,6 +2,7 @@ winid=`{grep -e '-apl' /mnt/acme/index | awk '{print $1}' } if(~ $#winid 0){ + kill apl | rc win apl & sleep 1 winid=`{grep -e '-apl' /mnt/acme/index | awk '{print $1}' } diff --git a/demos/demos b/demos/demos index 8569e11..dff8b1f 100644 --- a/demos/demos +++ b/demos/demos @@ -1,4 +1,3 @@ APLDemo intro.apl APLDemo doubleup.apl -APLDemo chain.apl -kill apl | rc
\ No newline at end of file +APLDemo chain.apl
\ No newline at end of file @@ -186,15 +186,21 @@ ppoperator(Operator op) Rune *right = op.right ? ppdatum(op.right) : runestrdup(L""); Rune *res; if(op.type == OperatortypeDop) - res = runesmprint("(%S{%S}%S)", left, op.dop, right); + res = runesmprint("%S{%S}%S", left, op.dop, right); else if(op.type == OperatortypeHybrid){ - res = runesmprint("(%S%C)", left, primhybridnames[op.code]); + res = runesmprint("%S%C", left, primhybridnames[op.code]); }else{ - res = runesmprint("(%S%C%S)", + res = runesmprint("%S%C%S", left, op.dyadic ? primdyadopnames[op.code] : primmonopnames[op.code], right); } + if(op.left || op.right){ + Rune *tmp = res; + res = runesmprint("(%S)", res); + free(tmp); + } + free(left); free(right); return res; |