public function skipTypes($tokenTypes, $direction = self::DIR_FORWARD)
    {
        return $this->safeMove(function () use ($tokenTypes, $direction) {
            $this->moveWithCondition(function () use ($tokenTypes) {
                return in_array($this->current()->getType(), $tokenTypes);
            }, $direction);

            return $this;
        });
    }