League\CommonMark\Delimiter\DelimiterStack::findMatchingOpener PHP Метод

findMatchingOpener() защищенный Метод

protected findMatchingOpener ( Delimiter $closer, array $openersBottom, Delimiter $stackBottom = null, boolean &$oddMatch = false ) : Delimiter | null
$closer Delimiter
$openersBottom array
$stackBottom Delimiter
$oddMatch boolean
Результат Delimiter | null
    protected function findMatchingOpener(Delimiter $closer, $openersBottom, Delimiter $stackBottom = null, &$oddMatch = false)
    {
        $closerChar = $closer->getChar();
        $opener = $closer->getPrevious();
        while ($opener !== null && $opener !== $stackBottom && $opener !== $openersBottom[$closerChar]) {
            $oddMatch = ($closer->canOpen() || $opener->canClose()) && ($opener->getNumDelims() + $closer->getNumDelims()) % 3 === 0;
            if ($opener->getChar() === $closerChar && $opener->canOpen() && !$oddMatch) {
                return $opener;
            }
            $opener = $opener->getPrevious();
        }
    }