diff --git a/marzipan/TODO.md b/marzipan/TODO.md index f49ae46..b64bb76 100644 --- a/marzipan/TODO.md +++ b/marzipan/TODO.md @@ -15,10 +15,11 @@ * ~~click function intervention weirdness~~ * ~~why is everything red in the pretty output? (see line 96 in __init__.py)~~ * ~~awk RESULT flush in marzipan()~~ + * ~~move the whole metaverif function to Python~~ ## Next Steps -* move the whole metaverif function to Python + * move the whole analyze function to Python * find the files * start subprocesses in parallel diff --git a/marzipan/src/__init__.py b/marzipan/src/__init__.py index b441499..4ef0c9f 100644 --- a/marzipan/src/__init__.py +++ b/marzipan/src/__init__.py @@ -28,34 +28,7 @@ def exc_piped(argv, **kwargs): @click.argument("file") @click.argument("extra_args", required=False) def run_proverif(file, extra_args=[]): - if extra_args is None: - extra_args = [] - params = ["proverif", "-test", *extra_args, file] - print(params) - eprint(params) - - process = exc_piped(params, stderr=pkgs.sys.subprocess.PIPE, stdout=pkgs.sys.subprocess.PIPE, text=True, bufsize=1) - try: - null, p = clean_warnings_init() - for line in process.stdout: - print(f"received a line: {line.strip()}") - # clean warnings - line = line.rstrip() - if not pkgs.re.match(r"^Warning: identifier \w+ rebound.$", line): - if p != null: - yield p - #print(p) - p = line - else: - p = null - if p != null: - yield p - #print(p) - except Exception as e: - print(f"An error occurred: {e}") - finally: - process.stdout.close() - process.wait() + _run_proverif(file, extra_args) def _run_proverif(file, extra_args=[]): if extra_args is None: @@ -92,13 +65,7 @@ def _run_proverif(file, extra_args=[]): @click.argument("file") @click.argument("cpp_prep") def cpp(file, cpp_prep): - file_path = pkgs.pathlib.Path(file) - - dirname = file_path.parent - cwd = pkgs.pathlib.Path.cwd() - - params = ["cpp", "-P", f"-I{cwd}/{dirname}", file, "-o", cpp_prep] - return exc(params, stderr=pkgs.sys.stderr) + _cpp(file, cpp_prep) def _cpp(file, cpp_prep): @@ -128,10 +95,7 @@ def parse_result_line(): @click.argument("cpp_prep") @click.argument("awk_prep") def awk(cpp_prep, awk_prep): - params = ["awk", "-f", "marzipan/marzipan.awk", cpp_prep] - with open(awk_prep, 'w') as file: - exc(params, stderr=pkgs.sys.stderr, stdout=file) - file.write("\nprocess main") + _awk(cpp_prep, awk_prep) def _awk(cpp_prep, awk_prep): params = ["awk", "-f", "marzipan/marzipan.awk", cpp_prep]