private function getTokenOfTypeSibling($index, $type, $direction)
    {
        while (true) {
            $index += $direction;

            if (!$this->offsetExists($index)) {
                break;
            }

            if ($this[$index]->isType($type)) {
                return $index;
            }
        }

        return null;
    }
private function getTokenOfTypeSibling($index, $type, $direction)
    {
        while (true) {
            $index += $direction;

            if (!$this->offsetExists($index)) {
                break;
            }

            if ($this[$index]->isType($type)) {
                return $index;
            }
        }

        return null;
    }
private function getTokenOfTypeSibling ( $ index , $ type , $ direction ) { while ( true ) { $ index += $ direction ; if ( ! $ this -> offsetExists ( $ index ) ) { break ; } if ( $ this [ $ index ] -> isType ( $ type ) ) { return $ index ; } } return null ; }
@param int             $index
@param string|string[] $type
@param int             $direction

@return null|int
@param int $index @param string|string [] $type @param int $direction