39 lines
1.0 KiB
Plaintext
39 lines
1.0 KiB
Plaintext
function range beginning ending stepping
|
|
local tRange, tBegin, tEnd, tstep
|
|
if stepping is empty or stepping is 0 then
|
|
put 1 into tstep
|
|
else
|
|
put abs(stepping) into tstep
|
|
end if
|
|
|
|
if ending is empty or isNumber(ending) is not true then
|
|
put 0 into tEnd
|
|
else
|
|
put ending into tEnd
|
|
end if
|
|
|
|
if beginning is empty or isNumber(beginning) is not true then
|
|
put 0 into tBegin
|
|
else
|
|
put beginning into tBegin
|
|
end if
|
|
|
|
repeat with r = tBegin to tEnd step tstep
|
|
put space & r after tRange
|
|
end repeat
|
|
return word 1 to -1 of tRange
|
|
end range
|
|
|
|
function expandRange rangeExpr
|
|
put rangeExpr into tRange
|
|
split tRange by comma
|
|
repeat with n = 1 to the number of elements of tRange
|
|
if matchText(tRange[n],"^(\-*\d+)\-(\-*\d+)",beginning, ending) then
|
|
put range(beginning, ending, 1) & space after z
|
|
else
|
|
put tRange[n] & space after z
|
|
end if
|
|
end repeat
|
|
return z
|
|
end expandRange
|