Fix hier_path

Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
diff --git a/systemverilog-plugin/UhdmAst.cc b/systemverilog-plugin/UhdmAst.cc
index aaccf47..0d9d1f4 100644
--- a/systemverilog-plugin/UhdmAst.cc
+++ b/systemverilog-plugin/UhdmAst.cc
@@ -3988,12 +3988,7 @@
 void UhdmAst::process_bit_select()
 {
     current_node = make_ast_node(AST::AST_IDENTIFIER);
-    visit_one_to_one({vpiIndex}, obj_h, [&](AST::AstNode *node) {
-        auto range_node = new AST::AstNode(AST::AST_RANGE, node);
-        range_node->filename = current_node->filename;
-        range_node->location = current_node->location;
-        current_node->children.push_back(range_node);
-    });
+    visit_one_to_one({vpiIndex}, obj_h, [&](AST::AstNode *node) { current_node->children.push_back(make_node(AST::AST_RANGE)({node})); });
 }
 
 void UhdmAst::process_part_select()
@@ -4290,14 +4285,14 @@
                 top_node = current_node;
                 delete node;
             } else {
-                if (!node->children.empty() && node->children[0]->type == AST::AST_RANGE && (node->str == "\\" || node->str.empty())) {
-                    top_node->children.push_back(node->children[0]);
-                    node->children.erase(node->children.begin());
-                    delete node;
-                } else {
+                if (node->type == AST::AST_IDENTIFIER) {
                     node->type = static_cast<AST::AstNodeType>(AST::Extended::AST_DOT);
                     top_node->children.push_back(node);
                     top_node = node;
+                } else {
+                    top_node->children.push_back(node->children[0]);
+                    node->children.erase(node->children.begin());
+                    delete node;
                 }
             }
         }