aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/Resident.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/Resident.scala')
-rw-r--r--src/dotty/tools/dotc/Resident.scala58
1 files changed, 0 insertions, 58 deletions
diff --git a/src/dotty/tools/dotc/Resident.scala b/src/dotty/tools/dotc/Resident.scala
deleted file mode 100644
index 56f6684d0..000000000
--- a/src/dotty/tools/dotc/Resident.scala
+++ /dev/null
@@ -1,58 +0,0 @@
-package dotty.tools
-package dotc
-
-import core.Contexts.Context
-import reporting.Reporter
-import java.io.EOFException
-import scala.annotation.tailrec
-
-/** A compiler which stays resident between runs. This is more of a PoC than
- * something that's expected to be used often
- *
- * Usage:
- *
- * > scala dotty.tools.dotc.Resident <options> <initial files>
- *
- * dotc> "more options and files to compile"
- *
- * ...
- *
- * dotc> :reset // reset all options to the ones passed on the command line
- *
- * ...
- *
- * dotc> :q // quit
- */
-class Resident extends Driver {
-
- object residentCompiler extends Compiler
-
- override def newCompiler(implicit ctx: Context): Compiler = ???
-
- override def sourcesRequired = false
-
- private val quit = ":q"
- private val reset = ":reset"
- private val prompt = "dotc> "
-
- private def getLine() = {
- Console.print(prompt)
- try scala.io.StdIn.readLine() catch { case _: EOFException => quit }
- }
-
- final override def process(args: Array[String], rootCtx: Context): Reporter = {
- @tailrec def loop(args: Array[String], prevCtx: Context): Reporter = {
- var (fileNames, ctx) = setup(args, prevCtx)
- doCompile(residentCompiler, fileNames)(ctx)
- var nextCtx = ctx
- var line = getLine()
- while (line == reset) {
- nextCtx = rootCtx
- line = getLine()
- }
- if (line.startsWith(quit)) ctx.reporter
- else loop(line split "\\s+", nextCtx)
- }
- loop(args, rootCtx)
- }
-}