progs/comb1a.scala
changeset 673 4e254e201ce9
parent 672 9d4c5abff8c5
child 683 9acbe46df3fd
equal deleted inserted replaced
672:9d4c5abff8c5 673:4e254e201ce9
    63 
    63 
    64 // convenience
    64 // convenience
    65 implicit def string2parser(s: String) = StringParser(s)
    65 implicit def string2parser(s: String) = StringParser(s)
    66 implicit def char2parser(c: Char) = CharParser(c)
    66 implicit def char2parser(c: Char) = CharParser(c)
    67 
    67 
    68 implicit def ParserOps[I, T](p: Parser[I, T])(implicit ev: I => Seq[_]) = new {
    68 implicit def ParserOps[I : IsSeq, T](p: Parser[I, T]) = new {
    69   def || (q : => Parser[I, T]) = new AltParser[I, T](p, q)
    69   def || (q : => Parser[I, T]) = new AltParser[I, T](p, q)
    70   def ==>[S] (f: => T => S) = new FunParser[I, T, S](p, f)
    70   def ==>[S] (f: => T => S) = new FunParser[I, T, S](p, f)
    71   def ~[S] (q : => Parser[I, S]) = new SeqParser[I, T, S](p, q)
    71   def ~[S] (q : => Parser[I, S]) = new SeqParser[I, T, S](p, q)
    72 }
    72 }
    73 
    73