(phixonline)-->
with javascript_semantics
function range_expansion(string range)
sequence s = split(range,','),
res = {}
for i=1 to length(s) do
string si = s[i]
integer k = find('-',si,2)
if k=0 then
res = append(res,to_number(si))
else
integer startrange = to_number(si[1..k-1]),
endofrange = to_number(si[k+1..$])
for l=startrange to endofrange do
res = append(res,l)
end for
end if
end for
return res
end function
?range_expansion("-6,-3-1,3-5,7-11,14,15,17-20")
?range_expansion("-6,-3--1,3-5,7-11,14,15,17-20")