Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
Mainly code that I removed from other places but that I don't want to
discard completely.

getuntilpar = function( )
    local offset = regmatch(res[" )"], program.string, program.pos)
    local m = strsub(program.string, program.pos + 1, program.pos + offset)
    program.pos = program.pos + offset + 2
    return m

(cd crim/; rm -fv demo1 demo1.asm demo1.asm.lst demo1.asm.o demo1.c)
mylua -f miniforth1.lua crim/demo1.mflua
cd crim/
ls -lAF
nasm -f elf -o demo1.asm.o -l demo1.asm.lst demo1.asm
gcc -o demo1 demo1.c demo1.asm.o
./demo1 7
./demo1 15

  foreach(dict, function(key, val) print(key) end)
cd ~/miniforth/crim/
make demo2.mflua.run

# To debug demo2 with gdb:
# (find-miniforthfile "crim/demo2.c" "case FIP_RSREXIT")
# (find-miniforthfile "crim/demo2.asm")
# (find-miniforthfile "crim/demo2.asm.lst")
# (find-miniforthfile "crim/skel.engine.c")
set args 247
define pss
  # p &_SS0
  # p SS
  p (SS-_SS0)+1
br engine
br 107
br 120
br 128
# (eegud-gdb t "~/miniforth/crim/demo2")