J'ai cette grammaire LL:
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 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
terme	-> facteur terme_prim
          | litteral
          | caractere
	  | epsilon
terme_prim -> etoile facteur terme_prim
         | epsilon
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
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
cela n'empèchera pas les caracteres et littéraux d'être suivis par une étoile.
et ceci non plus:
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
comment faire une grammaire ascendante qui tienne compte de cette contrainte?
quelqu'un a une idée?