equal
  deleted
  inserted
  replaced
  
    
    
    77 // StrParser(_some_string_) more conveniently as   | 
    77 // StrParser(_some_string_) more conveniently as   | 
    78 //  | 
    78 //  | 
    79 // p"<_some_string_>"   | 
    79 // p"<_some_string_>"   | 
    80   | 
    80   | 
    81 implicit def parser_interpolation(sc: StringContext) = new { | 
    81 implicit def parser_interpolation(sc: StringContext) = new { | 
    82   def p(args: Any*) = StrParser(sc.s(args:_*))  | 
    82   def p(args: Any*) = TokParser(sc.s(args:_*))  | 
    83 }  | 
    83 }  | 
    84   | 
    84   | 
         | 
    85 p"while"  ==> StrParser[String,....]  | 
         | 
    86               TokParser[List[Token],....]  | 
         | 
    87   | 
         | 
    88 for x := 3 to 10                 | 
    85   | 
    89   | 
    86 // more convenient syntax for parser combinators  | 
    90 // more convenient syntax for parser combinators  | 
    87 implicit def ParserOps[I : IsSeq, T](p: Parser[I, T]) = new { | 
    91 implicit def ParserOps[I : IsSeq, T](p: Parser[I, T]) = new { | 
    88   def ||(q : => Parser[I, T]) = new AltParser[I, T](p, q)  | 
    92   def ||(q : => Parser[I, T]) = new AltParser[I, T](p, q)  | 
    89   def ~[S] (q : => Parser[I, S]) = new SeqParser[I, T, S](p, q)  | 
    93   def ~[S] (q : => Parser[I, S]) = new SeqParser[I, T, S](p, q)  | 
   100   | 
   104   | 
   101 val NumParserInt2 = NumParser.map(_.toInt)  | 
   105 val NumParserInt2 = NumParser.map(_.toInt)  | 
   102   | 
   106   | 
   103   | 
   107   | 
   104 // A parser for palindromes (just returns them as string)  | 
   108 // A parser for palindromes (just returns them as string)  | 
   105 lazy val Pal : Parser[String, String] = { | 
   109 lazy val Pal : Parser[List[Token], String] = { | 
   106   (p"a" ~ Pal ~ p"a").map{ case ((x, y), z) => s"$x$y$z" } ||  | 
   110   (p"a" ~ Pal ~ p"a").map{ case ((x, y), z) => s"$x$y$z" } ||  | 
   107   (p"b" ~ Pal ~ p"b").map{ case ((x, y), z) => s"$x$y$z" } ||  | 
   111   (p"b" ~ Pal ~ p"b").map{ case ((x, y), z) => s"$x$y$z" } ||  | 
   108   p"a" || p"b" || p""  | 
   112   p"a" || p"b" || p""  | 
   109 }    | 
   113 }    | 
   110   | 
   114   |