This is the source for https://klange.dev/kuroko - a WASM-powered in-browser REPL for Kuroko.
This repository contains:
src-min/theme-sunsmoke.js, theme for Ace.js implementing the sunsmoke colorscheme from Bim.src-min/mode-kuroko.js, highlighter definition for Ace.js for Kuroko, based on the original Python highlighter.wasmmain.c, the C entry point for the WASM interpreter.build.sh, script to build the WASM interpreter.index.html,base.js,style.css, the REPL implementation.
The REPL provides an Ace.js instance to read a line (or multiple lines), passes them through the WASM interpreter, prints any stdout or stderr lines to new DOM elements, freezes the Ace editor and then creates a new one.
The enter key in Ace is intercepted to implemented "smart" handling; a single line of text not ending in a colon will be executed; a line ending in a colon, or multiple lines not ending in a blank line will instead insert a line-feed normally.
Check out this repository as a subdirectory wasm of a checkout of the main kuroko repo, set up EMSDK, and run ./build.sh, which should produce index.js and index.wasm. Deploy the entire directory to a web server.