summaryrefslogtreecommitdiff
path: root/CHANGES
diff options
context:
space:
mode:
authorPaul McGuire <ptmcg@austin.rr.com>2019-07-02 16:32:22 -0500
committerPaul McGuire <ptmcg@austin.rr.com>2019-07-02 16:32:22 -0500
commitf20f8c038bebb81e7184ac87a6f13d5d81d3b495 (patch)
tree8bb5dcb34b8b87d15df62ee7e85adc331878290c /CHANGES
parentf5de46966a55b8c651f7ff92440665af02567df4 (diff)
downloadpyparsing-git-f20f8c038bebb81e7184ac87a6f13d5d81d3b495.tar.gz
Issue #93 - interaction of Or and addCondition sometimes selects alternative that is not the longest
Diffstat (limited to 'CHANGES')
-rw-r--r--CHANGES13
1 files changed, 13 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index 037411a..a96d042 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,19 @@ Change Log
Version 2.4.1 -
----------------------
+- While investigating issue #93, I found that Or and
+ addCondition could interact to select an alternative that
+ is not the longest match. This is because Or first checks
+ all alternatives for matches without running attached
+ parse actions or conditions, orders by longest match, and
+ then rechecks for matches with conditions and parse actions.
+ Some expressions, when checking with conditions, may end
+ up matching on a shorter token list than originally matched,
+ but would be selected because of its original priority.
+ This matching code has been expanded to do more extensive
+ searching for matches when a second-pass check matches a
+ smaller list than in the first pass.
+
- Fixed issue #87, a regression in indented block.
Reported by Renz Bagaporo, who submitted a very nice repro
example, which makes the bug-fixing process a lot easier,