| Warning: this is an htmlized version! The original is here, and the conversion rules are here. | 
lua-until EOL
  dstack = {}
  rstack = {program}
  dpush = function( val )  tinsert(dstack, 1, val) end
  dpop  = function( )      return tremove(dstack, 1) end
  rpush = function( prog ) tinsert(rstack, 1, prog); program = prog end
  rpop  = function( )      tremove(rstack, 1); program = rstack[1] end
  dict[""] = function( )
      getline()
      if program.pos == strlen(program.string) then rpop() end
    end
  mf = function( code ) rpush({string=code, pos=0}) end
  re(res, ";;", "[ \t\n];;([ \t\n]|$)")
  dict["::"] = function( )
      local word, code = getword(), getuntilre(";;")
      dict[word] = function( ) mf(%code) end
    end
  dict["::lua"] = function()
      local word, code = getword(), getuntilre(";;")
      dict[word] = dostring(format("return function() %s\nend", code))
    end
EOL
::lua * dpush(dpop()*dpop()) ;;
::lua dup dpush(dstack[1]) ;;
::lua . pa(dpop()) ;;
::lua val dpush(eval(getword())) ;;
:: square dup * ;;
:: cube dup square * ;;
val 5 cube .
val exit()
#*
cd ~/miniforth/
mylua -f miniforth1.lua cube1.mflua
#*