Using Iterators
Using Iterators to create multiple objects
When you are in the need of creating multiple objects (Signals paths, GPIs, etc.) in a row, following a specific naming scheme, using iterators can save you a lot of time. Iterators are enabled e.g. in the signal path dialog with the description field. If you hover the cursor over the field, a short help window is displayed.
Further information about using iterators is shown below.
The following Rules apply
Each Iterator is enclosed in curly brackets: {…}.
Iterators are processed from left to right.
Iterators will advance/increment when all Iterators to the right have completed.
Elements within the Iterator are separated by commas.
A hyphen (as in “1-5”) can be used to specify a range.
Outside of the curly brackets {…} the „{„ and the „\‟ has to be escaped (preceded by a backslash character “\”) if needed as a displayable characters. E.g. \{ and \\.
In text within an iteration, the following characters have to be escaped: { } - , * ^ $ :
Ranges of integer numbers (e.g. 1-5) and ranges of characters (e.g. A-E) can the specified. All ranges can be succeeded by a step specification (e.g. 1-7$2). Integer ranges can additionally be followed by a width specification (e.g. 1-20:2).
A “High Priority Iteration” is an iteration followed by the character *. It iterates all its elements before the next iteration can advance.
A “Counter Iteration” is an iteration that iterates parallel to the next iteration.
Precedence may be changed by using a “High Priority Iteration”
Some Examples
Iterator | Result |
---|---|
Out {1,2} | Out 1, Out 2 |
Out {1-3} | Out 1, Out 2, Out 3 |
Out {1-2,A-C} | Out 1, Out 2, Out A, Out B, Out C |
Out {1-11$2} | Out 1, Out 3, Out 5, Out 7, Out 9, Out 11 |
Out {9-11:2} | Out 09, Out 10 Out 11 |
Out {1-11$2:2} | Out 01, Out 03, Out 05, Out 07, Out 09, Out 11 |
Out {A-B} Ch {1-2} | Out A Ch 1, Out A Ch 2, Out B Ch 1, Out B Ch 2 |
Out {A-B}* Ch {1-2} | Out A Ch 1, Out B Ch 1, Out A Ch 2, Out B Ch 2 |
Out {A-B}^ Ch {1-2} | Out A Ch 1, Out B Ch 2 |
Out {A-B} Ch {1-2,X{8-10}} | Out A Ch 1, Out A Ch 2, Out A Ch X8, Out A Ch X9, Out A Ch X10, Out B Ch 1, Out B Ch 2, Out B Ch X8, Out B Ch X9, Out B Ch X10 |
Language Reference
Terminal Symbols
{ } , * ^ : $ -
Syntax
IteratorString | {Unit} |
---|---|
Unit: | String |
Character | |
Integer | |
Whitespace | |
Iteration | |
Iteration: | { IterationListopt } IterationModifieropt |
IterationList: | IterationItem {, IterationItem} |
IterationModifier: * | * |
^ | |
IterationItem: | Range |
IteratorString | |
Range: | RangeValues RangeStepopt RangeWidthopt |
RangeValues: | Character - Character |
Integer – [Integer | *] | |
RangeStep: | $ Integer |
RangeWidth: | : [Integer] |
String: | Character Character {Character} |
Character: | printable character |
Integer: | Integer number |
Whitespace: | SPACE |
CR | |
LF | |
TAB |