From 844dc43709d5411ebd4c786f83e42e1e7bb61f76 Mon Sep 17 00:00:00 2001 From: uvok Date: Thu, 15 Jan 2026 16:33:09 +0100 Subject: Encapsulate parser, only access functions --- nandgame/assembler/py_nand_ass/parser.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'nandgame') diff --git a/nandgame/assembler/py_nand_ass/parser.py b/nandgame/assembler/py_nand_ass/parser.py index 7cc4930..432b40b 100755 --- a/nandgame/assembler/py_nand_ass/parser.py +++ b/nandgame/assembler/py_nand_ass/parser.py @@ -174,11 +174,20 @@ def p_error(p: LexToken | None) -> LexToken|None: return while True: - tok: LexToken = parser.token() + tok: LexToken = __parser.token() if not tok or tok.type == 'NL': break - parser.errok() + __parser.errok() return tok -parser: yacc.LRParser = yacc.yacc() +__parser: yacc.LRParser = yacc.yacc() + +def parse_text(text: str) -> list[pt.AsmLine]: + return __parser.parse(text, tracking=True) + +def parse_file(filename: str) -> list[pt.AsmLine]: + with open(filename, "rb") as infile: + file_content_bin = infile.read() + file_content_txt = file_content_bin.decode("ascii") + return parse_text(file_content_txt) -- cgit v1.2.3