Considere esta parte de la gramática:¿Cómo cambiar el código usando los Combinadores Scala Parser para tener en cuenta la prioridad del operador?
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
¿Es necesario volver a escribir partes de él para crear nuevas reglas, o hay sólo un método (como |
vs |||
para el primer juego frente a más largo regla) I Actualmente estoy perdido, ¿qué hace lo necesario?
¿Cuál es su problema concreto? – ziggystar