Fix indexed/part select

Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
diff --git a/systemverilog-plugin/UhdmAst.cc b/systemverilog-plugin/UhdmAst.cc
index f1b81a9..aaccf47 100644
--- a/systemverilog-plugin/UhdmAst.cc
+++ b/systemverilog-plugin/UhdmAst.cc
@@ -3999,12 +3999,7 @@
 void UhdmAst::process_part_select()
 {
     current_node = make_ast_node(AST::AST_IDENTIFIER);
-    vpiHandle parent_h = vpi_handle(vpiParent, obj_h);
-    current_node->str = get_name(parent_h);
-    vpi_release_handle(parent_h);
-    auto range_node = new AST::AstNode(AST::AST_RANGE);
-    range_node->filename = current_node->filename;
-    range_node->location = current_node->location;
+    AST::AstNode *range_node = make_node(AST::AST_RANGE);
     visit_one_to_one({vpiLeftRange, vpiRightRange}, obj_h, [&](AST::AstNode *node) { range_node->children.push_back(node); });
     current_node->children.push_back(range_node);
 }
@@ -4012,24 +4007,18 @@
 void UhdmAst::process_indexed_part_select()
 {
     current_node = make_ast_node(AST::AST_IDENTIFIER);
-    vpiHandle parent_h = vpi_handle(vpiParent, obj_h);
-    current_node->str = get_name(parent_h);
-    vpi_release_handle(parent_h);
     // TODO: check if there are other types, for now only handle 1 and 2 (+: and -:)
     auto indexed_part_select_type = vpi_get(vpiIndexedPartSelectType, obj_h) == 1 ? AST::AST_ADD : AST::AST_SUB;
-    auto range_node = new AST::AstNode(AST::AST_RANGE);
-    range_node->filename = current_node->filename;
-    range_node->location = current_node->location;
+    AST::AstNode *range_node = make_node(AST::AST_RANGE);
     visit_one_to_one({vpiBaseExpr}, obj_h, [&](AST::AstNode *node) { range_node->children.push_back(node); });
     visit_one_to_one({vpiWidthExpr}, obj_h, [&](AST::AstNode *node) {
-        auto right_range_node = new AST::AstNode(indexed_part_select_type);
+        AST::AstNode *right_range_node = make_node(indexed_part_select_type);
         right_range_node->children.push_back(range_node->children[0]->clone());
         right_range_node->children.push_back(node);
-        auto sub = new AST::AstNode(indexed_part_select_type == AST::AST_ADD ? AST::AST_SUB : AST::AST_ADD);
+        AST::AstNode *sub = make_node(indexed_part_select_type == AST::AST_ADD ? AST::AST_SUB : AST::AST_ADD);
         sub->children.push_back(right_range_node);
         sub->children.push_back(AST::AstNode::mkconst_int(1, false, 1));
         range_node->children.push_back(sub);
-        // range_node->children.push_back(right_range_node);
     });
     if (indexed_part_select_type == AST::AST_ADD) {
         std::reverse(range_node->children.begin(), range_node->children.end());