From 8f51231f5b51dd7281879b98d3684c5c5f9a6d25 Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Thu, 30 Sep 2021 21:57:57 -0500 Subject: [PATCH] val:ty --- aggen.py | 13 +++++++++---- agmain.py | 5 ++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/aggen.py b/aggen.py index c6aa791..7932c34 100644 --- a/aggen.py +++ b/aggen.py @@ -155,9 +155,16 @@ def gen(program: List[Decl]) -> GenResult: assert isinstance(node_desc, NodeDesc) res.starts.add(node_desc.nonterminal) + class_fields = [] + for field_name, field_ty in what_fields[node_desc.name].items(): + class_fields.append(f"{field_name}: Thunk[{field_ty}]") + g = textwrap.indent("\n".join(class_fields), " ") + class_decl = textwrap.dedent( f""" - class {node_desc.nonterminal}: pass + class {node_desc.nonterminal}: + {g} + pass """ ) res.extra += class_decl @@ -168,9 +175,7 @@ def gen(program: List[Decl]) -> GenResult: v_class_name = gensym(f"{node_desc.nonterminal}_var") class_decl = textwrap.dedent( f""" - class {v_class_name}({node_desc.nonterminal}): - ''' ''' - pass + class {v_class_name}({node_desc.nonterminal}): pass """ ) res.extra += class_decl diff --git a/agmain.py b/agmain.py index 3d0a453..ef04416 100644 --- a/agmain.py +++ b/agmain.py @@ -24,8 +24,11 @@ if __name__ == "__main__": if not os.path.exists("gen"): os.makedirs("gen") + + with open("agruntime.tmpl.py", "r") as f: + fmt_str = f.read() + with open("gen/arith.py", "w") as f: - fmt_str = open("agruntime.tmpl.py", "r").read() f.write( fmt_str.format( pd=res.parser_data,