Jestem nowy w Scali i próbowałem użyć jej doskonałej biblioteki parsera kombinator. Próbowałem dostać ten kod do kompilacji:Dopasowywanie wzorców na sukcesach parserów w Scali
import scala.util.parsing.combinator._
...
val r:Parsers#ParseResult[Node] = parser.parseAll(parser.suite,reader)
r match {
case Success(r, n) => println(r)
case Failure(msg, n) => println(msg)
case Error(msg, n) => println(msg)
}
...
ale wciąż otrzymuję te błędy:
TowelParser.scala:97: error: not found: value Success
case Success(r, n) => println(r)
^
TowelParser.scala:98: error: not found: value Failure
case Failure(msg, n) => println(msg)
TowelParser.scala:99: error: object Error is not a case class constructor, nor does it have an unapply/unapplySeq method
case Error(msg, n) => println(msg)
Próbowałem wiele różnych rzeczy, takich jak:
case Parsers#Success(r, n) => println(r)
i
case Parsers.Success(r, n) => println(r)
i
import scala.util.parsing.combinator.Parsers.Success
Ale nie mogę tego zmusić do skompilowania. Jestem pewien, że prawdopodobnie brakuje czegoś oczywistego, ale byłem na tym przez jakiś czas, a Google nie ma na to dobrych przykładów.
Dzięki!
Ah Widzę teraz. Sukces/Niepowodzenie/Błąd będzie członkiem instancji Parserów. Dzięki! –