All replicators in the notation introduced so far may not expand to empty strings. A replicator may generate empty strings for two reasons, either because its regularity is the empty string, or because the values of in, fi, inc are such that the range of the index is empty. The former situation cannot occur in replicators produced by the grammar introduced so far since empty regularities are not permitted by the syntax rules. Such replicators are not useful anyway. The latter situation is excluded to avoid collision of terminal symbols. To avoid collision of separators when the replicators generate empty strings, as in the macro path above, their context should not be the same as that of other generalized elements. A separator should be missing either on their left or on their right. Their expansion has to provide the extra separator. If the separator on their left is missing they will be called left replicators, and will be produced by the non-terminal lreplicator, and if the separator on their right is missing, they will be called right replicators, and will be produced by the non-terminal rreplicator. For their expansion to bind correctly, right replicators should precede, and left replicators should follow starelements, sequence replicators and distributors.
The replicators produced by the non-terminals lreplicator and rreplicator will generate sequences with a separator preceding and following respectively. We define their syntax by the rules:
and therefore a replicator produced by the first rule will have the forms:
and by the second rule the forms:
If their index range is empty the strings generated by their expansion will be empty as well. Otherwise the strings generated by the expansion of lconc or limbr, and rconc or rimbr will be the same as the strings generated by the expansion of the sequence replicators obtained from them by removing sep| and |sep respectively, preceded and respectively followed by sep.
All concatenators, imbricators and bodyreplicators must satisfy the restrictions Rrest1.1, Rrest1.2, Rrest1.3 and Rrest2 which are given as follows: