From 56da0b487a0b4708c3077cce03c59820788ad9da Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Mon, 27 Aug 2012 11:20:56 -0400 Subject: [PATCH] Add support for stringifying slices. --- pymbolic/mapper/stringifier.py | 13 +++++++++++++ test/test_pymbolic.py | 2 ++ 2 files changed, 15 insertions(+) diff --git a/pymbolic/mapper/stringifier.py b/pymbolic/mapper/stringifier.py index 1311d21..9c1149a 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 09f74cc..3866008 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") + -- GitLab