|
|
|
@@ -28,7 +28,6 @@ |
|
|
|
#include <algorithm> |
|
|
|
#include <type_traits> |
|
|
|
#include <typeinfo> |
|
|
|
#include <regex> |
|
|
|
|
|
|
|
#include "abstract/abstract_value.h" |
|
|
|
|
|
|
|
@@ -373,25 +372,17 @@ class TensorDataImpl : public TensorData { |
|
|
|
std::is_same<T, double>::value) { |
|
|
|
return str; |
|
|
|
} |
|
|
|
// Use regular expressions to replace placeholders. |
|
|
|
std::regex pattern("#+"); |
|
|
|
std::smatch result; |
|
|
|
int bias = 0; |
|
|
|
std::string::const_iterator start = str.begin(); |
|
|
|
std::string::const_iterator end = str.end(); |
|
|
|
while (std::regex_search(start, end, result, pattern)) { |
|
|
|
const int len = result.str(0).length(); |
|
|
|
const int pos = result.position(); |
|
|
|
bias += pos; |
|
|
|
if (bias > static_cast<int32_t>(str.length())) { |
|
|
|
return ""; |
|
|
|
// Replace # with placeholder. |
|
|
|
size_t index = str.find('#'); |
|
|
|
while (index != str.npos) { |
|
|
|
size_t pos = index; |
|
|
|
while (str[pos] == '#') { |
|
|
|
pos++; |
|
|
|
} |
|
|
|
// Replace # with placeholder. |
|
|
|
int len = pos - index; |
|
|
|
std::string space(max_width - len, ' '); |
|
|
|
str = str.replace(bias, len, space); |
|
|
|
// Update the starting position of the search. |
|
|
|
start = str.begin() + bias; |
|
|
|
end = str.end(); |
|
|
|
str = str.replace(index, len, space); |
|
|
|
index = str.find('#', index); |
|
|
|
} |
|
|
|
return str; |
|
|
|
} |
|
|
|
|