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
1
import emitter { emitRust }2
import stage1_types { Stage1Module, Stage1Operation, LoweringOutput }4
// JSON belongs to this development transport, outside the lower/emit value API.5
record Payload derives JSON {6
schema: string,7
irSchema: string,8
runtimeTemplate: string,9
sourceSetId: string,10
loweredModules: Array<Stage1Module>,11
loweredOperations: Array<Stage1Operation>,12
}14
export 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)23
}SHA256 d99898586e338c97c232feedc0c9174b6c77b7f2b30303d3d7f85e706c5a6fd9