From 77aa3064783d64cc7d028772a59f13e5f0cd4780 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Wed, 7 Oct 2009 13:56:59 +0200 Subject: Removed the MacroResolver Unfortunately, the MacroResolver does not scale and we get pretty bad performances when parsing big projects. --- src/shared/cplusplus/CPlusPlusForwardDeclarations.h | 1 - src/shared/cplusplus/Control.cpp | 15 +-------------- src/shared/cplusplus/Control.h | 15 --------------- src/shared/cplusplus/Parser.cpp | 12 ------------ src/shared/cplusplus/Parser.h | 2 -- 5 files changed, 1 insertion(+), 44 deletions(-) (limited to 'src/shared/cplusplus') 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 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 identifiers; LiteralTable stringLiterals; LiteralTable 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; -- cgit v1.2.1