#include <dsym.h>
Inheritance diagram for sym_component:


Public Member Functions | |
| sym_component (STRING n) | |
| sym_component () | |
| ~sym_component () | |
| const uint | get_sy_kind (void) |
| void | init (void) |
| void | dealloc (void) |
| void * | GetMem (uint num_bytes) |
| Allocate memory from the pool that is local to the component. | |
| LIST< sym * > * | get_proc_list (void) |
| LIST< NODE * > * | get_sigass_list (void) |
Private Member Functions | |
| sym_component (const sym_component &c) | |
| void | proc_list_dealloc (void) |
| Deallocate the process list symbol tables. | |
Private Attributes | |
| pool | mem |
| LIST< sym * > | proc_list |
| LIST< NODE * > | sigass_list |
As a result, components only exist after elaboration when this binding is defined.
After p-code and "import" information is generated for a component the statement trees and VHDL symbol information can be discarded. As a result, a component has its own associated memory pool, in addition to having its own symbol table (which it inherits from the sym_scope class).
As with all symbols, the sym_component object is usually dynamically allocated. Since the copy constructor is not allowed for a pool, the class must be explicitly initialized by calling init().
Definition at line 393 of file dsym.h.
|
|
Definition at line 399 of file dsym.h. References FALSE.
00400 {
00401 assert( FALSE );
00402 }
|
|
|
Definition at line 411 of file dsym.h. References init().
|
|
|
Definition at line 415 of file dsym.h. References init().
00416 {
00417 init();
00418 }
|
|
|
Definition at line 420 of file dsym.h. References dealloc().
00421 {
00422 dealloc();
00423 }
|
|
|
deallocate symbol and type table from base class release the memory pool Reimplemented from sym_scope. Definition at line 437 of file dsym.h. References LIST< NODE * >::dealloc(), sym_scope::dealloc(), pool::delete_pool(), mem, proc_list_dealloc(), and sigass_list. Referenced by ~sym_component().
00438 {
00440 sym_scope::dealloc();
00441 proc_list_dealloc();
00442 sigass_list.dealloc();
00444 mem.delete_pool();
00445 }
|
|
|
Reimplemented from sym. Definition at line 459 of file dsym.h. References proc_list.
00460 {
00461 return &proc_list;
00462 }
|
|
|
Reimplemented from sym. Definition at line 463 of file dsym.h. References sigass_list.
00464 {
00465 return &sigass_list;
00466 }
|
|
|
Reimplemented from sym. Definition at line 425 of file dsym.h. References sy_component, and uint.
00425 { return sy_component; }
|
|
|
Allocate memory from the pool that is local to the component.
Reimplemented from sym. Definition at line 451 of file dsym.h. References pool::GetMem(), and mem.
|
|
|
get a new memory pool Set the memory allocation pools for the symbol and type tables. Reimplemented from sym. Definition at line 427 of file dsym.h. References mem, pool::new_pool(), typetable::set_pool(), symtable::set_pool(), sym_scope::symtab, and sym_scope::typtab. Referenced by sym_component().
|
|
|
Deallocate the process list symbol tables.
Definition at line 69 of file sym.C. References LIST< sym * >::dealloc(), symtable::dealloc(), symtable::dealloc_sub_tables(), LIST< sym * >::first(), LIST< sym * >::get_item(), sym::get_symtab(), sym::has_scope(), LIST< sym * >::next(), NULL, and proc_list. Referenced by dealloc().
00070 {
00071 LIST<sym *>::handle h;
00072 sym *pListSym;
00073
00074 for (h = proc_list.first(); h != NULL; h = proc_list.next( h ) ) {
00075 pListSym = proc_list.get_item( h );
00076 if (pListSym != NULL && pListSym->has_scope()) {
00077 pListSym->get_symtab()->dealloc_sub_tables();
00078 pListSym->get_symtab()->dealloc();
00079 }
00080 } // for
00081 proc_list.dealloc();
00082 } // proc_list_dealloc
|
|
|
|
|
|
Definition at line 407 of file dsym.h. Referenced by get_proc_list(), and proc_list_dealloc(). |
|
|
Definition at line 408 of file dsym.h. Referenced by dealloc(), and get_sigass_list(). |
1.3.3