Skip to content

Commit e73301c

Browse files
committed
allow emit dispatch on node type
1 parent 38525a5 commit e73301c

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/kirin/codegen/base.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,19 @@ def __init__(self, dialects: ir.DialectGroup | Iterable[ir.Dialect]):
2929
self.dialects = dialects
3030
self.registry = dialects.registry.codegen(self.keys)
3131

32-
def emit(self, mt: ir.Method) -> Target:
32+
def emit(self, node) -> Target:
3333
"""top-level entry point for code generation."""
34-
return self.emit_Method(mt)
34+
if isinstance(node, ir.Statement):
35+
return self.emit_Statement(node)
36+
elif isinstance(node, ir.Region):
37+
return self.emit_Region(node)
38+
elif isinstance(node, ir.Block):
39+
return self.emit_Block(node)
40+
elif isinstance(node, ir.Method):
41+
return self.emit_Method(node)
42+
raise NotImplementedError(
43+
f"CodeGen for {node.__class__.__name__} not implemented"
44+
)
3545

3646
def emit_Statement(self, stmt: ir.Statement) -> Target:
3747
"""Emit a Statement.

0 commit comments

Comments
 (0)