コード例 #1
0
void AstNode::dump(ostream& str) {
    str<<typeName()<<" "<<(void*)this
	//<<" "<<(void*)this->m_backp
       <<" <e"<<dec<<editCount()
       <<((editCount()>=editCountLast())?"#>":">")
       <<" {"<<fileline()->filenameLetters()<<dec<<fileline()->lineno()<<"}";
    if (user1p()) str<<" u1="<<(void*)user1p();
    if (user2p()) str<<" u2="<<(void*)user2p();
    if (user3p()) str<<" u3="<<(void*)user3p();
    if (user4p()) str<<" u4="<<(void*)user4p();
    if (user5p()) str<<" u5="<<(void*)user5p();
    if (hasDType()) {
	if (dtypep()==this) str<<" @dt="<<"this@";
	else str<<" @dt="<<(void*)dtypep()<<"@";  // Final @ so less likely to by accident think it's nodep
	if (AstNodeDType* dtp = dtypep()) {
	    dtp->dumpSmall(str);
	}
    } else { // V3Broken will throw an error
	if (dtypep()) str<<" %Error-dtype-exp=null,got="<<(void*)dtypep();
    }
    if (name()!="") {
	if (castConst()) str<<"  "<<name();  // Already quoted
	else str<<"  "<<V3Number::quoteNameControls(name());
    }
}
コード例 #2
0
ファイル: V3AstNodes.cpp プロジェクト: torc-isi/torc
void AstNode::dump(ostream& str) {
    str<<typeName()<<" "<<(void*)this
	//<<" "<<(void*)this->m_backp
       <<" <e"<<dec<<editCount()
       <<((editCount()>=editCountLast())?"#>":">")
       <<" {"<<fileline()->filenameLetters()<<dec<<fileline()->lineno()<<"}"
       <<" "<<(isSigned()?"s":"")
       <<(isDouble()?"d":"")
       <<"w"<<(widthSized()?"":"u")<<width();
    if (!widthSized()) str<<"/"<<widthMin();
    if (name()!="") str<<"  "<<AstNode::quoteName(name());
}