summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Fischer <maxfischer2781@gmail.com>2021-06-28 12:29:44 +0200
committerMax Fischer <maxfischer2781@gmail.com>2021-06-28 12:29:44 +0200
commitcd310bb1055ec4b2253b09dff19d2577f91704ed (patch)
tree0041f64369c4ff9f9962898e9b44c2a8c361bf9d
parent11afcd404a220565752e71592750289de49427f4 (diff)
downloadpyparsing-git-cd310bb1055ec4b2253b09dff19d2577f91704ed.tar.gz
testing memo switches
-rw-r--r--tests/test_unit.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/tests/test_unit.py b/tests/test_unit.py
index e077cfd..e431b87 100644
--- a/tests/test_unit.py
+++ b/tests/test_unit.py
@@ -6712,8 +6712,7 @@ class Test2_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
self.fail("failed to raise exception when matching empty string")
def testExplainException(self):
- if ParserElement._left_recursion_enabled:
- return
+ pp.ParserElement.disable_memoization()
expr = pp.Word(pp.nums).setName("int") + pp.Word(pp.alphas).setName("word")
try:
expr.parseString("123 355")
@@ -6734,16 +6733,22 @@ class Test2_WithoutPackrat(ppt.TestParseResultsAsserts, TestCase):
return t[0] / t[1]
expr.addParseAction(divide_args)
- pp.ParserElement.enablePackrat()
- print()
+ for memo_kind, enable_memo in [
+ ('Packrat', pp.ParserElement.enablePackrat),
+ ('Left Recursion', pp.ParserElement.enable_left_recursion),
+ ]:
+ enable_memo(force=True)
+ print("Explain for", memo_kind)
- try:
- expr.parseString("123 0")
- except pp.ParseException as pe:
- print(pe.explain())
- except Exception as exc:
- print(pp.ParseBaseException.explain_exception(exc))
- raise
+ try:
+ expr.parseString("123 0")
+ except pp.ParseException as pe:
+ print(pe.explain())
+ except Exception as exc:
+ print(pp.ParseBaseException.explain_exception(exc))
+ raise
+ # make sure we leave the state compatible with everything
+ pp.ParserElement.disable_memoization()
def testCaselessKeywordVsKeywordCaseless(self):
frule = pp.Keyword("t", caseless=True) + pp.Keyword("yes", caseless=True)