xref: /plugin/combo/vendor/antlr/antlr4-php-runtime/src/Utils/StringUtils.php (revision 37748cd8654635afbeca80942126742f0f4cc346)
1*37748cd8SNickeau<?php
2*37748cd8SNickeau
3*37748cd8SNickeaudeclare(strict_types=1);
4*37748cd8SNickeau
5*37748cd8SNickeaunamespace Antlr\Antlr4\Runtime\Utils;
6*37748cd8SNickeau
7*37748cd8SNickeaufinal class StringUtils
8*37748cd8SNickeau{
9*37748cd8SNickeau    private const ENCODING = 'UTF-8';
10*37748cd8SNickeau
11*37748cd8SNickeau    private function __construct()
12*37748cd8SNickeau    {
13*37748cd8SNickeau    }
14*37748cd8SNickeau
15*37748cd8SNickeau    public static function escapeWhitespace(string $string, bool $escapeSpaces = false) : string
16*37748cd8SNickeau    {
17*37748cd8SNickeau        if ($string === '') {
18*37748cd8SNickeau            return $string;
19*37748cd8SNickeau        }
20*37748cd8SNickeau
21*37748cd8SNickeau        $string = \str_replace(["\n", "\r", "\t"], ['\n', '\r', '\t'], $string);
22*37748cd8SNickeau
23*37748cd8SNickeau        if ($escapeSpaces) {
24*37748cd8SNickeau            $string = \preg_replace('/ /', "\u00B7", $string);
25*37748cd8SNickeau        }
26*37748cd8SNickeau
27*37748cd8SNickeau        return $string ?? '';
28*37748cd8SNickeau    }
29*37748cd8SNickeau
30*37748cd8SNickeau    public static function char(int $code) : string
31*37748cd8SNickeau    {
32*37748cd8SNickeau        return \mb_chr($code, self::ENCODING);
33*37748cd8SNickeau    }
34*37748cd8SNickeau
35*37748cd8SNickeau    public static function codePoint(string $code) : int
36*37748cd8SNickeau    {
37*37748cd8SNickeau        return \mb_ord($code, self::ENCODING);
38*37748cd8SNickeau    }
39*37748cd8SNickeau}
40