From 5f028712180184ab778e03f9cc75358fc2400d67 Mon Sep 17 00:00:00 2001 From: Philippus Date: Wed, 10 Apr 2019 21:15:15 +0200 Subject: [PATCH 1/6] Remove unneeded parens --- .../scala/scala/util/parsing/combinator/JavaTokenParsers.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/shared/src/main/scala/scala/util/parsing/combinator/JavaTokenParsers.scala b/shared/src/main/scala/scala/util/parsing/combinator/JavaTokenParsers.scala index 5051efa2..ef28944f 100644 --- a/shared/src/main/scala/scala/util/parsing/combinator/JavaTokenParsers.scala +++ b/shared/src/main/scala/scala/util/parsing/combinator/JavaTokenParsers.scala @@ -29,11 +29,10 @@ trait JavaTokenParsers extends RegexParsers { * The Java Language Spec. * Generally, this means a letter, followed by zero or more letters or numbers. */ - def ident: Parser[String] = ( + def ident: Parser[String] = "" ~> // handle whitespace rep1(acceptIf(Character.isJavaIdentifierStart)("identifier expected but '" + _ + "' found"), elem("identifier part", Character.isJavaIdentifierPart(_: Char))) ^^ (_.mkString) - ) /** An integer, without sign or with a negative sign. */ def wholeNumber: Parser[String] = From 7a599b7751f21d8478b4285c713a8b2a7cc07d36 Mon Sep 17 00:00:00 2001 From: Philippus Date: Wed, 10 Apr 2019 21:15:52 +0200 Subject: [PATCH 2/6] Remove unneeded case keyword --- .../scala/util/parsing/combinator/lexical/StdLexical.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/src/main/scala/scala/util/parsing/combinator/lexical/StdLexical.scala b/shared/src/main/scala/scala/util/parsing/combinator/lexical/StdLexical.scala index a41ec8d1..841399c9 100644 --- a/shared/src/main/scala/scala/util/parsing/combinator/lexical/StdLexical.scala +++ b/shared/src/main/scala/scala/util/parsing/combinator/lexical/StdLexical.scala @@ -63,8 +63,8 @@ class StdLexical extends Lexical with StdTokens { ) protected def comment: Parser[Any] = ( - rep (chrExcept (EofCh, '*')) ~ '*' ~ '/' ^^ { case _ => ' ' } - | rep (chrExcept (EofCh, '*')) ~ '*' ~ comment ^^ { case _ => ' ' } + rep (chrExcept (EofCh, '*')) ~ '*' ~ '/' ^^ { _ => ' ' } + | rep (chrExcept (EofCh, '*')) ~ '*' ~ comment ^^ { _ => ' ' } ) /** The set of reserved identifiers: these will be returned as `Keyword`s. */ From ff3033435de5c6c7dbdcf37c9cd329fee3dad92b Mon Sep 17 00:00:00 2001 From: Philippus Date: Wed, 10 Apr 2019 21:16:48 +0200 Subject: [PATCH 3/6] Remove unneeded new keyword --- .../main/scala/scala/util/parsing/combinator/token/Tokens.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/src/main/scala/scala/util/parsing/combinator/token/Tokens.scala b/shared/src/main/scala/scala/util/parsing/combinator/token/Tokens.scala index 0bbecbb4..e14b16d4 100644 --- a/shared/src/main/scala/scala/util/parsing/combinator/token/Tokens.scala +++ b/shared/src/main/scala/scala/util/parsing/combinator/token/Tokens.scala @@ -43,5 +43,5 @@ trait Tokens { } /** This token is produced by a scanner `Scanner` when scanning failed. */ - def errorToken(msg: String): Token = new ErrorToken(msg) + def errorToken(msg: String): Token = ErrorToken(msg) } From 1d6158556ea95006ee907f7ccc097d79fae878cc Mon Sep 17 00:00:00 2001 From: Philippus Date: Wed, 10 Apr 2019 21:20:58 +0200 Subject: [PATCH 4/6] Replace LaTeX-style quotations --- .../main/scala/scala/util/parsing/combinator/token/Tokens.scala | 2 +- .../main/scala/scala/util/parsing/input/OffsetPosition.scala | 2 +- shared/src/main/scala/scala/util/parsing/input/Position.scala | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/shared/src/main/scala/scala/util/parsing/combinator/token/Tokens.scala b/shared/src/main/scala/scala/util/parsing/combinator/token/Tokens.scala index e14b16d4..252a6496 100644 --- a/shared/src/main/scala/scala/util/parsing/combinator/token/Tokens.scala +++ b/shared/src/main/scala/scala/util/parsing/combinator/token/Tokens.scala @@ -22,7 +22,7 @@ package token * @author Adriaan Moors */ trait Tokens { - /** Objects of this type are produced by a lexical parser or ``scanner'', and consumed by a parser. + /** Objects of this type are produced by a lexical parser or ``scanner``, and consumed by a parser. * * @see [[scala.util.parsing.combinator.syntactical.TokenParsers]] */ diff --git a/shared/src/main/scala/scala/util/parsing/input/OffsetPosition.scala b/shared/src/main/scala/scala/util/parsing/input/OffsetPosition.scala index d3801281..455d3caa 100644 --- a/shared/src/main/scala/scala/util/parsing/input/OffsetPosition.scala +++ b/shared/src/main/scala/scala/util/parsing/input/OffsetPosition.scala @@ -16,7 +16,7 @@ package util.parsing.input import scala.collection.mutable.ArrayBuffer /** `OffsetPosition` is a standard class for positions - * represented as offsets into a source ``document''. + * represented as offsets into a source ``document``. * * @param source The source document * @param offset The offset indicating the position diff --git a/shared/src/main/scala/scala/util/parsing/input/Position.scala b/shared/src/main/scala/scala/util/parsing/input/Position.scala index 8665c291..9987e1f5 100644 --- a/shared/src/main/scala/scala/util/parsing/input/Position.scala +++ b/shared/src/main/scala/scala/util/parsing/input/Position.scala @@ -39,7 +39,7 @@ trait Position { /** Returns a string representation of the `Position`, of the form `line.column`. */ override def toString = ""+line+"."+column - /** Returns a more ``visual'' representation of this position. + /** Returns a more ``visual`` representation of this position. * More precisely, the resulting string consists of two lines: * 1. the line in the document referred to by this position * 2. a caret indicating the column From 0cba2f91bbf352fa009df4236349a6b5e0dca5b8 Mon Sep 17 00:00:00 2001 From: Philippus Date: Wed, 10 Apr 2019 21:55:28 +0200 Subject: [PATCH 5/6] Calculate mid more safely --- .../main/scala/scala/util/parsing/input/OffsetPosition.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/src/main/scala/scala/util/parsing/input/OffsetPosition.scala b/shared/src/main/scala/scala/util/parsing/input/OffsetPosition.scala index 455d3caa..ab0aed22 100644 --- a/shared/src/main/scala/scala/util/parsing/input/OffsetPosition.scala +++ b/shared/src/main/scala/scala/util/parsing/input/OffsetPosition.scala @@ -53,7 +53,7 @@ case class OffsetPosition(source: CharSequence, offset: Int) extends Position { var lo = 0 var hi = index.length - 1 while (lo + 1 < hi) { - val mid = (hi + lo) / 2 + val mid = lo + ((hi - lo) / 2) if (offset < index(mid)) hi = mid else lo = mid } From f73617409dbc4c6d19f13fbd7944512840da7b1c Mon Sep 17 00:00:00 2001 From: Philippus Date: Wed, 10 Apr 2019 22:07:11 +0200 Subject: [PATCH 6/6] Remove test, left-over work from #108 --- .../scala/util/parsing/combinator/t9010.scala | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 jvm/src/test/scala/scala/util/parsing/combinator/t9010.scala diff --git a/jvm/src/test/scala/scala/util/parsing/combinator/t9010.scala b/jvm/src/test/scala/scala/util/parsing/combinator/t9010.scala deleted file mode 100644 index 38ccdbfa..00000000 --- a/jvm/src/test/scala/scala/util/parsing/combinator/t9010.scala +++ /dev/null @@ -1,28 +0,0 @@ -import scala.util.parsing.combinator._ -import scala.util.DynamicVariable - -import org.junit.Test - -class t9010 { - @Test - def test: Unit = { - val p = new grammar - import p._ - - val res1 = parse(x, "x") - assert(res1.successful) - - val res2 = parse(x, "y") - assert(!res2.successful) - - val res3 = parseAll(x, "x") - assert(res3.successful) - - val res4 = parseAll(x, "y") - assert(!res4.successful) - } - - private final class grammar extends RegexParsers { - val x: Parser[String] = "x" - } -}