changeset 8:07dfebce36c5 draft

Fix Transform combinator
author Lewin Bormann <lbo@spheniscida.de>
date Sun, 19 May 2019 17:17:10 +0200
parents b4844d42ed0f
children 3de557dc12a0
files combinators.py
diffstat 1 files changed, 3 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/combinators.py	Sun May 19 14:31:40 2019 +0200
+++ b/combinators.py	Sun May 19 17:17:10 2019 +0200
@@ -119,11 +119,10 @@
     def parse(self, st):
         initial = st.index()
         r, st2 = self._inner.parse(st)
-        try:
-            return self._transform(r), st2
-        except:
+        if r is None:
             st.reset(initial)
             return None, st
+        return self._transform(r), st2
 
 class _Sequence(Parser):
     _parsers = []
@@ -249,8 +248,7 @@
 
 def Skip(p):
     """Omit the result of parser p, and replace it with []. Result is []."""
-    return p >> (lambda _: [])
-
+    return p >> (lambda r: [])
 
 # Parsers