From 5619ad79057e12c1ed21479d96f05ec074b37dd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Abdelkader=20Mart=C3=ADnez=20P=C3=A9rez?= Date: Mon, 22 Apr 2019 14:22:59 +0200 Subject: [PATCH] Fixed wrong parsing behavior with path EP. Added comment support. --- kapow.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kapow.py b/kapow.py index f4f7946..eba8c29 100644 --- a/kapow.py +++ b/kapow.py @@ -31,6 +31,8 @@ log = logging.getLogger('kapow') # Parser # ######################################################################## +COMMENT = (Literal('#') + SkipTo(LineEnd()))(name="comment") + # Method METHOD = (Literal('GET') | Literal('POST') @@ -59,9 +61,9 @@ ENDPOINT = (Optional(METHOD_SPEC + Suppress(White()), # Endpoint bodies CODE_EP = (ENDPOINT + BODY)(name="code_ep") -PATH_EP = (ENDPOINT + '=' + SkipTo(LineEnd())(name="path"))(name="path_ep") +PATH_EP = (ENDPOINT + '=' + SkipTo(LineEnd())(name="path") + Suppress(LineStart()))(name="path_ep") -KAPOW_PROGRAM = OneOrMore(CODE_EP | PATH_EP) +KAPOW_PROGRAM = CODE_EP | PATH_EP | COMMENT ######################################################################## @@ -486,6 +488,8 @@ def main(ctx, program, verbose, expression): source = expression if program is None else program.read() for ep, _, _ in KAPOW_PROGRAM.scanString(source): + if 'comment' in ep: + continue methods = ep.method.asList()[0].split('|') pattern = ''.join(ep.urlpattern) if ep.body: