Crate orchidlang
source ·Expand description
Orchid is a lazy, pure scripting language to be embedded in Rust applications. Check out the repo for examples and other links.
Modules§
- Abstractions for handling various code-related errors under a common trait object.
- A simplified set of commands each grouping a large subset of the operations exposed by Orchid to make writing embeddings faster in the typical case.
- Interaction with foreign code
- Abstractions and primitives for defining Orchid code in compile-time Rust constants. This is used both to generate glue code such as function call expressions at runtime and to define completely static intrinsics and constants accessible to usercode.
- Intermediate representation. Currently just an indirection between super::parse::parsed and super::interpreter::nort, in the future hopefully a common point for alternate encodings, optimizations and targets.
- functions to execute Orchid code
- Constants exposed to usercode by the interpreter
- Structures that show where code or semantic elements came from
- Various datatypes that all represent namespaced names.
- Parser, and abstractions for interacting with it from language extensions
- Loading Orchid projects from source
- Substitution rule processing
- Generic module tree structure
- Utilities that don’t necessarily have a well-defined role in the problem-domain of Orchid but are rather designed to fulfill abstract project-domain tasks.
- Abstractions and primitives to help define the namespace tree used by Orchid.