Skip to content

Commit

Permalink
Fixed scala 2.12 and scala 3
Browse files Browse the repository at this point in the history
  • Loading branch information
j-mie6 committed Dec 19, 2022
1 parent 822538d commit 60bcf57
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 16 deletions.
4 changes: 2 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
val projectName = "parsley-cats"
val Scala213 = "2.13.10"
val Scala212 = "2.12.15"
val Scala3 = "3.1.2"
val Scala212 = "2.12.17"
val Scala3 = "3.2.1"

Global / onChangedBuildSource := ReloadOnSourceChanges

Expand Down
14 changes: 14 additions & 0 deletions core/src/main/scala-2.12/cats.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package parsley

import cats.{MonoidK, Functor}

private [parsley] trait MonoidKForParsley extends MonoidK[Parsley] {
// MonoidK
override def combineK[A](p: Parsley[A], q: Parsley[A]): Parsley[A] = p <|> q
override def empty[A]: Parsley[A] = Parsley.empty

// MonoidK Overrides
override def sum[A, B](mx: Parsley[A], my: Parsley[B])(implicit F: Functor[Parsley]): Parsley[Either[A,B]] = mx <+> my
override def combineAllK[A](ps: TraversableOnce[Parsley[A]]): Parsley[A] = combinator.choice(ps.toIterator.toSeq: _*)
override def combineAllOptionK[A](ps: TraversableOnce[Parsley[A]]): Option[Parsley[A]] = ps.toIterator.reduceRightOption(_<|>_)
}
14 changes: 14 additions & 0 deletions core/src/main/scala-2.13+/cats.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package parsley

import cats.{MonoidK, Functor}

private [parsley] trait MonoidKForParsley extends MonoidK[Parsley] {
// MonoidK
override def combineK[A](p: Parsley[A], q: Parsley[A]): Parsley[A] = p <|> q
override def empty[A]: Parsley[A] = Parsley.empty

// MonoidK Overrides
override def sum[A, B](mx: Parsley[A], my: Parsley[B])(implicit F: Functor[Parsley]): Parsley[Either[A,B]] = mx <+> my
override def combineAllK[A](ps: IterableOnce[Parsley[A]]): Parsley[A] = combinator.choice(ps.iterator.toSeq: _*)
override def combineAllOptionK[A](ps: IterableOnce[Parsley[A]]): Option[Parsley[A]] = ps.iterator.reduceRightOption(_<|>_)
}
14 changes: 2 additions & 12 deletions core/src/main/scala/parsley/cats.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import lift._

object catsinstances {
implicit val monadPlusForParsley: Monad[Parsley] with MonoidK[Parsley] with FunctorFilter[Parsley] =
new Monad[Parsley] with MonoidK[Parsley] with FunctorFilter[Parsley] {
new Monad[Parsley] with MonoidKForParsley with FunctorFilter[Parsley] {
// Monad methods
override def flatMap[A, B](mx: Parsley[A])(f: A => Parsley[B]): Parsley[B] = mx.flatMap(f)

Expand All @@ -20,11 +20,6 @@ object catsinstances {
override def unit: Parsley[Unit] = Parsley.unit
override def point[A](x: A): Parsley[A] = Parsley.pure(x)

// MonoidK
override def combineK[A](p: Parsley[A], q: Parsley[A]): Parsley[A] = p <|> q

override def empty[A]: Parsley[A] = Parsley.empty

// Functor Overrides
override def map[A, B](mx: Parsley[A])(f: A => B): Parsley[B] = mx.map(f)
override def as[A, B](mx: Parsley[A], y: B): Parsley[B] = mx #> y
Expand Down Expand Up @@ -84,15 +79,10 @@ object catsinstances {
}
override def ifElseM[A](branches: (Parsley[Boolean], Parsley[A])*)(els: Parsley[A]): Parsley[A] = {
branches.foldRight(els) {
case (cond -> t, e) => combinator.ifP(cond, t, e)
case ((cond, t), e) => combinator.ifP(cond, t, e)
}
}

// MonoidK Overrides
override def sum[A, B](mx: Parsley[A], my: Parsley[B])(implicit F: Functor[Parsley]): Parsley[Either[A,B]] = mx <+> my
override def combineAllK[A](ps: IterableOnce[Parsley[A]]): Parsley[A] = combinator.choice(ps.iterator.toSeq: _*)
override def combineAllOptionK[A](ps: IterableOnce[Parsley[A]]): Option[Parsley[A]] = ps.iterator.reduceRightOption(_<|>_)

// FunctorFilter Overrides
override def filter[A](mx: Parsley[A])(f: A => Boolean): Parsley[A] = mx.filter(f)
override def filterNot[A](mx: Parsley[A])(f: A => Boolean): Parsley[A] = mx.filterNot(f)
Expand Down
6 changes: 4 additions & 2 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.2.0")
//addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.4.8")
addSbtPlugin("com.beautiful-scala" % "sbt-scalastyle" % "1.5.1")

//addSbtPlugin("org.typelevel" % "sbt-typelevel" % "0.4.17")
addSbtPlugin("org.typelevel" % "sbt-typelevel-ci-release" % "0.4.17")
val sbtTypelevelVersion = "0.4.17"

addSbtPlugin("org.typelevel" % "sbt-typelevel" % sbtTypelevelVersion)
addSbtPlugin("org.typelevel" % "sbt-typelevel-ci-release" % sbtTypelevelVersion)
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.10.0")
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.4")

0 comments on commit 60bcf57

Please sign in to comment.