aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/language
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-06-08 10:58:12 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-06-08 10:58:12 +1200
commit7dff8f0dca936a58070f6957ab84ca15aa10076a (patch)
treeed00ec221a6eaf338f67276afb69c1fad1652f02 /libpathod/language
parentdf962f8e7bab9d8cd1dc9143f44977b0711c5bd9 (diff)
downloadmitmproxy-7dff8f0dca936a58070f6957ab84ca15aa10076a.tar.gz
mitmproxy-7dff8f0dca936a58070f6957ab84ca15aa10076a.tar.bz2
mitmproxy-7dff8f0dca936a58070f6957ab84ca15aa10076a.zip
Convert parse_websocket_frame to a generator
Diffstat (limited to 'libpathod/language')
-rw-r--r--libpathod/language/__init__.py7
-rw-r--r--libpathod/language/websockets.py1
2 files changed, 6 insertions, 2 deletions
diff --git a/libpathod/language/__init__.py b/libpathod/language/__init__.py
index 38395b86..c41e8602 100644
--- a/libpathod/language/__init__.py
+++ b/libpathod/language/__init__.py
@@ -63,12 +63,15 @@ def parse_websocket_frame(s):
May raise ParseException
"""
try:
- return websockets.WebsocketFrame.expr().parseString(
+ reqs = pp.OneOrMore(
+ websockets.WebsocketFrame.expr()
+ ).parseString(
s,
parseAll = True
- )[0]
+ )
except pp.ParseException as v:
raise exceptions.ParseException(v.msg, v.line, v.col)
+ return itertools.chain(*[expand(i) for i in reqs])
def serve(msg, fp, settings):
diff --git a/libpathod/language/websockets.py b/libpathod/language/websockets.py
index a42dfc2f..51c1b3ee 100644
--- a/libpathod/language/websockets.py
+++ b/libpathod/language/websockets.py
@@ -69,6 +69,7 @@ class Length(base.Integer):
class Times(base.Integer):
preamble = "x"
+
COMPONENTS = (
OpCode,
Length,