ExprZ is an expression representation and parsing library. ExprZ expressions are typed s-expressions formed from atoms or groups of expressions and represent enumerated types of the form
enum Expr<A> {
Atom(A),
Group(Vec<Self>),
}
ExprZ generalizes this enum
by defining an Expression
trait which encompasses the algebraic properties of the above enum
but which affords the user the flexibility of a more efficient implementation.
ExprZ comes with default implementations of Expression
which use the Rust alloc
library. To access these implementations use the alloc
feature on the crate.
The most recent version of ExprZ uses the Rust nightly compiler toolchain which is necessary for defining the main Expression
trait. In the future we hope to remove this requirement as the Expression
API becomes more refined over time or once the standard compiler toolchain catches up.
For more information on how to use ExprZ, see the documentation.
This project is licensed under the ISC License. See LICENSE for more information.