2012-03-26 3 views
1

자바를 사용하고 있습니다. 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 +, -,^

:

는 최대 우선 순위 분에서 연산자 우선 순위가 지정된 목록의 일부입니다.

답변

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