Example #1
0
class Dispatch(Atom):
    def __init__(self, rulelist, evaluation):
        self.src = Expression(SymbolList, *rulelist)
        self.rules = [
            Rule(rule._leaves[0], rule._leaves[1]) for rule in rulelist
        ]
        self._leaves = None
        self._head = Symbol("Dispatch")

    def get_sort_key(self):
        return self.src.get_sort_key()

    def get_atom_name(self):
        return "System`Dispatch"

    def __repr__(self):
        return "dispatch"

    def atom_to_boxes(self, f, evaluation):
        leaves = self.src.format(evaluation, f.get_name())
        return Expression(
            "RowBox",
            Expression(SymbolList, String("Dispatch"), String("["), leaves,
                       String("]")),
        )