| #ifndef __HIERARCHY_H__ |
| #define __HIERARCHY_H__ |
| |
| #include "string_cache.h" |
| #include "odin_types.h" |
| |
| struct sc_hierarchy{ |
| char *scope_id; |
| char *instance_name_prefix; |
| |
| struct ast_node_t *top_node; |
| |
| STRING_CACHE *local_defparam_table_sc; |
| STRING_CACHE *local_param_table_sc; |
| STRING_CACHE *local_symbol_table_sc; |
| |
| struct ast_node_t **local_symbol_table; |
| int num_local_symbol_table; |
| |
| sc_hierarchy *parent; |
| |
| sc_hierarchy **module_children; |
| sc_hierarchy **function_children; |
| sc_hierarchy **task_children; |
| sc_hierarchy **block_children; |
| |
| int num_module_children; |
| int num_function_children; |
| int num_task_children; |
| int num_block_children; |
| |
| int num_unnamed_genblks; |
| }; |
| |
| |
| sc_hierarchy *init_sc_hierarchy(); |
| sc_hierarchy *copy_sc_hierarchy(sc_hierarchy *to_copy); |
| void free_sc_hierarchy(sc_hierarchy *to_free); |
| ast_node_t *resolve_hierarchical_name_reference(sc_hierarchy *local_ref, char *identifier); |
| |
| |
| #endif |