Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
-- This file:
--   https://anggtwu.net/LUA/OiHeader1.lua.html
--   https://anggtwu.net/LUA/OiHeader1.lua
--           (find-angg "LUA/OiHeader1.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun e () (interactive) (find-angg "LUA/OiHeader1.lua"))
-- (defun o () (interactive) (find-angg "LUA/OiReginaldo1.lua"))
-- (find-angg ".emacs" "oiheader")

-- (find-LATEX "2022-2-C2-C3-ajuda.tex" "2022-500-linhas-etel")
Path.addLUAtopath()
require "ELpeg1"    -- (find-angg "LUA/ELpeg1.lua")
gr,V,VA,VE,PE = Gram.new()

foosp    = function (pat) return pat * (" "  * pat)^0 end
foocomma = function (pat) return pat * (", " * pat)^0 end

V.basicname  = foosp((1-S' ,:<>""')^1):C()
V.qname      = '"' * V.basicname * '"'
V.angname    = '<' * V.basicname * '>'
V.Lname      = V.basicname + V.qname
V.optangname = (" " * V.angname)^-1
V.Name       = (V.Lname * V.optangname + V.angname) / 1
V.names      = V.Name * (P", ":C() * V.Name)^0
V.Names      = V.names:Ct() / table.concat

V.dateword   = (R"AZ" + R"az" + R"09" + ":" + "à")^1
V.datewords  = foosp(V.dateword)
V.Date       = (P" "^2 * V.datewords:Cs()) / "[Date:] %1"
-- V.Date       = (Cc("[Date:] ") * V.date):Cs()

V.From       = V.Name / "[From:] %1"
V.FromDate   = (V.From * V.Date)
V.FromDate   = (V.From * V.Date):Ct()
V.FromDate   = (V.From * V.Date) / "%1\n%2"
V.Other      = ((R"AZ" * R"az"^1 * ":"):C() * " " * V.Names) / "[%1] %2"

f = function (bigstr)
    local lines = map(bitrim, splitlines(bigstr))
    local g = function (name,subj) return gr:cm0(name, subj) or subj end
    local out = {g("FromDate", lines[1])}
    for i=2,#lines do table.insert(out, g("Other", lines[i])) end
    return table.concat(out, "\n")
  end

argv = {...}
if argv[1] == "-from" then print(f(bitrim(argv[2]))) end


--[==[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "OiHeader1.lua"
grcm("Names", "Edx Ox")
grcm("Names", "Edx Ox, Ab Cd, \"Ef Gh\" <foo@bar>, <plic@ploc>")
grcm("Date",  "  12 jan 2003")
grcm("Date",  "    12 jan 2003")
grcm("FromDate",  "Edrx Ox    12 jan 2003")
= gr:cm("FromDate",  "Edrx Ox    12 jan 2003")
= gr:cm0("FromDate",  "Edrx Ox    12 jan 2003")
PPV(gr:cm0("FromDate",  "Edrx Ox    12 jan 2003"))
grcm("Other",     "To: Edx Ox, Ab Cd, \"Ef Gh\" <foo@bar>, <plic@ploc>")

bs = [[
  Edrx Ox    12 jan 2003
  To: Edx Ox, Ab Cd, "Ef Gh" <foo@bar>, <plic@ploc>
]]

= f(bs)

=  bitrim("\n \n\tfoo bar\n\n")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
lua51 ~/LUA/OiHeader1.lua -from bla
lua51 ~/LUA/OiHeader1.lua -from '
  Edrx Ox    12 jan 2003
  To: Edx Ox, Ab Cd, "Ef Gh" <foo@bar>, <plic@ploc>
'

(defun oiheader0 (bigstr)
  (find-callprocess0 `("lua5.1" "~/LUA/OiHeader1.lua" "-from" ,bigstr)))

(defun oiheader () (interactive) 
  (kill-region (point) (mark))
  (insert (oiheader0 (ee-last-kill)) "\n"))

;; (oiheader0 "Ed Ox    12 jan 2003\nTo: Ex Ox, \"Ef Gh\" <foo@bar>, <plic@ploc>")



program-and-args &rest pos-spec-list)


--]==]



-- Local Variables:
-- coding:  utf-8-unix
-- End: