From 97bcd2925fe8707d8ca1be985f55897e7297002c Mon Sep 17 00:00:00 2001 From: Jose Rodriguez Date: Sun, 17 May 2026 09:30:59 +0200 Subject: [PATCH 1/2] Improve typing --- src/zxbasm/memory.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/zxbasm/memory.py b/src/zxbasm/memory.py index 55e795b9c..603418896 100644 --- a/src/zxbasm/memory.py +++ b/src/zxbasm/memory.py @@ -160,10 +160,12 @@ def add_instruction(self, instr: Asm): for byte in instr.bytes(): self.__set_byte(byte, instr.lineno) - def dump(self): - """Returns a tuple containing code ORG (origin address), and a list of bytes (OUTPUT)""" + def dump(self) -> tuple[int, list[int]]: + """Returns a tuple containing code ORG (origin address), and a list of bytes (OUTPUT) + self.orgs[ ] contains ADDRESS -> Mnemonic, where Mnemonic.arg[x].eval() is the value of the argument x. + """ org = min(self.memory_bytes.keys()) # Org is the lowest one - OUTPUT = [] + OUTPUT: list[int] = [] align = [] for filename in self._tmp_pending_labels: @@ -209,7 +211,12 @@ def dump(self): return org, OUTPUT def declare_label( - self, label: str, lineno: int, value: int = None, local: bool = False, namespace: str | None = None + self, + label: str, + lineno: int, + value: int | None = None, + local: bool = False, + namespace: str | None = None, ) -> None: """Sets a label with the given value or with the current address (org) if no value is passed. From 25a74ee16bfcc50b75e3f8b810ffa3a833d3f952 Mon Sep 17 00:00:00 2001 From: Jose Rodriguez Date: Thu, 21 May 2026 23:42:31 +0200 Subject: [PATCH 2/2] refact: rename src.ast module to src.ast_ --- src/api/optimize.py | 2 +- src/arch/z80/visitor/translator_inst_visitor.py | 2 +- src/arch/z80/visitor/translator_visitor.py | 2 +- src/{ast => ast_}/__init__.py | 0 src/{ast => ast_}/ast.py | 0 src/{ast => ast_}/exceptions.py | 0 src/{ast => ast_}/tree.py | 0 src/{ast => ast_}/visitor.py | 0 src/symbols/symbol_.py | 2 +- src/zxbasm/expr.py | 4 ++-- 10 files changed, 6 insertions(+), 6 deletions(-) rename src/{ast => ast_}/__init__.py (100%) rename src/{ast => ast_}/ast.py (100%) rename src/{ast => ast_}/exceptions.py (100%) rename src/{ast => ast_}/tree.py (100%) rename src/{ast => ast_}/visitor.py (100%) diff --git a/src/api/optimize.py b/src/api/optimize.py index ed786e08f..c888d8f2f 100644 --- a/src/api/optimize.py +++ b/src/api/optimize.py @@ -18,7 +18,7 @@ from src.api.config import OPTIONS from src.api.constants import CLASS, CONVENTION, SCOPE, TYPE from src.api.errmsg import warning_not_used -from src.ast import Ast, NodeVisitor +from src.ast_ import Ast, NodeVisitor from src.symbols import sym as symbols from src.symbols.id_ import ref diff --git a/src/arch/z80/visitor/translator_inst_visitor.py b/src/arch/z80/visitor/translator_inst_visitor.py index 393139c27..ea89f2541 100644 --- a/src/arch/z80/visitor/translator_inst_visitor.py +++ b/src/arch/z80/visitor/translator_inst_visitor.py @@ -10,7 +10,7 @@ from src.arch.interface.quad import Quad from src.arch.z80.backend import Backend from src.arch.z80.backend.common import BOOL_t, F16_t, F_t, I8_t, I16_t, I32_t, STR_t, U8_t, U16_t, U32_t -from src.ast import NodeVisitor +from src.ast_ import NodeVisitor from src.symbols import sym diff --git a/src/arch/z80/visitor/translator_visitor.py b/src/arch/z80/visitor/translator_visitor.py index 6cb8790f6..e0c7cd5a2 100644 --- a/src/arch/z80/visitor/translator_visitor.py +++ b/src/arch/z80/visitor/translator_visitor.py @@ -17,7 +17,7 @@ from src.arch.z80 import backend from src.arch.z80.backend.runtime import LABEL_REQUIRED_MODULES, RUNTIME_LABELS from src.arch.z80.backend.runtime import Labels as RuntimeLabel -from src.ast.tree import ChildrenList +from src.ast_.tree import ChildrenList from src.symbols import sym as symbols from src.symbols.symbol_ import Symbol from src.symbols.type_ import Type diff --git a/src/ast/__init__.py b/src/ast_/__init__.py similarity index 100% rename from src/ast/__init__.py rename to src/ast_/__init__.py diff --git a/src/ast/ast.py b/src/ast_/ast.py similarity index 100% rename from src/ast/ast.py rename to src/ast_/ast.py diff --git a/src/ast/exceptions.py b/src/ast_/exceptions.py similarity index 100% rename from src/ast/exceptions.py rename to src/ast_/exceptions.py diff --git a/src/ast/tree.py b/src/ast_/tree.py similarity index 100% rename from src/ast/tree.py rename to src/ast_/tree.py diff --git a/src/ast/visitor.py b/src/ast_/visitor.py similarity index 100% rename from src/ast/visitor.py rename to src/ast_/visitor.py diff --git a/src/symbols/symbol_.py b/src/symbols/symbol_.py index f495b4977..41c3c2df4 100644 --- a/src/symbols/symbol_.py +++ b/src/symbols/symbol_.py @@ -10,7 +10,7 @@ from collections import Counter import src.api.global_ -from src.ast import Ast, Tree +from src.ast_ import Ast, Tree class Symbol(Ast): diff --git a/src/zxbasm/expr.py b/src/zxbasm/expr.py index 4c9444acc..536dc2b4d 100644 --- a/src/zxbasm/expr.py +++ b/src/zxbasm/expr.py @@ -6,8 +6,8 @@ # -------------------------------------------------------------------- from src.api.errmsg import error -from src.ast import Ast -from src.ast.exceptions import NotAnAstError +from src.ast_ import Ast +from src.ast_.exceptions import NotAnAstError from src.zxbasm.label import Label