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
658fe908
Commit
658fe908
authored
Feb 26, 2019
by
di68kap
Browse files
- parser.py: optimization: faster test for dropping unnamed empty nodes
parent
330a983b
Changes
1
Hide whitespace changes
Inline
Side-by-side
DHParser/parse.py
View file @
658fe908
...
...
@@ -1549,7 +1549,7 @@ class ZeroOrMore(Option):
node
,
text
=
self
.
parser
(
text
)
if
not
node
:
break
if
node
.
_result
or
node
.
tag_name
[
0
:
1
]
!=
':'
:
# drop anonymous empty nodes
if
node
.
_result
or
not
node
.
tag_name
.
startswith
(
':'
)
:
# drop anonymous empty nodes
results
+=
(
node
,)
if
len
(
text
)
==
n
:
break
# avoid infinite loop
...
...
@@ -1600,7 +1600,7 @@ class OneOrMore(UnaryParser):
if
not
node
:
break
match_flag
=
True
if
node
.
_result
or
node
.
tag_name
[
0
:
1
]
!=
':'
:
# drop anonymous empty nodes
if
node
.
_result
or
not
node
.
tag_name
.
startswith
(
':'
)
:
# drop anonymous empty nodes
results
+=
(
node
,)
if
len
(
text_
)
==
n
:
break
# avoid infinite loop
...
...
@@ -1759,7 +1759,7 @@ class Series(NaryParser):
else
:
results
+=
(
node
,)
break
if
node
.
_result
or
node
.
tag_name
[
0
:
1
]
!=
':'
:
# drop anonymous empty nodes
if
node
.
_result
or
not
node
.
tag_name
.
startswith
(
':'
)
:
# drop anonymous empty nodes
results
+=
(
node
,)
# assert len(results) <= len(self.parsers) \
# or len(self.parsers) >= len([p for p in results if p.tag_name != ZOMBIE_TAG])
...
...
@@ -1961,7 +1961,7 @@ class AllOf(NaryParser):
for
i
,
parser
in
enumerate
(
parsers
):
node
,
text__
=
parser
(
text_
)
if
node
:
if
node
.
_result
or
node
.
tag_name
[
0
:
1
]
!=
':'
:
# drop anonymous empty nodes
if
node
.
_result
or
not
node
.
tag_name
.
startswith
(
':'
)
:
# drop anonymous empty nodes
results
+=
(
node
,)
text_
=
text__
del
parsers
[
i
]
...
...
@@ -2028,7 +2028,7 @@ class SomeOf(NaryParser):
for
i
,
parser
in
enumerate
(
parsers
):
node
,
text__
=
parser
(
text_
)
if
node
:
if
node
.
_result
or
node
.
tag_name
[
0
:
1
]
!=
':'
:
# drop anonymous empty nodes
if
node
.
_result
or
not
node
.
tag_name
.
startswith
(
':'
)
:
# drop anonymous empty nodes
results
+=
(
node
,)
text_
=
text__
del
parsers
[
i
]
...
...
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