Skip to main content

define_builtins

Macro define_builtins 

Source
macro_rules! define_builtins {
    (
        $(
            $(#[$attr:meta])*
            $variant:ident => $name:literal
        ),* $(,)?
    ) => { ... };
}
Expand description

Macro for defining built-in functions.

This macro generates the Builtin enum, its name() method, and the ALL constant from a single declarative definition. To add a new builtin, simply add a new entry to the macro invocation (and implement its evaluation in grift_eval).

§Syntax

use grift_parser::define_builtins;
define_builtins! {
    /// Documentation comment
    VariantName => "lisp-name",
    // ... more builtins
}

§Example

To add a new builtin my-builtin:

use grift_parser::define_builtins;
define_builtins! {
    // ... existing builtins ...
    /// (my-builtin x) - Does something with x
    MyBuiltin => "my-builtin",
}

Note: After adding a builtin here, you must also implement its evaluation logic in the grift_eval crate.