Initial commit
This commit is contained in:
53
sim/utility.lua
Normal file
53
sim/utility.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user