mirror of
https://github.com/verilator/verilator.git
synced 2025-05-02 05:26:53 +00:00
With --no-decoration also shrink output code indents.
This commit is contained in:
parent
c30211cb27
commit
7d8c51181d
@ -551,10 +551,12 @@ bool V3InFilter::readWholefile(const string& filename, V3InFilter::StrList& outl
|
|||||||
// V3OutFormatter: A class for printing to a file, with automatic indentation of C++ code.
|
// V3OutFormatter: A class for printing to a file, with automatic indentation of C++ code.
|
||||||
|
|
||||||
V3OutFormatter::V3OutFormatter(const string& filename, V3OutFormatter::Language lang)
|
V3OutFormatter::V3OutFormatter(const string& filename, V3OutFormatter::Language lang)
|
||||||
: m_filename(filename), m_lang(lang), m_blockIndent(4)
|
: m_filename(filename), m_lang(lang)
|
||||||
, m_lineno(1), m_column(0)
|
, m_lineno(1), m_column(0)
|
||||||
, m_nobreak(false), m_prependIndent(true), m_indentLevel(0)
|
, m_nobreak(false), m_prependIndent(true), m_indentLevel(0)
|
||||||
, m_declSAlign(0), m_declNSAlign(0), m_declPadNum(0) {
|
, m_declSAlign(0), m_declNSAlign(0), m_declPadNum(0) {
|
||||||
|
m_blockIndent = v3Global.opt.decoration() ? 4 : 1;
|
||||||
|
m_commaWidth = v3Global.opt.decoration() ? 50 : 150;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
@ -682,7 +684,11 @@ void V3OutFormatter::puts (const char *strg) {
|
|||||||
break;
|
break;
|
||||||
case '(':
|
case '(':
|
||||||
indentInc();
|
indentInc();
|
||||||
m_parenVec.push(m_column);
|
if (v3Global.opt.decoration()) {
|
||||||
|
m_parenVec.push(m_column); // Line up continuation with open paren, plus one indent
|
||||||
|
} else {
|
||||||
|
m_parenVec.push(m_indentLevel*m_blockIndent); // Line up continuation with block+1
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ')':
|
case ')':
|
||||||
if (!m_parenVec.empty()) m_parenVec.pop();
|
if (!m_parenVec.empty()) m_parenVec.pop();
|
||||||
|
@ -97,7 +97,6 @@ public:
|
|||||||
class V3OutFormatter {
|
class V3OutFormatter {
|
||||||
// TYPES
|
// TYPES
|
||||||
enum MiscConsts {
|
enum MiscConsts {
|
||||||
WIDTH = 50, // Width after which to break at ,'s
|
|
||||||
MAXSPACE = 80}; // After this indent, stop indenting more
|
MAXSPACE = 80}; // After this indent, stop indenting more
|
||||||
public:
|
public:
|
||||||
enum AlignClass {
|
enum AlignClass {
|
||||||
@ -115,6 +114,7 @@ private:
|
|||||||
string m_filename;
|
string m_filename;
|
||||||
Language m_lang; // Indenting Verilog code
|
Language m_lang; // Indenting Verilog code
|
||||||
int m_blockIndent; // Characters per block indent
|
int m_blockIndent; // Characters per block indent
|
||||||
|
int m_commaWidth; // Width after which to break at ,'s
|
||||||
int m_lineno;
|
int m_lineno;
|
||||||
int m_column;
|
int m_column;
|
||||||
int m_nobreak; // Basic operator or begin paren, don't break next
|
int m_nobreak; // Basic operator or begin paren, don't break next
|
||||||
@ -147,7 +147,7 @@ public:
|
|||||||
void putAlign(bool isstatic/*AlignClass*/, int align, int size=0/*=align*/, const string& prefix=""); // Declare a variable, with natural alignment
|
void putAlign(bool isstatic/*AlignClass*/, int align, int size=0/*=align*/, const string& prefix=""); // Declare a variable, with natural alignment
|
||||||
void putbs(const char* strg) { putBreakExpr(); puts(strg); }
|
void putbs(const char* strg) { putBreakExpr(); puts(strg); }
|
||||||
void putbs(const string& strg) { putBreakExpr(); puts(strg); }
|
void putbs(const string& strg) { putBreakExpr(); puts(strg); }
|
||||||
bool exceededWidth() const { return m_column > WIDTH; }
|
bool exceededWidth() const { return m_column > m_commaWidth; }
|
||||||
bool tokenStart(const char* cp, const char* cmp);
|
bool tokenStart(const char* cp, const char* cmp);
|
||||||
bool tokenEnd(const char* cp);
|
bool tokenEnd(const char* cp);
|
||||||
void indentInc() { m_indentLevel += m_blockIndent; }
|
void indentInc() { m_indentLevel += m_blockIndent; }
|
||||||
|
Loading…
Reference in New Issue
Block a user