summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2008-01-25 15:33:18 +0000
committerMartin Odersky <odersky@gmail.com>2008-01-25 15:33:18 +0000
commit2fd65e0fd34d13c355deeea982f30dce714b6528 (patch)
tree03aa3b83d890338fe982d62fa01be802de9bb0d8 /src/library
parentbb99cc66c9006735ebf29d8f30f253408f5bc027 (diff)
downloadscala-2fd65e0fd34d13c355deeea982f30dce714b6528.tar.gz
scala-2fd65e0fd34d13c355deeea982f30dce714b6528.tar.bz2
scala-2fd65e0fd34d13c355deeea982f30dce714b6528.zip
case classes can now inherit from case classes.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/util/parsing/combinator1/Parsers.scala22
-rw-r--r--src/library/scala/util/parsing/combinator1/syntactical/TokenParsers.scala21
2 files changed, 22 insertions, 21 deletions
diff --git a/src/library/scala/util/parsing/combinator1/Parsers.scala b/src/library/scala/util/parsing/combinator1/Parsers.scala
index cef539cee6..01b16b1917 100644
--- a/src/library/scala/util/parsing/combinator1/Parsers.scala
+++ b/src/library/scala/util/parsing/combinator1/Parsers.scala
@@ -660,6 +660,28 @@ trait Parsers {
}
}
+ /** <p>
+ * A parser generator delimiting whole phrases (i.e. programs).
+ * </p>
+ * <p>
+ * <code>phrase(p)</code> succeeds if <code>p</code> succeeds and
+ * no input is left over after <code>p</code>.
+ * </p>
+ *
+ * @param p the parser that must consume all input for the resulting parser
+ * to succeed.
+ * @return a parser that has the same result as `p', but that only succeeds
+ * if <code>p</code> consumed all the input.
+ */
+ def phrase[T](p: Parser[T]) = new Parser[T] {
+ lastNoSuccess = null
+ def apply(in: Input) = p(in) match {
+ case s @ Success(out, in1) if in1.atEnd => s
+ case s @ Success(out, in1) => Failure("end of input expected", in1)
+ case f : NoSuccess => lastNoSuccess
+ }
+ }
+
case class ~[+a, +b](_1: a, _2: b) {
override def toString = "("+ _1 +" ~ "+ _2 +")"
}
diff --git a/src/library/scala/util/parsing/combinator1/syntactical/TokenParsers.scala b/src/library/scala/util/parsing/combinator1/syntactical/TokenParsers.scala
index 5cb66c5941..6668d8a37e 100644
--- a/src/library/scala/util/parsing/combinator1/syntactical/TokenParsers.scala
+++ b/src/library/scala/util/parsing/combinator1/syntactical/TokenParsers.scala
@@ -34,27 +34,6 @@ trait TokenParsers extends Parsers {
/** The input-type for these parsers*/
type Elem = lexical.Token
- /** <p>
- * A parser generator delimiting whole phrases (i.e. programs).
- * </p>
- * <p>
- * <code>phrase(p)</code> succeeds if <code>p</code> succeeds and
- * no input is left over after <code>p</code>.
- * </p>
- *
- * @param p the parser that must consume all input for the resulting parser
- * to succeed.
- * @return a parser that has the same result as `p', but that only succeeds
- * if <code>p</code> consumed all the input.
- */
- def phrase[t](p: Parser[t]) = new Parser[t] {
- lastNoSuccess = null
- def apply(in: Input) = p(in) match {
- case s @ Success(out, in1) if in1.atEnd => s
- case s @ Success(out, in1) => Failure("end of input expected", in1)
- case f : NoSuccess => lastNoSuccess
- }
- }
}