Salut tout le monde ,
Je suis en train de faire un tout mini compilateur C avec Flex et Bison. Mon problème est que lorsque j'analyse ma grammaire avec Bison j'ai un problème de décalage/réduction (2 Décalage/Réduxtion) que je n'arrive pas à résoudre.
Voila un extrait de la grammaire:
Le problème se situe au niveau de Tableau car lorsque je supprime la partie tableau le problème disparait!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Declaration : Constante Variable Tableau ; Constante : | "const" CHAR IDF "=" CAR ";" Constante | "const" INT IDF "=" ENTIER ";" Constante | "const" FLOAT IDF "=" REEL ";" Constante | "const" CHAR "*" IDF "=" CHAINE ";" Constante | "const" CHAR "[]" IDF "=" CHAINE ";" Constante ; Variable : | CHAR IDF ";" Variable | INT IDF ";" Variable | FLOAT IDF ";" Variable ; Tableau : | "char" SuiteTab | "int" SuiteTab | "float" SuiteTab ; SuiteTab : IDF Index ";" Tableau ; Index : "[" ENTIER "]" Index | "[" ENTIER "]" ;
Voila voila Merci d'avance!
EDIT:
Désolé de ce post inutile je viens de résoudre le problème
Voila les modifs:
Voila voila Merci!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Declaration : Constante Variables ; Constante : | "const" CHAR IDF "=" CAR ";" Constante | "const" INT IDF "=" ENTIER ";" Constante | "const" FLOAT IDF "=" REEL ";" Constante | "const" CHAR "*" IDF "=" CHAINE ";" Constante | "const" CHAR "[]" IDF "=" CHAINE ";" Constante ; Variables : | CHAR IDF SuiteVar ";" Variables | INT IDF SuiteVar ";" Variables | FLOAT IDF SuiteVar ";" Variables ; SuiteVar : | Index ; Index : "[" ENTIER "]" Index | "[" ENTIER "]" ;
Partager