[Gramatyki][Bison] Konflikt w While

pioter-b
Użytkownik
Użytkownik
Posty: 19
Rejestracja: 28 gru 2015, o 18:09
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 2 razy

[Gramatyki][Bison] Konflikt w While

Post autor: pioter-b »

Witam. Próbuję napisać prosty kompilator z wykorzystaniem FLEXA i BISONA. Niestety podczas pisania DO WHILE oraz WHILE natrafiam na konflikt redukcja/redukcja
Gramatyka ma wygladać tak
WHILE condition DO commands ENDWHILE
|DO commands WHILE condition ENDDO
a wiec piszę

Kod: Zaznacz cały

 | DO {
       ...
    } commands WHILE condition { ...} ENDDO
|   WHILE {
      ...
    } condition {
        ...
    } DO commands ENDWHILE {
      ...
    }
Niestety podczas kompilaci otrzymuję warning: 2 reduce/reduce conflicts

Ma ktoś pomysły jak to naprawić? Prosze o pomoc.
Może coś tu zmienić?

Kod: Zaznacz cały

%token <str> NUM
%token <str> VAR BEG END IF THEN ELSE ENDIF
%token <str> DO WHILE  ENDWHILE FOR FROM ENDFOR ENDDO
%token <str> WRITE READ IDE SEM TO DOWNTO
%token <str> LB RB ASG EQ LT GT LE GE NE ADD SUB MUL DIV MOD COLON

%type <str> value
%type <str> identifier
Ostatnio zmieniony 3 sty 2019, o 17:18 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
ODPOWIEDZ