Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
lua-until EOL
  dict["::lua"] = function()
      local w = getword("::lua newword")
      local bulk = getuntilre(";;", "::lua bulk", "::lua delim")
      dict[w] = dostring(format("return function() %s\nend", bulk))
    end

  stack = {n=0}
  pock = function(dep, data) stack[stack.n-dep] = data end
  pick = function(dep) return stack[stack.n-dep] end
  pop = function() tremove(stack) end
  push = function(data) tinsert(stack, data) end
  npop = function(n) local i; for i=1,n do pop() end end
  bury = function(n) pock(n, pick(0)); npop(n) end

  untreenode = function() if keeptree then pick(0).pre1 = pick(1) end end
  bintreenode = function()
    if keeptree then pick(0).pre1 = pick(2); pick(0).pre2 = pick(1) end
  end
  binop = function(newnode) push(newnode); bintreenode(); bury(2) end
  unop = function(newnode) push(newnode); untreenode(); bury(1) end

  -- (find-angg "LUA/miniforth.lua")
EOL

::lua %: getline("comment") ;;
::lua pstack  print("pstack on label", getword()); p(stack) ;;
::lua p local code = getword(); print(code); px(eval(code)) ;;
::lua p p(eval(getword("p luacode"))) ;;
::lua px px(eval(getword("px luacode"))) ;;
::lua push push(eval(getword("push luacode"))) ;;

%:                          \O[a]  \O[x]
%:                          ------------
%:                              a->x      x^F
%:                            --------  -------
%:                            \E[a->x]  \E[x^F]
%:                            -----------------
%:       \O[x] \O[x^F]  \O[x]  (a->x)->x^F
%:       -------------  ------------------
%:           x=>x^F      x-.>((a->x)->x^F)       a^F
%:        ----------    ---------------------  -------
%: \O[a]  \O[x=>x^F]    \E[x-.>((a->x)->x^F)]  \E[a^F]
%: -----------------  --------------------------------
%:  \O[(a;x=>x^F)]    (x-.>((a->x)->x^F))<->a^F
%:  -------------------------------------------
%:  (a;x=>x^F)-.>((x-.>((a->x)->x^F))<->a^F)

::lua  -> binop({name = pick(1).peel.name.. "->"..pick(0).peel.name}) ;;
::lua <-> binop({name = pick(1).peel.name.."<->"..pick(0).peel.name}) ;;
::lua  => binop({name = pick(1).peel.name.. "=>"..pick(0).peel.name}) ;;
::lua -.>() binop({name = pick(1).peel.name.."-.>("..pick(0).name..")"}) ;;
::lua ()<-> binop({name ="("..pick(1).peel.name..")<->"..pick(0).peel.name}) ;;
::lua \E    unop({name = "\\E["..pick(0).name.."]", peel = pick(0)}) ;;
::lua \O    unop({name = "\\O["..pick(0).name.."]", peel = pick(0)}) ;;
::lua ()    unop({name = "("..pick(0).name..")"}) ;;
::lua \O(;) local pname1, pname0 = pick(1).peel.name, pick(0).peel.name
            local p = "("..pname1..";"..pname0..")"
            binop({name = "\\O["..p.."]", peel = {name = p}}) ;;
::lua $ push({name = getword("$ newword")}) ;;

$ a \O  $ x \O $ x^F \O  => \O   \O(;)

$ x \O  $ a \O $ x \O -> \E  $ x^F \E  ->  -.>() \E  $ a^F \E  ()<->

  -.>()   %: p stack

lua-until EOL
  print(pick(0).name)
  exit()
EOL


#*
cd ~/miniforth/
mylua -f miniforth1.lua yoneda.mflua
#*