25 lines
610 B
Plaintext
25 lines
610 B
Plaintext
pullInt = function(chars)
|
|
numstr = chars.pull
|
|
while chars and chars[0] != "," and chars[0] != "-"
|
|
numstr = numstr + chars.pull
|
|
end while
|
|
return val(numstr)
|
|
end function
|
|
|
|
expandRange = function(s)
|
|
result = []
|
|
chars = s.split("")
|
|
while chars
|
|
num = pullInt(chars)
|
|
if not chars or chars.pull == "," then
|
|
result.push num
|
|
else
|
|
result = result + range(num, pullInt(chars))
|
|
chars.pull // skip "," after range
|
|
end if
|
|
end while
|
|
return result
|
|
end function
|
|
|
|
print expandRange("-6,-3--1,3-5,7-11,14,15,17-20")
|