$ include "seed7_05.s7i"; include "scanstri.s7i"; const func array integer: rangeExpansion (in var string: rangeStri) is func result var array integer: numbers is 0 times 0; local var integer: number is 0; begin while rangeStri <> "" do number := integer parse getInteger(rangeStri); numbers &:= number; if startsWith(rangeStri, "-") then rangeStri := rangeStri[2 ..]; for number range succ(number) to integer parse getInteger(rangeStri) do numbers &:= number; end for; end if; if startsWith(rangeStri, ",") then rangeStri := rangeStri[2 ..]; elsif rangeStri <> "" then raise RANGE_ERROR; end if; end while; end func; const proc: main is func local var integer: number is 0; begin for number range rangeExpansion("-6,-3--1,3-5,7-11,14,15,17-20") do write(number <& " "); end for; writeln; end func;