• Модуль: perfmon
  • Путь к файлу: ~/bitrix/modules/perfmon/classes/general/sql_format.php
  • Класс: CSqlTokenizer
  • Вызов: CSqlTokenizer::transform
protected function transform($token)
{
	static $keywords = "UPDATE|SET|DELETE|SELECT|DISTINCT|INNER|LEFT|OUTER|JOIN|ON|FROM|WHERE|GROUP|BY|IN|EXISTS|HAVING|ORDER|ASC|DESC|LIMIT|AND|OR";
	static $functions = "DATE_FORMAT|UNIX_TIMESTAMP|CONCAT|DATE_ADD|UPPER|LENGTH|IFNULL";

	if (isset($token[1]))
		$token = array($token[0], $token[1]);
	else
		$token = array(T_CHARACTER, $token[0]);

	switch ($token[0])
	{
	case T_STRING:
		if (preg_match("/^($keywords)$/i", $token[1]))
			$token = array(T_KEYWORD, mb_strtoupper($token[1]));
		elseif (preg_match("/^($functions)$/i", $token[1]))
			$token = array(T_FUNCTION, $token[1]);
		break;
	case T_LOGICAL_AND:
	case T_LOGICAL_OR:
		$token = array(T_KEYWORD, mb_strtoupper($token[1]));
		break;
	case T_AS:
		$token = array(T_KEYWORD, $token[1]);
		break;
	case T_COMMENT:
	case T_BAD_CHARACTER:
		$token = array(T_WHITESPACE, " ");
		break;
	}

	return $token;
}