| 148 | } |
| 149 | |
| 150 | std::string ForwardTranslator::escapeName(const std::string& name) { |
| 151 | std::string result; |
| 152 | if (std::regex_match(name, std::regex("^\\d.*"))) { |
| 153 | result = "id_" + name; |
| 154 | } else { |
| 155 | result = name; |
| 156 | } |
| 157 | std::replace(result.begin(), result.end(), ' ', '_'); |
| 158 | std::replace(result.begin(), result.end(), '(', '_'); |
| 159 | std::replace(result.begin(), result.end(), ')', '_'); |
| 160 | std::replace(result.begin(), result.end(), '[', '_'); |
| 161 | std::replace(result.begin(), result.end(), ']', '_'); |
| 162 | std::replace(result.begin(), result.end(), '{', '_'); |
| 163 | std::replace(result.begin(), result.end(), '}', '_'); |
| 164 | std::replace(result.begin(), result.end(), '/', '_'); |
| 165 | std::replace(result.begin(), result.end(), '\\', '_'); |
| 166 | //std::replace(result.begin(), result.end(),'-', '_'); // ok |
| 167 | //std::replace(result.begin(), result.end(),'.', '_'); // ok |
| 168 | std::replace(result.begin(), result.end(), ':', '_'); |
| 169 | std::replace(result.begin(), result.end(), ';', '_'); |
| 170 | return result; |
| 171 | } |
| 172 | |
| 173 | bool ForwardTranslator::translateModel(const openstudio::model::Model& model, pugi::xml_document& document) { |
| 174 | |