/**************************************************************************** ** ** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. ** Copyright (C) 2002-2005 Roberto Raggi ** ** 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 #include 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;