def apply_makeboxes(self, rules, f, evaluation): """MakeBoxes[<|rules___|>, f:StandardForm|TraditionalForm|OutputForm|InputForm]""" def validate(exprs): for expr in exprs: if expr.has_form(("Rule", "RuleDelayed"), 2): pass elif expr.has_form("List", None) or expr.has_form( "Association", None): if validate(expr.leaves) is not True: return False else: return False return True rules = rules.get_sequence() if self.error_idx == 0 and validate(rules) is True: expr = Expression( "RowBox", Expression(SymbolList, *list_boxes(rules, f, "<|", "|>"))) else: self.error_idx += 1 symbol = Expression(SymbolMakeBoxes, SymbolAssociation, f) expr = Expression( "RowBox", Expression(SymbolList, symbol, *list_boxes(rules, f, "[", "]")), ) expr = expr.evaluate(evaluation) if self.error_idx > 0: self.error_idx -= 1 return expr
def apply_makeboxes(self, list, i, f, evaluation): """MakeBoxes[Part[list_, i___], f:StandardForm|TraditionalForm|OutputForm|InputForm]""" i = i.get_sequence() list = Expression(SymbolMakeBoxes, list, f) if f.get_name() in ("System`OutputForm", "System`InputForm"): open, close = "[[", "]]" else: open, close = "\u301a", "\u301b" indices = list_boxes(i, f, open, close) result = Expression("RowBox", Expression(SymbolList, list, *indices)) return result
def apply_makeboxes(self, x, y, f, evaluation): 'MakeBoxes[Subscript[x_, y__], f:StandardForm|TraditionalForm]' y = y.get_sequence() return Expression( 'SubscriptBox', Expression('MakeBoxes', x, f), *list_boxes(y, f))
def apply_makeboxes(self, x, y, f, evaluation): 'MakeBoxes[Subscript[x_, y__], f:StandardForm|TraditionalForm]' y = y.get_sequence() return Expression('SubscriptBox', Expression('MakeBoxes', x, f), *list_boxes(y, f))