diff options
author | Roberto Raggi <qtc-committer@nokia.com> | 2008-12-03 11:34:46 +0100 |
---|---|---|
committer | Roberto Raggi <qtc-committer@nokia.com> | 2008-12-03 11:35:15 +0100 |
commit | 27f866687cd4d810372ba8b8776650d314ea40ba (patch) | |
tree | ba69fc136bf0960aeb37dc6b58bc05350ffc9fe0 /tests/manual/cplusplus/main.cpp | |
parent | 56f788ccefc9b5a0a8fad88e53439fd08bb18263 (diff) | |
download | qt-creator-27f866687cd4d810372ba8b8776650d314ea40ba.tar.gz |
Added a simple auto test for our C++ front-end.
Diffstat (limited to 'tests/manual/cplusplus/main.cpp')
-rw-r--r-- | tests/manual/cplusplus/main.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/manual/cplusplus/main.cpp b/tests/manual/cplusplus/main.cpp new file mode 100644 index 0000000000..18b89137a5 --- /dev/null +++ b/tests/manual/cplusplus/main.cpp @@ -0,0 +1,37 @@ + +#include <QFile> + +#include <cstdio> +#include <cstdlib> + +#include <TranslationUnit.h> +#include <Control.h> +#include <AST.h> +#include <Semantic.h> +#include <Scope.h> + +int main(int, char *[]) +{ + Control control; + StringLiteral *fileId = control.findOrInsertFileName("<stdin>"); + + QFile in; + if (! in.open(stdin, QFile::ReadOnly)) + return EXIT_FAILURE; + + const QByteArray source = in.readAll(); + + TranslationUnit unit(&control, fileId); + unit.setSource(source.constData(), source.size()); + unit.parse(); + + if (TranslationUnitAST *ast = unit.ast()) { + Scope globalScope; + Semantic sem(&control); + for (DeclarationAST *decl = ast->declarations; decl; decl = decl->next) { + sem.check(decl, &globalScope); + } + } + + return EXIT_SUCCESS; +} |