Я использую Java, JFlex, который передает данные в Java Cup.
Как определить приоритет оператора, который может быть как префиксом, так и префиксом, но с другим приоритетом.
Что я имею в виду:
terminal END;
terminal OP1, OP2, OP3;
precedence OP3;
precedence OP2;
precedence OP1_POSTFIX; //OP1 in postfix position
precedence OP1_PREFIX; //OP1 in prefix position
EXPR ::= END |OP1_PREFIX EXPR | EXPR OP1_POSTFIX
Я не знаю, как заставить что-то подобное работать. Что бы я ни делал, я в конечном итоге сталкиваюсь со сдвигом / уменьшением конфликтов.
Спасибо за ваше время и помощь.
UPDATE:
Это для школьного проекта, и я получил список приоритетов операторов, поэтому я должен придерживаться его.
Это часть данного списка приоритетов операторов от минимального до максимального приоритета:
binary +, - (left precedence)
not
unary postfix ^
unary prefix +, -, ^
Я не знаю, как обеспечить такой приоритет.