Sagen, ich habe einen Parser wie folgt aus:Scala Parser Combinator: Parsen eine Option
trait PT {}
trait StatementPT extends PT{}
...
class LoopConditionPT(val operation: String, val variable: IdentPT, val condition: Option[(String,ExpressionPT)]) extends StatementPT { ... }
Der Option[(String,ExpressionPT)])
Bug mich für einen Tag, ich meine ich mit Option[T]
umgehen kann, aber Option[(T,T)]
? Ich schrieb dieses def loopCondition
aber es stellt sich immer Fehler:
def loopCondition: Parser[LoopConditionPT] = "some string" ~ var ~ opt(("TIL"|"WILE") ~ expression) ^^ {
case a ~ b ~ Some(c ~ d) => new LoopCondition(a, b, Option[(c, d)])
case a ~ b ~ None => new LoopCondition(a, b, Option[("None", -1)])
Kann mir jemand helfen das loopCondition
behebt? Vielen Dank.
Das ist keine gültige Syntax ... Statt 'Option [(c, d)] 'write' Option (c -> d) ',' Option ((c, d)) ',' Einige (c -> d) ', etc ... –