Documentation
¶
Overview ¶
Package morel is the root of morel-go, an interpreter for Morel, a functional query language. The implementation lives under internal/; the command lives under cmd/morel.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
morel
command
Command morel is an interpreter for Morel, a functional query language.
|
Command morel is an interpreter for Morel, a functional query language. |
|
internal
|
|
|
ast
Package ast defines the abstract syntax tree that the parser produces: the user-facing representation, with source spans, before type resolution converts it to Core.
|
Package ast defines the abstract syntax tree that the parser produces: the user-facing representation, with source spans, before type resolution converts it to Core. |
|
compile
Package compile turns the AST into the typed Core IR: the TypeResolver deduces a type for every node by unification, and the Resolver converts the AST to Core using those types.
|
Package compile turns the AST into the typed Core IR: the TypeResolver deduces a type for every node by unification, and the Resolver converts the AST to Core using those types. |
|
core
Package core defines Morel's typed intermediate representation.
|
Package core defines Morel's typed intermediate representation. |
|
datalog
Package datalog implements the Souffle-flavored Datalog dialect behind the Datalog built-in structure: a parser, an analyzer (declarations, rule safety, stratification), and a translator that emits Morel source whose recursion is a Relational.iterate fixpoint.
|
Package datalog implements the Souffle-flavored Datalog dialect behind the Datalog built-in structure: a parser, an analyzer (declarations, rule safety, stratification), and a translator that emits Morel source whose recursion is a Relational.iterate fixpoint. |
|
eval
Package eval holds runtime values and the built-in functions.
|
Package eval holds runtime values and the built-in functions. |
|
parse
Package parse holds the Morel lexer and parser.
|
Package parse holds the Morel lexer and parser. |
|
pp
Package pp is a pretty-printer that lays out a document within a line-width limit.
|
Package pp is a pretty-printer that lays out a document within a line-width limit. |
|
shell
Package shell contains the kernel, the script runner, and the statement splitter.
|
Package shell contains the kernel, the script runner, and the statement splitter. |
|
sig
Package sig reads the subset of the built-in library's signature files (lib/*.sig) that gives the types of built-in values.
|
Package sig reads the subset of the built-in library's signature files (lib/*.sig) that gives the types of built-in values. |
|
token
Package token defines the lexical tokens of Morel and their source positions.
|
Package token defines the lexical tokens of Morel and their source positions. |
|
types
Package types defines Morel's types and the system that interns them.
|
Package types defines Morel's types and the system that interns them. |
|
unify
Package unify implements the Martelli-Montanari unification algorithm, with action hooks that fire as variables resolve and constraints that model overloaded operators.
|
Package unify implements the Martelli-Montanari unification algorithm, with action hooks that fire as variables resolve and constraints that model overloaded operators. |
|
Package lib embeds the built-in library sources: the signatures (*.sig), which give the types of the built-ins, and the Morel sources (*.sml) that define the derivable members of some structures.
|
Package lib embeds the built-in library sources: the signatures (*.sig), which give the types of the built-ins, and the Morel sources (*.sml) that define the derivable members of some structures. |
Click to show internal directories.
Click to hide internal directories.
