summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-10-18 16:41:12 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-10-18 17:24:50 +0800
commitb74471ada7a82620ed5a714037d2377f15b2466e (patch)
tree130fb31b184eaf9909a8710ce5b6df2ad5c45db9
parentbcf1891fed8febfac2dbf8f7f82a97e139f5b645 (diff)
downloadmill-b74471ada7a82620ed5a714037d2377f15b2466e.tar.gz
mill-b74471ada7a82620ed5a714037d2377f15b2466e.tar.bz2
mill-b74471ada7a82620ed5a714037d2377f15b2466e.zip
bump Ammonite version
-rwxr-xr-xbuild.sc2
-rw-r--r--main/core/src/mill/util/ParseArgs.scala71
-rw-r--r--main/core/src/mill/util/Scripts.scala2
-rw-r--r--scalalib/src/mill/scalalib/Versions.scala2
-rw-r--r--scalalib/src/mill/scalalib/dependency/versions/VersionParser.scala26
-rw-r--r--scalalib/test/src/mill/scalalib/dependency/versions/VersionTests.scala5
6 files changed, 55 insertions, 53 deletions
diff --git a/build.sc b/build.sc
index bf81ffd7..0f12e33b 100755
--- a/build.sc
+++ b/build.sc
@@ -88,7 +88,7 @@ object main extends MillModule {
def ivyDeps = Agg(
// Keep synchronized with ammonite in Versions.scala
- ivy"com.lihaoyi:::ammonite:1.1.2-30-53edc31",
+ ivy"com.lihaoyi:::ammonite:1.3.0",
// Necessary so we can share the JNA classes throughout the build process
ivy"net.java.dev.jna:jna:4.5.0",
ivy"net.java.dev.jna:jna-platform:4.5.0"
diff --git a/main/core/src/mill/util/ParseArgs.scala b/main/core/src/mill/util/ParseArgs.scala
index ae3b1685..fc1a8ab3 100644
--- a/main/core/src/mill/util/ParseArgs.scala
+++ b/main/core/src/mill/util/ParseArgs.scala
@@ -1,6 +1,6 @@
package mill.util
-import fastparse.all._
+import fastparse._, NoWhitespace._
import mill.define.{Segment, Segments}
object ParseArgs {
@@ -69,41 +69,44 @@ object ParseArgs {
}
private object BraceExpansionParser {
- val plainChars =
+ def plainChars[_: P] =
P(CharsWhile(c => c != ',' && c != '{' && c != '}')).!.map(Fragment.Keep)
- val toExpand: P[Fragment] =
+ def toExpand[_: P]: P[Fragment] =
P("{" ~ braceParser.rep(1).rep(sep = ",") ~ "}").map(
x => Fragment.Expand(x.toList.map(_.toList))
)
- val braceParser = P(toExpand | plainChars)
+ def braceParser[_: P] = P(toExpand | plainChars)
+
+ def parser[_: P] = P(braceParser.rep(1).rep(sep = ",") ~ End).map { vss =>
+ def unfold(vss: List[Seq[String]]): Seq[String] = {
+ vss match {
+ case Nil => Seq("")
+ case head :: rest =>
+ for {
+ str <- head
+ r <- unfold(rest)
+ } yield
+ r match {
+ case "" => str
+ case _ => str + "," + r
+ }
+ }
+ }
- val parser = P(braceParser.rep(1).rep(sep = ",") ~ End)
+ val stringss = vss.map(x => Fragment.unfold(x.toList)).toList
+ unfold(stringss)
+ }
}
private def parseBraceExpansion(input: String) = {
- def unfold(vss: List[Seq[String]]): Seq[String] = {
- vss match {
- case Nil => Seq("")
- case head :: rest =>
- for {
- str <- head
- r <- unfold(rest)
- } yield
- r match {
- case "" => str
- case _ => str + "," + r
- }
- }
- }
- BraceExpansionParser.parser
- .map { vss =>
- val stringss = vss.map(x => Fragment.unfold(x.toList)).toList
- unfold(stringss)
- }
- .parse(input)
+
+ parse(
+ input,
+ BraceExpansionParser.parser(_)
+ )
}
def extractSegments(selectorString: String): Either[String, (Option[Segments], Segments)] =
@@ -112,23 +115,23 @@ object ParseArgs {
case Parsed.Success(selector, _) => Right(selector)
}
- private val identChars = ('a' to 'z') ++ ('A' to 'Z') ++ ('0' to '9') ++ Seq('_', '-')
- private val ident = P( CharsWhileIn(identChars) ).!
+ private def ident[_: P] = P( CharsWhileIn("a-zA-Z0-9_\\-") ).!
+ def standaloneIdent[_: P] = P(Start ~ ident ~ End )
def isLegalIdentifier(identifier: String): Boolean =
- (Start ~ ident ~ End).parse(identifier).isInstanceOf[Parsed.Success[_]]
+ parse(identifier, standaloneIdent(_)).isInstanceOf[Parsed.Success[_]]
private def parseSelector(input: String) = {
- val ident2 = P( CharsWhileIn(identChars ++ ".") ).!
- val segment = P( ident ).map( Segment.Label)
- val crossSegment = P("[" ~ ident2.rep(1, sep = ",") ~ "]").map(Segment.Cross)
- val simpleQuery = P(segment ~ ("." ~ segment | crossSegment).rep).map {
+ def ident2[_: P] = P( CharsWhileIn("a-zA-Z0-9_\\-.") ).!
+ def segment[_: P] = P( ident ).map( Segment.Label)
+ def crossSegment[_: P] = P("[" ~ ident2.rep(1, sep = ",") ~ "]").map(Segment.Cross)
+ def simpleQuery[_: P] = P(segment ~ ("." ~ segment | crossSegment).rep).map {
case (h, rest) => Segments(h :: rest.toList:_*)
}
- val query = P( simpleQuery ~ ("/" ~/ simpleQuery).?).map{
+ def query[_: P] = P( simpleQuery ~ ("/" ~/ simpleQuery).?).map{
case (q, None) => (None, q)
case (q, Some(q2)) => (Some(q), q2)
}
- query.parse(input)
+ parse(input, query(_))
}
}
diff --git a/main/core/src/mill/util/Scripts.scala b/main/core/src/mill/util/Scripts.scala
index 7dde8252..1815b6de 100644
--- a/main/core/src/mill/util/Scripts.scala
+++ b/main/core/src/mill/util/Scripts.scala
@@ -7,7 +7,7 @@ import ammonite.runtime.Evaluator.AmmoniteExit
import ammonite.util.Name.backtickWrap
import ammonite.util.Util.CodeSource
import ammonite.util.{Name, Res, Util}
-import fastparse.utils.Utils._
+import fastparse.internal.Util.literalize
import mill.util.Router.{ArgSig, EntryPoint}
/**
diff --git a/scalalib/src/mill/scalalib/Versions.scala b/scalalib/src/mill/scalalib/Versions.scala
index bfcc5495..6f1c729b 100644
--- a/scalalib/src/mill/scalalib/Versions.scala
+++ b/scalalib/src/mill/scalalib/Versions.scala
@@ -2,7 +2,7 @@ package mill.scalalib
object Versions {
// Keep synchronized with ammonite dependency in core in build.sc
- val ammonite = "1.1.2-30-53edc31"
+ val ammonite = "1.3.0"
// Keep synchronized with zinc dependency in scalalib.worker in build.sc
val zinc = "1.2.1"
}
diff --git a/scalalib/src/mill/scalalib/dependency/versions/VersionParser.scala b/scalalib/src/mill/scalalib/dependency/versions/VersionParser.scala
index d85c4276..10aebd73 100644
--- a/scalalib/src/mill/scalalib/dependency/versions/VersionParser.scala
+++ b/scalalib/src/mill/scalalib/dependency/versions/VersionParser.scala
@@ -1,30 +1,30 @@
package mill.scalalib.dependency.versions
-import fastparse.all._
+import fastparse._, NoWhitespace._
private[dependency] object VersionParser {
- private val numberParser =
- P(CharIn('0' to '9').rep(1).!.map(_.toLong))
- private val numericPartParser =
- P(numberParser ~ &(CharIn(".", "-", "+") | End)).rep(min = 1, sep = ".")
+ private def numberParser[_: P] =
+ P(CharIn("0-9").rep(1).!.map(_.toLong))
+ private def numericPartParser[_: P] =
+ P(numberParser ~ &(CharIn(".\\-+") | End)).rep(min = 1, sep = ".")
- private val tokenParser =
+ private def tokenParser[_: P] =
CharPred(c => c != '.' && c != '-' && c != '+').rep(1).!
- private val tokenPartParser =
- tokenParser.rep(sep = CharIn(".", "-"))
+ private def tokenPartParser[_: P] =
+ tokenParser.rep(sep = CharIn(".\\-"))
- private val firstPartParser =
- P(CharIn(".", "-") ~ tokenPartParser).?
+ private def firstPartParser[_: P] =
+ P(CharIn(".\\-") ~ tokenPartParser).?
- private val secondPartParser =
+ private def secondPartParser[_: P] =
P("+" ~ tokenPartParser).?
- private val versionParser =
+ private def versionParser[_: P] =
P(numericPartParser ~ firstPartParser ~ secondPartParser).map {
case (a, b, c) => (a, b.getOrElse(Seq.empty), c.getOrElse(Seq.empty))
}
def parse(text: String): Parsed[(Seq[Long], Seq[String], Seq[String])] =
- versionParser.parse(text)
+ fastparse.parse(text, versionParser(_))
}
diff --git a/scalalib/test/src/mill/scalalib/dependency/versions/VersionTests.scala b/scalalib/test/src/mill/scalalib/dependency/versions/VersionTests.scala
index 8bc1a992..b916c86f 100644
--- a/scalalib/test/src/mill/scalalib/dependency/versions/VersionTests.scala
+++ b/scalalib/test/src/mill/scalalib/dependency/versions/VersionTests.scala
@@ -29,7 +29,7 @@
package mill.scalalib.dependency.versions
import utest._
-import fastparse.core.Parsed
+import fastparse.Parsed
object VersionTests extends TestSuite {
@@ -120,8 +120,7 @@ object VersionTests extends TestSuite {
}
Symbol("parse 9.1-901-1.jdbc4") - {
assertMatch(VersionParser.parse("9.1-901-1.jdbc4")) {
- case Parsed
- .Success((Seq(9, 1), Seq("901", "1", "jdbc4"), Seq()), _) =>
+ case Parsed.Success((Seq(9, 1), Seq("901", "1", "jdbc4"), Seq()), _) =>
}
}
Symbol("parse 1.33.7+build/11.e0f985a") - {