--- a/progs/c.scala Thu Apr 16 19:15:46 2020 +0100
+++ b/progs/c.scala Wed May 06 15:37:31 2020 +0100
@@ -18,6 +18,9 @@
for ((head, tail) <- parse(ts); if tail.isEmpty) yield head
}
+
+
+
class SeqParser[I : IsSeq, T, S](p: => Parser[I, T], q: => Parser[I, S]) extends Parser[I, ~[T, S]] {
def parse(sb: I) =
for ((head1, tail1) <- p.parse(sb);
@@ -67,7 +70,7 @@
implicit def ParserOps[I : IsSeq, T](p: Parser[I, T]) = new {
def ||(q : => Parser[I, T]) = new AltParser[I, T](p, q)
def ~[S](q : => Parser[I, S]) = new SeqParser[I, T, S](p, q)
- def map[S](f: => T => S) = new MapParser[I, T, S](p, f)
+ def map[S](f: => T => S) = new MapParser[I, T, S](p, f)
}
// these implicits allow us to use infic notation for