c

scala.tools.nsc.interpreter

ScriptedInterpreter

class ScriptedInterpreter extends IMain with ScriptedRepl

Source
Scripted.scala
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ScriptedInterpreter
  2. ScriptedRepl
  3. IMain
  4. Closeable
  5. AutoCloseable
  6. PresentationCompilation
  7. Imports
  8. Repl
  9. ReplCore
  10. AnyRef
  11. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new ScriptedInterpreter(initialSettings: Settings, reporter: ReplReporter, importContextPreamble: (Set[String]) => ImportContextPreamble)

Type Members

  1. abstract class PhaseDependentOps extends AnyRef
    Definition Classes
    IMain
  2. 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
  3. implicit class ReplTypeOps extends AnyRef
    Definition Classes
    IMain
  4. class Request extends ReplRequest

    One line of code submitted by the user for interpretation

    One line of code submitted by the user for interpretation

    Definition Classes
    IMain
  5. 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.

    1. 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
  6. abstract class PresentationCompileResult extends PresentationCompilationResult
    Definition Classes
    PresentationCompilation
  7. type Setting = Settings.Setting
    Definition Classes
    Repl

Value Members

  1. object deconstruct extends StructuredTypeStrings
    Definition Classes
    IMain
  2. object exprTyper extends ExprTyper
    Definition Classes
    IMain
  3. object flatOp extends PhaseDependentOps
    Definition Classes
    IMain
  4. object naming extends Naming
    Definition Classes
    IMain
  5. object replOutput extends ReplOutput
    Definition Classes
    IMain
  6. object typerOp extends PhaseDependentOps
    Definition Classes
    IMain
  7. def addBackReferences(req: Request): Either[String, Request]
    Definition Classes
    ScriptedInterpreterScriptedRepl
  8. 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
    IMainRepl
    Note

    Currently only supports jars, not directories.

  9. def allDefinedNames: List[Global.Name]
    Definition Classes
    IMain
  10. def allHandlers: collection.immutable.List[(memberHandlers)#MemberHandler]
    Definition Classes
    IMain
  11. def backticked(s: String): String
    Definition Classes
    IMain
  12. final def beQuietDuring(body: => Unit): Unit

    The reporter will not print results during execution of body.

    The reporter will not print results during execution of body.

    Definition Classes
    ReplReplCore
  13. def bind[T](name: String, value: T)(implicit arg0: reflect.api.JavaUniverse.TypeTag[T], arg1: ClassTag[T]): Result
    Definition Classes
    IMain
  14. def bind(p: NamedParam): Result
    Definition Classes
    IMainRepl
  15. 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 a line package, is used to compile a custom eval 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
    IMainReplCore
  16. def bindValue(name: String, value: Any): Result

    Bind a specified name to a specified value.

    Bind a specified name to a specified value. The type is derived from the run-time class of the value.

    Definition Classes
    ReplCore
  17. def call(name: String, args: Any*): Either[Throwable, AnyRef]
    Definition Classes
    ScriptedInterpreterScriptedRepl
  18. def classLoader: AbstractFileClassLoader
    Definition Classes
    IMainRepl
  19. def classOfTerm(id: String): Option[Class[_]]
    Definition Classes
    IMain
  20. def classPathString: String
    Definition Classes
    IMainRepl
  21. def cleanMemberDecl(owner: Global.Symbol, member: Global.Name): Global.Type
    Definition Classes
    IMain
  22. def cleanTypeAfterTyper(sym: => Global.Symbol): Global.Type
    Definition Classes
    IMain
  23. def clearExecutionWrapper(): Unit
    Definition Classes
    IMainRepl
  24. 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 → Repl
  25. def compile(code: String): Boolean
    Definition Classes
    ScriptedInterpreterScriptedRepl
  26. def compile(line: String, synthetic: Boolean, fatally: Boolean): Either[Result, Request]
    Definition Classes
    IMain
  27. def compile(line: String, synthetic: Boolean): Either[Result, Request]
    Definition Classes
    IMain
  28. 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
    IMainRepl
  29. def compileSourcesKeepingRun(sources: SourceFile*): (Boolean, Run)
    Definition Classes
    IMain
  30. def compileString(code: String): Boolean

    Compile a string.

    Compile a string. Returns true if there are no compilation errors, or false otherwise.

    Definition Classes
    IMainRepl
  31. def compilerClasspath: Seq[URL]
    Definition Classes
    IMainRepl
  32. def dealiasNonPublic(tp: Global.Type): Global.Type
    Definition Classes
    IMain
  33. def debugging[T](msg: String)(res: T): T
    Definition Classes
    IMain
  34. def definedSymbolList: collection.immutable.List[Global.Symbol]
    Definition Classes
    IMain
  35. def definedTerms: collection.immutable.List[Global.TermName]
    Definition Classes
    IMain
  36. def definedTypes: List[String]
    Definition Classes
    IMainRepl
  37. def directBind[T](name: String, value: T)(implicit arg0: reflect.api.JavaUniverse.TypeTag[T], arg1: ClassTag[T]): Result
    Definition Classes
    IMain
  38. def directBind(p: NamedParam): Result
    Definition Classes
    IMain
  39. def directBind(name: String, boundType: String, value: Any): Result
    Definition Classes
    IMain
  40. final def ensureClassLoader(): Unit
    Definition Classes
    IMain
  41. def evalName: String
    Definition Classes
    ScriptedInterpreterScriptedRepl
  42. def evalPath: String
    Definition Classes
    ScriptedInterpreterScriptedRepl
  43. def executionWrapper: String
    Definition Classes
    IMain
  44. def finalize(): Unit
    Definition Classes
    IMain → AnyRef
  45. def flatPath(sym: Global.Symbol): String
    Definition Classes
    IMain
  46. def getClassIfDefined(path: String): Global.Symbol
    Definition Classes
    IMain
  47. def getModuleIfDefined(path: String): Global.Symbol
    Definition Classes
    IMain
  48. lazy val global: Global
    Definition Classes
    IMain
  49. def implicitSymbolsBySource: List[(Global.Symbol, List[Global.Symbol])]
    Definition Classes
    Imports
  50. def implicitsCommandInternal(line: String): (List[String], String)
    Definition Classes
    IMainRepl
  51. def importHandlers: collection.immutable.List[(memberHandlers)#ImportHandler]
    Definition Classes
    IMain
  52. def importsCommandInternal(tokens: List[String]): List[String]
    Definition Classes
    IMainRepl
  53. def initializeCompiler(): Boolean
    Definition Classes
    IMainRepl
  54. def initializeComplete: Boolean
    Definition Classes
    IMainRepl
  55. def interpret(line: String, synthetic: Boolean): Result
    Definition Classes
    IMainRepl
  56. 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 interpreted successfully, e.g. that there were no parse errors.

    Definition Classes
    IMainReplCore
  57. def interpretFinally(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 interpreted successfully, e.g. that there were no parse errors.

    Definition Classes
    IMainRepl
  58. def interpretSynthetic(line: String): Result
    Definition Classes
    IMain
  59. lazy val isClassBased: Boolean
    Definition Classes
    IMain
  60. def isPackaged(line: String): Boolean

    Does code start with a package definition?

    Does code start with a package definition?

    Definition Classes
    IMainRepl
  61. def kindCommandInternal(typeString: String, verbose: Boolean): String
    Definition Classes
    IMainRepl
  62. def languageWildcardHandlers: collection.immutable.List[(memberHandlers)#ImportHandler]
    Definition Classes
    Imports
  63. def lastRequest: Request
    Definition Classes
    IMain
  64. def lastWarnings: List[(Global.Position, String)]
    Definition Classes
    IMainRepl
  65. lazy val memberHandlers: MemberHandlers { val intp: ScriptedInterpreter.this.type }
    Definition Classes
    IMain
  66. 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
    IMainRepl
  67. def nameToCode(s: String): String
    Definition Classes
    IMain
  68. def namedDefinedTerms: List[String]
    Definition Classes
    IMainRepl
  69. def namedParam[T](name: String, value: T)(implicit arg0: reflect.api.JavaUniverse.TypeTag[T], arg1: ClassTag[T]): NamedParam
    Definition Classes
    IMainRepl
  70. 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 to StoreReporter to access type errors.

    Definition Classes
    PresentationCompilation
  71. def originalPath(sym: Global.Symbol): String
    Definition Classes
    IMain
  72. def originalPath(name: Global.Name): String
    Definition Classes
    IMain
  73. def originalPath(name: String): String
    Definition Classes
    IMainRepl
  74. def outputDir: ReplDir
    Definition Classes
    IMainRepl
  75. def parse(line: String, fatally: Boolean): Either[Result, (List[Global.Tree], Global.Position)]
    Definition Classes
    IMain
  76. def parse(line: String): Either[Result, (List[Global.Tree], Global.Position)]

    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
  77. def parseString(line: String): Result

    TODO resolve scan, parse, compile, interpret, which just indicate how much work to do.

    TODO resolve scan, parse, compile, interpret, which just indicate how much work to do.

    Definition Classes
    IMainRepl
  78. lazy val power: Power[StdReplVals]
    Definition Classes
    IMainRepl
  79. def presentationCompile(cursor: Int, buf: String): Either[Result, PresentationCompilationResult]

    Typecheck a line of REPL input, suitably wrapped with "interpreter wrapper" objects/classes, with the presentation compiler.

    Typecheck a line of REPL input, suitably wrapped with "interpreter wrapper" objects/classes, with the presentation compiler. The result of this method gives access to the typechecked tree and to autocompletion suggestions.

    The caller is responsible for calling PresentationCompileResult#cleanup to dispose of the compiler instance.

    Definition Classes
    PresentationCompilation
  80. def prevRequestList: collection.immutable.List[Request]
    Definition Classes
    IMain
  81. def quietBind(p: NamedParam): Result
    Definition Classes
    IMainRepl
  82. def quietRun(code: String): Result
    Definition Classes
    IMainRepl
  83. val readInstanceName: String
    Definition Classes
    IMain
  84. def readRootPath(readPath: String): Global.Symbol
    Definition Classes
    IMain
  85. def rebind(p: NamedParam): Result
    Definition Classes
    IMain
  86. def recordRequest(req: Request): Unit
    Definition Classes
    IMain
  87. def replScope: Global.Scope
    Definition Classes
    IMain
  88. def replStrings: ReplStrings
    Definition Classes
    IMain
  89. val reporter: ReplReporter
    Definition Classes
    IMainRepl
  90. def requestDefining(name: String): Option[Request]
    Definition Classes
    IMainRepl
  91. def reset(): Unit

    Reset this interpreter, forgetting all user-specified requests.

    Reset this interpreter, forgetting all user-specified requests.

    Definition Classes
    IMainRepl
  92. def resetClassLoader(): Unit
    Definition Classes
    IMain
  93. def runtimeClassAndTypeOfTerm(id: String): Option[(Class[_], Global.Type)]
    Definition Classes
    IMain
  94. def runtimeMirror: Mirror
    Definition Classes
    IMain
  95. def runtimeTypeOfTerm(id: String): Global.Type
    Definition Classes
    IMain
  96. def setExecutionWrapper(code: String): Unit
    Definition Classes
    IMainRepl
  97. val settings: Settings
    Definition Classes
    IMainRepl
  98. def showDirectory: String
    Definition Classes
    IMainRepl
  99. def symbolDefString(sym: Global.Symbol): String
    Definition Classes
    IMain
  100. def symbolOfIdent(id: String): Global.Symbol
    Definition Classes
    IMain
  101. def symbolOfLine(code: String): Global.Symbol
    Definition Classes
    IMain
  102. def symbolOfName(id: Global.Name): Global.Symbol
    Definition Classes
    IMain
  103. def symbolOfTerm(id: String): Global.Symbol
    Definition Classes
    IMain
  104. def symbolOfType(id: String): Global.Symbol
    Definition Classes
    IMain
  105. def tokenize(line: String): List[TokenData]
    Definition Classes
    IMainRepl
  106. def translateEnclosingClass(n: String): Option[String]
    Definition Classes
    IMainRepl
  107. def translateOriginalPath(p: String): String
    Definition Classes
    IMain
  108. def translatePath(path: String): Option[String]
    Definition Classes
    IMainRepl
  109. 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
  110. 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
  111. def typeCommandInternal(expr: String, verbose: Boolean): (String, String)

    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

    Definition Classes
    IMainRepl
  112. def typeOfExpression(expr: String, silent: Boolean = true): Global.Type
    Definition Classes
    IMain
  113. def typeOfTerm(id: String): Global.Type
    Definition Classes
    IMain
  114. def typeToCode(s: String): String
    Definition Classes
    IMain
  115. def unqualifiedIds: List[String]
    Definition Classes
    IMain
  116. def updateSettings(arguments: List[String]): Boolean
    Definition Classes
    IMainRepl
  117. def userSetSettings: List[Setting]
    Definition Classes
    IMainRepl
  118. def valueOfTerm(id: String): Option[Any]
    Definition Classes
    IMainRepl
  119. def visibleSettings: List[Setting]
    Definition Classes
    IMainRepl
  120. def withLabel[A](temp: String)(body: => A): A
    Definition Classes
    IMainRepl
  121. def withSuppressedSettings(body: => Unit): Unit
    Definition Classes
    IMainRepl
  122. def withoutWarnings[T](body: => T): T
    Definition Classes
    IMain

Deprecated Value Members

  1. final def setContextClassLoader(): Unit
    Definition Classes
    ReplCore
    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.