✓
Passing This code compiles and runs correctly.
Code
// Test: std.runtime:eval uses scope lookup and parsed AST
~import "$std/runtime"
~import "$std/io"
const std = @import("std");
~pub event greet { name: []const u8 }
| greeted { message: []const u8 }
~proc greet {
const msg = std.fmt.allocPrint(std.heap.page_allocator, "Hello, {s}!", .{name}) catch "Hello!";
return .{ .greeted = .{ .message = msg } };
}
~std.runtime:register(scope: "api") {
greet(1)
}
const TEST_SOURCE = "~greet(name: \"World\")";
~std.runtime:parse.source(source: TEST_SOURCE, file_name: "runtime_eval.kz", allocator: std.heap.page_allocator)
| parsed p |> std.runtime:eval(ast: p.ast, scope: "api")
| result _ |> std.io:print.ln("OK")
| event_denied _ |> std.io:print.ln("EVENT DENIED")
| exhausted _ |> std.io:print.ln("EXHAUSTED")
| validation_error _ |> std.io:print.ln("VALIDATION ERROR")
| dispatch_error _ |> std.io:print.ln("DISPATCH ERROR")
| scope_not_found _ |> std.io:print.ln("SCOPE NOT FOUND")
| parse_error _ |> std.io:print.ln("PARSE ERROR")