vhdlpp: VTypeRangeExpr::elaborate()
This commit is contained in:
parent
42ead3a482
commit
32f202bddc
|
|
@ -282,7 +282,7 @@ class VTypeRange : public VType {
|
|||
// Get the type that is limited by the range.
|
||||
inline const VType*base_type() const { return base_; }
|
||||
|
||||
private:
|
||||
protected:
|
||||
const VType*base_;
|
||||
};
|
||||
|
||||
|
|
@ -295,7 +295,6 @@ class VTypeRangeConst : public VTypeRange {
|
|||
return new VTypeRangeConst(base_type()->clone(), start_, end_);
|
||||
}
|
||||
|
||||
public: // Virtual methods
|
||||
void write_to_stream(std::ostream&fd) const;
|
||||
|
||||
private:
|
||||
|
|
@ -309,6 +308,7 @@ class VTypeRangeExpr : public VTypeRange {
|
|||
~VTypeRangeExpr();
|
||||
|
||||
VType*clone() const;
|
||||
int elaborate(Entity*end, ScopeBase*scope) const;
|
||||
|
||||
public: // Virtual methods
|
||||
void write_to_stream(std::ostream&fd) const;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,8 @@ int VType::elaborate(Entity*, ScopeBase*) const
|
|||
int VTypeArray::elaborate(Entity*ent, ScopeBase*scope) const
|
||||
{
|
||||
int errors = 0;
|
||||
etype_->elaborate(ent, scope);
|
||||
|
||||
errors += etype_->elaborate(ent, scope);
|
||||
|
||||
for (vector<range_t>::const_iterator cur = ranges_.begin()
|
||||
; cur != ranges_.end() ; ++ cur) {
|
||||
|
|
@ -43,3 +44,14 @@ int VTypeArray::elaborate(Entity*ent, ScopeBase*scope) const
|
|||
|
||||
return errors;
|
||||
}
|
||||
|
||||
int VTypeRangeExpr::elaborate(Entity*ent, ScopeBase*scope) const
|
||||
{
|
||||
int errors = 0;
|
||||
|
||||
errors += base_->elaborate(ent, scope);
|
||||
errors += start_->elaborate_expr(ent, scope, 0);
|
||||
errors += end_->elaborate_expr(ent, scope, 0);
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue