diff options
author | ptmcg <ptmcg@austin.rr.com> | 2021-09-24 08:44:30 -0500 |
---|---|---|
committer | ptmcg <ptmcg@austin.rr.com> | 2021-09-24 08:44:30 -0500 |
commit | 9adaf2e261f4b10b60f16bd553fcae88e541c471 (patch) | |
tree | 10fb72c587fa686a06331c2fe1e258329dac24a0 /pyparsing/core.py | |
parent | 8d1083f7db349d00c25993a7bd4dab415af0582e (diff) | |
download | pyparsing-git-9adaf2e261f4b10b60f16bd553fcae88e541c471.tar.gz |
Allow multiplying an expr by 0 or (0,0)
Diffstat (limited to 'pyparsing/core.py')
-rw-r--r-- | pyparsing/core.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/pyparsing/core.py b/pyparsing/core.py index a8d1f32..17428bf 100644 --- a/pyparsing/core.py +++ b/pyparsing/core.py @@ -1386,7 +1386,7 @@ class ParserElement(ABC): "second tuple value must be greater or equal to first tuple value" ) if minElements == optElements == 0: - raise ValueError("cannot multiply ParserElement by 0 or (0, 0)") + return And([]) if optElements: @@ -3629,10 +3629,12 @@ class And(ParseExpression): exprs[:] = tmp super().__init__(exprs, savelist) self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs) - self.set_whitespace_chars( - self.exprs[0].whiteChars, copy_defaults=self.exprs[0].copyDefaultWhiteChars - ) - self.skipWhitespace = self.exprs[0].skipWhitespace + if self.exprs: + self.set_whitespace_chars( + self.exprs[0].whiteChars, + copy_defaults=self.exprs[0].copyDefaultWhiteChars, + ) + self.skipWhitespace = self.exprs[0].skipWhitespace self.callPreparse = True def streamline(self): |