我一直在使用
問題可能出在乘法運算式中,但我心中并沒有解決這個問題的最佳方法。老實說,我對此沒有任何解決方案。誰能告訴我如何解決這個問題?
multiplicative_expression
: unary_expression
| multiplicative_expression '*' unary_expression
| multiplicative_expression '/' unary_expression
| multiplicative_expression '\\' unary_expression
| multiplicative_expression '^' unary_expression
| multiplicative_expression ARRAYMUL unary_expression
| multiplicative_expression ARRAYDIV unary_expression
| multiplicative_expression ARRAYRDIV unary_expression
| multiplicative_expression ARRAYPOW unary_expression
;
uj5u.com熱心網友回復:
我認為您需要將該部分替換multiplicative_expression為以下內容:
multiplicative_expression
: pow_expression
| multiplicative_expression '*' pow_expression
| multiplicative_expression '/' pow_expression
| multiplicative_expression '\\' pow_expression
| multiplicative_expression ARRAYMUL pow_expression
| multiplicative_expression ARRAYDIV pow_expression
| multiplicative_expression ARRAYRDIV pow_expression
;
然后包括一個附加部分pow_expression:
pow_expression
: unary_expression
| pow_expression '^' unary_expression
| pow_expression ARRAYPOW unary_expression
;
這應該給指數運算子比乘法運算子更高的優先級。
但是,如果您嘗試實際實作 MATLAB 的實際語法,您應該意識到 GitHub 上的這個語法并不能很好地反映它。例如, MATLAB 有更多的冪運算子(.^-, .^ , .^~, ^-, ^ , ^~),并且有完整的語法類別,例如所有面向物件的功能,根本沒有涵蓋。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456626.html
標籤:matlab antlr4 语法 运算符关键字 指数的
上一篇:url問題的htaccess根
下一篇:MATLAB*.運營商呢?
