簡體   English   中英

與前綴和后綴優先級問題相同的運算符(語法,Java Cup)

[英]Same operator as prefix and postfix Precedence issue (Grammar, Java Cup)

我正在使用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

我不知道該如何做這樣的工作。 無論我做什么,最終都會產生轉移/減少沖突。

感謝您的時間和幫助。

更新:

這是針對學校項目的,我得到了操作員優先級的列表,因此我必須堅持下去。

這是從最小到最大優先級的給定操作員優先級列表的一部分:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM