From 8183b717dd90ebeddb1797d01b66173baf88cc69 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Wed, 2 Feb 2011 22:56:11 -0500 Subject: [PATCH] session manipulation commands save, clear, list, and remove session settings --- util/complete/Parsers.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/util/complete/Parsers.scala b/util/complete/Parsers.scala index 2b8957a54..f8dee3aaa 100644 --- a/util/complete/Parsers.scala +++ b/util/complete/Parsers.scala @@ -39,9 +39,13 @@ trait Parsers lazy val Port = token(IntBasic, "") lazy val IntBasic = mapOrFail( '-'.? ~ Digit.+ )( Function.tupled(toInt) ) + lazy val NatBasic = mapOrFail( Digit.+ )( _.mkString.toInt ) private[this] def toInt(neg: Option[Char], digits: Seq[Char]): Int = (neg.toSeq ++ digits).mkString.toInt + def rep1sep[T](rep: Parser[T], sep: Parser[_]): Parser[Seq[T]] = + (rep ~ (sep ~> rep).*).map { case (x ~ xs) => x +: xs } + def mapOrFail[S,T](p: Parser[S])(f: S => T): Parser[T] = p flatMap { s => try { success(f(s)) } catch { case e: Exception => failure(e.toString) } }