forked from qt-creator/qt-creator
C++: Streamline preprocessor expansion buffer handling
Change-Id: If86c73945808e871f60fdf231b91e02f66bd1b32 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
@@ -133,6 +133,14 @@ private:
|
||||
unsigned m_lineRef;
|
||||
|
||||
ExpansionStatus m_expansionStatus;
|
||||
void setExpansionStatus(ExpansionStatus status)
|
||||
{
|
||||
m_expansionStatus = status;
|
||||
m_currentExpansion = (status == Expanding)
|
||||
? &m_expansionResult : m_result;
|
||||
}
|
||||
QByteArray *m_currentExpansion;
|
||||
|
||||
QByteArray m_expansionResult;
|
||||
QVector<QPair<unsigned, unsigned> > m_expandedTokensInfo;
|
||||
|
||||
@@ -227,18 +235,13 @@ private:
|
||||
|
||||
void trackExpansionCycles(PPToken *tk);
|
||||
|
||||
template <class T>
|
||||
void writeOutput(const T &t);
|
||||
void writeOutput(const ByteArrayRef &ref);
|
||||
QByteArray ¤tOutputBuffer() { return *m_state.m_currentExpansion; }
|
||||
bool atStartOfOutputLine() const;
|
||||
void maybeStartOutputLine();
|
||||
void generateOutputLineMarker(unsigned lineno);
|
||||
void synchronizeOutputLines(const PPToken &tk, bool forceLine = false);
|
||||
void removeTrailingOutputLines();
|
||||
|
||||
const QByteArray ¤tOutputBuffer() const;
|
||||
QByteArray ¤tOutputBuffer();
|
||||
|
||||
void enforceSpacing(const PPToken &tk, bool forceSpacing = false);
|
||||
static std::size_t computeDistance(const PPToken &tk, bool forceTillLine = false);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user