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