|
|
/****************************************************************************
|
|
|
**
|
|
|
** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
|
|
|
** Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
|
|
|
**
|
|
|
** This file is part of the Qt Script Generator project on Trolltech Labs.
|
|
|
**
|
|
|
** This file may be used under the terms of the GNU General Public
|
|
|
** License version 2.0 as published by the Free Software Foundation
|
|
|
** and appearing in the file LICENSE.GPL included in the packaging of
|
|
|
** this file. Please review the following information to ensure GNU
|
|
|
** General Public Licensing requirements will be met:
|
|
|
** http://www.trolltech.com/products/qt/opensource.html
|
|
|
**
|
|
|
** If you are unsure which license is appropriate for your use, please
|
|
|
** review the following information:
|
|
|
** http://www.trolltech.com/products/qt/licensing.html or contact the
|
|
|
** sales department at sales@trolltech.com.
|
|
|
**
|
|
|
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
|
|
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
**
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
|
#include "dumptree.h"
|
|
|
|
|
|
#include <QtCore/QString>
|
|
|
#include <QtCore/qdebug.h>
|
|
|
|
|
|
static char const * const names[] = {
|
|
|
0,
|
|
|
"AccessSpecifier",
|
|
|
"AsmDefinition",
|
|
|
"BaseClause",
|
|
|
"BaseSpecifier",
|
|
|
"BinaryExpression",
|
|
|
"CastExpression",
|
|
|
"ClassMemberAccess",
|
|
|
"ClassSpecifier",
|
|
|
"CompoundStatement",
|
|
|
"Condition",
|
|
|
"ConditionalExpression",
|
|
|
"CppCastExpression",
|
|
|
"CtorInitializer",
|
|
|
"DeclarationStatement",
|
|
|
"Declarator",
|
|
|
"DeleteExpression",
|
|
|
"DoStatement",
|
|
|
"ElaboratedTypeSpecifier",
|
|
|
"EnumSpecifier",
|
|
|
"Enumerator",
|
|
|
"ExceptionSpecification",
|
|
|
"ExpressionOrDeclarationStatement",
|
|
|
"ExpressionStatement",
|
|
|
"ForStatement",
|
|
|
"FunctionCall",
|
|
|
"FunctionDefinition",
|
|
|
"IfStatement",
|
|
|
"IncrDecrExpression",
|
|
|
"InitDeclarator",
|
|
|
"Initializer",
|
|
|
"InitializerClause",
|
|
|
"LabeledStatement",
|
|
|
"LinkageBody",
|
|
|
"LinkageSpecification",
|
|
|
"MemInitializer",
|
|
|
"Name",
|
|
|
"Namespace",
|
|
|
"NamespaceAliasDefinition",
|
|
|
"NewDeclarator",
|
|
|
"NewExpression",
|
|
|
"NewInitializer",
|
|
|
"NewTypeId",
|
|
|
"Operator",
|
|
|
"OperatorFunctionId",
|
|
|
"ParameterDeclaration",
|
|
|
"ParameterDeclarationClause",
|
|
|
"PostfixExpression",
|
|
|
"PrimaryExpression",
|
|
|
"PtrOperator",
|
|
|
"PtrToMember",
|
|
|
"ReturnStatement",
|
|
|
"SimpleDeclaration",
|
|
|
"SimpleTypeSpecifier",
|
|
|
"SizeofExpression",
|
|
|
"StringLiteral",
|
|
|
"SubscriptExpression",
|
|
|
"SwitchStatement",
|
|
|
"TemplateArgument",
|
|
|
"TemplateDeclaration",
|
|
|
"TemplateParameter",
|
|
|
"ThrowExpression",
|
|
|
"TranslationUnit",
|
|
|
"TryBlockStatement",
|
|
|
"TypeId",
|
|
|
"TypeIdentification",
|
|
|
"TypeParameter",
|
|
|
"Typedef",
|
|
|
"UnaryExpression",
|
|
|
"UnqualifiedName",
|
|
|
"Using",
|
|
|
"UsingDirective",
|
|
|
"WhileStatement",
|
|
|
"WinDeclSpec"
|
|
|
};
|
|
|
|
|
|
DumpTree::DumpTree()
|
|
|
{
|
|
|
}
|
|
|
|
|
|
void DumpTree::visit(AST *node)
|
|
|
{
|
|
|
static int indent = 0;
|
|
|
|
|
|
if (node)
|
|
|
qDebug() << QString(indent * 2, ' ').toLatin1().constData() << names[node->kind]
|
|
|
<< '[' << node->start_token << ", " << node->end_token << ']';
|
|
|
|
|
|
++indent;
|
|
|
DefaultVisitor::visit(node);
|
|
|
--indent;
|
|
|
}
|
|
|
|
|
|
// kate: space-indent on; indent-width 2; replace-tabs on;
|
|
|
|