progs/comb1a.scala
changeset 673 715b46eee102
parent 672 e0d76f7f0688
child 683 c6c79d21f8a8
equal deleted inserted replaced
672:e0d76f7f0688 673:715b46eee102
    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