Le générateur automatique dispose d'un modèle pour chaque type de règle, décrites page 3.3, que peut mettre en jeu l'exécutif.
Ces règles sont sélectionnées et instanciées selon les informations précédentes.
Le programme se charge ainsi de recréer les parties non génériques de quelques fichiers à partir du fichier contenant les informations quant aux services et modules qui seront utilisés, et de concaténer le tout avec les parties génériques.
Un exemple est visible annexe C.1.
Les noms de groupes sont représentés entre les signes $$
(comme par
exemple $groupe$
) afin de montrer que cette partie peut être remplacée
par n'importe quel élément de même nature (nom de groupe, de service...).
Une des règles génériques de démarrage est la suivante :
$service$Wait: event == EventStart, service == "$service$", (@$groupe$State oneof [$services du groupe à attendre$] | @$autregroupe$State oneof [$services de ce groupe à attendre$] | ...) ==> restrict status == StatusWait;
Pour le service S2 cette règle serait instanciée de la façon suivante :
S2Wait: event == EventStart, service == "S2", (@groupeAState oneof [S1, S2, S3]) ==> restrict status == StatusWait;
La partie faisant référence à un autre groupe a été inutile puisque ce service
n'a à attendre aucun service d'un autre groupe. Simplement $service$
a été
remplacé par S1
, $groupe$
par groupeA
et
$services du groupe à attendre$
par S1, S2, S3
.