Macro fungi_lang::fgi_nametm [] [src]

macro_rules! fgi_nametm {
    { fromast $ast:expr } => { ... };
    { ^ $ast:expr } => { ... };
    { [$($nmtm:tt)+] } => { ... };
    { @@ } => { ... };
    { @$nm1:tt * @$nm2:tt } => { ... };
    { ~ $x:ident * $m:tt } => { ... };
    { @$nm1:tt * $m:tt } => { ... };
    { @$n:tt * $m:tt } => { ... };
    { @$($nm:tt)+ } => { ... };
    { # $var:ident : $sort:tt . $($body:tt)+ } => { ... };
    { [$($nmfn:tt)+] $par:tt } => { ... };
    { [$($nmfn:tt)+] $par:tt $($pars:tt)+ } => { ... };
    { $var:ident } => { ... };
    { ~ $var:ident } => { ... };
    { $($nmtms:tt)+ } => { ... };
    { $($any:tt)* } => { ... };
}

Parser for Name Terms

M,N ::=
    fromast ast_expr    (inject ast nodes)
    [N]                 (parens)
    @@                  (write scope; sort Nm -> Nm)
    @n                  (unique name constant for number n)
    #a:g.M              (abstraction)
    [M] N ...           (curried application)
    a                   (Variable)
    ~x                  (Value variable)
    M, N, ...           (extended bin)   <<--- DEPRECATED: Use `N * M * ...` instead
    n                   (literal Name)