Documentation ¶
Overview ¶
Package intsetexpr implements parsing of expressions like `a{01..03}b`.
It knows how to expand `a{01..03}b` into `[a01b, a02b, a03b]`.
Index ¶
Constants ¶
const ( TokLB = iota // non-escaped '{' TokRB // non-escaped '}' TokNum // a sequence of digits TokRunes // an arbitrary sequence of non-special runes TokComma // ',' TokDots // '..' )
Variables ¶
This section is empty.
Functions ¶
func Expand ¶
Expand expands a string with a int set into a list of strings.
For example, given `a{1..3}b` produces `['a1b', 'a2b', 'a3b']`.
The incoming string should have no more than one `{...}` section. If it's absent, the function returns the list that contains one item: the original string.
The set is given as comma-separated list of terms. Each term is either a single non-negative integer (e.g. `9`) or a range (e.g. `1..5`). Both ends of the range are inclusive. Ranges where the left hand side is larger than the right hand side are not allowed. All elements should be listed in the strictly increasing order (e.g. `1,2,5..10` is fine, but `5..10,1,2` is not). Spaces are not allowed.
The output integers are padded with zeros to match the width of corresponding terms. For ranges this works only if both sides have same width. For example, `01,002,03..04` will expand into `01, 002, 03, 04`.
Use `{{` and `}}` to escape `{` and `}` respectively.
Types ¶
This section is empty.