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