File tree 2 files changed +6
-2
lines changed
2 files changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -97,10 +97,13 @@ std::string llvm::convertToSnakeFromCamelCase(StringRef input) {
97
97
if (input.empty ())
98
98
return " " ;
99
99
100
+ llvm::Regex trailingCap = llvm::Regex (" ([A-Z]+)([A-Z][a-z])" );
101
+ llvm::Regex leadingCap = llvm::Regex (" ([a-z0-9])([A-Z])" );
102
+
100
103
std::string snakeCase = input.str ();
101
104
for (int i = 0 ; i < 10 ; ++i) {
102
- snakeCase = llvm::Regex ( " ([A-Z]+)([A-Z][a-z]) " ) .sub (" \\ 1_\\ 2" , snakeCase);
103
- snakeCase = llvm::Regex ( " ([a-z0-9])([A-Z]) " ) .sub (" \\ 1_\\ 2" , snakeCase);
105
+ snakeCase = trailingCap .sub (" \\ 1_\\ 2" , snakeCase);
106
+ snakeCase = leadingCap .sub (" \\ 1_\\ 2" , snakeCase);
104
107
}
105
108
std::transform (snakeCase.begin (), snakeCase.end (), snakeCase.begin (),
106
109
[](unsigned char c) { return std::tolower (c); });
Original file line number Diff line number Diff line change @@ -185,6 +185,7 @@ TEST(StringExtrasTest, ConvertToSnakeFromCamelCase) {
185
185
testConvertToSnakeCase (" OpName" , " op_name" );
186
186
testConvertToSnakeCase (" opName" , " op_name" );
187
187
testConvertToSnakeCase (" OPName" , " op_name" );
188
+ testConvertToSnakeCase (" Intel_OCL_BI" , " intel_ocl_bi" );
188
189
testConvertToSnakeCase (" opNAME" , " op_name" );
189
190
testConvertToSnakeCase (" opNAMe" , " op_na_me" );
190
191
testConvertToSnakeCase (" opnameE" , " opname_e" );
You can’t perform that action at this time.
0 commit comments