macro_rules! rng {
($start:tt : $end:tt) => { ... };
($start:tt : $end:tt : $step:tt) => { ... };
($start:tt :) => { ... };
($start:tt :: $step:tt) => { ... };
(: $end:tt) => { ... };
(: $end:tt : $step:tt) => { ... };
(:: $step:tt) => { ... };
(:) => { ... };
}