Implemented a simple(fast?) strategy to resolve macro references.

This commit is contained in:
Roberto Raggi
2009-09-30 17:15:31 +02:00
parent e50d60ac97
commit 9a21143384
5 changed files with 104 additions and 4 deletions

View File

@@ -34,11 +34,30 @@
#include "CppDocument.h"
#include "pp.h"
#include <Control.h>
#include <QtCore/QSet>
#include <QtCore/QString>
namespace CPlusPlus {
class CPLUSPLUS_EXPORT FastMacroResolver: public MacroResolver
{
public:
FastMacroResolver(const Snapshot &snapshot);
virtual bool isMacro(TranslationUnit *unit, unsigned tokenIndex) const;
private:
bool isMacro_helper(const QByteArray &macroName,
const QString &fileName,
QSet<QString> *processed,
bool *done) const;
private:
Snapshot _snapshot;
};
class CPLUSPLUS_EXPORT FastPreprocessor: public Client
{
Environment _env;