From 9ada439880c39a8a1484a7f10814341e8f904643 Mon Sep 17 00:00:00 2001 From: Philippe Suter <philippe.suter@gmail.com> Date: Tue, 22 Jun 2010 13:35:27 +0000 Subject: [PATCH] stub for set constraints --- project/build/funcheck.scala | 16 +++++++++++----- src/funcheck/FunCheckPlugin.scala | 2 +- src/purescala/Extensions.scala | 4 ++-- src/setconstraints/Main.scala | 14 ++++++++++++++ 4 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 src/setconstraints/Main.scala diff --git a/project/build/funcheck.scala b/project/build/funcheck.scala index d649b73b5..0ef9fb71a 100644 --- a/project/build/funcheck.scala +++ b/project/build/funcheck.scala @@ -5,12 +5,13 @@ class FunCheckProject(info: ProjectInfo) extends DefaultProject(info) with FileT override def dependencyPath = "lib" override def shouldCheckOutputDirectories = false - lazy val purescala = project(".", "PureScala Definitions", new PureScalaProject(_)) - lazy val plugin = project(".", "FunCheck Plugin", new PluginProject(_), purescala) - lazy val multisets = project(".", "Multiset Solver", new MultisetsProject(_), plugin, purescala) - lazy val orderedsets = project(".", "Ordered Sets Solver", new OrderedSetsProject(_), plugin, purescala) + lazy val purescala = project(".", "PureScala Definitions", new PureScalaProject(_)) + lazy val plugin = project(".", "FunCheck Plugin", new PluginProject(_), purescala) + lazy val multisets = project(".", "Multiset Solver", new MultisetsProject(_), plugin, purescala) + lazy val orderedsets = project(".", "Ordered Sets Solver", new OrderedSetsProject(_), plugin, purescala) + lazy val setconstraints = project(".", "Type inference with set constraints", new SetConstraintsProject(_), plugin, purescala) - lazy val extensionJars : List[Path] = multisets.jarPath :: orderedsets.jarPath :: Nil + lazy val extensionJars : List[Path] = multisets.jarPath :: orderedsets.jarPath :: setconstraints.jarPath :: Nil val scriptPath: Path = "." / "scalac-funcheck" @@ -89,4 +90,9 @@ class FunCheckProject(info: ProjectInfo) extends DefaultProject(info) with FileT override def mainScalaSourcePath = "src" / "orderedsets" override def unmanagedClasspath = super.unmanagedClasspath +++ purescala.jarPath } + class SetConstraintsProject(info: ProjectInfo) extends PersonalizedProject(info) { + override def outputPath = "bin" / "setconstraints" + override def mainScalaSourcePath = "src" / "setconstraints" + override def unmanagedClasspath = super.unmanagedClasspath +++ purescala.jarPath + } } diff --git a/src/funcheck/FunCheckPlugin.scala b/src/funcheck/FunCheckPlugin.scala index 97b266563..63ecdb8eb 100644 --- a/src/funcheck/FunCheckPlugin.scala +++ b/src/funcheck/FunCheckPlugin.scala @@ -17,7 +17,7 @@ class FunCheckPlugin(val global: Global) extends Plugin { override val optionsHelp: Option[String] = Some( " -P:funcheck:uniqid When pretty-printing funcheck trees, show identifiers IDs" + "\n" + " -P:funcheck:with-code Allows the compiler to keep running after the static analysis" + "\n" + - " -P:funcheck:extensions=ex1,... Specifies a list of qualified class names of extensions to be loaded" + " -P:funcheck:extensions=ex1:... Specifies a list of qualified class names of extensions to be loaded" ) /** Processes the command-line options. */ diff --git a/src/purescala/Extensions.scala b/src/purescala/Extensions.scala index 0a3d96c00..1ba2efa3f 100644 --- a/src/purescala/Extensions.scala +++ b/src/purescala/Extensions.scala @@ -17,14 +17,14 @@ object Extensions { abstract class Analyser(reporter: Reporter) extends Extension(reporter) { // Does whatever the analysis should. Uses the reporter to // signal results and/or errors. - def analyze(program: Program) : Unit + def analyse(program: Program) : Unit } // the following is for dynamically loading extensions type AnyClass = Class[_] def loadAll(reporter: Reporter) : Seq[Extension] = { - val allNames = Settings.extensionNames.split(':') + val allNames: Seq[String] = Settings.extensionNames.split(':').map(_.trim).filter(!_.isEmpty) if(!allNames.isEmpty) { val classLoader = Extensions.getClass.getClassLoader diff --git a/src/setconstraints/Main.scala b/src/setconstraints/Main.scala new file mode 100644 index 000000000..14ef5594d --- /dev/null +++ b/src/setconstraints/Main.scala @@ -0,0 +1,14 @@ +package setconstraints + +import purescala.Extensions._ +import purescala.Definitions._ +import purescala.Trees._ +import purescala.Reporter + +class Main(reporter: Reporter) extends Analyser(reporter) { + val description: String = "Analyser for advanced type inference based on set constraints" + + def analyse(program: Program) : Unit = { + reporter.info("Nothing to do in this analysis.") + } +} -- GitLab