Add typedef

Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
This commit is contained in:
Ryszard Rozak 2026-02-23 15:42:35 +01:00
parent ce194dada9
commit a1bae47cd3
2 changed files with 14 additions and 2 deletions

View File

@ -1778,6 +1778,15 @@ public:
addAttrsp(attrsp);
dtypep(nullptr); // V3Width will resolve
}
AstTypedef(FileLine* fl, const string& name, AstNodeDType* dtp, bool underClass)
: ASTGEN_SUPER_Typedef(fl)
, m_name{name}
, m_declTokenNum{fl->tokenNum()}
, m_isHideLocal{false}
, m_isHideProtected{false}
, m_isUnderClass{underClass} {
dtypep(dtp);
}
ASTGEN_MEMBERS_AstTypedef;
void dump(std::ostream& str) const override;
void dumpJson(std::ostream& str) const override;

View File

@ -288,8 +288,7 @@ private:
return 1;
}
}
static AstNodeDType* getEnVarpDTypeRecursep(const AstVar* const varp,
AstNodeDType* const dtypep) {
static AstNodeDType* getEnVarpDTypeRecursep(AstVar* const varp, AstNodeDType* const dtypep) {
if (dtypep->user1p()) return VN_AS(dtypep->user1p(), NodeDType);
const size_t unpackElemNum = checkIfDTypeSupportedRecurse(dtypep, varp);
if (unpackElemNum > ELEMENTS_MAX) {
@ -361,6 +360,10 @@ private:
enStructp->dtypep(enStructp);
enStructp->classOrPackagep(structp->classOrPackagep());
dtypep->user1p(enStructp);
AstTypedef* const typedefp
= new AstTypedef{enStructp->fileline(), enStructp->name(), enStructp,
VN_IS(enStructp->classOrPackagep(), Class)};
varp->addNextHere(typedefp);
return enStructp;
} else {
for (const auto& memberp : enMemberDTypes) memberp->deleteTree();