Browse Source
bpo-40334: Allow to run make regen-pegen without distutils (GH-19684)
pull/19121/head
Pablo Galindo
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
12 additions and
11 deletions
-
Tools/peg_generator/pegen/__main__.py
-
Tools/peg_generator/pegen/build.py
|
|
|
@ -11,11 +11,6 @@ import time |
|
|
|
import token |
|
|
|
import traceback |
|
|
|
|
|
|
|
from typing import Final |
|
|
|
|
|
|
|
from pegen.build import build_parser_and_generator |
|
|
|
from pegen.testutil import print_memstats |
|
|
|
|
|
|
|
|
|
|
|
argparser = argparse.ArgumentParser( |
|
|
|
prog="pegen", description="Experimental PEG-like parser generator" |
|
|
|
@ -52,6 +47,9 @@ argparser.add_argument( |
|
|
|
|
|
|
|
|
|
|
|
def main() -> None: |
|
|
|
from pegen.build import build_parser_and_generator |
|
|
|
from pegen.testutil import print_memstats |
|
|
|
|
|
|
|
args = argparser.parse_args() |
|
|
|
verbose = args.verbose |
|
|
|
verbose_tokenizer = verbose >= 3 |
|
|
|
@ -133,4 +131,7 @@ def main() -> None: |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
if sys.version_info < (3, 8): |
|
|
|
print("ERROR: using pegen requires at least Python 3.8!", file=sys.stderr) |
|
|
|
sys.exit(1) |
|
|
|
main() |
|
|
|
@ -6,12 +6,6 @@ import sysconfig |
|
|
|
|
|
|
|
from typing import Optional, Tuple |
|
|
|
|
|
|
|
import distutils.log |
|
|
|
from distutils.core import Distribution, Extension |
|
|
|
from distutils.command.clean import clean # type: ignore |
|
|
|
from distutils.command.build_ext import build_ext # type: ignore |
|
|
|
from distutils.tests.support import fixup_build_ext |
|
|
|
|
|
|
|
from pegen.c_generator import CParserGenerator |
|
|
|
from pegen.grammar import Grammar |
|
|
|
from pegen.grammar_parser import GeneratedParser as GrammarParser |
|
|
|
@ -47,6 +41,12 @@ def compile_c_extension( |
|
|
|
If *build_dir* is provided, that path will be used as the temporary build directory |
|
|
|
of distutils (this is useful in case you want to use a temporary directory). |
|
|
|
""" |
|
|
|
import distutils.log |
|
|
|
from distutils.core import Distribution, Extension |
|
|
|
from distutils.command.clean import clean # type: ignore |
|
|
|
from distutils.command.build_ext import build_ext # type: ignore |
|
|
|
from distutils.tests.support import fixup_build_ext |
|
|
|
|
|
|
|
if verbose: |
|
|
|
distutils.log.set_verbosity(distutils.log.DEBUG) |
|
|
|
|
|
|
|
|