Internals: Improve readability of selects in output (#6980)
This commit is contained in:
parent
197f11044e
commit
ca17904a62
|
|
@ -4280,7 +4280,7 @@ public:
|
||||||
ASTGEN_MEMBERS_AstArraySel;
|
ASTGEN_MEMBERS_AstArraySel;
|
||||||
void numberOperate(V3Number&, const V3Number&, const V3Number&) override { V3ERROR_NA; }
|
void numberOperate(V3Number&, const V3Number&, const V3Number&) override { V3ERROR_NA; }
|
||||||
string emitVerilog() override { return "%k(%l%f[%r])"; }
|
string emitVerilog() override { return "%k(%l%f[%r])"; }
|
||||||
string emitC() override { return "%li%k[%ri]"; }
|
string emitC() override { V3ERROR_NA_RETURN(""); } // Special cased
|
||||||
string emitSMT() const override { return "(select %l %r)"; }
|
string emitSMT() const override { return "(select %l %r)"; }
|
||||||
bool cleanOut() const override { return true; }
|
bool cleanOut() const override { return true; }
|
||||||
bool cleanLhs() const override { return false; }
|
bool cleanLhs() const override { return false; }
|
||||||
|
|
@ -4361,9 +4361,7 @@ public:
|
||||||
ASTGEN_MEMBERS_AstWordSel;
|
ASTGEN_MEMBERS_AstWordSel;
|
||||||
void numberOperate(V3Number&, const V3Number&, const V3Number&) override { V3ERROR_NA; }
|
void numberOperate(V3Number&, const V3Number&, const V3Number&) override { V3ERROR_NA; }
|
||||||
string emitVerilog() override { return "%k(%l%f[%r])"; }
|
string emitVerilog() override { return "%k(%l%f[%r])"; }
|
||||||
string emitC() override {
|
string emitC() override { V3ERROR_NA_RETURN(""); } // Special cased
|
||||||
return "%li[%ri]";
|
|
||||||
} // Not %k, as usually it's a small constant rhsp
|
|
||||||
bool cleanOut() const override { return true; }
|
bool cleanOut() const override { return true; }
|
||||||
bool cleanLhs() const override { return true; }
|
bool cleanLhs() const override { return true; }
|
||||||
bool cleanRhs() const override { return true; }
|
bool cleanRhs() const override { return true; }
|
||||||
|
|
|
||||||
|
|
@ -1651,6 +1651,22 @@ public:
|
||||||
puts(VSelfPointerText::replaceThis(m_useSelfForThis, "this"));
|
puts(VSelfPointerText::replaceThis(m_useSelfForThis, "this"));
|
||||||
puts("}");
|
puts("}");
|
||||||
}
|
}
|
||||||
|
void visit(AstNodeSel* nodep) override {
|
||||||
|
if (!VN_IS(nodep, ArraySel) && !VN_IS(nodep, WordSel)) {
|
||||||
|
visit(static_cast<AstNodeBiop*>(nodep));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// ArraySel or WordSel
|
||||||
|
iterateAndNextConstNull(nodep->fromp());
|
||||||
|
// Special case constant index for readability
|
||||||
|
if (AstConst* const idxp = VN_CAST(nodep->bitp(), Const)) {
|
||||||
|
puts("[" + std::to_string(idxp->toUInt()) + "U]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
putbs("[");
|
||||||
|
iterateAndNextConstNull(nodep->bitp());
|
||||||
|
puts("]");
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
void visit(AstConsAssoc* nodep) override {
|
void visit(AstConsAssoc* nodep) override {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue