Skip to content

Commit 20e3404

Browse files
authored
Merge pull request #11 from wolfendale/scala-3
Cross build for Scala 3
2 parents 93697f1 + 4f4e3ac commit 20e3404

File tree

8 files changed

+39
-31
lines changed

8 files changed

+39
-31
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
A library for creating [scalacheck](https://www.scalacheck.org/) generators from regular expressions
44

5-
Cross-built for Scala 2.11/2.12/2.13
5+
Cross-built for Scala 2.12/2.13/3.2
66

77
##### Installation
88

build.sbt

+10-6
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,17 @@ lazy val root = (project in file("."))
1010
publishMavenStyle := true,
1111
publishTo := sonatypePublishToBundle.value,
1212
sonatypeCredentialHost := "s01.oss.sonatype.org",
13-
version := "0.1.3",
14-
crossScalaVersions := Seq("2.11.12", "2.12.10", "2.13.5"),
13+
version := "1.0.0",
14+
crossScalaVersions := Seq("2.12.16", "2.13.8", "3.1.0"),
15+
scalacOptions ++= Seq(
16+
"-Xfatal-warnings"
17+
),
1518
libraryDependencies ++= Seq(
16-
"org.scalacheck" %% "scalacheck" % "1.14.2" % "provided",
17-
"org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2",
18-
"org.scalactic" %% "scalactic" % "3.0.8" % "test",
19-
"org.scalatest" %% "scalatest" % "3.0.8" % "test"
19+
"org.scalacheck" %% "scalacheck" % "1.17.0" % "provided",
20+
"org.scala-lang.modules" %% "scala-parser-combinators" % "2.1.1",
21+
"org.scalactic" %% "scalactic" % "3.2.13" % "test",
22+
"org.scalatest" %% "scalatest" % "3.2.13" % "test",
23+
"org.scalatestplus" %% "scalacheck-1-16" % "3.2.13.0" % "test"
2024
)
2125
)
2226

project/build.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sbt.version = 1.5.1
1+
sbt.version = 1.7.1

src/main/scala/wolfendale/scalacheck/regexp/GenParser.scala

+8-8
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ object GenParser extends RegexParsers with PackratParsers {
2626
}
2727

2828
// quantifiers
29-
val optional = expression0 <~ "?" ^^ { splitLiteral(_, Optional) }
30-
val oneOrMore = expression0 <~ "+" ^^ { splitLiteral(_, OneOrMore) }
31-
val zeroOrMore = expression0 <~ "*" ^^ { splitLiteral(_, ZeroOrMore) }
29+
val optional = expression0 <~ "?" ^^ { splitLiteral(_, Optional.apply) }
30+
val oneOrMore = expression0 <~ "+" ^^ { splitLiteral(_, OneOrMore.apply) }
31+
val zeroOrMore = expression0 <~ "*" ^^ { splitLiteral(_, ZeroOrMore.apply) }
3232

