Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
9.2.2023: Due to updates GitLab will be unavailable for some minutes between 9:00 and 11:00.
Open sidebar
badw-it
DHParser
Commits
57b09014
Commit
57b09014
authored
Aug 31, 2017
by
Eckhart Arnold
Browse files
- fixed pypy3 compatibility
parent
bafb857e
Changes
3
Hide whitespace changes
Inline
Side-by-side
DHParser/toolkit.py
View file @
57b09014
...
...
@@ -43,9 +43,9 @@ except ImportError:
import
sys
try
:
from
typing
import
Any
,
List
,
Tuple
,
Collection
,
Union
,
Optional
from
typing
import
Any
,
List
,
Tuple
,
Iterable
,
Union
,
Optional
except
ImportError
:
from
.typing34
import
Any
,
List
,
Tuple
,
Collection
,
Union
,
Optional
from
.typing34
import
Any
,
List
,
Tuple
,
Iterable
,
Union
,
Optional
__all__
=
(
'logging'
,
'is_logging'
,
...
...
@@ -218,7 +218,7 @@ def sv_match(regex, sv: StringView):
return
regex
.
match
(
sv
.
text
,
pos
=
sv
.
begin
,
endpos
=
sv
.
end
)
def
sv_index
(
absolute_index
:
Union
[
int
,
Collection
],
sv
:
StringView
)
->
Union
[
int
,
tuple
]:
def
sv_index
(
absolute_index
:
Union
[
int
,
Iterable
],
sv
:
StringView
)
->
Union
[
int
,
tuple
]:
"""
Converts the an index into string watched by a StringView object
to an index relativ to the string view object, e.g.:
...
...
dhparser.py
View file @
57b09014
...
...
@@ -147,30 +147,6 @@ else:
'''
def
selftest
()
->
bool
:
print
(
"DHParser selftest..."
)
print
(
"
\n
STAGE I: Trying to compile EBNF-Grammar:
\n
"
)
builtin_ebnf_parser
=
get_ebnf_grammar
()
ebnf_src
=
builtin_ebnf_parser
.
__doc__
[
builtin_ebnf_parser
.
__doc__
.
find
(
'#'
):]
ebnf_transformer
=
get_ebnf_transformer
()
ebnf_compiler
=
get_ebnf_compiler
(
'EBNF'
)
generated_ebnf_parser
,
errors
,
ast
=
compile_source
(
ebnf_src
,
None
,
builtin_ebnf_parser
,
ebnf_transformer
,
ebnf_compiler
)
if
errors
:
print
(
"Selftest FAILED :-("
)
print
(
"
\n\n
"
.
join
(
errors
))
return
False
print
(
generated_ebnf_parser
)
print
(
"
\n\n
STAGE 2: Selfhosting-test: Trying to compile EBNF-Grammar with generated parser...
\n
"
)
selfhosted_ebnf_parser
=
compileDSL
(
ebnf_src
,
None
,
generated_ebnf_parser
,
ebnf_transformer
,
ebnf_compiler
)
ebnf_compiler
.
gen_transformer_skeleton
()
print
(
selfhosted_ebnf_parser
)
print
(
"
\n\n
Selftest SUCCEEDED :-)
\n\n
"
)
return
True
def
create_project
(
path
,
ebnf_tmpl
=
EBNF_TEMPLATE
,
readme_tmpl
=
README_TEMPLATE
,
...
...
@@ -208,6 +184,30 @@ def create_project(path,
print
(
'ready.'
)
def
selftest
()
->
bool
:
print
(
"DHParser selftest..."
)
print
(
"
\n
STAGE I: Trying to compile EBNF-Grammar:
\n
"
)
builtin_ebnf_parser
=
get_ebnf_grammar
()
ebnf_src
=
builtin_ebnf_parser
.
__doc__
[
builtin_ebnf_parser
.
__doc__
.
find
(
'#'
):]
ebnf_transformer
=
get_ebnf_transformer
()
ebnf_compiler
=
get_ebnf_compiler
(
'EBNF'
)
generated_ebnf_parser
,
errors
,
ast
=
compile_source
(
ebnf_src
,
None
,
builtin_ebnf_parser
,
ebnf_transformer
,
ebnf_compiler
)
if
errors
:
print
(
"Selftest FAILED :-("
)
print
(
"
\n\n
"
.
join
(
errors
))
return
False
print
(
generated_ebnf_parser
)
print
(
"
\n\n
STAGE 2: Selfhosting-test: Trying to compile EBNF-Grammar with generated parser...
\n
"
)
selfhosted_ebnf_parser
=
compileDSL
(
ebnf_src
,
None
,
generated_ebnf_parser
,
ebnf_transformer
,
ebnf_compiler
)
ebnf_compiler
.
gen_transformer_skeleton
()
print
(
selfhosted_ebnf_parser
)
print
(
"
\n\n
Selftest SUCCEEDED :-)
\n\n
"
)
return
True
def
cpu_profile
(
func
,
repetitions
=
1
):
import
cProfile
,
pstats
pr
=
cProfile
.
Profile
()
...
...
examples/LaTeX/tst_LaTeX_docs.py
View file @
57b09014
...
...
@@ -87,7 +87,7 @@ def mem_profile(func):
print
(
stat
)
if
__name__
==
"__main__"
:
mem
_profile
(
tst_func
)
cpu
_profile
(
tst_func
)
...
...
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