39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { outputSignal, errorSignal } from '#editor/editor'
|
|
import { Compiler } from '#compiler/compiler'
|
|
import { errorMessage, log } from '#utils/utils'
|
|
import { bytecodeToString } from 'reefvm'
|
|
import { parser } from '#parser/shrimp'
|
|
import { sendToNose } from '#editor/noseClient'
|
|
import { treeToString } from '#utils/tree'
|
|
|
|
export const runCode = async (input: string) => {
|
|
try {
|
|
const compiler = new Compiler(input)
|
|
sendToNose(compiler.bytecode)
|
|
} catch (error) {
|
|
log.error(error)
|
|
errorSignal.emit(`${errorMessage(error)}`)
|
|
}
|
|
}
|
|
|
|
export const printParserOutput = (input: string) => {
|
|
try {
|
|
const cst = parser.parse(input)
|
|
const string = treeToString(cst, input)
|
|
outputSignal.emit(string)
|
|
} catch (error) {
|
|
log.error(error)
|
|
errorSignal.emit(`${errorMessage(error)}`)
|
|
}
|
|
}
|
|
|
|
export const printBytecodeOutput = (input: string) => {
|
|
try {
|
|
const compiler = new Compiler(input)
|
|
outputSignal.emit(bytecodeToString(compiler.bytecode))
|
|
} catch (error) {
|
|
log.error(error)
|
|
errorSignal.emit(`${errorMessage(error)}`)
|
|
}
|
|
}
|