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

IteratorResult
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