@@ -121,18 +121,18 @@ std::optional<backref> try_get_backref(std::string_view preg_replacement) noexce
121121
122122using replacement_term = std::variant<char , backref>;
123123
124- class preg_replacement_decoder {
124+ class preg_replacement_parser {
125125 std::string_view preg_replacement;
126126
127127public:
128- preg_replacement_decoder (std::string_view preg_replacement)
128+ preg_replacement_parser (std::string_view preg_replacement)
129129 : preg_replacement{preg_replacement} {}
130130
131131 bool has_next () const noexcept {
132132 return !preg_replacement.empty ();
133133 }
134134
135- replacement_term decode_term () noexcept {
135+ replacement_term parse_term () noexcept {
136136 auto first_char{preg_replacement.front ()};
137137 preg_replacement = preg_replacement.substr (1 );
138138 if (preg_replacement.empty ()) {
@@ -187,18 +187,18 @@ class preg_replacement_decoder {
187187 }
188188};
189189
190- class pcre2_replacement_encoder {
190+ class pcre2_replacement_formatter {
191191 kphp::stl::string<kphp::memory::script_allocator> pcre2_replacement{};
192192
193193public:
194- void encode_char (char c) noexcept {
194+ void format_char (char c) noexcept {
195195 pcre2_replacement.push_back (c);
196196 if (c == ' $' ) {
197197 pcre2_replacement.push_back (' $' );
198198 }
199199 }
200200
201- void encode_backref (backref backreference) noexcept {
201+ void format_backref (backref backreference) noexcept {
202202 pcre2_replacement.reserve (pcre2_replacement.size () + backreference.digits .size () + 3 );
203203 pcre2_replacement.append (" ${" );
204204 pcre2_replacement.append (backreference.digits );
@@ -700,16 +700,16 @@ Optional<string> f$preg_replace(const string& pattern, const string& replacement
700700 }
701701
702702 // we need to replace PHP's back references with PCRE2 ones
703- auto decoder{preg_replacement_decoder {{replacement.c_str (), replacement.size ()}}};
704- pcre2_replacement_encoder encoder {};
705- while (decoder .has_next ()) {
706- if (auto term{decoder. decode_term ()}; std::holds_alternative<char >(term)) {
707- encoder. encode_char (std::get<char >(term));
703+ auto parser{preg_replacement_parser {{replacement.c_str (), replacement.size ()}}};
704+ pcre2_replacement_formatter formatter {};
705+ while (parser .has_next ()) {
706+ if (auto term{parser. parse_term ()}; std::holds_alternative<char >(term)) {
707+ formatter. format_char (std::get<char >(term));
708708 } else {
709- encoder. encode_backref (std::get<backref>(term));
709+ formatter. format_backref (std::get<backref>(term));
710710 }
711711 }
712- auto & pcre2_replacement{encoder .result ()};
712+ auto & pcre2_replacement{formatter .result ()};
713713
714714 RegexInfo regex_info{{pattern.c_str (), pattern.size ()}, {subject.c_str (), subject.size ()}, {pcre2_replacement.c_str (), pcre2_replacement.size ()}};
715715
0 commit comments