diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2008-07-15 17:02:57 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2008-07-15 17:02:57 +0000 |
commit | 0a49cecf826a215cdccdc4b8fb7e568aa7d2730f (patch) | |
tree | dcf053ba35029704d42d18b175098ac2fc64decc /src | |
parent | aa3d38d9a08f89c0f9ce21f25982b652bc86c20a (diff) | |
download | scala-0a49cecf826a215cdccdc4b8fb7e568aa7d2730f.tar.gz scala-0a49cecf826a215cdccdc4b8fb7e568aa7d2730f.tar.bz2 scala-0a49cecf826a215cdccdc4b8fb7e568aa7d2730f.zip |
fixed #1100
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/util/parsing/combinator/Parsers.scala | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/library/scala/util/parsing/combinator/Parsers.scala b/src/library/scala/util/parsing/combinator/Parsers.scala index 1061b85ac8..04e4fa432a 100644 --- a/src/library/scala/util/parsing/combinator/Parsers.scala +++ b/src/library/scala/util/parsing/combinator/Parsers.scala @@ -596,13 +596,17 @@ trait Parsers { // assert(res.isInstanceOf[NoSuccess]) - if (!xs.isEmpty) { - // the next parser should start parsing where p failed, - // since `!p(in).successful', the next input to be consumed is `in' - Success(xs.toList, in) // TODO: I don't think in == res.next holds - } - else { - Failure(res.asInstanceOf[NoSuccess].msg, in0) + res match { + case e: Error => e + case _ => + if (!xs.isEmpty) { + // the next parser should start parsing where p failed, + // since `!p(in).successful', the next input to be consumed is `in' + Success(xs.toList, in) // TODO: I don't think in == res.next holds + } + else { + Failure(res.asInstanceOf[NoSuccess].msg, in0) + } } } |