From 25d6bfe3c4950ead12981c160b3659b6b9c2b4b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sat, 12 Feb 2011 20:12:07 +0100 Subject: [PATCH] Tokenizer::simplifyTemplates: broke out the functionality that extract a list of template declarations --- lib/tokenize.cpp | 17 +++++++++++------ lib/tokenize.h | 9 ++++++++- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 3344e7b24..1f77f1a65 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -2617,13 +2617,8 @@ std::set Tokenizer::simplifyTemplatesExpandSpecialized() return expandedtemplates; } -void Tokenizer::simplifyTemplates() +std::list Tokenizer::simplifyTemplatesGetTemplateDeclarations() { - std::set expandedtemplates; - - expandedtemplates = simplifyTemplatesExpandSpecialized(); - - // Locate templates.. std::list templates; for (Token *tok = _tokens; tok; tok = tok->next()) { @@ -2648,6 +2643,16 @@ void Tokenizer::simplifyTemplates() } } } + return templates; +} + +void Tokenizer::simplifyTemplates() +{ + std::set expandedtemplates(simplifyTemplatesExpandSpecialized()); + + // Locate templates.. + std::list templates(simplifyTemplatesGetTemplateDeclarations()); + if (templates.empty()) { removeTemplates(_tokens); diff --git a/lib/tokenize.h b/lib/tokenize.h index 1ae96b4f0..2691b967a 100644 --- a/lib/tokenize.h +++ b/lib/tokenize.h @@ -24,6 +24,7 @@ #include #include +#include #include #include @@ -398,10 +399,16 @@ public: /** * Expand specialized templates : "template<>.." - * \return names of expanded templates + * @return names of expanded templates */ std::set simplifyTemplatesExpandSpecialized(); + /** + * Get template declarations + * @return list of template declarations + */ + std::list simplifyTemplatesGetTemplateDeclarations(); + /** * Used after simplifyTemplates to perform a little cleanup. * Sometimes the simplifyTemplates isn't fully successful and then