diff options
author | Max Fischer <maxfischer2781@gmail.com> | 2021-06-28 12:29:44 +0200 |
---|---|---|
committer | Max Fischer <maxfischer2781@gmail.com> | 2021-06-28 12:29:44 +0200 |
commit | cd310bb1055ec4b2253b09dff19d2577f91704ed (patch) | |
tree | 0041f64369c4ff9f9962898e9b44c2a8c361bf9d | |
parent | 11afcd404a220565752e71592750289de49427f4 (diff) | |
download | pyparsing-git-cd310bb1055ec4b2253b09dff19d2577f91704ed.tar.gz |
testing memo switches
-rw-r--r-- | tests/test_unit.py | 27 |
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) |