protected function dispatchTokens($unmatched, $matched, $mode = false)
{
if (!$this->invokeParser($unmatched, LEXER_UNMATCHED)) {
return false;
}
if (is_bool($mode)) {
return $this->invokeParser($matched, LEXER_MATCHED);
}
if ($this->isModeEnd($mode)) {
if (!$this->invokeParser($matched, LEXER_EXIT)) {
return false;
}
return $this->mode->leave();
}
if ($this->isSpecialMode($mode)) {
$this->mode->enter($this->decodeSpecial($mode));
if (!$this->invokeParser($matched, LEXER_SPECIAL)) {
return false;
}
return $this->mode->leave();
}
$this->mode->enter($mode);
return $this->invokeParser($matched, LEXER_ENTER);
}