A class loader that loads files from a scala.tools.nsc.io.AbstractFile
.
The start of a simpler interface for utilizing the compiler with piecemeal code strings.
A command line for the interpreter.
An implementation-agnostic completion interface which makes no reference to the jline classes.
An interface for objects which are aware of tab completion and will supply their own candidates and resolve their own paths.
This has a lot of duplication with other methods in Symbols and Types, but repl completion utility is very sensitive to precise output.
The Scala interactive shell.
Machinery for the asynchronous initialization of the repl.
An interpreter for Scala code.
Settings for the interpreter
Reads lines from an input stream
Reads from the console using JLine.
This is for name logic which is independent of the compiler (notice there's no Global.
One instance of a command buffer.
If it looks like they're pasting in a scala interpreter transcript, remove all the formatting we inserted so we can make some sense of it.
Mix this into an object and use it as a phasing swiss army knife.
A class for methods to be injected into the intp in power mode.
A layer on top of Global so I can guarantee some extra functionality for the repl.
Like ReplGlobal, a layer for ensuring extra functionality.
A class which the repl utilizes to expose predefined objects.
Reads using standard JDK API
A more principled system for turning types into strings.
Logic for turning a type into a String.
Utility methods for the Interpreter.
Files having to do with the state of a repl session: lines of text entered, types and terms defined, etc.
Convert a string into code that can recreate the string.
Convert a string into code that can recreate the string. This requires replacing all special characters by escape codes. It does not add the surrounding " marks.
The main REPL related classes and values are as follows. In addition to standard compiler classes Global and Settings, there are:
History: an interface for session history. Completion: an interface for tab completion. ILoop (formerly InterpreterLoop): The umbrella class for a session. IMain (formerly Interpreter): Handles the evolving state of the session and handles submitting code to the compiler and handling the output. InteractiveReader: how ILoop obtains input. History: an interface for session history. Completion: an interface for tab completion. Power: a repository for more advanced/experimental features.
ILoop contains { in: InteractiveReader, intp: IMain, settings: Settings, power: Power } InteractiveReader contains { history: History, completion: Completion } IMain contains { global: Global }