Package

ammonite

interp

Permalink

package interp

Visibility
  1. Public
  2. All

Type Members

  1. class AmmonitePlugin extends Plugin

    Permalink

    Used to capture the names in scope after every execution, reporting them to the output function.

    Used to capture the names in scope after every execution, reporting them to the output function. Needs to be a compiler plugin so we can hook in immediately after the typer

  2. trait Compiler extends AnyRef

    Permalink

    Encapsulates (almost) all the ickiness of Scalac so it doesn't leak into the rest of the codebase.

    Encapsulates (almost) all the ickiness of Scalac so it doesn't leak into the rest of the codebase. Makes use of a good amount of mutable state for things like the log-output-forwarder or compiler-plugin-output because These things are hard-coded into Scalac and can't be passed in from run to run.

    Turns source-strings into the bytes of classfiles, possibly more than one classfile per source-string (e.g. inner classes, or lambdas). Also lets you query source strings using an in-built presentation compiler

  3. class CompilerLifecycleManager extends AnyRef

    Permalink

    Wraps up the Compiler and Pressy, ensuring that they get properly initialized before use.

    Wraps up the Compiler and Pressy, ensuring that they get properly initialized before use. Mostly deals with ensuring the object lifecycles are properly dealt with; Compiler and Pressy are the ones which deal with the compiler's nasty APIs

    Exposes a simple API where you can just call methods like compilerClass configureCompiler any-how and not worry about ensuring the necessary compiler objects are initialized, or worry about initializing them more than necessary

  4. trait InterpAPI extends AnyRef

    Permalink
  5. trait InterpLoad extends LoadJar

    Permalink
  6. class Interpreter extends InterpreterInterface

    Permalink

    A convenient bundle of all the functionality necessary to interpret Scala code.

    A convenient bundle of all the functionality necessary to interpret Scala code. Doesn't attempt to provide any real encapsulation for now.

  7. trait LoadJar extends AnyRef

    Permalink
  8. trait Preprocessor extends AnyRef

    Permalink

    Responsible for all scala-source-code-munging that happens within the Ammonite REPL.

    Responsible for all scala-source-code-munging that happens within the Ammonite REPL.

    Performs several tasks:

    - Takes top-level Scala expressions and assigns them to res{1, 2, 3, ...} values so they can be accessed later in the REPL

    - Wraps the code snippet with an wrapper object since Scala doesn't allow top-level expressions

    - Mangles imports from our ammonite.util.ImportData data structure into a source String

    - Combines all of these into a complete compilation unit ready to feed into the Scala compiler

  9. trait Pressy extends AnyRef

    Permalink

    Nice wrapper for the presentation compiler.

Value Members

  1. object AmmonitePlugin

    Permalink
  2. object Compiler

    Permalink
  3. object CompilerCompatibility

    Permalink
  4. object GlobalInitCompat

    Permalink
  5. object InterpBridge extends APIHolder[InterpAPI]

    Permalink
  6. object Interpreter

    Permalink
  7. object LineNumberModifier

    Permalink
  8. object Parsers

    Permalink
  9. object PredefInitialization

    Permalink

    The logic around executing an Interpreter's predef during initialization

  10. object Preprocessor

    Permalink
  11. object Pressy

    Permalink

Ungrouped