|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file:
-- http://anggtwu.net/LUA/DeleteComments2.lua.html
-- http://anggtwu.net/LUA/DeleteComments2.lua
-- (find-angg "LUA/DeleteComments2.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- See: (find-dn6 "output.lua" "deletecomments_2021")
-- (find-dn6 "output.lua" "deletecomments")
-- (find-anggfile "LUA/Maxima1.lua" "DeleteComments2")
-- (find-es "tex" "comments")
-- Usage:
-- require "DeleteComments2" -- (find-angg "LUA/DeleteComments2.lua")
-- deletecomments = deletecomments_2023
--
-- (defun e1 () (interactive) (find-angg "LUA/ELpeg1.lua"))
-- (defun d2 () (interactive) (find-angg "LUA/DeleteComments2.lua"))
require "ELpeg1" -- (find-angg "LUA/ELpeg1.lua")
gr,V,VAST,VEXPECT,PEXPECT = Gram.new()
--local gr,V,VAST,VEXPECT,PEXPECT = Gram.new()
V.PR1 = P"%" * (1-S"\n")^0 -- a percent and everything at its right
V.NS1 = "\n" * (S" \t")^0 -- a newline and the spaces following it
V.PR2 = V.PR1 * V.NS2^-1 -- recurse starting from PR1
V.NS2 = V.NS1 * V.PR2^-1 -- recurse starting from NS1
V.comment = V.PR2
V.commentspc = V.comment / " " -- comment, replaced by a single space
V.commentdel = V.comment / "" -- comment, deleted
V.bperc = P"\\%" -- backslack percent
V.bname = P"\\"*R("AZ","az")^1 -- backslash name
V.bnamespc = P"\\"*R("AZ","az")^1 * V.commentspc^-1 -- backslash name space
V.unit = V.bperc + V.bnamespc + V.commentdel + P(1)
V.delcomments = (V.unit^0):Cs()
deletecomments_2023_ = gr:compile("delcomments")
deletecomments_2023 = function (bigstr)
return deletecomments_2023_:match(bigstr)
end
--[==[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "DeleteComments2.lua"
= gr:cm("delcomments", "%foo\n %plic\n ploc")
= gr:cm("delcomments", "blergh%foo\n %plic\n ploc")
= gr:cm("delcomments", "b\\rgh%foo\n %plic\n ploc")
= deletecomments_2023 "b\\rgh%foo\n %plic\n ploc"
--]==]
-- Local Variables:
-- coding: utf-8-unix
-- End: