Macro fungi_lang::fgi_val [] [src]

macro_rules! fgi_val {
    { fromast $ast:expr } => { ... };
    { $v:tt : $($a:tt)+} => { ... };
    { thunk $($e:tt)+ } => { ... };
    { ($($tup:tt)*) } => { ... };
    { inj1 $($v:tt)+ } => { ... };
    { inj2 $($v:tt)+ } => { ... };
    { roll $($v:tt)+ } => { ... };
    { name $($n:tt)+ } => { ... };
    { nmfn $($m:tt)+ } => { ... };
    { true } => { ... };
    { false } => { ... };
    { @@$($s:tt)+ } => { ... };
    { @$n:expr } => { ... };
    { str($($s:tt)*) } => { ... };
    { $x:ident } => { ... };
    { $n:expr } => { ... };
    { $($any:tt)* } => { ... };
}

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)
    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)