Initial commit: add .gitignore and README
This commit is contained in:
28
.venv/lib/python3.12/site-packages/mypyc/lower/registry.py
Normal file
28
.venv/lib/python3.12/site-packages/mypyc/lower/registry.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Callable, Final, Optional, TypeVar
|
||||
|
||||
from mypyc.ir.ops import Value
|
||||
from mypyc.irbuild.ll_builder import LowLevelIRBuilder
|
||||
|
||||
LowerFunc = Callable[[LowLevelIRBuilder, list[Value], int], Value]
|
||||
LowerFuncOpt = Callable[[LowLevelIRBuilder, list[Value], int], Optional[Value]]
|
||||
|
||||
lowering_registry: Final[dict[str, LowerFuncOpt]] = {}
|
||||
|
||||
LF = TypeVar("LF", LowerFunc, LowerFuncOpt)
|
||||
|
||||
|
||||
def lower_primitive_op(name: str) -> Callable[[LF], LF]:
|
||||
"""Register a handler that generates low-level IR for a primitive op."""
|
||||
|
||||
def wrapper(f: LF) -> LF:
|
||||
assert name not in lowering_registry
|
||||
lowering_registry[name] = f
|
||||
return f
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
# Import various modules that set up global state.
|
||||
from mypyc.lower import int_ops, list_ops, misc_ops # noqa: F401
|
||||
Reference in New Issue
Block a user