agtest/gen.py
2021-06-09 00:10:45 -05:00

24 lines
491 B
Python

import textwrap
import os
from lark import Lark
from agast import Parser, Interface
p = Lark(open("grammar.lark").read(), parser="lalr", transformer=Parser())
if __name__ == "__main__":
with open("arith.ag") as f:
data = f.read()
t = p.parse(data)
print(t)
if not os.path.exists("gen"):
os.makedirs("gen")
with open("gen/arith.py", "w") as f:
f.write(textwrap.dedent("""
from typing import Generic, TypeVar
T = TypeVar('T')
class Thunk(Generic[T]):
pass
"""))