summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2009-10-07 13:56:59 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2009-10-07 13:57:45 +0200
commit77aa3064783d64cc7d028772a59f13e5f0cd4780 (patch)
treefb60c890f6d95be999d0e39afd7291a6dc5e25fe /src/shared/cplusplus
parent07f05c8ef09af53e2fdbe4a46823396aecab5f39 (diff)
downloadqt-creator-77aa3064783d64cc7d028772a59f13e5f0cd4780.tar.gz
Removed the MacroResolver
Unfortunately, the MacroResolver does not scale and we get pretty bad performances when parsing big projects.
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r--src/shared/cplusplus/CPlusPlusForwardDeclarations.h1
-rw-r--r--src/shared/cplusplus/Control.cpp15
-rw-r--r--src/shared/cplusplus/Control.h15
-rw-r--r--src/shared/cplusplus/Parser.cpp12
-rw-r--r--src/shared/cplusplus/Parser.h2
5 files changed, 1 insertions, 44 deletions
diff --git a/src/shared/cplusplus/CPlusPlusForwardDeclarations.h b/src/shared/cplusplus/CPlusPlusForwardDeclarations.h
index 2467d4c56b..b060f11dfa 100644
--- a/src/shared/cplusplus/CPlusPlusForwardDeclarations.h
+++ b/src/shared/cplusplus/CPlusPlusForwardDeclarations.h
@@ -83,7 +83,6 @@ class Semantic;
class Control;
class MemoryPool;
class DiagnosticClient;
-class MacroResolver;
class Identifier;
class Literal;
diff --git a/src/shared/cplusplus/Control.cpp b/src/shared/cplusplus/Control.cpp
index 6338d99fd2..30c5552bbe 100644
--- a/src/shared/cplusplus/Control.cpp
+++ b/src/shared/cplusplus/Control.cpp
@@ -59,11 +59,6 @@
CPLUSPLUS_BEGIN_NAMESPACE
-MacroResolver::MacroResolver()
-{ }
-
-MacroResolver::~MacroResolver()
-{ }
template <typename _Iterator>
static void delete_map_entries(_Iterator first, _Iterator last)
@@ -93,8 +88,7 @@ public:
Data(Control *control)
: control(control),
translationUnit(0),
- diagnosticClient(0),
- macroResolver(0)
+ diagnosticClient(0)
{ }
~Data()
@@ -539,7 +533,6 @@ public:
Control *control;
TranslationUnit *translationUnit;
DiagnosticClient *diagnosticClient;
- MacroResolver *macroResolver;
LiteralTable<Identifier> identifiers;
LiteralTable<StringLiteral> stringLiterals;
LiteralTable<NumericLiteral> numericLiterals;
@@ -602,12 +595,6 @@ TranslationUnit *Control::switchTranslationUnit(TranslationUnit *unit)
return previousTranslationUnit;
}
-MacroResolver *Control::macroResolver() const
-{ return d->macroResolver; }
-
-void Control::setMacroResolver(MacroResolver *macroResolver)
-{ d->macroResolver = macroResolver; }
-
DiagnosticClient *Control::diagnosticClient() const
{ return d->diagnosticClient; }
diff --git a/src/shared/cplusplus/Control.h b/src/shared/cplusplus/Control.h
index 060be182b6..9a41629fea 100644
--- a/src/shared/cplusplus/Control.h
+++ b/src/shared/cplusplus/Control.h
@@ -55,18 +55,6 @@
CPLUSPLUS_BEGIN_HEADER
CPLUSPLUS_BEGIN_NAMESPACE
-class CPLUSPLUS_EXPORT MacroResolver
-{
- MacroResolver(const MacroResolver &other);
- void operator = (const MacroResolver &other);
-
-public:
- MacroResolver();
- virtual ~MacroResolver();
-
- virtual bool isMacro(TranslationUnit *unit, unsigned tokenIndex) const = 0;
-};
-
class CPLUSPLUS_EXPORT Control
{
public:
@@ -76,9 +64,6 @@ public:
TranslationUnit *translationUnit() const;
TranslationUnit *switchTranslationUnit(TranslationUnit *unit);
- MacroResolver *macroResolver() const;
- void setMacroResolver(MacroResolver *macroResolver);
-
DiagnosticClient *diagnosticClient() const;
void setDiagnosticClient(DiagnosticClient *diagnosticClient);
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index d335b5ebff..958d740a58 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -244,14 +244,6 @@ void Parser::match(int kind, unsigned *token)
}
}
-bool Parser::isMacro(unsigned tokenIndex) const
-{
- if (MacroResolver *r = _control->macroResolver())
- return r->isMacro(_translationUnit, tokenIndex);
-
- return false;
-}
-
bool Parser::parseClassOrNamespaceName(NameAST *&node)
{
if (LA() == T_IDENTIFIER) {
@@ -2561,10 +2553,6 @@ bool Parser::parseBuiltinTypeSpecifier(SpecifierAST *&node)
bool Parser::parseSimpleDeclaration(DeclarationAST *&node,
bool acceptStructDeclarator)
{
- if (LA() == T_IDENTIFIER && isMacro(cursor())) {
- // printf("***** found macro reference `%s'\n", tok().identifier->chars());
- }
-
unsigned qt_invokable_token = 0;
if (acceptStructDeclarator && (LA() == T_Q_SIGNAL || LA() == T_Q_SLOT))
qt_invokable_token = consumeToken();
diff --git a/src/shared/cplusplus/Parser.h b/src/shared/cplusplus/Parser.h
index 1bd6700f53..2f274e93ab 100644
--- a/src/shared/cplusplus/Parser.h
+++ b/src/shared/cplusplus/Parser.h
@@ -286,8 +286,6 @@ private:
inline void rewind(unsigned cursor)
{ _tokenIndex = cursor; }
- bool isMacro(unsigned tokenIndex) const;
-
private:
TranslationUnit *_translationUnit;
Control *_control;