native example

This commit is contained in:
Chris Wanstrath 2025-10-06 09:07:58 -07:00
parent 7d2047f3a6
commit 000eb7ad92

21
examples/native.ts Normal file
View File

@ -0,0 +1,21 @@
import { toBytecode } from "#bytecode"
import { VM } from "#vm"
import { type Value, toString, toValue } from "#value"
const bytecode = toBytecode(`
PUSH 5
PUSH 10
ADD
CALL_NATIVE print
`)
const vm = new VM(bytecode)
vm.registerFunction('print', (...args: Value[]): Value => {
console.log(...args.map(toString))
return toValue(null)
})
console.write('5 + 10 = ')
await vm.run()