Package avail.interpreter.execution

Types

Link copied to clipboard
class AvailLoader(    val runtime: AvailRuntime,     val module: A_Module,     val textInterface: TextInterface)

An AvailLoader is responsible for orchestrating module-level side-effects, such as those caused by adding method, abstract, and forward definitions. Also macros, A_Lexers, A_SemanticRestrictions, A_GrammaticalRestrictions, and method seals.

Link copied to clipboard
class Interpreter(val runtime: AvailRuntime)

This class is used to execute Level Two code, which is a translation of the Level One nybblecodes found in raw functions.

Link copied to clipboard
class LexicalScanner(val moduleNameProducer: () -> String)

A LexicalScanner tracks all visible A_Lexers while compiling a module. It maintains an AtomicReferenceArray from Latin-1 codepoints (U+0000..U+00FF) to the A_Tuple of lexers whose filters passed for that codepoint. A separate ConcurrentHashMap tracks all remaining codepoints.