2012-03-26 3 views
1

私はJavaを使用しています.JFlexはJava Cupにデータを渡します。接頭辞と後置符号と同じ演算子優先度問題(文法、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 +, -,^

Iが優先のこの種を確保する方法がわかりません。

答えて

0

私はなぜそれがわからないのですが、これは行く方法です。

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 
関連する問題