~
A wrapper over sequence of matches.
Given p1: Parser[A]
and p2: Parser[B]
, a parser composed with
p1 ~ p2
will have type Parser[~[A, B]]
. The successful result
of the parser can be extracted from this case class.
It also enables pattern matching, so something like this is possible:
def concat(p1: Parser[String], p2: Parser[String]): Parser[String] =
p1 ~ p2 ^^ { case a ~ b => a + b }