RosettaCodeData/Task/Tokenize-a-string-with-escaping/Icon/tokenize-a-string-with-escaping.icon
2025-08-11 18:05:26 -07:00

21 lines
403 B
Text

procedure main()
str := "one^|uno||three^^^^|four^^^|^cuatro|"
every write("\"",!tokenize(str,"|","^"),"\"")
end
procedure tokenize(str,sep,esc)
ret := []
token := ""
cse := cset(sep||esc)
str ?
repeat{
token ||:= tab(i := (upto(cse) | 0))
if i = 0 then return put(ret,token)
move(1)
if str[i] == sep then{
put(ret,token)
token := ""
}else
token ||:= move(1)
}
end