class Interpreter extends IMain
A compatibility stub.
- Annotations
- @deprecated
- Deprecated
(Since version 2.9.0) Use a class in the scala.tools.nsc.interpreter package.
- Source
- Interpreter.scala
- Alphabetic
- By Inheritance
- Interpreter
- IMain
- Closeable
- AutoCloseable
- PresentationCompilation
- Imports
- AnyRef
- Any
- by IMainOps
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
Type Members
-
abstract
class
PhaseDependentOps extends AnyRef
- Definition Classes
- IMain
-
class
ReadEvalPrint extends AnyRef
Here is where we:
Here is where we:
1) Read some source code, and put it in the "read" object. 2) Evaluate the read object, and put the result in the "eval" object. 3) Create a String for human consumption, and put it in the "print" object.
Read! Eval! Print! Some of that not yet centralized here.
- Definition Classes
- IMain
-
implicit
class
ReplTypeOps extends AnyRef
- Definition Classes
- IMain
-
class
Request extends AnyRef
One line of code submitted by the user for interpretation
One line of code submitted by the user for interpretation
- Definition Classes
- IMain
-
case class
ComputedImports(header: String, prepend: String, append: String, access: String) extends Product with Serializable
Compute imports that allow definitions from previous requests to be visible in a new request.
Compute imports that allow definitions from previous requests to be visible in a new request. Returns three or four pieces of related code:
0. Header code fragment that should go at the beginning of the compilation unit, specifically, import Predef.
- An initial code fragment that should go before the code of the new request.
2. A code fragment that should go after the code of the new request.
3. An access path which can be traversed to access any bindings inside code wrapped by #1 and #2 .
The argument is a set of Names that need to be imported.
Limitations: This method is not as precise as it could be. (1) It does not process wildcard imports to see what exactly they import. (2) If it imports any names from a request, it imports all of them, which is not really necessary. (3) It imports multiple same-named implicits, but only the last one imported is actually usable.
- Definition Classes
- Imports
-
abstract
class
PresentationCompileResult extends AnyRef
- Definition Classes
- PresentationCompilation
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from Interpreter to any2stringadd[Interpreter] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (Interpreter, B)
- Implicit
- This member is added by an implicit conversion from Interpreter to ArrowAssoc[Interpreter] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addUrlsToClassPath(urls: URL*): Unit
Adds all specified jars to the compile and runtime classpaths.
Adds all specified jars to the compile and runtime classpaths.
- urls
The list of items to add to the compile and runtime classpaths.
- Definition Classes
- IMain
- Note
Currently only supports jars, not directories.
-
def
allDefinedNames: List[Global.Name]
- Definition Classes
- IMain
-
def
allHandlers: collection.immutable.List[(memberHandlers)#MemberHandler]
- Definition Classes
- IMain
-
def
allImportedNames: collection.immutable.List[Global.Name]
- Definition Classes
- Imports
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
backticked(s: String): String
- Definition Classes
- IMain
-
def
beQuietDuring[T](body: ⇒ T): T
Temporarily be quiet
Temporarily be quiet
- Definition Classes
- IMain
-
def
beSilentDuring[T](operation: ⇒ T): T
- Definition Classes
- IMain
-
def
bind[T](name: String, value: T)(implicit arg0: reflect.api.JavaUniverse.TypeTag[T], arg1: ClassTag[T]): Result
- Definition Classes
- IMain
-
def
bind(p: NamedParam): Result
- Definition Classes
- IMain
-
def
bind(name: String, boundType: String, value: Any, modifiers: List[String] = Nil): Result
Bind a specified name to a specified value.
Bind a specified name to a specified value. The name may later be used by expressions passed to interpret.
A fresh
ReadEvalPrint
, which defines aline
package, is used to compile a customeval
object that wraps the bound value.If the bound value is successfully installed, then bind the name by interpreting
val name = $line42.$eval.value
.- name
the variable name to bind
- boundType
the type of the variable, as a string
- value
the object value to bind to it
- returns
an indication of whether the binding succeeded
- Definition Classes
- IMain
-
def
classLoader: AbstractFileClassLoader
- Definition Classes
- IMain
-
def
classOfTerm(id: String): Option[JClass]
- Definition Classes
- IMain
-
def
cleanMemberDecl(owner: Global.Symbol, member: Global.Name): Global.Type
- Definition Classes
- IMain
-
def
cleanTypeAfterTyper(sym: ⇒ Global.Symbol): Global.Type
- Definition Classes
- IMain
-
def
clearExecutionWrapper(): Unit
- Definition Classes
- IMain
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
close(): Unit
This instance is no longer needed, so release any resources it is using.
This instance is no longer needed, so release any resources it is using. The reporter's output gets flushed.
- Definition Classes
- IMain → Closeable → AutoCloseable
-
def
compileSources(sources: SourceFile*): Boolean
Compile an nsc SourceFile.
Compile an nsc SourceFile. Returns true if there are no compilation errors, or false otherwise.
- Definition Classes
- IMain
-
def
compileSourcesKeepingRun(sources: SourceFile*): (Boolean, Run)
- Definition Classes
- IMain
-
def
compileString(code: String): Boolean
Compile a string.
Compile a string. Returns true if there are no compilation errors, or false otherwise.
- Definition Classes
- IMain
-
def
compilerClasspath: Seq[URL]
- Definition Classes
- IMain
-
def
dealiasNonPublic(tp: Global.Type): Global.Type
- Definition Classes
- IMain
-
def
debugging[T](msg: String)(res: T): T
- Definition Classes
- IMain
-
def
definedSymbolList: collection.immutable.List[Global.Symbol]
- Definition Classes
- IMain
-
def
definedTerms: collection.immutable.List[Global.TermName]
- Definition Classes
- IMain
-
def
definedTypes: List[Global.TypeName]
- Definition Classes
- IMain
-
def
directBind[T](name: String, value: T)(implicit arg0: reflect.api.JavaUniverse.TypeTag[T], arg1: ClassTag[T]): Result
- Definition Classes
- IMain
-
def
directBind(p: NamedParam): Result
- Definition Classes
- IMain
-
def
directBind(name: String, boundType: String, value: Any): Result
- Definition Classes
- IMain
-
def
echoKind: ((tpe: _1.intp.global.Type, kind: _1.intp.global.Kind, verbose: Boolean)Unit) forSome {val _1: IMainOps}
- Implicit
- This member is added by an implicit conversion from Interpreter to IMainOps performed by method IMainOps in scala.tools.nsc.interpreter.
- Definition Classes
- IMainOps
-
def
echoTypeSignature: ((sym: _1.intp.global.Symbol, verbose: Boolean)Unit) forSome {val _1: IMainOps}
- Implicit
- This member is added by an implicit conversion from Interpreter to IMainOps performed by method IMainOps in scala.tools.nsc.interpreter.
- Definition Classes
- IMainOps
-
def
echoTypeStructure: ((sym: _1.intp.global.Symbol)Unit) forSome {val _1: IMainOps}
- Implicit
- This member is added by an implicit conversion from Interpreter to IMainOps performed by method IMainOps in scala.tools.nsc.interpreter.
- Definition Classes
- IMainOps
-
final
def
ensureClassLoader(): Unit
- Definition Classes
- IMain
-
def
ensuring(cond: (Interpreter) ⇒ Boolean, msg: ⇒ Any): Interpreter
- Implicit
- This member is added by an implicit conversion from Interpreter to Ensuring[Interpreter] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (Interpreter) ⇒ Boolean): Interpreter
- Implicit
- This member is added by an implicit conversion from Interpreter to Ensuring[Interpreter] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): Interpreter
- Implicit
- This member is added by an implicit conversion from Interpreter to Ensuring[Interpreter] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): Interpreter
- Implicit
- This member is added by an implicit conversion from Interpreter to Ensuring[Interpreter] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
executionWrapper: String
- Definition Classes
- IMain
-
def
finalize(): Unit
- Definition Classes
- IMain → AnyRef
-
def
flatPath(sym: Global.Symbol): String
- Definition Classes
- IMain
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Interpreter to StringFormat[Interpreter] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getClassIfDefined(path: String): Global.Symbol
- Definition Classes
- IMain
-
def
getModuleIfDefined(path: String): Global.Symbol
- Definition Classes
- IMain
-
lazy val
global: Global
- Definition Classes
- IMain
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
implicitSymbolsBySource: List[(Global.Symbol, List[Global.Symbol])]
- Definition Classes
- Imports
-
def
implicitsCommand(line: String): String
- Implicit
- This member is added by an implicit conversion from Interpreter to IMainOps performed by method IMainOps in scala.tools.nsc.interpreter.
- Definition Classes
- IMainOps
-
def
importHandlers: collection.immutable.List[(memberHandlers)#ImportHandler]
- Definition Classes
- IMain
-
def
importedSymbols: collection.immutable.List[Global.Symbol]
- Definition Classes
- Imports
-
def
importedSymbolsBySource: List[(Global.Symbol, List[Global.Symbol])]
Tuples of (source, imported symbols) in the order they were imported.
Tuples of (source, imported symbols) in the order they were imported.
- Definition Classes
- Imports
-
def
importedTermSymbols: collection.immutable.List[Global.TermSymbol]
- Definition Classes
- Imports
-
def
importsCode(wanted: Set[Global.Name], wrapper: Wrapper, definesClass: Boolean, generousImports: Boolean): ComputedImports
- Attributes
- protected
- Definition Classes
- Imports
-
def
initialize(postInitSignal: ⇒ Unit): Unit
- Definition Classes
- IMain
-
def
initializeSynchronous(): Unit
- Definition Classes
- IMain
-
def
interpret(line: String, synthetic: Boolean): Result
- Definition Classes
- IMain
-
def
interpret(line: String): Result
Interpret one line of input.
Interpret one line of input. All feedback, including parse errors and evaluation results, are printed via the supplied compiler's reporter. Values defined are available for future interpreted strings.
The return value is whether the line was interpreter successfully, e.g. that there were no parse errors.
- Definition Classes
- IMain
-
def
interpretSynthetic(line: String): Result
- Definition Classes
- IMain
-
val
intp: IMain
- Implicit
- This member is added by an implicit conversion from Interpreter to IMainOps performed by method IMainOps in scala.tools.nsc.interpreter.
- Definition Classes
- IMainOps
-
lazy val
isClassBased: Boolean
- Definition Classes
- IMain
-
def
isInitializeComplete: Boolean
- Definition Classes
- IMain
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
lazy val
isettings: ISettings
interpreter settings
interpreter settings
- Definition Classes
- IMain
-
def
kindCommandInternal(typeString: String, verbose: Boolean): Unit
- Implicit
- This member is added by an implicit conversion from Interpreter to IMainOps performed by method IMainOps in scala.tools.nsc.interpreter.
- Definition Classes
- IMainOps
-
def
languageSymbols: collection.immutable.List[Global.Symbol]
- Definition Classes
- Imports
-
def
languageWildcardHandlers: collection.immutable.List[(memberHandlers)#ImportHandler]
- Definition Classes
- Imports
-
def
languageWildcardSyms: List[Global.Symbol]
Symbols whose contents are language-defined to be imported.
Symbols whose contents are language-defined to be imported.
- Definition Classes
- Imports
-
def
lastRequest: Request
- Definition Classes
- IMain
-
def
lastWarnings: List[(Global.Position, String)]
- Definition Classes
- IMain
-
lazy val
memberHandlers: MemberHandlers { val intp: Interpreter.this.type }
- Definition Classes
- IMain
-
def
mostRecentVar: String
Returns the name of the most recent interpreter result.
Returns the name of the most recent interpreter result. Mostly this exists so you can conveniently invoke methods on the previous result.
- Definition Classes
- IMain
-
def
namedDefinedTerms: collection.immutable.List[Global.TermName]
- Definition Classes
- IMain
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
newCompiler(settings: Settings, reporter: Reporter): ReplGlobal
Instantiate a compiler.
Instantiate a compiler. Overridable.
- Attributes
- protected
- Definition Classes
- IMain
-
def
newPresentationCompiler(): interactive.Global
Create an instance of the presentation compiler with a classpath comprising the REPL's configured classpath and the classes output by previously compiled REPL lines.
Create an instance of the presentation compiler with a classpath comprising the REPL's configured classpath and the classes output by previously compiled REPL lines.
You may directly interact with this compiler from any thread, although you must not access it concurrently from multiple threads.
You may downcast the
reporter
toStoreReporter
to access type errors.- Definition Classes
- PresentationCompilation
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
onlyTerms(xs: List[Global.Name]): List[Global.TermName]
- Attributes
- protected
- Definition Classes
- IMain
-
def
onlyTypes(xs: List[Global.Name]): List[Global.TypeName]
- Attributes
- protected
- Definition Classes
- IMain
-
def
originalPath(sym: Global.Symbol): String
- Definition Classes
- IMain
-
def
originalPath(name: Global.Name): String
- Definition Classes
- IMain
-
def
originalPath(name: String): String
- Definition Classes
- IMain
-
val
out: JPrintWriter
- Attributes
- protected
- Definition Classes
- IMain
-
def
parentClassLoader: ClassLoader
Parent classloader.
Parent classloader. Overridable.
- Attributes
- protected
- Definition Classes
- IMain
-
var
partialInput: String
- Definition Classes
- IMain
-
def
prevRequestList: collection.immutable.List[Request]
- Definition Classes
- IMain
-
def
printAfterTyper(msg: ⇒ String): Unit
- Implicit
- This member is added by an implicit conversion from Interpreter to IMainOps performed by method IMainOps in scala.tools.nsc.interpreter.
- Definition Classes
- IMainOps
-
def
quietBind(p: NamedParam): Result
- Definition Classes
- IMain
-
def
quietRun[T](code: String): Result
- Definition Classes
- IMain
-
val
readInstanceName: String
For class based repl mode we use an .INSTANCE accessor.
For class based repl mode we use an .INSTANCE accessor.
- Definition Classes
- IMain
-
def
readRootPath(readPath: String): Global.Symbol
- Definition Classes
- IMain
-
def
rebind(p: NamedParam): Result
- Definition Classes
- IMain
-
def
recordRequest(req: Request): Unit
- Definition Classes
- IMain
-
def
replScope: Global.Scope
- Definition Classes
- IMain
-
lazy val
reporter: ReplReporter
- Definition Classes
- IMain
-
def
reset(): Unit
Reset this interpreter, forgetting all user-specified requests.
Reset this interpreter, forgetting all user-specified requests.
- Definition Classes
- IMain
-
def
resetClassLoader(): Unit
- Definition Classes
- IMain
-
def
runtimeClassAndTypeOfTerm(id: String): Option[(JClass, Global.Type)]
- Definition Classes
- IMain
-
def
runtimeMirror: Mirror
- Definition Classes
- IMain
-
def
runtimeTypeOfTerm(id: String): Global.Type
- Definition Classes
- IMain
-
def
sessionImportedSymbols: collection.immutable.List[Global.Symbol]
- Definition Classes
- Imports
-
def
sessionWildcards: List[Global.Type]
Types which have been wildcard imported, such as: val x = "abc" ; import x._ // type java.lang.String import java.lang.String._ // object java.lang.String
Types which have been wildcard imported, such as: val x = "abc" ; import x._ // type java.lang.String import java.lang.String._ // object java.lang.String
Used by tab completion.
XXX right now this gets import x._ and import java.lang.String._, but doesn't figure out import String._. There's a lot of ad hoc scope twiddling which should be swept away in favor of digging into the compiler scopes.
- Definition Classes
- Imports
-
def
setExecutionWrapper(code: String): Unit
- Definition Classes
- IMain
-
def
settings: Settings
- Definition Classes
- IMain
-
def
showCodeIfDebugging(code: String): Unit
- Definition Classes
- IMain
-
def
showDirectory(): Unit
- Definition Classes
- IMain
-
def
symbolDefString(sym: Global.Symbol): String
- Definition Classes
- IMain
-
def
symbolOfIdent(id: String): Global.Symbol
- Definition Classes
- IMain
-
def
symbolOfLine(code: String): Global.Symbol
- Definition Classes
- IMain
-
def
symbolOfName(id: Global.Name): Global.Symbol
- Definition Classes
- IMain
-
def
symbolOfTerm(id: String): Global.Symbol
- Definition Classes
- IMain
-
def
symbolOfType(id: String): Global.Symbol
- Definition Classes
- IMain
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
translateEnclosingClass(n: String): Option[String]
- Definition Classes
- IMain
-
def
translateOriginalPath(p: String): String
- Definition Classes
- IMain
-
def
translatePath(path: String): Option[String]
- Definition Classes
- IMain
-
def
translateSimpleResource(path: String): Option[String]
If path represents a class resource in the default package, see if the corresponding symbol has a class file that is a REPL artifact residing at a different resource path.
If path represents a class resource in the default package, see if the corresponding symbol has a class file that is a REPL artifact residing at a different resource path. Translate X.class to $line3/$read$$iw$$iw$X.class.
- Definition Classes
- IMain
-
def
tryTwice(op: ⇒ Global.Symbol): Global.Symbol
It's a bit of a shotgun approach, but for now we will gain in robustness.
It's a bit of a shotgun approach, but for now we will gain in robustness. Try a symbol-producing operation at phase typer, and if that is NoSymbol, try again at phase flatten. I'll be able to lose this and run only from exitingTyper as soon as I figure out exactly where a flat name is sneaking in when calculating imports.
- Definition Classes
- IMain
-
def
typeCommandInternal(expr: String, verbose: Boolean): Unit
TODO - -n normalize -l label with case class parameter names -c complete - leave nothing out
TODO - -n normalize -l label with case class parameter names -c complete - leave nothing out
- Implicit
- This member is added by an implicit conversion from Interpreter to IMainOps performed by method IMainOps in scala.tools.nsc.interpreter.
- Definition Classes
- IMainOps
-
def
typeOfExpression(expr: String, silent: Boolean = true): Global.Type
- Definition Classes
- IMain
-
def
typeOfTerm(id: String): Global.Type
- Definition Classes
- IMain
-
def
unqualifiedIds: List[String]
- Definition Classes
- IMain
-
def
valueOfTerm(id: String): Option[Any]
- Definition Classes
- IMain
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
withLabel[A](temp: String)(body: ⇒ A): A
- Definition Classes
- IMain
-
def
withoutTruncating[A](body: ⇒ A): A
- Definition Classes
- IMain
-
def
withoutUnwrapping(op: ⇒ Unit): Unit
- Definition Classes
- IMain
-
def
withoutWarnings[T](body: ⇒ T): T
- Definition Classes
- IMain
-
def
→[B](y: B): (Interpreter, B)
- Implicit
- This member is added by an implicit conversion from Interpreter to ArrowAssoc[Interpreter] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
-
object
deconstruct extends StructuredTypeStrings
- Definition Classes
- IMain
-
object
exprTyper extends ExprTyper
- Definition Classes
- IMain
-
object
flatOp extends PhaseDependentOps
- Definition Classes
- IMain
-
object
naming extends Naming
- Definition Classes
- IMain
-
object
parse
Parse a line into and return parsing result (error, incomplete or success with list of trees)
Parse a line into and return parsing result (error, incomplete or success with list of trees)
- Definition Classes
- IMain
-
object
replOutput extends ReplOutput
- Definition Classes
- IMain
-
object
typerOp extends PhaseDependentOps
- Definition Classes
- IMain
-
object
PresentationCompileResult
- Definition Classes
- PresentationCompilation
Deprecated Value Members
-
def
setContextClassLoader(): Unit
- Definition Classes
- IMain
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.0) The thread context classloader is now set and restored around execution of REPL line, this method is now a no-op.
-
def
virtualDirectory: ReplDir
- Definition Classes
- IMain
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) Use replOutput.dir instead
The Scala compiler and reflection APIs.