Macro js

Source
macro_rules! js {
    (null $($rest:tt)*) => { ... };
    (undefined $($rest:tt)*) => { ... };
    (window $($rest:tt)*) => { ... };
    ([ $($t:tt)* ] $($rest:tt)*) => { ... };
    (@fill_array $target:ident ()) => { ... };
    (@fill_array $target:ident ( $($stuff:tt)* ) $(, $($rest:tt)*)?) => { ... };
    (@fill_array $target:ident ( $($stuff:tt)* ) $head:tt $($rest:tt)*) => { ... };
    ({ $var:ident } $($rest:tt)*) => { ... };
    ({ $rust_expr:expr } $($rest:tt)*) => { ... };
    ({ $($t:tt)* } $($rest:tt)*) => { ... };
    (@fill_object $target:ident () ()) => { ... };
    (@fill_object $target:ident () () $key:ident $(, $($rest:tt)*)?) => { ... };
    (@fill_object $target:ident () () $key:ident : $($rest:tt)*) => { ... };
    (@fill_object $target:ident () () $key:literal : $($rest:tt)*) => { ... };
    (@fill_object $target:ident ( $key:ident ) ( $($stuff:tt)* ) $(, $($rest:tt)*)?) => { ... };
    (@fill_object $target:ident ( $key:ident ) ( $($stuff:tt)* ) $head:tt $($rest:tt)*) => { ... };
    (( $($vars:ident),* $(,)? ) => { $($body:tt)* }) => { ... };
    (( $($vars:ident),* $(,)? ) => $($body:tt)*) => { ... };
    ($var:ident => $($body:tt)*) => { ... };
    (function ( $($vars:ident),* $(,)? ) { $($body:tt)* }) => { ... };
    ($root:ident . $field:ident ( $($args:tt)* ) $($rest:tt)*) => { ... };
    ($root:ident [ $($index:tt)* ] ( $($args:tt)* ) $($rest:tt)*) => { ... };
    ($root:ident ( $($args:tt)* ) $($rest:tt)*) => { ... };
    (@function_call $root:ident $func:ident ( $($args:tt)* ) $($rest:tt)*) => { ... };
    ($root:ident . $field:ident = $($rest:tt)*) => { ... };
    ($root:ident . $field:ident $($rest:tt)*) => { ... };
    ($root:ident ?. $field:ident $($rest:tt)*) => { ... };
    ($root:ident [ $($index:tt)* ] = $($rest:tt)*) => { ... };
    ($root:ident [ $($index:tt)* ] $($rest:tt)*) => { ... };
    (( $($stuff:tt)* ) $($rest:tt)*) => { ... };
    ($v:expr) => { ... };
}