diff --git a/examples/tabs/Tabs.ll b/examples/tabs/Tabs.ll index f664683..cf6bd75 100644 --- a/examples/tabs/Tabs.ll +++ b/examples/tabs/Tabs.ll @@ -463,6 +463,7 @@ match.case2.var96: %var128 = call i32 @js_create_text(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.61, i32 0, i32 0)) call void @js_append_child(i32 %var127, i32 %var128) call void @js_append_child(i32 %var124, i32 %var127) + call void @render_VerticalTabs() br label %match.end.var96 match.case3.var96: %var129 = call i32 @js_create_element(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.0, i32 0, i32 0)) diff --git a/examples/tabs/Tabs.wasm b/examples/tabs/Tabs.wasm index 2253726..9ee906c 100755 Binary files a/examples/tabs/Tabs.wasm and b/examples/tabs/Tabs.wasm differ diff --git a/ritz/__pycache__/llvm_codegen_signals.cpython-313.pyc b/ritz/__pycache__/llvm_codegen_signals.cpython-313.pyc index 5927d8a..4d12edb 100644 Binary files a/ritz/__pycache__/llvm_codegen_signals.cpython-313.pyc and b/ritz/__pycache__/llvm_codegen_signals.cpython-313.pyc differ diff --git a/ritz/llvm_codegen_signals.py b/ritz/llvm_codegen_signals.py index d757bc8..52a89dd 100644 --- a/ritz/llvm_codegen_signals.py +++ b/ritz/llvm_codegen_signals.py @@ -223,6 +223,8 @@ class SignalLLVMIRGenerator: return self._emit_with(stmt) elif stmt["type"] == "yield": return self._emit_yield(stmt) + elif stmt["type"] == "yield_component": + return self._emit_yield_component(stmt) elif stmt["type"] == "if": return self._emit_if(stmt) elif stmt["type"] == "match": @@ -269,6 +271,16 @@ class SignalLLVMIRGenerator: return None + def _emit_yield_component(self, stmt: dict[str, Any]) -> str | None: + """Emit a component instantiation (yield SomeComponent(...)).""" + component_name = stmt["component"] + + # For now, just call the render function + # TODO: Pass arguments when component parameters are supported + self.lines.append(f" call void @render_{component_name}()") + + return None + def _emit_match(self, stmt: dict[str, Any]) -> str | None: """Emit a match/case statement using LLVM switch.""" # Generate unique labels