diff options
author | Max Fischer <maxfischer2781@gmail.com> | 2021-07-30 14:51:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-30 07:51:33 -0500 |
commit | 5eafa07470a3e761944ff5af00dbcd794dfa09da (patch) | |
tree | 832e780435bee81bbe5f1c619b8be544a6426656 /pyparsing/results.py | |
parent | d108a29db062c9250f50c978e3a86381d1b0746b (diff) | |
download | pyparsing-git-left_recursion_support.tar.gz |
Add support for LR parsingleft_recursion_support
* first draft of LR parsing
* removed debug output
* cache is owned and cleared by ParserElement
* bounded recursion must be enabled explicitly
* packrat rejects recursion
* basic LR unit test
* tests for associativity and nesting
* added math example
* fixed test typo
* unittest for empty and non-peg clauses
* LR-Forward can match Empty
* fixed test typos
* added base case to unittest
* memo cache only provides copies
* flattened Forward parse method
* added high-level description of algorithm
* expanded docstring
* added tests for repetition rules
* renamed bounded to left recursion
* naive test for existing suite
* explicitly testing tests for LR compatibility
* LR memo no longer mixes action/no-action results
* simplified replacement logic
* adjusted example with ambiguous failure case
* LR memo content is always returned as copy
* draft for peeking recursion
* memo update consistent for all actions
* fixed a bug for non-string token identifiers
* action wins against no-action
* cleanup
* properly setting names in tests
* memoization can be turned off
* testing memo switches
* typos
* flattened recursion memo
* left recursion memo size may be limited
* adjusted docs for recursion cache
Diffstat (limited to 'pyparsing/results.py')
-rw-r--r-- | pyparsing/results.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/pyparsing/results.py b/pyparsing/results.py index fb03ecd..fa94a00 100644 --- a/pyparsing/results.py +++ b/pyparsing/results.py @@ -522,7 +522,7 @@ class ParseResults: Returns a new copy of a :class:`ParseResults` object. """ ret = ParseResults(self._toklist) - ret._tokdict = dict(**self._tokdict) + ret._tokdict = self._tokdict.copy() ret._parent = self._parent ret._all_names |= self._all_names ret._name = self._name |