bonjour tout le monde.
je cherche une moyen d'extraire les productions d'une grammaire
une grammaire est presenté comme suit ( un exemple )
j'explique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 S->'aa'S | A ; A-> 'b'A | 'c'S ;
les terminaux doivent etre entre des ' '
les variables sont représentés par des majuscules
chaque production dois se terminer avec un ;
les differents members droits d'une production sont séparés par des |
pour mon programme je voudrais obtenir une liste de produtions
j'ai penser a utiliser une expression réguliere mais j'arrive pas a obtenir des resultats satisfaisants
voila mon code (l'expression reguliere que j'ai utiliser) :
mais ça ne donne rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 x=re.compile("[A-Z]->['\w+'[A-Z]+|]+;")
voila
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 a=""" S->'aa'S|A;A->'b'A|'c'S; """ >>> x.findall(a) ["S->'aa'S", "A->'b'A"]
le resultat que j'attendais c'etais un
j'esepre que j'ai bien expliqué mon probleme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ["S->'aa'S|A;", "A->'b'A|'c'S;"]
merci d'avance
Partager