[Gramatyki][Bison] Konflikt w While
: 2 sty 2019, o 21:48
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
Niestety podczas kompilaci otrzymuję warning: 2 reduce/reduce conflicts
Ma ktoś pomysły jak to naprawić? Prosze o pomoc.
Może coś tu zmienić?
Gramatyka ma wygladać tak
a wiec piszęWHILE condition DO commands ENDWHILE
|DO commands WHILE condition ENDDO
Kod: Zaznacz cały
| DO {
...
} commands WHILE condition { ...} ENDDO
| WHILE {
...
} condition {
...
} DO commands ENDWHILE {
...
}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