From 827f615719ae83800e4252593da5b9d05a97e11a Mon Sep 17 00:00:00 2001 From: Marcin Jaworski Date: Sun, 3 May 2020 19:15:23 +0200 Subject: Pop counter token and return rest instead of dropping all tokens in countedArray (#209) * Pop counter token and return rest instead of dropping all tokens * Include only named results from intExpr in countedArray results * Remove internal Group from countedArray * Fix operator precedence * Update countedArray tests --- pyparsing/helpers.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'pyparsing/helpers.py') diff --git a/pyparsing/helpers.py b/pyparsing/helpers.py index d710d78..97e5943 100644 --- a/pyparsing/helpers.py +++ b/pyparsing/helpers.py @@ -55,8 +55,9 @@ def countedArray(expr, intExpr=None): def countFieldParseAction(s, l, t): n = t[0] - arrayExpr << (n and Group(And([expr] * n)) or Group(empty)) - return [] + arrayExpr << (And([expr] * n) if n else empty) + # clear list contents, but keep any named results + del t[:] if intExpr is None: intExpr = Word(nums).setParseAction(lambda t: int(t[0])) -- cgit v1.2.1