21 lines
620 B
Text
21 lines
620 B
Text
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])
|
|
integer 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")
|