aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/scanner/cpp
diff options
context:
space:
mode:
authorRuslan Nigmatullin <euroelessar@yandex.ru>2012-09-17 20:32:42 +0400
committerJoerg Bornemann <joerg.bornemann@digia.com>2012-09-20 14:42:35 +0200
commitb837688dd9bc27f9ad10a6072ee0ed0a3a48e925 (patch)
treef7983309c82fff3ba7a0b3eca76136a5a332da92 /src/plugins/scanner/cpp
parent80cce4eb104bc9095a4739cc0edd0fb87bc1e0e6 (diff)
Added include parser support for ObjC++ and ObjC
Change-Id: I749bee8a6ad3f03a6fa63432d88ccf4c322fad6d Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/plugins/scanner/cpp')
-rw-r--r--src/plugins/scanner/cpp/cpp.cpp34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/plugins/scanner/cpp/cpp.cpp b/src/plugins/scanner/cpp/cpp.cpp
index c7c5c510b..d29b7789b 100644
--- a/src/plugins/scanner/cpp/cpp.cpp
+++ b/src/plugins/scanner/cpp/cpp.cpp
@@ -55,6 +55,7 @@ using namespace CPlusPlus;
#include <QtCore/QList>
#include <QtCore/QScopedPointer>
#include <QtCore/QString>
+#include <QtCore/QLatin1Literal>
struct ScanResult
{
@@ -110,7 +111,8 @@ struct Opaq
static void scanCppFile(void *opaq, Lexer &yylex, bool scanForFileTags)
{
- static const size_t lengthOfIncludeLiteral = strlen("include");
+ const QLatin1Literal includeLiteral("include");
+ const QLatin1Literal importLiteral("import");
Opaq *opaque = static_cast<Opaq *>(opaq);
Token tk;
ScanResult scanResult;
@@ -122,8 +124,10 @@ static void scanCppFile(void *opaq, Lexer &yylex, bool scanForFileTags)
yylex(&tk);
if (!scanForFileTags && !tk.newline() && tk.is(T_IDENTIFIER)) {
- if (tk.length() >= lengthOfIncludeLiteral
- && (strncmp(opaque->fileContent + tk.begin(), "include", lengthOfIncludeLiteral) == 0))
+ if ((tk.length() >= includeLiteral.size()
+ && (strncmp(opaque->fileContent + tk.begin(), includeLiteral.data(), includeLiteral.size()) == 0))
+ || (tk.length() >= importLiteral.size()
+ && (strncmp(opaque->fileContent + tk.begin(), importLiteral.data(), importLiteral.size()) == 0)))
{
yylex.setScanAngleStringLiteralTokens(true);
yylex(&tk);
@@ -284,6 +288,28 @@ ScannerPlugin cScanner =
true
};
+ScannerPlugin objcppScanner =
+{
+ "include_scanner",
+ "objcpp",
+ openScanner,
+ closeScanner,
+ next,
+ additionalFileTags,
+ true
+};
+
+ScannerPlugin objcScanner =
+{
+ "include_scanner",
+ "objc",
+ openScanner,
+ closeScanner,
+ next,
+ additionalFileTags,
+ true
+};
+
ScannerPlugin rcScanner =
{
"include_scanner",
@@ -295,7 +321,7 @@ ScannerPlugin rcScanner =
true
};
-ScannerPlugin *theScanners[] = {&hppScanner, &cppScanner, &cScanner, &rcScanner, NULL};
+ScannerPlugin *theScanners[] = {&hppScanner, &cppScanner, &cScanner, &objcppScanner, &objcScanner, &rcScanner, NULL};
CPPSCANNER_EXPORT ScannerPlugin **getScanners()
{