diff options
author | Ruslan Nigmatullin <euroelessar@yandex.ru> | 2012-09-17 20:32:42 +0400 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2012-09-20 14:42:35 +0200 |
commit | b837688dd9bc27f9ad10a6072ee0ed0a3a48e925 (patch) | |
tree | f7983309c82fff3ba7a0b3eca76136a5a332da92 /src/plugins/scanner/cpp | |
parent | 80cce4eb104bc9095a4739cc0edd0fb87bc1e0e6 (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.cpp | 34 |
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() { |