芝麻web文件管理V1.00
编辑当前文件:/home/projzpbv/www/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/dbal/src/SQL/Parser.php
getMySQLStringLiteralPattern("'"), $this->getMySQLStringLiteralPattern('"')]; } else { $patterns = [$this->getAnsiSQLStringLiteralPattern("'"), $this->getAnsiSQLStringLiteralPattern('"')]; } $patterns = array_merge($patterns, [self::BACKTICK_IDENTIFIER, self::BRACKET_IDENTIFIER, self::MULTICHAR, self::ONE_LINE_COMMENT, self::MULTI_LINE_COMMENT, self::OTHER]); $this->sqlPattern = sprintf('(%s)', implode('|', $patterns)); } public function parse(string $sql, Visitor $visitor) : void { $patterns = [self::NAMED_PARAMETER => static function (string $sql) use($visitor) : void { $visitor->acceptNamedParameter($sql); }, self::POSITIONAL_PARAMETER => static function (string $sql) use($visitor) : void { $visitor->acceptPositionalParameter($sql); }, $this->sqlPattern => static function (string $sql) use($visitor) : void { $visitor->acceptOther($sql); }, self::SPECIAL => static function (string $sql) use($visitor) : void { $visitor->acceptOther($sql); }]; $offset = 0; while (($handler = current($patterns)) !== \false) { if (preg_match('~\\G' . key($patterns) . '~s', $sql, $matches, 0, $offset) === 1) { $handler($matches[0]); reset($patterns); $offset += strlen($matches[0]); } elseif (preg_last_error() !== PREG_NO_ERROR) { // @codeCoverageIgnoreStart throw RegularExpressionError::new(); // @codeCoverageIgnoreEnd } else { next($patterns); } } assert($offset === strlen($sql)); } private function getMySQLStringLiteralPattern(string $delimiter) : string { return $delimiter . '((\\\\.)|(?![' . $delimiter . '\\\\]).)*' . $delimiter; } private function getAnsiSQLStringLiteralPattern(string $delimiter) : string { return $delimiter . '[^' . $delimiter . ']*' . $delimiter; } }