<ParamsToAdd>
<ParamsToAdd> == <ParRep> || <ParamsToAdd> , <ParRep> || <ParamsToAdd> <ParRep>
<ParRep> == <ParSel> || <RepeatCount> * <ParSelOrParAdd> || <RepeatCount> @ <ParSelOrParAdd>
<ParSelOrParAdd> == <ParAdd> || <ParSel>
<ParSel> == <ParChoice> | <ParChoice> || <ParSel> | <ParChoice>
<ParChoice> == <ParAdd> || <Probability> : <ParAdd>
<ParAdd> == [ <ParName> <AddMode> <ParamValue> ] || ( <ParamsToAdd> ) || <MacroName>
<ParName> == <Name>
<AddMode> == = || += || -= || #=
<MacroName> == <Name>
<ParamValue> == ... follows the syntax of the Parameter <ParName>
<Probability> == <Simple>
<RepeatCount> == <Integer>
The <ParamsToAdd> parameter is a list of other parameters, which will be added to the actual set of parameters. The simplest example (even if it has no advantage in this form):
M=STOP;C=NS_DE2R;AP=[BG=TREE1];
this line is equvalent with the following line:
M=STOP;C=NS_DE2R;BG=TREE1;
Why then this complicated form ? One can select different parameter sets:
M=STOP;C=NS_DE2R;AP=[BG=TREE1]|[FG=TREE2];
either TREE1 stays in the background, or TREE2 stays in the foreground.
This type of parameter can not only set (or replace, if was already set) a parameter, but it can extend it too. Using the += characters the content will be added after the existing part of the parameter, -= means to insert it in the beginning of the existing parameter:
M=STOP;C=NS_DE2R;BG=(M_STATION1:40;);AP=[BG=-TREE1:40-20;];
Unmatched parenthesys in ???