Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts on srf. # # Note 1: use the eev command (defined in eev.el) and the # ee alias (in my .zshrc) to execute parts of this file. # Executing this file as a whole makes no sense. # An introduction to eev can be found here: # # (find-eev-quick-intro) # http://angg.twu.net/eev-intros/find-eev-quick-intro.html # # Note 2: be VERY careful and make sure you understand what # you're doing. # # Note 3: If you use a shell other than zsh things like |& # and the for loops may not work. # # Note 4: I always run as root. # # Note 5: some parts are too old and don't work anymore. Some # never worked. # # Note 6: the definitions for the find-xxxfile commands are on my # .emacs. # # Note 7: if you see a strange command check my .zshrc -- it may # be defined there as a function or an alias. # # Note 8: the sections without dates are always older than the # sections with dates. # # This file is at <http://angg.twu.net/e/srf.e> # or at <http://angg.twu.net/e/srf.e.html>. # See also <http://angg.twu.net/emacs.html>, # <http://angg.twu.net/.emacs[.html]>, # <http://angg.twu.net/.zshrc[.html]>, # <http://angg.twu.net/escripts.html>, # and <http://angg.twu.net/>. # ####### # «.lua-port» (to "lua-port") # «.Host» (to "Host") # (find-esgrep "grep --color -nH --null -e srf *.e") # (find-es "rexx") # (find-srffile "") # (find-srffile "srf") # (find-srffile "eg/") # (find-srffile "doc/") # (find-srffile "doc/readme") # ht tp://fossil.0branch.com/srf/dir?ci=tip&name=doc # ht tp://fossil.0branch.com/srf/file?name=doc/readme&ci=tip ht tp://fossil.0branch.com/srf/dir?ci=tip&name=doc ht tp://fossil.0branch.com/srf/info/2c368fc945c87a82 ht tp://fossil.0branch.com/srf/timeline?r=lua&c=2020-02-02+05:02:16 ht tp://fossil.0branch.com/srf/brlist # (find-srffile "eg/dot-srfrc") # (find-srfgrep "grep --color -nRH --null -e '.%' *") # (find-srfgrep "grep --color -nRH --null -e '[.]%' *") # (find-srfgrep "grep --color -nRH --null -e 'expand' *") # (find-angg ".srfrc") # (find-man "grep") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/usrc/srf/ fossil up * (eepitch-srf) * (eepitch-kill) * (eepitch-srf) : .% 100 * 2 places '%' concat . : x / dup .% .. -- needs a better name 1 3 x '/home/edrx/usrc/srf/eg/dot-srfrc' include see x 'x' expand . / dup '100' * '2' places '%' concat . '2' places . it won't delve into literals, so branches of conditionals, but still maybe a better example, : when-one 1 = when : .foo '"foo!" .' swap when-one 5 .foo 0 .foo 1 .foo foo! see .foo '"foo!" .' swap when-one '.foo' expand . '"foo!" .' swap '1' = '' swap either do 'secondary.srf' include 'juggling.srf' eg 'hello' 'world' 10 20 2over .s see 2swap '2swap' expand . 'dollars.srf' eg dollar-sum: $3.95 $10.99 $101.45 see dollar-sum: see dollar-sum * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/usrc/srf/ fossil merge trunk fossil commit -m 'merge trunk fix' 'juggling.srf' eg 'hello' 'world' 10 20 2over .s see 2swap '2swap' expand . see 2tuck '2tuck' expand . -- i think that's it ##### # # lua-port # 2021apr18 # ##### # «lua-port» (to ".lua-port") # (find-fline "~/usrc/srf/ports/lua/srfish.lua") # (find-srffile "ports/lua/srfish.lua") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/usrc/srf/ports/lua/ ./srfish.lua 1 2 + . ##### # # Host # 2021nov23 # ##### # «Host» (to ".Host") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) Host = Class { type = "Host", parse2 = function (src) local vars,rest = src:match("^%s*([%w_,]+)%s*=>(.*)$") if not vars then error("Host.parse2 can't parse: "..src) end return vars, rest end, format2 = function (fmt, src) return format(fmt, Host.parse2(src)) end, ve = function (src) -- src is "vars => expression" local fmt = "local %s=...; return %s" return Host {src=src, code=Host.format2(fmt, src)} end, vc = function (src) -- src is "vars => code" local fmt = "local %s=...; %s" return Host {src=src, code=Host.format2(fmt, src)} end, __tostring = function (h) return h.src end, __call = function (h, ...) return assert(loadstring(h.code))(...) end, __index = { }, } h = Host { src = "a*b", code = "local a,b=...; return a*b" } = h = h(2,3) PP(Host.parse2 [[ a,b => a*b ]]) = Host.lr [[ a,b => a*b ]] = Host.lr [[ a,b => a*b ]] .code = Host.lr [[ a,b => a*b ]] (2,3) = Host. # Local Variables: # coding: utf-8-unix # End: