Skip to content

Commit a241003

Browse files
authored
gh-105191: Cleanup peg generator; keep only necessary files (#105197)
1 parent c67121a commit a241003

20 files changed

+60
-16832
lines changed

Tools/peg_generator/.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
peg_extension/parse.c
2-
data/xxl.py
32
venv/
4-
@data

Tools/peg_generator/Makefile

Lines changed: 7 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -8,97 +8,40 @@ endif
88
VENVDIR ?= ./venv
99
VENVPYTHON ?= $(VENVDIR)/bin/python
1010
CPYTHON ?= ../../Lib
11-
MYPY ?= mypy
11+
MYPY ?= ./venv/bin/mypy
12+
BLACK ?= ./venv/bin/black
1213

1314
GRAMMAR = ../../Grammar/python.gram
1415
TOKENS = ../../Grammar/Tokens
15-
TESTFILE = data/cprog.py
16-
TIMEFILE = data/xxl.py
17-
TESTDIR = .
18-
TESTFLAGS = --short
19-
20-
data/xxl.py:
21-
$(PYTHON) -m zipfile -e data/xxl.zip data
2216

2317
build: peg_extension/parse.c
2418

2519
peg_extension/parse.c: $(GRAMMAR) $(TOKENS) pegen/*.py peg_extension/peg_extension.c ../../Parser/pegen.c ../../Parser/pegen_errors.c ../../Parser/string_parser.c ../../Parser/action_helpers.c ../../Parser/*.h pegen/grammar_parser.py
26-
$(PYTHON) -m pegen -q c $(GRAMMAR) $(TOKENS) -o peg_extension/parse.c --compile-extension
20+
$(VENVPYTHON) -m pegen -q c $(GRAMMAR) $(TOKENS) -o peg_extension/parse.c --compile-extension
2721

2822
clean:
2923
-rm -f peg_extension/*.o peg_extension/*.so peg_extension/parse.c
30-
-rm -f data/xxl.py
3124
-rm -rf $(VENVDIR)
3225

33-
dump: peg_extension/parse.c
34-
cat -n $(TESTFILE)
35-
$(PYTHON) -c "from peg_extension import parse; import ast; t = parse.parse_file('$(TESTFILE)', mode=1); print(ast.dump(t))"
36-
3726
regen-metaparser: pegen/metagrammar.gram pegen/*.py
38-
$(PYTHON) -m pegen -q python pegen/metagrammar.gram -o pegen/grammar_parser.py
27+
$(VENVPYTHON) -m pegen -q python pegen/metagrammar.gram -o pegen/grammar_parser.py
3928

4029
# Note: These targets really depend on the generated shared object in peg_extension/parse.*.so but
4130
# this has different names in different systems so we are abusing the implicit dependency on
4231
# parse.c by the use of --compile-extension.
4332

44-
.PHONY: test
45-
4633
venv:
4734
$(PYTHON) -m venv $(VENVDIR)
48-
$(VENVPYTHON) -m pip install -U pip setuptools
49-
$(VENVPYTHON) -m pip install -r requirements.pip
35+
$(VENVPYTHON) -m pip install -U pip setuptools black mypy
5036
@echo "The venv has been created in the $(VENVDIR) directory"
5137

52-
test: run
53-
54-
run: peg_extension/parse.c
55-
$(PYTHON) -c "from peg_extension import parse; t = parse.parse_file('$(TESTFILE)'); exec(t)"
56-
57-
compile: peg_extension/parse.c
58-
$(PYTHON) -c "from peg_extension import parse; t = parse.parse_file('$(TESTFILE)', mode=2)"
59-
60-
parse: peg_extension/parse.c
61-
$(PYTHON) -c "from peg_extension import parse; t = parse.parse_file('$(TESTFILE)', mode=1)"
62-
63-
check: peg_extension/parse.c
64-
$(PYTHON) -c "from peg_extension import parse; t = parse.parse_file('$(TESTFILE)', mode=0)"
65-
66-
stats: peg_extension/parse.c data/xxl.py
67-
$(PYTHON) -c "from peg_extension import parse; t = parse.parse_file('$(TIMEFILE)', mode=0); parse.dump_memo_stats()" >@data
68-
$(PYTHON) scripts/joinstats.py @data
69-
70-
time: time_compile
71-
72-
time_compile: venv data/xxl.py
73-
$(VENVPYTHON) scripts/benchmark.py --target=xxl compile
74-
75-
time_parse: venv data/xxl.py
76-
$(VENVPYTHON) scripts/benchmark.py --target=xxl parse
77-
78-
time_peg_dir: venv
79-
$(VENVPYTHON) scripts/test_parse_directory.py \
80-
-d $(TESTDIR) \
81-
$(TESTFLAGS) \
82-
--exclude "*/failset/*" \
83-
--exclude "*/failset/**" \
84-
--exclude "*/failset/**/*"
85-
86-
time_stdlib: $(CPYTHON) venv
87-
$(VENVPYTHON) scripts/test_parse_directory.py \
88-
-d $(CPYTHON) \
89-
$(TESTFLAGS) \
90-
--exclude "*/bad*"
91-
9238
mypy: regen-metaparser
9339
$(MYPY) # For list of files, see mypy.ini
9440

9541
format-python:
96-
black pegen scripts
97-
98-
format: format-python
42+
$(BLACK) pegen
9943

100-
find_max_nesting:
101-
$(PYTHON) scripts/find_max_nesting.py
44+
format: venv format-python
10245

10346
tags: TAGS
10447

Tools/peg_generator/data/cprog.py

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)