essence_expr!() { /* proc-macro */ }Expand description
Parses an Essence expression into its corresponding Conjure AST at compile time.
§Input
The input can be one of the following:
- The raw Essence tokens (
essence_expr!(2 + 2)) - A string literal (
essence_expr!("2 + 2"))
The macro may reference variables in the current scope (called “metavars”)
using the syntax &<name>. For example:
use conjure_cp_essence_macros::essence_expr;
let x = 42;
essence_expr!(2 + &x);§Expansion
If the input is valid Essence, expands to a valid AST constructor
§Note
Some characters (e.g. \) are valid Essence tokens, but not Rust tokens.
If you encounter an error similar to:
rustc: unknown start of token: \
The workaround is to wrap the Essence code in a string literal (e.g. r"a /\ b").