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.

Macros§