kde-extraapps/kdevelop/languages/cpp/parser/tests/test_parser.h

160 lines
3.9 KiB
C
Raw Normal View History

/* This file is part of KDevelop
Copyright 2007-2009 David Nolden <david.nolden.kdevelop@art-master.de>
Copyright 2011 Milian Wolff <mail@milianw.de>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef TEST_PARSER_H
#define TEST_PARSER_H
#include <QObject>
#include "control.h"
#include "dumptree.h"
class pool;
class TestParser : public QObject {
Q_OBJECT
public:
TestParser();
private slots:
void initTestCase();
void cleanupTestCase();
void testSymbolTable();
void testTokenTable();
void testParser();
void testTemplateArguments();
void testTemplatedDTor();
void testManyComparisons();
void testParserFail();
void testPartialParseFail();
void testParseMethod();
void testForStatements();
void testIfStatements();
void testComments();
void testComments2();
void testComments3();
void testComments4();
void testComments5();
void testComments6();
void testComments7();
void testEscapedNewline();
void testEscapedNewline_data();
void testPreprocessor();
void testPreprocessorStringify();
void testStringConcatenation();
void testEmptyInclude();
void testCondition();
void testNonTemplateDeclaration();
void testInitListTrailingComma();
void testAsmVolatile();
void testIncrIdentifier();
void testParseFile();
void testQProperty_data();
void testQProperty();
void testCommentAfterFunctionCall();
void testPtrToMemberAst();
void testSwitchStatement();
void testNamedOperators_data();
void testNamedOperators();
void testOperators_data();
void testOperators();
void testTypeID_data();
void testTypeID();
void testRegister();
void inlineTemplate();
void testMultiByteCStrings();
void testMultiByteComments();
//BEGIN C99 support
void testDesignatedInitializers();
//END C99 support
void testTernaryEmptyExpression();
//BEGIN C++2011 support
void testRangeBasedFor();
void testRValueReference();
void testDefaultDeletedFunctions_data();
void testDefaultDeletedFunctions();
void testVariadicTemplates_data();
void testVariadicTemplates();
void testStaticAssert_data();
void testStaticAssert();
void testConstExpr_data();
void testConstExpr();
void testEnumClass_data();
void testEnumClass();
void testRightAngleBrackets_data();
void testRightAngleBrackets();
void testCharacterTypes_data();
void testCharacterTypes();
void testRawStrings_data();
void testRawStrings();
void testNullPtr_data();
void testNullPtr();
void testInlineNamespace();
void testDecltype_data();
void testDecltype();
void testAlternativeFunctionSyntax_data();
void testAlternativeFunctionSyntax();
void testLambda_data();
void testLambda();
void testInitList_data();
void testInitList();
void testInitListFalsePositives();
void memberVirtSpec();
void memberVirtSpec_data();
void classVirtSpec();
void classVirtSpec_data();
void testUsingAlias();
void testNoexcept();
void testReferenceBindings();
//END C++2011 Support
protected:
/**
* dump @p node and print problems of @c control
*/
void dump(AST* node);
bool hasKind(AST*, AST::NODE_KIND);
AST* getAST(AST*, AST::NODE_KIND, int num = 0);
private:
Control control;
DumpTree dumper;
ParseSession* lastSession;
TranslationUnitAST* parse(const QByteArray& unit);
};
#endif // TEST_PARSER_H