026 interpreter run event

✓ Passing This code compiles and runs correctly.

Code

// Test: std.interpreter:run event
// Uses ~get_scope to get dispatcher, passes to std.interpreter:run

~import "$std/runtime"
~import "$std/interpreter"
~import "$std/io"

~pub event greet { name: []const u8 }
| greeted { message: []const u8 }

~proc greet {
    const std = @import("std");
    std.debug.print("GREET: Hello, {s}!\n", .{name});
    return .{ .greeted = .{ .message = "Hello!" } };
}

~std.runtime:register(scope: "test") {
    greet
}

const TEST_SOURCE = "~greet(name: \"World\")";

~std.runtime:get_scope(name: "test")
| scope s |> std.interpreter:run(source: TEST_SOURCE, dispatcher: s.dispatcher)
    | result _ |> std.io:print.ln("SUCCESS")
    | exhausted _ |> std.io:print.ln("EXHAUSTED")
    | parse_error _ |> std.io:print.ln("PARSE ERROR")
    | validation_error _ |> std.io:print.ln("VALIDATION ERROR")
    | dispatch_error _ |> std.io:print.ln("DISPATCH ERROR")
| not_found |> std.io:print.ln("SCOPE NOT FOUND")
input.kz

Expected Output

GREET: Hello, World!
SUCCESS

Test Configuration

MUST_RUN