Table of Contents
drange, irange - parser of ascii string into an array of values
int drange (n, rval, rexp)int *n;double rval;char *rexp;int irange
(n, rval, rexp)int *n;int rval;char *rexp;
routines parse a string rexp containing a list
of numbers into an array rval of n values. The list must be a comma-separated
list of numbers. Each number however can consist of an implied do-loop,
where the initial, final and optional the decrement (defaulted to 1 if
absent) are separated by a colon. The routines are very forgiving with respect
to the usage of spaces and tabs.
The string 1,10:20:2,100 gets parsed
into an array of values 1 10 12 14 16 18 20 100.
catastrophies (eg, parsing errors, wrong delimiters) generate messages
A string like 1,,2 translates into an array of values
1,0,2, i.e. an empty slot (which could be interpreted as a default value)
will be parsed as a zero.
At the moment a space character is treated as
an end-of-string, instead of a string delimiter. One could think of reasons
to change this, especially when the range(3)
-routines are used in other-than-getparam(3)
16-Mar-87 created (PJT)
5-Aug-87 made skipping spaces and tabs more general (PJT)