Skip to content

Commit 48215d5

Browse files
committed
refact: fix typing issue
1 parent 1566b7a commit 48215d5

6 files changed

Lines changed: 15 additions & 8 deletions

File tree

src/arch/z80/backend/common.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from src.api import global_, tmp_labels
88
from src.api.config import OPTIONS, OptimizationStrategy
99
from src.api.exception import TempAlreadyFreedError
10+
1011
from .runtime import LABEL_REQUIRED_MODULES, NAMESPACE, RUNTIME_LABELS
1112
from .runtime import Labels as RuntimeLabel
1213

src/arch/z80/backend/generic.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77
from src.api.config import OPTIONS
88
from src.api.fp import immediate_float
99
from src.api.tmp_labels import tmp_label
10+
1011
from . import common, exception
12+
from ._8bit import Bits8
1113
from ._16bit import Bits16
1214
from ._32bit import Bits32
13-
from ._8bit import Bits8
1415
from ._f16 import Fixed16
1516
from ._float import Float
1617
from .common import (

src/arch/z80/visitor/translator_inst_visitor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from src.api.debug import __DEBUG__
33
from src.arch.interface.quad import Quad
44
from src.arch.z80.backend import Backend
5-
from src.arch.z80.backend.common import BOOL_t, F16_t, F_t, I8_t, I16_t, I32_t, U8_t, U16_t, U32_t, STR_t
5+
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
66
from src.ast import NodeVisitor
77
from src.symbols import sym as symbols
88

src/zxbpp/base_pplex.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import os
1111
import sys
12-
from collections.abc import Iterable
12+
from collections.abc import Callable, Iterable
1313
from dataclasses import dataclass
1414
from enum import Enum, unique
1515

@@ -88,6 +88,10 @@ def __init__(
8888
for macro_name, macro_func in self.builtin_macros.items():
8989
self.defines_table[macro_name] = BuiltinMacro(macro_name=macro_name, func=macro_func)
9090

91+
def set_macro(self, macro_name: str, func: Callable[[str], str]) -> None:
92+
assert self.defines_table is not None
93+
self.defines_table[macro_name] = func
94+
9195
def put_current_line(self, prefix: str = "", suffix: str = "") -> str:
9296
"""Returns line and file for include / end of include sequences."""
9397
assert self.lex is not None

src/zxbpp/prepro/builtinmacro.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from collections.abc import Callable
2+
13
from src.zxbpp import prepro
24

35
from .id_ import ID
@@ -7,12 +9,12 @@
79
class BuiltinMacro(ID):
810
"""A call to a builtin macro like __FILE__ or __LINE__
911
Every time the macro() is called, the macro returns
10-
it value.
12+
its value.
1113
"""
1214

13-
def __init__(self, macro_name: str, func):
15+
def __init__(self, macro_name: str, func: Callable[[MacroCall | None], str]):
1416
super().__init__(fname="", lineno=0, id_=macro_name)
1517
self.func = func
1618

17-
def __call__(self, symbolTable: "prepro.DefinesTable" = None, macro: MacroCall = None) -> str:
19+
def __call__(self, symbolTable: prepro.DefinesTable | None = None, macro: MacroCall | None = None) -> str:
1820
return self.func(macro)

src/zxbpp/zxbpp.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,7 @@ def reset_id_table():
112112
ID_TABLE.define(name, value=val, lineno=0)
113113

114114
for macro_name, macro_func in LEXER.builtin_macros.items():
115-
# FIXME
116-
LEXER.defines_table[macro_name] = BuiltinMacro(macro_name=macro_name, func=macro_func) # type: ignore[index]
115+
LEXER.set_macro(macro_name, BuiltinMacro(macro_name=macro_name, func=macro_func))
117116

118117

119118
def init():

0 commit comments

Comments
 (0)