diff --git a/pymbolic/mapper/stringifier.py b/pymbolic/mapper/stringifier.py index 1311d21eb786b3e0e2c5007e10df6215982a308a..9c1149a972b772648375e6ce6b675d0e9fe4c033 100644 --- a/pymbolic/mapper/stringifier.py +++ b/pymbolic/mapper/stringifier.py @@ -228,6 +228,19 @@ class StringifyMapper(pymbolic.mapper.RecursiveMapper): return "[%s]{%s}" % (self.rec(expr.child, PREC_NONE), substs) + def map_slice(self, expr, enclosing_prec): + children = [] + for child in expr.children: + if child is None: + children.append("") + else: + children.append(self.rec(child, PREC_NONE)) + + return self.parenthesize_if_needed( + self.join(":", children), + enclosing_prec, PREC_NONE) + + def __call__(self, expr, prec=PREC_NONE): return pymbolic.mapper.RecursiveMapper.__call__(self, expr, prec) diff --git a/test/test_pymbolic.py b/test/test_pymbolic.py index 09f74cc0df6bda34da4aee9d55d13097e20f28f6..3866008c19059f374c5c182f29b5ac0e38fc9b87 100644 --- a/test/test_pymbolic.py +++ b/test/test_pymbolic.py @@ -154,6 +154,8 @@ def test_parser(): print repr(parse(":5:1")) print repr(parse("3:5:1")) + print parse("3::1") +