Hmm. Je suis en train de penser à quelque chose, peut-etre que ca te conviendrait. Tu pourrais peut-être wrapper ta règle entity
pour s’assurer qu’elle n’apparaisse qu’une fois.
Ton premier pattern (pour execute
) devrait seulement matcher une ligne, donc…
begin: ^execute
end: $
include: entityOnce
include: .* // invalid chars
Puis, entityOnce est définit comme suit…
begin: (?=\s+@[apre]\[.*\]\s*(\sdetect)?\s*$)
end: $
include: entity
Donc l’idée est que ta règle définit comme begin
une assertion positive lookahead qui match une seule fois dans la ligne un skelette de entity
.
Le problème, c’est que ca match tout ou rien… Hmm.
EDIT: tu pourrais brisé entity en plusieurs règles qui s’incluent une après l’autre