22 lines
403 B
Text
22 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
|