progs/parser-combinators/comb1.sc
changeset 852 b68252417cf4
parent 850 7fb643cb3d9d
child 896 de5fd5e2ab0a
equal deleted inserted replaced
851:2918388fe4ab 852:b68252417cf4
    11 //  a sequence. 
    11 //  a sequence. 
    12 
    12 
    13 type IsSeq[A] = A => Seq[_]
    13 type IsSeq[A] = A => Seq[_]
    14 
    14 
    15 abstract class Parser[I : IsSeq, T]{
    15 abstract class Parser[I : IsSeq, T]{
    16   def parse(in: I): Set[(T, I)]
    16   def parse(in: I): Set[(T, I)]  
    17 
    17 
    18   def parse_all(in: I) : Set[T] =
    18   def parse_all(in: I) : Set[T] =
    19     for ((hd, tl) <- parse(in); 
    19     for ((hd, tl) <- parse(in); 
    20         if tl.isEmpty) yield hd
    20         if tl.isEmpty) yield hd
    21 }
    21 }