summaryrefslogtreecommitdiff
path: root/nandgame/assembler/parser.py
diff options
context:
space:
mode:
Diffstat (limited to 'nandgame/assembler/parser.py')
-rwxr-xr-xnandgame/assembler/parser.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/nandgame/assembler/parser.py b/nandgame/assembler/parser.py
index 0b34ebe..7cc4930 100755
--- a/nandgame/assembler/parser.py
+++ b/nandgame/assembler/parser.py
@@ -70,12 +70,12 @@ def p_line(p: P) -> None:
# if error handling
else:
p[0] = p[1]
- assert(False)
+ assert False
def p_instruction(p: P) -> None:
"""instruction : valid_instruction
- | one_arg_invalid
+ | one_arg_invalid
"""
p[0] = p[1]
@@ -102,8 +102,10 @@ def p_no_arg(p: P) -> None:
def p_onearg_invalid(p: P) -> None:
"""one_arg_invalid : opcode argument"""
- op: Tuple[str,str] = p[1]
- p[0] = pt.ErrorInstruction(p.lineno(1), op[1], "No opcode only supports one argument.")
+ op: tuple[str, str] = p[1]
+ p[0] = pt.ErrorInstruction(
+ p.lineno(1), op[1], "No opcode only supports one argument."
+ )
pass
@@ -146,14 +148,12 @@ def p_opcode(p: P) -> None:
def p_opcode_jmp(p: P) -> None:
- """opcode_jmp : OP DOT JUMP
- """
+ """opcode_jmp : OP DOT JUMP"""
p[0] = (p[1], p[3])
def p_opcode_njmp(p: P) -> None:
- """opcode_njmp : OP
- """
+ """opcode_njmp : OP"""
p[0] = (p[1], None)
@@ -164,19 +164,21 @@ def p_number(p: P) -> None:
p[0] = pt.Immediate(p[1])
-def p_error(p: LexToken) -> LexToken:
+def p_error(p: LexToken | None) -> LexToken|None:
if p:
- print(f"WARNING: Unexpected {repr(p.value)} on line {p.lineno}", file=sys.stderr)
+ print(
+ f"WARNING: Unexpected {repr(p.value)} on line {p.lineno}", file=sys.stderr
+ )
else:
print("WARNING: Unexpected end of file.", file=sys.stderr)
return
while True:
- tok = parser.token()
+ tok: LexToken = parser.token()
if not tok or tok.type == 'NL':
break
parser.errok()
return tok
-parser = yacc.yacc()
+parser: yacc.LRParser = yacc.yacc()