Minor cleanup.

This commit is contained in:
Simon Forman
2020-05-20 15:34:30 -07:00
parent f9ac667cc5
commit ba0c24c39b
4 changed files with 27 additions and 29 deletions
+2 -3
View File
@@ -25,7 +25,7 @@ match the behaviour of the original version(s) written in C.
'''
from __future__ import print_function
from builtins import input
from traceback import print_exc, format_exc
from traceback import print_exc
from .parser import text_to_expression, ParseError, Symbol
from .utils.stack import stack_to_string
@@ -103,8 +103,7 @@ def repl(stack=(), dictionary=None):
try:
stack, _, dictionary = run(text, stack, dictionary)
except:
exc = format_exc() # Capture the exception.
print(exc) # Print the original exception.
print_exc()
except:
print_exc()
print()
+12 -13
View File
@@ -20,22 +20,21 @@
'''
Pretty printing support, e.g.::
Joy? 23 18 * 99 +
. 23 18 mul 99 add
23 . 18 mul 99 add
23 18 . mul 99 add
414 . 99 add
414 99 . add
513 .
Joy? [23 18 * 99 +] trace
23 18 mul 99 add
23 18 mul 99 add
23 18 mul 99 add
414 99 add
414 99 add
513
513 <-top
joy?
On each line the stack is printed with the top to the right, then a ``.`` to
represent the current locus of processing, then the pending expression to the
left.
On each line the stack is printed with the top to the left, then a
bullet symbol,``•``, to represent the current locus of processing, then
the pending expression to the right.
'''
# (Kinda clunky and hacky. This should be swapped out in favor of much
# smarter stuff.)
@@ -114,8 +113,8 @@ class TracePrinter(object):
n = len(stack)
if n > max_stack_length:
max_stack_length = n
lines.append((n, '%s . %s' % (stack, expression)))
return [ # Prefix spaces to line up '.'s.
lines.append((n, '%s %s' % (stack, expression)))
return [ # Prefix spaces to line up ''s.
(' ' * (max_stack_length - length) + line)
for length, line in lines
]