Скажем, у меня есть такой парсер:
trait PT {}
trait StatementPT extends PT{}
...
class LoopConditionPT(val operation: String, val variable: IdentPT, val condition: Option[(String,ExpressionPT)]) extends StatementPT { ... }
Option[(String,ExpressionPT)])
беспокоит меня в течение дня, я имею в виду, что я могу справиться с Option[T]
, но Option[(T,T)]
? Я написал это def loopCondition
, но оно всегда вызывает ошибку:
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)])
Может ли кто-нибудь помочь мне исправить loopCondition
? Спасибо.
Option[(c,d)]
напишитеOption(c -> d)
,Option((c,d))
,Some(c -> d)
и т.д... - person gilad hoch   schedule 23.09.2016