diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2024-02-25 00:06:13 +0200 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2024-02-25 00:17:07 +0200 |
| commit | e63c309f3517ef64b2f5fe190864bd2b85b84c79 (patch) | |
| tree | 9119a0a64f4661e21d683bde34fde06a98d65d68 /atk16_asm/asm_pass4.py | |
| parent | 6dd1e346d330e662e42dd8bc75d17317223908fd (diff) | |
Add debug symbols, improve debugger, fix bugs
Diffstat (limited to 'atk16_asm/asm_pass4.py')
| -rw-r--r-- | atk16_asm/asm_pass4.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/atk16_asm/asm_pass4.py b/atk16_asm/asm_pass4.py index 7365416..52aaf68 100644 --- a/atk16_asm/asm_pass4.py +++ b/atk16_asm/asm_pass4.py @@ -17,6 +17,8 @@ class Result4: lines: list[Result4Line] operations: OpExpansionDict symbols: dict[str, int] + dbg_label_table: DbgLabelTable + dbg_source_table: DbgSourceTable def pass_4(result3: Result3) -> Result4: result_lines: list[Result4Line] = [] @@ -32,7 +34,10 @@ def pass_4(result3: Result3) -> Result4: if keyword in operations: fn = operations[keyword] - word = fn(meta, result3.symbols, *args) + try: + word = fn(meta, result3.symbols, *args) + except Exception as e: + raise Exception(f"Invalid assembly at {line.src_file}:{line.line_num + 1}\n\n{line.parts}\n\n{e}") from e result_lines.append(Result4Line( line_num=line.line_num, src_file=line.src_file, @@ -58,4 +63,6 @@ def pass_4(result3: Result3) -> Result4: operations=result3.operations, symbols=result3.symbols, lines=result_lines, + dbg_label_table=result3.dbg_label_table, + dbg_source_table=result3.dbg_source_table, ) |
