aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/language/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'libpathod/language/__init__.py')
-rw-r--r--libpathod/language/__init__.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/libpathod/language/__init__.py b/libpathod/language/__init__.py
index 48466fa6..d1ace600 100644
--- a/libpathod/language/__init__.py
+++ b/libpathod/language/__init__.py
@@ -1,3 +1,4 @@
+import itertools
import time
import pyparsing as pp
@@ -28,6 +29,14 @@ def parse_pathod(s):
raise exceptions.ParseException(v.msg, v.line, v.col)
+def expand(req):
+ if req.times:
+ for j in xrange(int(req.times.value)):
+ yield req.strike_token("times")
+ else:
+ yield req
+
+
def parse_pathoc(s):
"""
May raise ParseException
@@ -47,14 +56,7 @@ def parse_pathoc(s):
).parseString(s, parseAll=True)
except pp.ParseException as v:
raise exceptions.ParseException(v.msg, v.line, v.col)
- expanded = []
- for i in reqs:
- if i.times:
- for j in range(int(i.times.value)):
- expanded.append(i.strike_token("times"))
- else:
- expanded.append(i)
- return expanded
+ return itertools.chain(*[expand(i) for i in reqs])
def parse_websocket_frame(s):