3333
val rangeFrom = expression0 ~ ("{" ~> int <~ ",}") ^^ {
3434
case expr ~ min =>
@@ -58,8 +58,8 @@ object GenParser extends RegexParsers with PackratParsers {
5858

5959
lazy val group: PackratParser[RegularExpression] = {
6060

61-
lazy val nonCapturingGroup = "(?:" ~> expression <~ ")" ^^ NonCapturingGroup
62-
lazy val capturingGroup = "(" ~> expression <~ ")" ^^ Group
61+
lazy val nonCapturingGroup = "(?:" ~> expression <~ ")" ^^ NonCapturingGroup.apply
62+
lazy val capturingGroup = "(" ~> expression <~ ")" ^^ Group.apply
6363

6464
capturingGroup | nonCapturingGroup
6565
}
@@ -77,15 +77,15 @@ object GenParser extends RegexParsers with PackratParsers {
7777
}
7878

7979
lazy val lowerAlphaRange: Parser[CharacterClass.Term] = {
80-
val c = "[a-z]".r ^^ { _.apply(0) }
80+
val c = "[a-z]".r ^^ { _.charAt(0) }
8181
c ~ ("-" ~> c) ^^ {
8282
case min ~ max =>
8383
CharacterClass.CharRange(min, max)
8484
}
8585
}
8686

8787
lazy val upperAlphaRange: Parser[CharacterClass.Term] = {
88-
val c = "[A-Z]".r ^^ { _.apply(0) }
88+
val c = "[A-Z]".r ^^ { _.charAt(0) }
8989
c ~ ("-" ~> c) ^^ {
9090
case min ~ max =>
9191
CharacterClass.CharRange(min, max)
@@ -100,7 +100,7 @@ object GenParser extends RegexParsers with PackratParsers {
100100
lazy val char: Parser[CharacterClass.Term] = {
101101
val normalChars = "[^\\]\\\\]".r
102102
val meta = "\\" | "]" | "-"
103-
(("\\" ~> meta) | normalChars | "\\" ~> normalChars) ^^ CharacterClass.Literal
103+
(("\\" ~> meta) | normalChars | "\\" ~> normalChars) ^^ CharacterClass.Literal.apply
104104
}
105105

106106
lazy val characterClassTerm: Parser[CharacterClass.Term] =

src/test/scala/wolfendale/scalacheck/regexp/ASTProcessorSpec.scala

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package wolfendale.scalacheck.regexp
22

33
import org.scalacheck.Gen
4-
import org.scalatest.prop.PropertyChecks
5-
import org.scalatest.{MustMatchers, WordSpec}
6-
import ast._
4+
import org.scalatest.matchers.must.Matchers
5+
import org.scalatest.wordspec.AnyWordSpec
6+
import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks
7+
import wolfendale.scalacheck.regexp.ast._
78

8-
class ASTProcessorSpec extends WordSpec with MustMatchers with PropertyChecks {
9+
class ASTProcessorSpec extends AnyWordSpec with Matchers with ScalaCheckPropertyChecks {
910

1011
".apply" must {
1112

src/test/scala/wolfendale/scalacheck/regexp/GenParserSpec.scala

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package wolfendale.scalacheck.regexp
22

33
import org.scalacheck.{Gen, Shrink}
4-
import org.scalatest.prop.PropertyChecks
5-
import org.scalatest.{MustMatchers, WordSpec}
6-
import ast._
4+
import org.scalatest.matchers.must.Matchers
5+
import org.scalatest.wordspec.AnyWordSpec
6+
import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks
7+
import wolfendale.scalacheck.regexp.ast._
78

8-
class GenParserSpec extends WordSpec with MustMatchers with PropertyChecks {
9+
class GenParserSpec extends AnyWordSpec with Matchers with ScalaCheckPropertyChecks {
910

1011
implicit val noShrinkString: Shrink[String] = Shrink.shrinkAny
1112
implicit def noShrinkSeq[A]: Shrink[Seq[A]] = Shrink.shrinkAny

src/test/scala/wolfendale/scalacheck/regexp/RegexpGenSpec.scala

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package wolfendale.scalacheck.regexp
22

33
import org.scalacheck.{Arbitrary, Gen, Shrink}
4-
import org.scalatest.prop.PropertyChecks
5-
import org.scalatest.{MustMatchers, WordSpec}
4+
import org.scalatest.matchers.must.Matchers
5+
import org.scalatest.wordspec.AnyWordSpec
6+
import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks
67

7-
class RegexpGenSpec extends WordSpec with MustMatchers with PropertyChecks {
8+
class RegexpGenSpec extends AnyWordSpec with Matchers with ScalaCheckPropertyChecks {
89

910
implicit val arbChar: Arbitrary[Char] = Arbitrary(Gen.alphaNumChar)
1011
implicit val noShrinkString: Shrink[String] = Shrink.shrinkAny

src/test/scala/wolfendale/scalacheck/regexp/data/GroupSpec.scala

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package wolfendale.scalacheck.regexp.data
22

33
import org.scalacheck.Gen
4-
import org.scalatest.prop.PropertyChecks
5-
import org.scalatest.{MustMatchers, WordSpec}
4+
import org.scalatest.matchers.must.Matchers
5+
import org.scalatest.wordspec.AnyWordSpec
6+
import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks
67
import wolfendale.scalacheck.regexp.data.Group._
78

8-
object Iso extends MustMatchers {
9+
object Iso extends Matchers {
910
implicit class IsoOps[A](val left: Group[A]) extends AnyVal {
1011
def mustBeIsoTo(right: Group[A]): Unit =
1112
values(left) mustBe values(right)
@@ -18,7 +19,7 @@ object Iso extends MustMatchers {
1819
}
1920
}
2021

21-
class GroupSpec extends WordSpec with MustMatchers with PropertyChecks {
22+
class GroupSpec extends AnyWordSpec with Matchers with ScalaCheckPropertyChecks {
2223

2324
import Iso._
2425

0 commit comments

Comments
 (0)