8
문법의이 부분을 고려Scala Parser Combinators를 사용하여 연산자 우선 순위를 고려하여 코드를 변경하는 방법은 무엇입니까?
def expression = SimpleExpression ~ opt(relation ~ SimpleExpression)
def relation = "=" | "#" | "<=" | "<" | ">=" | ">" | "IN" | "IS"
def SimpleExpression = opt("+" | "-") ~ rep1sep (term, AddOperator)
def AddOperator = "+" | "-" | "OR"
def term = factor ~ rep(MulOperator ~ factor)
def MulOperator = "*" | "/" | "DIV" | "MOD" | "&"
def factor: Parser[Any] = number | "(" ~ expression ~ ")" | "~" ~ factor
이 필요한 새로운 규칙을 만들 그것의 부분을 재 작성하는 것입니다, 아니면 그냥하는 방법이있다 (같은 첫 대 가장 긴 규칙 매칭을위한 |
대 |||
) I 현재 실종 된 것이 필요한 것입니까?
구체적인 문제는 무엇입니까? – ziggystar