Strona 1 z 1

[Gramatyki][Bison] Konflikt w While

: 2 sty 2019, o 21:48
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