Working with lists

%add <def_list> <def_value> Adds the <def_value> item into the <def_list> global list and create a list if none has been defined, the item must not be an empty string, automatic checking for duplicates: if the item already exists on the list, it is not added for the second time, the (<def_list>) list is a symbol valid for the project as such, however, no list created by PE can be modified; prior adding the <def_value>, all spaces in the beginning / at the end of this value will be removed and macros substituted subsequently; for global symbol definition limitations, see the description of the %define_prj command.
%append <def_list> <def_value> Adds the <def_value>item into the <def_list>global list and create a list if none has been defined, the item must not be an empty string; the item is added in each case, even if one is contained on the list, the (<def_list>) list is a symbol valid for the project as such, however, no list created by PE can be modified; prior adding the <def_value> all spaces in the beginning / at the end of this value will be removed and macros substituted subsequently; for global symbol definition limitations, see the description of the %define_prj command.
%apploc <def_list> <def_value> Same as with %append, with a difference of adding into the local list.
%addloc <def_list> <def_value> Same as with %add, with a difference of adding into the local list.
%define_list <def_list> <def_list> Creates a list by copying as per the existing one.
%define_list <def_list> %include <file-name> Creates a list as per the file content (filename a relative path with respect to the PE directory)

%define_list <def_list> {

<def_value> or simple macro-command

<def_value> or simple macro-command

...

%define_list}[sorted] Definition of a local list, each item on a separate line; it is possible to use simple macro commands inside list definition, for example %if, %while, %for, %define, %:, but value of the list should not be accessed and it is not allowed to switch target output file; optional parameter sorted may be used to sort the list items (especially useful to optimize speed of searching items inside large lists)

%define_list MyList {

Item1

Item2

Item3

Item4

%define_list}sorted

%define_list_enabled_components(<def_list>) Creates list def_list with all enabled components in the project, list contains component names and does not contain target processor; if the list exists, it is replaced

%define_list_enabled_components(componentList)

%for comp from componentList

%hint component: %comp

%endfor

%for <def_name> from/fromdown <def_list> Block
%endfor Block generating actions will match the number of items within the <def_list> list, for each generating action, the <def_value> symbol will achieve a value of a single list item, the <def_value>symbol must not be defined either prior starting or following terminating the command; fromdown will browse the list from behind; in addition, sequence of numbers entered in brackets can also be used in addition to the def_list, for example, [1..5]; number of items in the list is limited to 0xFFFFF to avoid poor response time of the script; see also %for_index and %list_size.
%while (<boolean výraz>) Block
%endwhile While cycle command with a condition at the start; maximal number of loops is limited to 0xFFFFF cycles (to avoid dead-lock).