lua-logic/sim/utility.lua
2019-04-18 23:00:32 -06:00

54 lines
797 B
Lua

local escapes = {
{"\\", "b"},
{"\t", "t"},
{"\n", "n"},
{"\r", "r"},
{"\'", "a"},
{"\"", "q"},
{";" , "s"},
{":" , "c"},
}
function expandescape(str)
local ostrt = {}
local len = #str
for i=1, len do
local ci = str:sub(i, i)
local co = ci
for escidx, esc in ipairs(escapes) do
if ci==esc[1] then co = "\\"..esc[2] end
end
table.insert(ostrt, co)
end
return table.concat(ostrt)
end
function collapseescape(str)
local ostrt = {}
local i = 1
local len = #str
while i<=len do
local ci = str:sub(i, i)
local co = ci
if ci=="\\" and i<len then
i = i+1
ci = str:sub(i, i)
for escidx, esc in ipairs(escapes) do
if ci==esc[2] then co = esc[1] end
end
end
table.insert(ostrt, co)
i = i+1
end
return table.concat(ostrt)
end