Skip to content

Commit

Permalink
Merge branch 'debugger'
Browse files Browse the repository at this point in the history
  • Loading branch information
anvasi committed Oct 16, 2018
2 parents 3cbf32f + 85afcb0 commit 1438f53
Show file tree
Hide file tree
Showing 5 changed files with 668 additions and 0 deletions.
1 change: 1 addition & 0 deletions examples/src/main/resources/routes
Expand Up @@ -2,6 +2,7 @@

-> / org.combinators.cls.ide.examples.temperature.TemperatureDebugger
-> / org.combinators.cls.ide.examples.guidemo.GuiDemoDebugger
-> / org.combinators.cls.ide.examples.planning.PlanningDebugger
-> / org.combinators.cls.ide.examples.labyrinth.Labyrinth1
-> / org.combinators.cls.ide.examples.labyrinth.Labyrinth2
-> / org.combinators.cls.ide.examples.labyrinth.Labyrinth3_1
Expand Down
@@ -0,0 +1,21 @@
package org.combinators.cls.ide.examples.planning

import java.nio.file.{Path, Paths}

import org.combinators.cls.git.ResultLocation
import org.combinators.templating.persistable.Persistable

object Helpers {
// implicit val dummyResultLocation: ResultLocation = ResultLocation(Paths.get("."))
implicit val dummyPersistable: Persistable.Aux[Unit] = new Persistable {
def path(elem: Unit): Path = Paths.get(".")
def rawText(elem: Unit): Array[Byte] = Array.empty
type T = Unit
}

implicit val dummyPersistableStirng: Persistable.Aux[String] = new Persistable {
def path(elem: String): Path = Paths.get("graph.txt")
def rawText(elem: String): Array[Byte] = elem.getBytes
type T = String
}
}
@@ -0,0 +1,31 @@
package org.combinators.cls.ide.examples.planning
import javax.inject.Inject

import controllers.Assets
import org.combinators.cls.git.{EmptyResults, InhabitationController, Results}
import org.combinators.cls.ide.inhabitation.TestChannel
import org.combinators.cls.interpreter.ReflectedRepository
import org.webjars.play.WebJarsUtil
import play.api.inject.ApplicationLifecycle
import org.combinators.cls.types.syntax._
import Helpers._

class Planning @Inject()(val webJars: WebJarsUtil, val lifeCycle: ApplicationLifecycle, val assets: Assets) extends InhabitationController(webJars, lifeCycle) {
lazy val projectName = "planning"
lazy val repository = new Repository
lazy val testChannel = new TestChannel

lazy val Gamma =
ReflectedRepository(
repository, substitutionSpace = repository.kinding, classLoader = this.getClass.getClassLoader)


lazy val combinatorComponents = Gamma.combinatorComponents

lazy val jobs =
Gamma.InhabitationBatchJob[String]('PrintConstructionDrawings)
//Gamma.InhabitationBatchJob[Form]('OrderMenu)

lazy val results: Results = EmptyResults().addAll(jobs.run())
println("Results", jobs.run())
}
@@ -0,0 +1,23 @@
package org.combinators.cls.ide.examples.planning

import javax.inject.Inject
import com.github.javaparser.ast.CompilationUnit
import org.combinators.cls.ide.{Debugger, RoutingEntries}
import org.combinators.cls.types.SubtypeEnvironment


class PlanningDebugger @Inject()(planning: Planning)
extends Debugger (
planning.webJars,
planning.assets,
planning.Gamma.substitutionSpace,
SubtypeEnvironment(planning.Gamma.nativeTypeTaxonomy.addNativeType[CompilationUnit].taxonomy.merge(planning.Gamma.semanticTaxonomy).underlyingMap),
planning.jobs.targets,
planning.results.infinite,
planning.combinatorComponents,
planning.results,
planning.testChannel,
planning.projectName) with RoutingEntries {
override val controllerAddress: String = "planning"

}

0 comments on commit 1438f53

Please sign in to comment.