Macro fungi_lang::fgi_rtval

source ·
macro_rules! fgi_rtval {
    { inj1 $($v:tt)+ } => { ... };
    { inj2 $($v:tt)+ } => { ... };
    { ($($tup:tt)*) } => { ... };
    { host $v:expr } => { ... };
    { bool $v:expr } => { ... };
    { usize $v:expr } => { ... };
    { name $v:expr } => { ... };
    { string $v:expr } => { ... };
}
Expand description

Parser for (run-time) values

With concise concrete syntax, inject values from Rust value space (back) into the Fungi value space. This concrete syntax often expresses the return values within the bodies of host function definitions, which call native Rust code within the context of a larger Fungi computation.

v::=
    (v1,...,vk)         unit, parens, tuples
    host   rust_exp     inject a Rust value (dynamic typing)
    bool   rust_exp     inject a Rust boolean as a Fungi boolean
    string rust_exp     inject a Rust String as a Fungi String
    usize  rust_exp     inject a Rust usize as a Fungi Nat
    name   rust_exp     inject a Rust Name as a Fungi Name