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