Skip to content

Commit 2e02e5f

Browse files
committed
fixing format for .. and ...
1 parent 6525df7 commit 2e02e5f

1 file changed

Lines changed: 30 additions & 3 deletions

File tree

mathics/core/expression.py

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,9 +345,10 @@ def do_format(self, evaluation, form):
345345
try:
346346
expr = self
347347
head = self.get_head_name()
348+
leaves = self.get_leaves()
348349
include_form = False
349-
if head in formats and len(self.get_leaves()) == 1:
350-
expr = self.leaves[0]
350+
if head in formats and len(leaves) == 1:
351+
expr = leaves
351352
if not (form == 'System`OutputForm' and head == 'System`StandardForm'):
352353
form = head
353354

@@ -367,9 +368,34 @@ def format_expr(expr):
367368
return None
368369

369370
if form != 'System`FullForm':
371+
# Repeated and RepeatedNull confuse the formatter,
372+
# so we need to hardlink their format rules:
373+
if head == "System`Repeated":
374+
if len(leaves)==1:
375+
return Expression("System`HoldForm",
376+
Expression("System`Postfix",
377+
Expression(
378+
"System`List",
379+
leaves[0]
380+
),"..",170))
381+
else:
382+
return Expression("System`HoldForm",expr)
383+
elif head == "System`RepeatedNull":
384+
if len(leaves)==1:
385+
return Expression("System`HoldForm",
386+
Expression("System`Postfix",
387+
Expression(
388+
"System`List",
389+
leaves[0]
390+
),"...",170))
391+
else:
392+
return Expression("System`HoldForm",expr)
393+
370394
formatted = format_expr(expr)
371395
if formatted is not None:
396+
print(" formated: ",formatted)
372397
result = formatted.do_format(evaluation, form)
398+
print(" result: ", result)
373399
if include_form:
374400
result = Expression(form, result)
375401
result.unformatted = unformatted
@@ -379,7 +405,8 @@ def format_expr(expr):
379405
if head in formats:
380406
expr = expr.do_format(evaluation, form)
381407
elif (head != 'System`NumberForm' and not expr.is_atom() and
382-
head != 'System`Graphics'):
408+
head != 'System`Graphics' and
409+
not head in ("Repeat", "RepeatNull") ):
383410
new_leaves = [leaf.do_format(evaluation, form)
384411
for leaf in expr.leaves]
385412
expr = Expression(

0 commit comments

Comments
 (0)