vhdlpp: Elaborate types for signals & variables.
This commit is contained in:
parent
414f240694
commit
42ead3a482
|
|
@ -45,19 +45,19 @@ int Architecture::elaborate(Entity*entity)
|
||||||
// Elaborate initializer expressions for signals & variables
|
// Elaborate initializer expressions for signals & variables
|
||||||
for (map<perm_string,Signal*>::iterator cur = old_signals_.begin()
|
for (map<perm_string,Signal*>::iterator cur = old_signals_.begin()
|
||||||
; cur != old_signals_.end() ; ++cur) {
|
; cur != old_signals_.end() ; ++cur) {
|
||||||
cur->second->elaborate_init_expr(entity, this);
|
cur->second->elaborate(entity, this);
|
||||||
}
|
}
|
||||||
for (map<perm_string,Signal*>::iterator cur = new_signals_.begin()
|
for (map<perm_string,Signal*>::iterator cur = new_signals_.begin()
|
||||||
; cur != new_signals_.end() ; ++cur) {
|
; cur != new_signals_.end() ; ++cur) {
|
||||||
cur->second->elaborate_init_expr(entity, this);
|
cur->second->elaborate(entity, this);
|
||||||
}
|
}
|
||||||
for (map<perm_string,Variable*>::iterator cur = old_variables_.begin()
|
for (map<perm_string,Variable*>::iterator cur = old_variables_.begin()
|
||||||
; cur != old_variables_.end() ; ++cur) {
|
; cur != old_variables_.end() ; ++cur) {
|
||||||
cur->second->elaborate_init_expr(entity, this);
|
cur->second->elaborate(entity, this);
|
||||||
}
|
}
|
||||||
for (map<perm_string,Variable*>::iterator cur = new_variables_.begin()
|
for (map<perm_string,Variable*>::iterator cur = new_variables_.begin()
|
||||||
; cur != new_variables_.end() ; ++cur) {
|
; cur != new_variables_.end() ; ++cur) {
|
||||||
cur->second->elaborate_init_expr(entity, this);
|
cur->second->elaborate(entity, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Elaborate subprograms
|
// Elaborate subprograms
|
||||||
|
|
|
||||||
|
|
@ -35,11 +35,12 @@ SigVarBase::~SigVarBase()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void SigVarBase::elaborate_init_expr(Entity*ent, ScopeBase*scope)
|
void SigVarBase::elaborate(Entity*ent, ScopeBase*scope)
|
||||||
{
|
{
|
||||||
if(init_expr_) {
|
if(init_expr_)
|
||||||
init_expr_->elaborate_expr(ent, scope, peek_type());
|
init_expr_->elaborate_expr(ent, scope, peek_type());
|
||||||
}
|
|
||||||
|
type_->elaborate(ent, scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SigVarBase::type_elaborate_(VType::decl_t&decl)
|
void SigVarBase::type_elaborate_(VType::decl_t&decl)
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,8 @@ class SigVarBase : public LineInfo {
|
||||||
|
|
||||||
void dump(ostream&out, int indent = 0) const;
|
void dump(ostream&out, int indent = 0) const;
|
||||||
|
|
||||||
// Elaborates initializer expressions if needed.
|
// Elaborates type & initializer expressions.
|
||||||
void elaborate_init_expr(Entity*ent, ScopeBase*scope);
|
void elaborate(Entity*ent, ScopeBase*scope);
|
||||||
|
|
||||||
perm_string peek_name() const { return name_; }
|
perm_string peek_name() const { return name_; }
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue