diff options
| author | hjk <[email protected]> | 2013-04-16 11:23:05 +0200 |
|---|---|---|
| committer | Erik Verbruggen <[email protected]> | 2013-04-16 12:30:45 +0200 |
| commit | 980fe3203d418235857bcd8f5a4a3d32ace15892 (patch) | |
| tree | ebe6452ba9aaae39a1ca8f04e0836b4579d51452 /src/libs/cplusplus/pp-engine.h | |
| parent | 237c82fe474b9da351e03c24a89f3305b1d7dc28 (diff) | |
C++: Streamline preprocessor expansion buffer handling
Change-Id: If86c73945808e871f60fdf231b91e02f66bd1b32
Reviewed-by: Erik Verbruggen <[email protected]>
Diffstat (limited to 'src/libs/cplusplus/pp-engine.h')
| -rw-r--r-- | src/libs/cplusplus/pp-engine.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/libs/cplusplus/pp-engine.h b/src/libs/cplusplus/pp-engine.h index 7d04849168d..7f75b7c6567 100644 --- a/src/libs/cplusplus/pp-engine.h +++ b/src/libs/cplusplus/pp-engine.h @@ -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); |
