• Модуль: perfmon
  • Путь к файлу: ~/bitrix/modules/perfmon/lib/sql/schema.php
  • Класс: BitrixPerfmonSqlSchema
  • Вызов: Schema::splitStatements
protected function splitStatements(Tokenizer $tokenizer, $delimiter = ';')
{
	$result = array();
	$index = 0;
	$result[$index] = array();

	/** @var Token $prevToken */
	$prevToken = null;
	/** @var Token $token */
	foreach ($tokenizer->getTokens() as $token)
	{
		if (
			$token->text === $delimiter
			&& $prevToken
			&& mb_strpos($prevToken->text, "n") !== false
		)
		{
			$index++;
			$result[$index] = array();
		}
		elseif (
			mb_strpos($token->text, "n") !== false
			&& $prevToken
			&& $prevToken->text === $delimiter
		)
		{
			array_pop($result[$index]);
			$index++;
			$result[$index] = array();
		}
		else
		{
			$result[$index][] = $token;
		}
		$prevToken = $token;
	}

	foreach ($result as $i => $tokens)
	{
		$result[$i] = Tokenizer::createFromTokens($tokens);
	}

	return $result;
}