0
我試圖在數學表達式中匹配變量元素的運算符(例如,「1 x < 10」的結果爲真,假設是3 < x < 10)。注意,這是不同於大多數語言將會解析表達式) (簡化)生產的規則是:N元運算符解析
expression: '(' expression ')' # parenthesisExpression
| expression ('*' | '/' | '%') expression # multiplicationExpression
| expression ('+' | '-') expression # additionExpression
| expression (SMALLER_THAN expression)+ # smallerThanExpression
| IDENTIFIER # variableExpression
;
我們如何保持優先級,但仍解析smallerThanExpression貪婪的可能嗎?
例如; 「1 < 1 + 1 < 3」應該被解析爲具有三個子節點的單個解析節點「smallerThanExpression」,其中每個節點都是表達式。此時,較小的表達式在兩個較小的表達式中分解(1 <(1 + 1 < 3))。