Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
badw-it
DHParser
Commits
bcd332a8
Commit
bcd332a8
authored
Aug 30, 2017
by
di68kap
Browse files
- merged: refactoring of memoization to avoid excessive memory usage
parent
d9b26f0c
Changes
1
Hide whitespace changes
Inline
Side-by-side
DHParser/parser.py
View file @
bcd332a8
...
...
@@ -266,7 +266,7 @@ def add_parser_guard(parser_func):
rest
=
grammar
.
document__
[
-
rlen
:]
if
rlen
else
''
# don't overwrite any positive match (i.e. node not None) in the cache
# and don't add empty entries for parsers returning from left recursive calls!
#
TODO: uncomment the following for full memoizazion
#
COMMENT THIS TO TURN FULL MEMOIZATION OFF
if
node
is
None
and
location
not
in
grammar
.
recursion_locations__
:
# otherwise also cache None-results
parser
.
visited
[
location
]
=
None
...
...
@@ -276,7 +276,7 @@ def add_parser_guard(parser_func):
if
grammar
.
last_rb__loc__
>
location
:
# in case of left recursion, the first recursive step that
# matches will store its result in the cache
#
TODO: remove if clause for full memoization
#
UNCOMMENT THIS TO TURN FULL MEMOIZATION OFF
# if location in grammar.recursion_locations__:
parser
.
visited
[
location
]
=
node
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment