У меня есть проблема в моей грамматике для выражения арифметики c, когда я компилирую его, оно показывает мне предупреждение о конфликтах (Shift / Reduce), я устал его менять, но предупреждение все равно и я получаю другие результаты, может Вы помогаете мне здесь с подсказкой или объяснением, как устранить такие предупреждения и устранить двусмысленность. Вот грамматика:
OPERATION_ARITHMETIQUE: OPERATION_ARITHMETIQUE T_ADD OPERATION_ARITHMETIQUE
| OPERATION_ARITHMETIQUE T_SUB OPERATION_ARITHMETIQUE
| OPERATION_ARITHMETIQUE T_DIV OPERATION_ARITHMETIQUE
| OPERATION_ARITHMETIQUE T_MUL OPERATION_ARITHMETIQUE
| T_PARENTHESE_OPEN OPERATION_ARITHMETIQUE T_PARENTHESE_CLOSE
| T_SUB OPERATION_ARITHMETIQUE
| OPERAND
;
OPERAND: T_IDF
| T_IDF T_CROCHET_OPEN INDEX T_CROCHET_CLOSE
| V_INTEGER
| V_FLOAT
;
/* T_IDF represent a variable like x,y,z.... */
/* V_INTEGER V_FLOAT represent immediate values like 1,10,15.2.... */