[英]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.