MCPcopy Index your code
hub / github.com/python/cpython / build_c_generator

Function build_c_generator

Tools/peg_generator/pegen/build.py:284–310  ·  view source on GitHub ↗
(
    grammar: Grammar,
    grammar_file: str,
    tokens_file: str,
    output_file: str,
    compile_extension: bool = False,
    verbose_c_extension: bool = False,
    keep_asserts_in_extension: bool = True,
    skip_actions: bool = False,
)

Source from the content-addressed store, hash-verified

282
283
284def build_c_generator(
285 grammar: Grammar,
286 grammar_file: str,
287 tokens_file: str,
288 output_file: str,
289 compile_extension: bool = False,
290 verbose_c_extension: bool = False,
291 keep_asserts_in_extension: bool = True,
292 skip_actions: bool = False,
293) -> ParserGenerator:
294 with open(tokens_file) as tok_file:
295 all_tokens, exact_tok, non_exact_tok = generate_token_definitions(tok_file)
296 with open(output_file, "w") as file:
297 gen: ParserGenerator = CParserGenerator(
298 grammar, all_tokens, exact_tok, non_exact_tok, file, skip_actions=skip_actions
299 )
300 gen.generate(grammar_file)
301
302 if compile_extension:
303 with tempfile.TemporaryDirectory() as build_dir:
304 compile_c_extension(
305 output_file,
306 build_dir=build_dir,
307 verbose=verbose_c_extension,
308 keep_asserts=keep_asserts_in_extension,
309 )
310 return gen
311
312
313def build_python_generator(

Callers 1

Calls 5

generateMethod · 0.95
CParserGeneratorClass · 0.90
compile_c_extensionFunction · 0.85
openFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…