Package net.hydromatic.morel.compile
package net.hydromatic.morel.compile
Validates programs
(represented as
AstNode),
deduces their type,
and compiles them into code that can be evaluated.-
ClassDescriptionShuttle that counts how many times each expression is used.Result of an analysis.Work space where the uses of a binding are counted.How a binding (assignment of a value to a variable) is used.Built-in constants and functions.Callback used when defining a datatype.Built-in structure.Compiles an expression to code that can be evaluated.Extension to
Codethat can also provide a translation to relational algebra.Translation context.How a Morel variable maps onto the columns returned from a Join.Statement that has been compiled and is ready to be run from the REPL.An error occurred during compilation.Compiles an expression to code that can be evaluated.Something that needs to happen when a declaration is evaluated.Compilation context.A piece of code that is references another piece of code.Code that implementsCompiler.compileMatchList(Context, List).Helpers forCompilerandTypeResolver.Environment for validation/compilation.Helpers forEnvironment.Empty environment.Environment that keeps bindings in a map.Environment that inherits from a parent environment and adds one binding.Shuttle that keeps an environment of what variables are in scope.Shuttle that keeps an environment of what variables are in scope.Where we are in an iteration through the steps of afrom.Generates an expression for the set of values that a variable can take in a program.A "suchthat" expression split into an extent and filters.Shuttle that inlines constant values.A function that is 'called' at compile time, and generates an expanded parse tree.Generates unique names.Checks whether patterns are exhaustive and/or redundant.Payload of aSat.Variablethat is an algebraic type.List that removes one particular element from a backing list.Identifies a point in a nested pattern.Path that is a child of a given parent path.Prints values.Wrapper that indicates that a value should be printed "label:type".Wrapper that indicates that a value should be printed "name = value".Wrapper that indicates that a value should be printed "val name = value : type".Wrapper around a type value.Validates expressions, making sure that everyCore.Idexists in the environment.Converts AST expressions to Core expressions.Helper for initialization.Pattern and expression.Visitor that finds all references to unbound variables in an expression.Resolved datatype declaration.Resolved declaration.ConvertssuchThattoinwherever possible.Workspace for converting a particularCore.Fromfrom "suchthat" to "in" form.Maps patterns from their name in the "from" to their name after a sequence of renames.Signals that we could not rewrite.Called on various events during compilation.Utilities forTracer.Tracer that delegates to an underlying tracer.Tracer that does nothing.The result of type resolution, a map from AST nodes to types.Visitor that converts type terms into actual types.Resolves the type of an expression.A type environment that consists of a type environment plus one binding.Empty substitution.Empty type environment.Visitor that expands progressive types if they are used in field references.Workspace for converting types to keys.Substitution that adds one (type, variable) assignment to a parent substitution.Result of validating a declaration.Substitution.Pair consisting of a term and a variable.Type environment.Error while deducing type.