Usually there is a single instance instance_name
of class
name_stack
. It is used to maintain and construct the instance
names during elaboration.
Example:
name_stack instance_name; // instance_name.get_name()=="" instance_name.push("mylib"); // instance_name.get_name()=="mylib" instance_name.push(":myent"); // instance_name.get_name()=="mylib:myent" instance_name.push(":v1"); // instance_name.get_name()=="mylib:myent:v1" instance_name.pop(); // instance_name.get_name()=="mylib:myent" instance_name.push(":s"); // instance_name.get_name()=="mylib:myent:s" instance_name.set(":t1"); // instance_name.get_name()=="mylib:myent:t1" instance_name.set(":t2"); // instance_name.get_name()=="mylib:myent:t2" instance_name.pop(); // instance_name.get_name()=="mylib:myent"