Files
pebble/main.py

31 lines
825 B
Python

from src.ast.stmt import Stmt
from src.formatter import Formatter
from src.interpreter.interpreter import Interpreter
from src.lexer import Lexer
from src.parser.parser import Parser
from src.token import Token
def main():
path: str = "examples/12_function_def.peb"
source: str = ""
with open(path, "r") as f:
source = f.read()
lexer: Lexer = Lexer()
tokens: list[Token] = lexer.process(source, path)
print(list(filter(lambda t: t.type not in Parser.IGNORE, tokens)))
parser: Parser = Parser()
program: list[Stmt] = parser.parse(tokens)
interpreter: Interpreter = Interpreter()
interpreter.interpret(program)
formatter: Formatter = Formatter()
with open("formatted.peb", "w") as f:
f.write(formatter.print(program))
if __name__ == '__main__':
main()