Internals: Minor refactoring from class branch.

This commit is contained in:
Wilson Snyder 2020-01-15 20:18:12 -05:00
parent e2ba1c041f
commit 023526ad4b
5 changed files with 19 additions and 9 deletions

View File

@ -999,6 +999,12 @@ void AstJumpGo::dump(std::ostream& str) const {
if (labelp()) { labelp()->dump(str); }
else { str<<"%Error:UNLINKED"; }
}
void AstMemberSel::dump(std::ostream& str) const {
this->AstNode::dump(str);
str << " -> ";
if (varp()) { varp()->dump(str); }
else { str << "%Error:UNLINKED"; }
}
void AstModportFTaskRef::dump(std::ostream& str) const {
this->AstNode::dump(str);
if (isExport()) str<<" EXPORT";

View File

@ -2064,6 +2064,7 @@ public:
virtual void cloneRelink() { if (m_varp && m_varp->clonep()) { m_varp = m_varp->clonep(); } }
virtual const char* broken() const {
BROKEN_RTN(m_varp && !m_varp->brokeExists()); return NULL; }
virtual void dump(std::ostream& str) const;
virtual string name() const { return m_name; }
virtual V3Hash sameHash() const { return V3Hash(m_name); }
virtual void numberOperate(V3Number& out, const V3Number& lhs, const V3Number& rhs) {

View File

@ -49,12 +49,12 @@ private:
// NODE STATE
// Entire netlist:
// AstCaseItem::user2() // bool Moved default caseitems
AstUser2InUse m_inuser2;
AstUser2InUse m_inuser2;
// STATE
// Below state needs to be preserved between each module call.
AstNodeModule* m_modp; // Current module
AstNodeFTask* m_ftaskp; // Function or task we're inside
AstNodeModule* m_modp; // Current module
AstNodeFTask* m_ftaskp; // Function or task we're inside
AstNodeCoverOrAssert* m_assertp; // Current assertion
int m_senitemCvtNum; // Temporary signal counter

View File

@ -129,15 +129,14 @@ public:
return iter->second;
}
bool ftaskNoInline(AstNodeFTask* nodep) {
return (getFTaskVertex(nodep)->noInline());
return getFTaskVertex(nodep)->noInline();
}
AstCFunc* ftaskCFuncp(AstNodeFTask* nodep) {
return (getFTaskVertex(nodep)->cFuncp());
return getFTaskVertex(nodep)->cFuncp();
}
void ftaskCFuncp(AstNodeFTask* nodep, AstCFunc* cfuncp) {
getFTaskVertex(nodep)->cFuncp(cfuncp);
}
void checkPurity(AstNodeFTask* nodep) {
checkPurity(nodep, getFTaskVertex(nodep));
}

View File

@ -5354,13 +5354,17 @@ classExtendsE<nodep>: // IEEE: part of class_declaration
classExtendsList<nodep>: // IEEE: part of class_declaration
classExtendsOne { $$ = $1; }
| classExtendsList ',' classExtendsOne { $$ = AstNode::addNextNull($1, $3); }
| classExtendsList ',' classExtendsOne
{ $$ = $3; BBUNSUP($3, "Multiple inheritance illegal on non-interface classes (IEEE 8.13)"
", and unsupported for interface classes."); }
;
classExtendsOne<nodep>: // IEEE: part of class_declaration
class_typeWithoutId { $$ = NULL; BBUNSUP($1, "Unsupported: extends"); }
class_typeWithoutId
{ $$ = NULL; BBUNSUP($1, "Unsupported: extends"); }
// // IEEE: Might not be legal to have more than one set of parameters in an extends
| class_typeWithoutId '(' list_of_argumentsE ')' { $$ = NULL; BBUNSUP($1, "Unsupported: extends"); }
| class_typeWithoutId '(' list_of_argumentsE ')'
{ $$ = NULL; BBUNSUP($1, "Unsupported: extends"); }
;
classImplementsE<nodep>: // IEEE: part of class_declaration