Package net.hydromatic.morel.compile
Validates programs
(represented as
AstNode),
deduces their type,
and compiles them into code that can be evaluated.-
Interface Summary Interface Description BuiltIn.DataTypeHelper Callback used when defining a datatype.CalciteCompiler.RelCode Extension toCodethat can also provide a translation to relational algebra.CompiledStatement Statement that has been compiled and is ready to be run from the REPL.Compiler.Action Something that needs to happen when a declaration is evaluated.Macro A function that is 'called' at compile time, and generates an expanded parse tree.Tracer Called on various events during compilation.TypeResolver.TypeEnv Type environment. -
Class Summary Class Description Analyzer Shuttle that counts how many times each expression is used.Analyzer.Analysis Result of an analysis.Analyzer.MutableUse Work space where the uses of a binding are counted.BuiltIn.Structure Built-in structure.CalciteCompiler Compiles an expression to code that can be evaluated.CalciteCompiler.RelContext Translation context.CalciteCompiler.VarData How a Morel variable maps onto the columns returned from a Join.Compiler Compiles an expression to code that can be evaluated.Compiler.Context Compilation context.Compiler.LinkCode A piece of code that is references another piece of code.Compiler.MatchCode Code that implementsCompiler.compileMatchList(Context, List).Compiles Helpers forCompilerandTypeResolver.Compiles.PatternBinder Environment Environment for validation/compilation.Environments Helpers forEnvironment.Environments.EmptyEnvironment Empty environment.Environments.MapEnvironment Environment that keeps bindings in a map.Environments.SubEnvironment Environment that inherits from a parent environment and adds one binding.EnvShuttle Shuttle that keeps an environment of what variables are in scope.EnvVisitor Shuttle that keeps an environment of what variables are in scope.EnvVisitor.FromContext Where we are in an iteration through the steps of afrom.Inliner Shuttle that inlines constant values.NameGenerator Generates unique names.PatternCoverageChecker Checks whether patterns are exhaustive and/or redundant.PatternCoverageChecker.DataTypeSlot Payload of aSat.Variablethat is an algebraic type.PatternCoverageChecker.ElideList<E> List that removes one particular element from a backing list.PatternCoverageChecker.Path Identifies a point in a nested pattern.PatternCoverageChecker.SubPath Path that is a child of a given parent path.Pretty Prints values.Pretty.NamedVal Wrapper that indicates that a value should be printed "name = value".Pretty.TypedVal Wrapper that indicates that a value should be printed "val name = value : type".RefChecker Validates expressions, making sure that everyCore.Idexists in the environment.Relationalizer Resolver Converts AST expressions to Core expressions.Resolver.PatExp Pattern and expression.Resolver.ReferenceFinder Visitor that finds all references to unbound variables in an expression.Resolver.ResolvedDatatypeDecl Resolved datatype declaration.Resolver.ResolvedDecl Resolved declaration.Tracers Utilities forTracer.Tracers.DelegatingTracer Tracer that delegates to an underlying tracer.Tracers.EmptyTracer Tracer that does nothing.TypeMap The result of type resolution, a map from AST nodes to types.TypeMap.TermToTypeConverter Visitor that converts type terms into actual types.TypeResolver Resolves the type of an expression.TypeResolver.BindTypeEnv A type environment that consists of a type environment plus one binding.TypeResolver.DatatypeBindWorkspace Workspace used while handling several datatype binds simultaneously.TypeResolver.EmptySubst Empty substitution.TypeResolver.PlusSubst Substitution that adds one (type, variable) assignment to a parent substitution.TypeResolver.Resolved Result of validating a declaration.TypeResolver.Subst Substitution.TypeResolver.TermVariable Pair consisting of a term and a variable. -
Enum Summary Enum Description Analyzer.Use How a binding (assignment of a value to a variable) is used.BuiltIn Built-in constants and functions.Resolver.Init Helper for initialization.TypeResolver.EmptyTypeEnv Empty type environment. -
Exception Summary Exception Description CompileException An error occurred during compilation.TypeResolver.TypeException Error while deducing type.