forked from qt-creator/qt-creator
[C++] Rewrite of the preprocessor.
This rewrite fixes a couple of issues with the pre-processor. It now supports: - macros in macro bodies - stringification of parameters [cpp.stringize] - the concatenation operator [cpp.concat] - #include MACRO_HERE - defined() inside macro bodies used in pp-conditions. Change-Id: Ifdb78041fb6afadf44f939a4bd66ce2832b8601f Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
@@ -77,8 +77,7 @@ public:
|
||||
|
||||
void appendMacro(const Macro ¯o);
|
||||
void addMacroUse(const Macro ¯o, unsigned offset, unsigned length,
|
||||
unsigned beginLine, const QVector<MacroArgumentReference> &range,
|
||||
bool inCondition);
|
||||
unsigned beginLine, const QVector<MacroArgumentReference> &range);
|
||||
void addUndefinedMacroUse(const QByteArray &name, unsigned offset);
|
||||
|
||||
Control *control() const;
|
||||
@@ -247,7 +246,6 @@ public:
|
||||
class MacroUse: public Block {
|
||||
Macro _macro;
|
||||
QVector<Block> _arguments;
|
||||
bool _inCondition;
|
||||
unsigned _beginLine;
|
||||
|
||||
public:
|
||||
@@ -255,7 +253,6 @@ public:
|
||||
unsigned begin, unsigned end, unsigned beginLine)
|
||||
: Block(begin, end),
|
||||
_macro(macro),
|
||||
_inCondition(false),
|
||||
_beginLine(beginLine)
|
||||
{ }
|
||||
|
||||
@@ -268,9 +265,6 @@ public:
|
||||
QVector<Block> arguments() const
|
||||
{ return _arguments; }
|
||||
|
||||
bool isInCondition() const
|
||||
{ return _inCondition; }
|
||||
|
||||
unsigned beginLine() const
|
||||
{ return _beginLine; }
|
||||
|
||||
@@ -281,9 +275,6 @@ public:
|
||||
void addArgument(const Block &block)
|
||||
{ _arguments.append(block); }
|
||||
|
||||
void setInCondition(bool set)
|
||||
{ _inCondition = set; }
|
||||
|
||||
friend class Document;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user