Source code for pyab_experiment.utils.wraper_functions

"""parsing module"""

from black import FileMode, format_str

from pyab_experiment.codegen.python.python_generator import PythonCodeGen
from pyab_experiment.data_structures.syntax_tree import ExperimentAST
from pyab_experiment.language.grammar import ExperimentParser
from pyab_experiment.language.lexer import ExperimentLexer


[docs] def parse_source(text: str) -> ExperimentAST: lexer = ExperimentLexer() parser = ExperimentParser() return parser.parse(lexer.tokenize(text))
[docs] def generate_code(text: str, expose_internal_fn: bool = False) -> str: """end to end code generation high level spec comes in and python function comes out""" generator = PythonCodeGen( parse_source(text), expose_experiment_variant_function=expose_internal_fn ) return format_str(generator.generate(), mode=FileMode())