Support $stable (#2488)

This commit is contained in:
Peter Monsson
2020-07-28 18:26:24 -04:00
committed by GitHub
parent a52f975bd7
commit 1280070abb
8 changed files with 155 additions and 0 deletions
+15
View File
@@ -94,6 +94,21 @@ private:
iterateChildren(nodep);
nodep->sentreep(newSenTree(nodep));
}
virtual void visit(AstStable* nodep) VL_OVERRIDE {
if (nodep->sentreep()) return; // Already processed
iterateChildren(nodep);
FileLine* fl = nodep->fileline();
AstNode* exprp = nodep->exprp()->unlinkFrBack();
AstNode* past = new AstPast(fl, exprp, NULL);
past->dtypeFrom(exprp);
exprp = new AstEq(fl, past,
exprp->cloneTree(false)); // new AstVarRef(fl, exprp, true)
exprp->dtypeSetLogicBool();
nodep->replaceWith(exprp);
nodep->sentreep(newSenTree(nodep));
VL_DO_DANGLING(pushDeletep(nodep), nodep);
}
virtual void visit(AstPropClocked* nodep) VL_OVERRIDE {
// No need to iterate the body, once replace will get iterated
iterateAndNextNull(nodep->sensesp());