J'ai cette grammaire LL:
je voudrais que litteral et caractère ne soient pas suivis d'une étoile (pour la multiplication):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 expression -> terme expression_prim expression_prim -> plus terme expression_prim | epsilon terme -> facteur terme_prim | litteral | caractere terme_prim -> etoile facteur terme_prim | epsilon facteur -> identificateur | nombre | ( expression ) | moins facteur
je ne sais pas commment rendre cette grammaire en gramaire ascendante, car si je fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6terme -> facteur terme_prim | litteral | caractere | epsilon terme_prim -> etoile facteur terme_prim | epsilon
cela n'empèchera pas les caracteres et littéraux d'être suivis par une étoile.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 expression -> expression plus terme | terme terme -> terme etoile facteur | facteur | caractere | litteral | epsilon facteur -> id | nombre | ( exression ) | moins facteur
et ceci non plus:
comment faire une grammaire ascendante qui tienne compte de cette contrainte?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 expression -> expression plus terme | terme terme -> terme etoile facteur | facteur | epsilon facteur -> id | nombre | ( expression ) | caractere | litteral | moins facteur
quelqu'un a une idée?
Partager