与前缀和后缀优先级问题相同的运算符(语法,Java Cup)

与前缀和后缀优先级问题相同的运算符(语法,Java Cup),java,grammar,operator-keyword,prefix,operator-precedence,Java,Grammar,Operator Keyword,Prefix,Operator Precedence,我使用的是Java,JFlex,它将数据传递给JavaCup 如何定义运算符的优先级?运算符可以是后缀,也可以是前缀,但优先级不同 我的意思是: 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

我使用的是Java,JFlex,它将数据传递给JavaCup

如何定义运算符的优先级?运算符可以是后缀,也可以是前缀,但优先级不同

我的意思是:

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
我不知道怎样才能让这样的事情成功。无论我做什么,我最终都会改变/减少冲突

谢谢你的时间和帮助

更新:

这是一个学校项目,我得到了操作符优先级列表,因此我必须坚持下去

这是给定操作员优先级列表的一部分,从最小优先级到最大优先级:

binary +, -    (left precedence)
not
unary postfix ^
unary prefix +, -, ^

我不知道如何确保这种优先权。

我不知道为什么,但事实证明这是一种方式

terminal END, EXPR, EXPR1, EXPR2;
terminal OP1, OP2, OP3;

precedence OP3; 
precedence OP2;
precedence OP1_POSTFIX;  //OP1 in postfix position
precedence OP1_PREFIX;   //OP1 in prefix position

EXPR  ::= END | EXPR1 | EXPR2
EXPR1 ::= OP1_PREFIX EXPR
EXPR2 ::= EXPR OP1_POSTFIX