feat: simple loadprg implementation

This commit is contained in:
2026-03-26 23:58:09 +01:00
parent 983cf59476
commit 91eeb33d9e

View File

@@ -3,21 +3,30 @@ import type { SimpleStream } from '../utils/SimpleStream'
import { Program } from './Program' import { Program } from './Program'
export class Loadprg extends Program { export class Loadprg extends Program {
// private wush: Wush private wush: Wush
constructor(_: Wush) { constructor(wush: Wush) {
super() super()
// this.wush = wush this.wush = wush
} }
async Exec(_: SimpleStream<string>, stdout: SimpleStream<string>, args: string[]): Promise<number> { async Exec(_: SimpleStream<string>, stdout: SimpleStream<string>, args: string[]): Promise<number> {
stdout.emit('Not implemented yet.\n') // stdout.emit('Not implemented yet.\n')
return 0 // return 0
const javascript = args.slice(1).join(' ') const javascript = args.slice(2).join(' ')
try { try {
eval(javascript) const exec: Function = eval(javascript)
const program = class extends Program {
async Exec(stdin: SimpleStream<string>, stdout: SimpleStream<string>, args: string[]): Promise<number> {
exec(stdin, stdout, args)
return 0
}
}
this.wush.LoadProgram(new program(), args[1])
} catch (e) { } catch (e) {
stdout.emit(`${String(e)}\n`) stdout.emit(`${String(e)}\n`)
stdout.emit(`${String((e as Error).stack)}\n`) stdout.emit(`${String((e as Error).stack)}\n`)