Skip to content

Commit 1adbd5a

Browse files
committed
refactor: use mixins instead of exports
1 parent 7c79778 commit 1adbd5a

File tree

6 files changed

+9
-19
lines changed

6 files changed

+9
-19
lines changed

src/main/scala/io/github/kelvindev15/prolog/dsl/DSLConversions.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import io.github.kelvindev15.prolog.core.Constant.Atom
44
import io.github.kelvindev15.prolog.core.Struct.Fact
55
import io.github.kelvindev15.prolog.core.{Constant, PrologList, Struct, Term}
66

7-
object DSLConversions:
7+
trait DSLConversions:
8+
dsl: PrologDSL =>
89
given Conversion[String, Atom] = Atom(_)
910
given Conversion[AnyVal, Constant.Numeric] = Constant.Numeric(_)
1011
given Conversion[Struct, Fact] = Fact(_)

src/main/scala/io/github/kelvindev15/prolog/dsl/DSLExtensions.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import io.github.kelvindev15.prolog.core.{Goals, PrologList, Struct, Term}
66

77
import scala.annotation.targetName
88

9-
object DSLExtensions:
9+
trait DSLExtensions:
10+
dsl: PrologDSL =>
1011
extension (atom: Atom)
1112
def apply(terms: Term*): Struct = Struct(atom, terms *)
1213

src/main/scala/io/github/kelvindev15/prolog/dsl/DSLFacilities.scala

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/main/scala/io/github/kelvindev15/prolog/dsl/DSLPrologBuiltins.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ enum AssociativitySpec extends Atom:
1111
case fx, fy, xf, xfx, xfy, yfx, yfy
1212
override val value: String = toString
1313

14-
object DSLPrologBuiltins:
14+
trait DSLPrologBuiltins:
15+
dsl: PrologDSL =>
1516
export AssociativitySpec.*
1617

1718
@targetName("iff")

src/main/scala/io/github/kelvindev15/prolog/dsl/DSLVariables.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ package io.github.kelvindev15.prolog.dsl
22

33
import io.github.kelvindev15.prolog.core.Variable
44

5-
object DSLVariables:
5+
trait DSLVariables:
6+
dsl: PrologDSL =>
67
def `__`: Variable = Variable.anonymous()
78
def A: Variable = Variable("A")
89
def B: Variable = Variable("B")

src/main/scala/io/github/kelvindev15/prolog/dsl/PrologDSL.scala

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ import io.github.kelvindev15.prolog.core.{PrologList, Term, Variable}
77

88
import scala.annotation.targetName
99

10-
trait PrologDSL:
11-
export DSLFacilities.{*, given}
12-
export DSLVariables.*
10+
trait PrologDSL extends DSLPrologBuiltins with DSLExtensions with DSLVariables with DSLConversions:
1311

1412
def theory(clauses: Clause*): Theory = Theory(clauses*)
1513

0 commit comments

Comments
 (0)