/*NetRexx program to expand a range of integers into a list. ************* * 09.08.2012 Walter Pachl derived from my Rexx version * Changes: translate(old,' ',',') -> old.translate(' ',',') * dashpos=pos('-',x,2) -> dashpos=x.pos('-',2) * Do -> Loop * Parse Var a x a -> Parse a x a * Parse Var x ... -> Parse x ... **********************************************************************/ parse arg old if old = '' then old='-6,-3--1,3-5,7-11,14,15,17-20' /*original list of nums/ranges */ Say 'old='old /*show old list of nums/ranges. */ a=old.translate(' ',',') /*translate commas to blanks */ new='' /*new list of numbers (so far). */ comma='' Loop While a<>'' /* as long as there is input */ Parse a x a /* get one element */ dashpos=x.pos('-',2) /* find position of dash, if any */ If dashpos>0 Then Do /* element is low-high */ Parse x low =(dashpos) +1 high /* split the element */ Loop j=low To high /* output all numbers in range */ new=new||comma||j /* with separating commas */ comma=',' /* from now on use comma */ End End Else Do /* element is a number */ new=new||comma||x /* append (with comma) */ comma=',' /* from now on use comma */ End End Say 'new='new /*show the expanded list */