progs/parser-combinators/comb2.sc
changeset 953 b569edaf7e43
parent 947 4d787a8b79a6
child 954 4a7ed272d46e
equal deleted inserted replaced
952:f09d9db4e922 953:b569edaf7e43
    14 // it allows writing nested patterns as
    14 // it allows writing nested patterns as
    15 // case x ~ y ~ z => ...
    15 // case x ~ y ~ z => ...
    16 
    16 
    17 case class ~[+A, +B](x: A, y: B)
    17 case class ~[+A, +B](x: A, y: B)
    18 
    18 
    19 
    19 val a = (1, "2")
       
    20 val v = new ~(1, "2")
    20 
    21 
    21 type IsSeq[I] = I => Seq[_]
    22 type IsSeq[I] = I => Seq[_]
    22 
    23 
    23 abstract class Parser[I, T](using is: I => Seq[_])  {
    24 abstract class Parser[I, T](using is: I => Seq[_])  {
    24   def parse(in: I): Set[(T, I)]  
    25   def parse(in: I): Set[(T, I)]