14 lines
572 B
Text
14 lines
572 B
Text
$define SPE = "\u{fffe}" -- unused unicode character in Specials block
|
|
$define SPF = "\u{ffff}" -- ditto
|
|
|
|
local function tokenize(str, sep, esc)
|
|
str = str:replace(esc .. esc, SPE):replace(esc .. sep, SPF)
|
|
str = (str[-1] == esc) ? (str:sub(1, -2):replace(esc, "") .. esc) : (str:replace(esc, ""))
|
|
return str:split(sep):map(|s| -> s:replace(SPE, esc):replace(SPF, sep))
|
|
end
|
|
|
|
local str = "one^|uno||three^^^^|four^^^|^cuatro|"
|
|
local sep = "|"
|
|
local esc = "^"
|
|
local items = tokenize(str, sep, esc)
|
|
for items as item do print((item == "") ? "(empty)" : item) end
|