macro_rules! six {
    () => { ... };
    (var $i:ident: $type:ty;$($rest:tt)*) => { ... };
    (var $i:ident: $type:ty = $body:tt;$($rest:tt)*) => { ... };
    (var $i:ident = $body:tt;$($rest:tt)*) => { ... };
    (let $i:ident: $type:ty;$($rest:tt)*) => { ... };
    (let $i:ident: $type:ty = $body:tt;$($rest:tt)*) => { ... };
    (let $i:ident = $body:tt;$($rest:tt)*) => { ... };
    (entry -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (entry: $args:ident -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (entry: $args:ident {$($body:tt)*}$($rest:tt)*) => { ... };
    (entry {$($body:tt)*}$($rest:tt)*) => { ... };
    (fn $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (fn $i:ident() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (proc $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (proc $i:ident() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (unsafe fn $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (unsafe fn $i:ident() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (unsafe proc $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (unsafe proc $i:ident() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (fn $i:ident<$($generics:tt)*>($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (fn $i:ident<$($generics:tt)*>() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (proc $i:ident<$generics:tt>($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (proc $i:ident<$($generics:tt)*>() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (unsafe fn $i:ident<$($generics:tt)*>($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (unsafe fn $i:ident<$($generics:tt)*>() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (unsafe proc $i:ident<$($generics:tt)*>($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (unsafe proc $i:ident<$($generics:tt)*>() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (label $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (label $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (label $i:ident: $t:ty = $body:tt;$($rest:tt)*) => { ... };
    (pub fn $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub fn $i:ident() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub proc $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub proc $i:ident() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub unsafe fn $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub unsafe fn $i:ident() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub unsafe proc $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub unsafe proc $i:ident() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub fn $i:ident<$($generics:tt)*>($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub fn $i:ident<$($generics:tt)*>() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub proc $i:ident<$($generics:tt)*>($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub proc $i:ident<$($generics:tt)*>() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub unsafe fn $i:ident<generics:tt>($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub unsafe fn $i:ident<$($generics:tt)*>() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub unsafe proc $i:ident<$($generics:tt)*>($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub unsafe proc $i:ident<$($generics:tt)*>() -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub label $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub label $i:ident($($args:tt)*) -> $type:ty {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub label $i:ident: $t:ty = $body:tt;$($rest:tt)*) => { ... };
    (const $i:ident: $t:ty = $body:tt;$($rest:tt)*) => { ... };
    (pub const $i:ident: $t:ty = $body:tt;$($rest:tt)*) => { ... };
    ({$($body:tt)*}$($rest:tt)*) => { ... };
    ($name:tt($($args:tt)*);$($rest:tt)*) => { ... };
    ($name:tt();($rest:tt)*) => { ... };
    ($name:tt($($args:tt)*).$($rest:tt)*) => { ... };
    ($name:tt().($rest:tt)*) => { ... };
    ($name:tt!($($args:tt)*);$($rest:tt)*) => { ... };
    ($name:tt!();($rest:tt)*) => { ... };
    ($name:tt!{$($args:tt)*};$($rest:tt)*) => { ... };
    ($name:tt!{};($rest:tt)*) => { ... };
    ($name:tt![$($args:tt)*];$($rest:tt)*) => { ... };
    ($name:tt![];($rest:tt)*) => { ... };
    (;$($rest:tt)*) => { ... };
    ($i:tt = $x:tt;$($rest:tt)*) => { ... };
    (*$i:tt = $x:tt;$($rest:tt)*) => { ... };
    (extern {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "C" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "Rust" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "system" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "stdcall" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "cdecl" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "win64" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "sysv64" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "aapcs" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "fastcall" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "vectorcall" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "rust-call" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "rust-cold" {$($body:tt)*}$($rest:tt)*) => { ... };
    (extern "rust-intrinsics" {$($body:tt)*}$($rest:tt)*) => { ... };
    (unsafe {$($body:tt)*}$($rest:tt)*) => { ... };
    (import $p:path;$($rest:tt)*) => { ... };
    (pub import $p:path;$($rest:tt)*) => { ... };
    (include $p:expr;$($rest:tt)*) => { ... };
    (pub $($rest:tt)*) => { ... };
    (ast $i:ident {$($body:tt)*}$($rest:tt)*) => { ... };
    (pub ast $i:ident {$($body:tt)*}$($rest:tt)*) => { ... };
    (@i:meta$($rest:tt)*) => { ... };
    (#i:meta$($rest:tt)*) => { ... };
    ($i:ident++;$($rest:tt)*) => { ... };
    ($i:ident--;$($rest:tt)*) => { ... };
    (type $i:ident = $t:ty;$($rest:tt)*) => { ... };
    (pub type $i:ident = $t:ty;$($rest:tt)*) => { ... };
    (cond $i:tt {$($body:tt)*}$($rest:tt)*) => { ... };
    (cond $i:tt {$($body:tt)*} $(or $x:tt {$($xbody:tt)*})*$($rest:tt)*) => { ... };
    (cond $i:tt {$($body:tt)*} else {$($y:tt)*}$($rest:tt)*) => { ... };
    (cond $i:tt {$($body:tt)*} $(or $x:tt {$($xbody:tt)*})* else {$($y:tt)*}$($rest:tt)*) => { ... };
    (asm {$($body:tt)*} $($rest:tt)*) => { ... };
    (global_asm {$($body:tt)*} $($rest:tt)*) => { ... };
    (rust {$($body:tt)*} $($rest:tt)*) => { ... };
    (loop {$($body:tt)*}$($rest:tt)*) => { ... };
    (break;$($rest:tt)*) => { ... };
    ($i:lifetime: loop {$($body:tt)*}$($rest:tt)*) => { ... };
    (break;$($rest:tt)*) => { ... };
    (break $i:lifetime;$($rest:tt)*) => { ... };
    (continue;$($rest:tt)*) => { ... };
    (match $i:tt {$($x:pat => $y:tt),*}$($rest:tt)*) => { ... };
    (assert $i:tt;$($rest:tt)*) => { ... };
    (assert $i:tt, $($x:expr),*;$($rest:tt)*) => { ... };
    (for $i:tt {$($body:tt)*}$($rest:tt)*) => { ... };
}
Expand description

Six lang experimental parser.