2017-05-14 26 views
0

考慮我的簡單的語法在C#編譯目標:C#ANTLR4右鍵關聯警告

grammar Expr; 

prog: stmt+ EOF; 
stmt: expr NEWLINE+; 

expr: 
    expr '^' <assoc=right> expr # Power 
| expr ('*'|'/') expr   # Mult 
| expr ('+'|'-') expr   # Add 
| REAL      # Real 
| '(' expr ')'    # Paren 
; 

NEWLINE : '\r\n'; 
REAL  : [0-9]+'.'[0-9]+ ; 

我繼續得到一個C#編譯器警告,指出「警告1個規則‘expr的’包含‘assoc命令’終端選項在一個無法識別的位置「

任何人都可以提出我應該指出哪裏是指數的右關聯?這是我在許多例子中看到它的方式。

+0

這也許可以幫助:HTTP://計算器。 com/questions/23359363/antlr-4-2-2-output-to-console-warning-157/23359897 –

+1

是的,完美的工作和完美的測試。謝謝。現在,對這個網站不熟悉,我該如何將幫助標記爲答案? ;) – TomServo

+0

嗯,這不是一個答案,而是解決你的問題的線索。你可以自己添加答案來幫助其他人。 :-) –

回答

1

答案被放置標籤暗示,規則,操作後不正確的,因爲我已經看到了很多例子:

expr: 
<assoc=right> expr '^' expr # Power 
| expr ('*'|'/') expr   # Mult 
... 
;