Macro fungi_lang::fgi_val
source · macro_rules! fgi_val {
{ fromast $ast:expr } => { ... };
{ ^ $ast:expr } => { ... };
{ $v:tt : $($a:tt)+} => { ... };
{ thunk $($e:tt)+ } => { ... };
{ ($($tup:tt)*) } => { ... };
{ inj1 $($v:tt)+ } => { ... };
{ inj2 $($v:tt)+ } => { ... };
{ roll $($v:tt)+ } => { ... };
{ pack ($($is:tt)+) $($v:tt)+ } => { ... };
{ pack $i:tt $($v:tt)+ } => { ... };
{ name $($n:tt)+ } => { ... };
{ nmfn $($m:tt)+ } => { ... };
{ true } => { ... };
{ false } => { ... };
{ @@$($s:tt)+ } => { ... };
{ @$n:expr } => { ... };
{ str($($s:tt)*) } => { ... };
{ $x:ident } => { ... };
{ $n:expr } => { ... };
{ $($any:tt)* } => { ... };
}
Expand description
Parser for values
v::=
fromast ast (inject ast nodes)
thunk e (anonymous thunk)
v : A (annotation)
(v1,v2,...) (unit,parens,tuples)
inj1 v (first sum value)
inj2 v (second sum value)
roll v (roll an unrolled recursively-typed value)
pack (i1,...) v (pack index term(s) that describe a value v)
name n (name value)
nmfn M (name function as value)
true,false (bool primitive)
@@str (name primitive(symbol))
@1235 (name primitive(number))
str(string) (string primitive)
x (variable)
1234 (nat primitive)