diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp index 012c243de1c..ba8d1508182 100644 --- a/src/libs/cplusplus/CppDocument.cpp +++ b/src/libs/cplusplus/CppDocument.cpp @@ -288,6 +288,10 @@ bool Document::parse(ParseMode mode) m = TranslationUnit::ParseExpression; break; + case ParseDeclarator: + m = TranslationUnit::ParseDeclarator; + break; + case ParseStatement: m = TranslationUnit::ParseStatement; break; diff --git a/src/libs/cplusplus/CppDocument.h b/src/libs/cplusplus/CppDocument.h index c1e9041988a..01da6b62d21 100644 --- a/src/libs/cplusplus/CppDocument.h +++ b/src/libs/cplusplus/CppDocument.h @@ -92,6 +92,7 @@ public: ParseTranlationUnit, ParseDeclaration, ParseExpression, + ParseDeclarator, ParseStatement }; diff --git a/src/shared/cplusplus/TranslationUnit.cpp b/src/shared/cplusplus/TranslationUnit.cpp index 75a77c04ffe..d6afcb3e2f9 100644 --- a/src/shared/cplusplus/TranslationUnit.cpp +++ b/src/shared/cplusplus/TranslationUnit.cpp @@ -278,6 +278,12 @@ bool TranslationUnit::parse(ParseMode mode) _ast = node; } break; + case ParseDeclarator: { + DeclaratorAST *node = 0; + parsed = parser.parseDeclarator(node); + _ast = node; + } break; + case ParseStatement: { StatementAST *node = 0; parsed = parser.parseStatement(node); diff --git a/src/shared/cplusplus/TranslationUnit.h b/src/shared/cplusplus/TranslationUnit.h index 71a000224a3..b4830e525dd 100644 --- a/src/shared/cplusplus/TranslationUnit.h +++ b/src/shared/cplusplus/TranslationUnit.h @@ -118,6 +118,7 @@ public: ParseTranlationUnit, ParseDeclaration, ParseExpression, + ParseDeclarator, ParseStatement };