Bonjour ,
J'ai encore une nouvelle question sur la rédaction d'une grammaire en perl6.
Je souhaiterai faire un token identique à :
token header { '[' <-[ \[\] ]>+ ']' } ( voir https://docs.perl6.org/language/rege..._and_Capturing )
mais au lieu de '[' et de ']' , j'aimerai pourvoir donner une chaine complète de caractère. Par exemple, (pas vraiment au hasard), '[' deviendrait 'EXEC SQL' et ']' deviendrait 'END-EXEC'.
Malgré de nombreuses tentatives, je n'arrive pas à exprimer l'équivalent de <-[ \[\] ]>+ .
Par exemple :
ne fonctionne pas et donne comme résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 rule TOP {[<sqlstart> <sqltext> <sqlend>]} token sqlstart {'EXEC SQL'} token sqlend {'END-EXEC'} token sqltext { <-[<sqlstart><sqlend>]>* }
A mon grand regret, le token sqltext prend le END-EXEC ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 TOP | sqlstart | * MATCH "EXEC SQL" | sqltext | * MATCH "INCLUDE SQLCA END-EXEC\n" | sqlend | * FAIL * FAIL
Auriez-vous une idée ?
Par avance merci.
Partager