- for (auto n : node.child("registers").children("register"))
- parse_register(base, n);
+Register::Register(std::string peri, const pugi::xml_node& node):
+ name(node.child_value("name")),
+ offset(std::strtol(node.child_value("addressOffset"), nullptr, 0)),
+ size(std::strtol(node.child_value("size"), nullptr, 0))
+{
+ if (isdigit(peri.back())) {
+ if (name.starts_with(name.substr(0, name.size() - 1))
+ && name.at(peri.size() - 1) == '_')
+ {
+ name = name.substr(peri.size());
+ }
+ } else {
+ if (name.starts_with(name.substr(0, name.size()))
+ && name.at(peri.size()) == '_')
+ {
+ name = name.substr(peri.size() + 1);
+ }
+ }