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