progs/parser-combinators/comb2.sc
changeset 954 eda0ccf56c72
parent 948 6bb67c2dcfd3
child 955 47acfd7f9096
equal deleted inserted replaced
953:5e070fb0332a 954:eda0ccf56c72
    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)]