slow.monster

STUDIO HAZE · topaz

Topaz source

Open by house policy. Topaz is our own language.

Topaz 5.20 · 56 files

compiler/crates/topaz_self_frontend/topaz/dev/emit.tpz

Topaz · 683 B · Original file

1import emitter { emitRust }
2import stage1_types { Stage1Module, Stage1Operation, LoweringOutput }
4// JSON belongs to this development transport, outside the lower/emit value API.
5record Payload derives JSON {
6 schema: string,
7 irSchema: string,
8 runtimeTemplate: string,
9 sourceSetId: string,
10 loweredModules: Array<Stage1Module>,
11 loweredOperations: Array<Stage1Operation>,
14export function main(args: Array<string>, input: string) -> Result<int, string> {
15 let payload = JSON.parseAs<Payload>(input)?
16 let rust = emitRust(LoweringOutput {
17 modules: payload.loweredModules,
18 operations: payload.loweredOperations,
19 unsupported: [],
20 })?
21 print(rust)
22 Ok(0)

SHA256 d99898586e338c97c232feedc0c9174b6c77b7f2b30303d3d7f85e706c5a6fd9