16 lines
680 B
Plaintext
16 lines
680 B
Plaintext
// mir_min_entry.hako — MirVmMin の薄いエントリ
|
|
// 引数があれば JSON を第1引数から受け取る。無ければデフォルトの const→ret (42)。
|
|
|
|
using selfhost.vm.mir_min as MirVmMin
|
|
|
|
static box Main {
|
|
main(args) {
|
|
// 既定の最小 MIR(JSON v0)
|
|
local json = "{\"functions\":[{\"name\":\"main\",\"params\":[],\"blocks\":[{\"id\":0,\"instructions\":[{\"op\":\"const\",\"dst\":1,\"value\":{\"type\":\"i64\",\"value\":42}},{\"op\":\"ret\",\"value\":1}]}]}]}"
|
|
if args != null { if args.length() > 0 { local s = args.get(0) if s != null { json = s } } }
|
|
local v = MirVmMin.run_min(json)
|
|
print(MirVmMin._int_to_str(v))
|
|
return 0
|
|
}
|
|
}
|