diff --git a/src/shared/cplusplus/ASTVisit.cpp b/src/shared/cplusplus/ASTVisit.cpp index 7cd2075399929e24bc7913cfcf4d8c2928c2445c..dbc526c9e9de777d053330dc52a3141adf6cd2fd 100644 --- a/src/shared/cplusplus/ASTVisit.cpp +++ b/src/shared/cplusplus/ASTVisit.cpp @@ -35,8 +35,6 @@ using namespace CPlusPlus; void SimpleSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit SimpleSpecifierAST - // visit SpecifierAST } visitor->endVisit(this); } @@ -44,10 +42,8 @@ void SimpleSpecifierAST::accept0(ASTVisitor *visitor) void AttributeSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit AttributeSpecifierAST for (AttributeAST *it = attributes; it; it = it->next) accept(it, visitor); - // visit SpecifierAST } visitor->endVisit(this); } @@ -55,7 +51,6 @@ void AttributeSpecifierAST::accept0(ASTVisitor *visitor) void AttributeAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit AttributeAST for (ExpressionListAST *it = expression_list; it; it = it->next) accept(it, visitor); } @@ -65,9 +60,7 @@ void AttributeAST::accept0(ASTVisitor *visitor) void TypeofSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TypeofSpecifierAST accept(expression, visitor); - // visit SpecifierAST } visitor->endVisit(this); } @@ -75,7 +68,6 @@ void TypeofSpecifierAST::accept0(ASTVisitor *visitor) void DeclarationListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit DeclarationListAST accept(declaration, visitor); } visitor->endVisit(this); @@ -84,7 +76,6 @@ void DeclarationListAST::accept0(ASTVisitor *visitor) void DeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit DeclaratorAST for (SpecifierAST *it = attributes; it; it = it->next) accept(it, visitor); for (PtrOperatorAST *it = ptr_operators; it; it = it->next) @@ -102,7 +93,6 @@ void DeclaratorAST::accept0(ASTVisitor *visitor) void ExpressionListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ExpressionListAST accept(expression, visitor); } visitor->endVisit(this); @@ -111,12 +101,10 @@ void ExpressionListAST::accept0(ASTVisitor *visitor) void SimpleDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit SimpleDeclarationAST for (SpecifierAST *it = decl_specifier_seq; it; it = it->next) accept(it, visitor); for (DeclaratorListAST *it = declarators; it; it = it->next) accept(it, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -124,8 +112,6 @@ void SimpleDeclarationAST::accept0(ASTVisitor *visitor) void EmptyDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit EmptyDeclarationAST - // visit DeclarationAST } visitor->endVisit(this); } @@ -133,8 +119,6 @@ void EmptyDeclarationAST::accept0(ASTVisitor *visitor) void AccessDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit AccessDeclarationAST - // visit DeclarationAST } visitor->endVisit(this); } @@ -142,8 +126,6 @@ void AccessDeclarationAST::accept0(ASTVisitor *visitor) void AsmDefinitionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit AsmDefinitionAST - // visit DeclarationAST } visitor->endVisit(this); } @@ -151,7 +133,6 @@ void AsmDefinitionAST::accept0(ASTVisitor *visitor) void BaseSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit BaseSpecifierAST accept(name, visitor); } visitor->endVisit(this); @@ -160,10 +141,8 @@ void BaseSpecifierAST::accept0(ASTVisitor *visitor) void CompoundLiteralAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit CompoundLiteralAST accept(type_id, visitor); accept(initializer, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -171,9 +150,7 @@ void CompoundLiteralAST::accept0(ASTVisitor *visitor) void QtMethodAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit QtMethodAST accept(declarator, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -181,10 +158,8 @@ void QtMethodAST::accept0(ASTVisitor *visitor) void BinaryExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit BinaryExpressionAST accept(left_expression, visitor); accept(right_expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -192,10 +167,8 @@ void BinaryExpressionAST::accept0(ASTVisitor *visitor) void CastExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit CastExpressionAST accept(type_id, visitor); accept(expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -203,7 +176,6 @@ void CastExpressionAST::accept0(ASTVisitor *visitor) void ClassSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ClassSpecifierAST for (SpecifierAST *it = attributes; it; it = it->next) accept(it, visitor); accept(name, visitor); @@ -211,7 +183,6 @@ void ClassSpecifierAST::accept0(ASTVisitor *visitor) accept(it, visitor); for (DeclarationListAST *it = member_specifiers; it; it = it->next) accept(it, visitor); - // visit SpecifierAST } visitor->endVisit(this); } @@ -219,10 +190,8 @@ void ClassSpecifierAST::accept0(ASTVisitor *visitor) void CaseStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit CaseStatementAST accept(expression, visitor); accept(statement, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -230,7 +199,6 @@ void CaseStatementAST::accept0(ASTVisitor *visitor) void StatementListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit StatementListAST accept(statement, visitor); } visitor->endVisit(this); @@ -239,10 +207,8 @@ void StatementListAST::accept0(ASTVisitor *visitor) void CompoundStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit CompoundStatementAST for (StatementListAST *it = statements; it; it = it->next) accept(it, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -250,11 +216,9 @@ void CompoundStatementAST::accept0(ASTVisitor *visitor) void ConditionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ConditionAST for (SpecifierAST *it = type_specifier; it; it = it->next) accept(it, visitor); accept(declarator, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -262,11 +226,9 @@ void ConditionAST::accept0(ASTVisitor *visitor) void ConditionalExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ConditionalExpressionAST accept(condition, visitor); accept(left_expression, visitor); accept(right_expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -274,10 +236,8 @@ void ConditionalExpressionAST::accept0(ASTVisitor *visitor) void CppCastExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit CppCastExpressionAST accept(type_id, visitor); accept(expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -285,7 +245,6 @@ void CppCastExpressionAST::accept0(ASTVisitor *visitor) void CtorInitializerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit CtorInitializerAST for (MemInitializerAST *it = member_initializers; it; it = it->next) accept(it, visitor); } @@ -295,9 +254,7 @@ void CtorInitializerAST::accept0(ASTVisitor *visitor) void DeclarationStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit DeclarationStatementAST accept(declaration, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -305,9 +262,7 @@ void DeclarationStatementAST::accept0(ASTVisitor *visitor) void DeclaratorIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit DeclaratorIdAST accept(name, visitor); - // visit CoreDeclaratorAST } visitor->endVisit(this); } @@ -315,9 +270,7 @@ void DeclaratorIdAST::accept0(ASTVisitor *visitor) void NestedDeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NestedDeclaratorAST accept(declarator, visitor); - // visit CoreDeclaratorAST } visitor->endVisit(this); } @@ -325,13 +278,11 @@ void NestedDeclaratorAST::accept0(ASTVisitor *visitor) void FunctionDeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit FunctionDeclaratorAST accept(parameters, visitor); for (SpecifierAST *it = cv_qualifier_seq; it; it = it->next) accept(it, visitor); accept(exception_specification, visitor); accept(as_cpp_initializer, visitor); - // visit PostfixDeclaratorAST } visitor->endVisit(this); } @@ -339,9 +290,7 @@ void FunctionDeclaratorAST::accept0(ASTVisitor *visitor) void ArrayDeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ArrayDeclaratorAST accept(expression, visitor); - // visit PostfixDeclaratorAST } visitor->endVisit(this); } @@ -349,7 +298,6 @@ void ArrayDeclaratorAST::accept0(ASTVisitor *visitor) void DeclaratorListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit DeclaratorListAST accept(declarator, visitor); } visitor->endVisit(this); @@ -358,9 +306,7 @@ void DeclaratorListAST::accept0(ASTVisitor *visitor) void DeleteExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit DeleteExpressionAST accept(expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -368,10 +314,8 @@ void DeleteExpressionAST::accept0(ASTVisitor *visitor) void DoStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit DoStatementAST accept(statement, visitor); accept(expression, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -379,9 +323,7 @@ void DoStatementAST::accept0(ASTVisitor *visitor) void NamedTypeSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NamedTypeSpecifierAST accept(name, visitor); - // visit SpecifierAST } visitor->endVisit(this); } @@ -389,9 +331,7 @@ void NamedTypeSpecifierAST::accept0(ASTVisitor *visitor) void ElaboratedTypeSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ElaboratedTypeSpecifierAST accept(name, visitor); - // visit SpecifierAST } visitor->endVisit(this); } @@ -399,11 +339,9 @@ void ElaboratedTypeSpecifierAST::accept0(ASTVisitor *visitor) void EnumSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit EnumSpecifierAST accept(name, visitor); for (EnumeratorAST *it = enumerators; it; it = it->next) accept(it, visitor); - // visit SpecifierAST } visitor->endVisit(this); } @@ -411,7 +349,6 @@ void EnumSpecifierAST::accept0(ASTVisitor *visitor) void EnumeratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit EnumeratorAST accept(expression, visitor); } visitor->endVisit(this); @@ -420,11 +357,9 @@ void EnumeratorAST::accept0(ASTVisitor *visitor) void ExceptionDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ExceptionDeclarationAST for (SpecifierAST *it = type_specifier; it; it = it->next) accept(it, visitor); accept(declarator, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -432,7 +367,6 @@ void ExceptionDeclarationAST::accept0(ASTVisitor *visitor) void ExceptionSpecificationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ExceptionSpecificationAST for (ExpressionListAST *it = type_ids; it; it = it->next) accept(it, visitor); } @@ -442,10 +376,8 @@ void ExceptionSpecificationAST::accept0(ASTVisitor *visitor) void ExpressionOrDeclarationStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ExpressionOrDeclarationStatementAST accept(expression, visitor); accept(declaration, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -453,9 +385,7 @@ void ExpressionOrDeclarationStatementAST::accept0(ASTVisitor *visitor) void ExpressionStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ExpressionStatementAST accept(expression, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -463,13 +393,11 @@ void ExpressionStatementAST::accept0(ASTVisitor *visitor) void FunctionDefinitionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit FunctionDefinitionAST for (SpecifierAST *it = decl_specifier_seq; it; it = it->next) accept(it, visitor); accept(declarator, visitor); accept(ctor_initializer, visitor); accept(function_body, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -477,14 +405,12 @@ void FunctionDefinitionAST::accept0(ASTVisitor *visitor) void ForeachStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ForeachStatementAST for (SpecifierAST *it = type_specifiers; it; it = it->next) accept(it, visitor); accept(declarator, visitor); accept(initializer, visitor); accept(expression, visitor); accept(statement, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -492,12 +418,10 @@ void ForeachStatementAST::accept0(ASTVisitor *visitor) void ForStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ForStatementAST accept(initializer, visitor); accept(condition, visitor); accept(expression, visitor); accept(statement, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -505,11 +429,9 @@ void ForStatementAST::accept0(ASTVisitor *visitor) void IfStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit IfStatementAST accept(condition, visitor); accept(statement, visitor); accept(else_statement, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -517,10 +439,8 @@ void IfStatementAST::accept0(ASTVisitor *visitor) void ArrayInitializerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ArrayInitializerAST for (ExpressionListAST *it = expression_list; it; it = it->next) accept(it, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -528,9 +448,7 @@ void ArrayInitializerAST::accept0(ASTVisitor *visitor) void LabeledStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit LabeledStatementAST accept(statement, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -538,10 +456,8 @@ void LabeledStatementAST::accept0(ASTVisitor *visitor) void LinkageBodyAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit LinkageBodyAST for (DeclarationListAST *it = declarations; it; it = it->next) accept(it, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -549,9 +465,7 @@ void LinkageBodyAST::accept0(ASTVisitor *visitor) void LinkageSpecificationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit LinkageSpecificationAST accept(declaration, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -559,7 +473,6 @@ void LinkageSpecificationAST::accept0(ASTVisitor *visitor) void MemInitializerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit MemInitializerAST accept(name, visitor); accept(expression, visitor); } @@ -569,7 +482,6 @@ void MemInitializerAST::accept0(ASTVisitor *visitor) void NestedNameSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NestedNameSpecifierAST accept(class_or_namespace_name, visitor); } visitor->endVisit(this); @@ -578,12 +490,9 @@ void NestedNameSpecifierAST::accept0(ASTVisitor *visitor) void QualifiedNameAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit QualifiedNameAST for (NestedNameSpecifierAST *it = nested_name_specifier; it; it = it->next) accept(it, visitor); accept(unqualified_name, visitor); - // visit NameAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -591,10 +500,7 @@ void QualifiedNameAST::accept0(ASTVisitor *visitor) void OperatorFunctionIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit OperatorFunctionIdAST accept(op, visitor); - // visit NameAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -602,13 +508,10 @@ void OperatorFunctionIdAST::accept0(ASTVisitor *visitor) void ConversionFunctionIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ConversionFunctionIdAST for (SpecifierAST *it = type_specifier; it; it = it->next) accept(it, visitor); for (PtrOperatorAST *it = ptr_operators; it; it = it->next) accept(it, visitor); - // visit NameAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -616,9 +519,6 @@ void ConversionFunctionIdAST::accept0(ASTVisitor *visitor) void SimpleNameAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit SimpleNameAST - // visit NameAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -626,9 +526,6 @@ void SimpleNameAST::accept0(ASTVisitor *visitor) void DestructorNameAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit DestructorNameAST - // visit NameAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -636,11 +533,8 @@ void DestructorNameAST::accept0(ASTVisitor *visitor) void TemplateIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TemplateIdAST for (TemplateArgumentListAST *it = template_arguments; it; it = it->next) accept(it, visitor); - // visit NameAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -648,11 +542,9 @@ void TemplateIdAST::accept0(ASTVisitor *visitor) void NamespaceAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NamespaceAST for (SpecifierAST *it = attributes; it; it = it->next) accept(it, visitor); accept(linkage_body, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -660,9 +552,7 @@ void NamespaceAST::accept0(ASTVisitor *visitor) void NamespaceAliasDefinitionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NamespaceAliasDefinitionAST accept(name, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -670,7 +560,6 @@ void NamespaceAliasDefinitionAST::accept0(ASTVisitor *visitor) void NewPlacementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NewPlacementAST for (ExpressionListAST *it = expression_list; it; it = it->next) accept(it, visitor); } @@ -680,7 +569,6 @@ void NewPlacementAST::accept0(ASTVisitor *visitor) void NewArrayDeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NewArrayDeclaratorAST accept(expression, visitor); } visitor->endVisit(this); @@ -689,12 +577,10 @@ void NewArrayDeclaratorAST::accept0(ASTVisitor *visitor) void NewExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NewExpressionAST accept(new_placement, visitor); accept(type_id, visitor); accept(new_type_id, visitor); accept(new_initializer, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -702,7 +588,6 @@ void NewExpressionAST::accept0(ASTVisitor *visitor) void NewInitializerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NewInitializerAST accept(expression, visitor); } visitor->endVisit(this); @@ -711,7 +596,6 @@ void NewInitializerAST::accept0(ASTVisitor *visitor) void NewTypeIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NewTypeIdAST for (SpecifierAST *it = type_specifier; it; it = it->next) accept(it, visitor); for (PtrOperatorAST *it = ptr_operators; it; it = it->next) @@ -725,7 +609,6 @@ void NewTypeIdAST::accept0(ASTVisitor *visitor) void OperatorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit OperatorAST } visitor->endVisit(this); } @@ -733,12 +616,10 @@ void OperatorAST::accept0(ASTVisitor *visitor) void ParameterDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ParameterDeclarationAST for (SpecifierAST *it = type_specifier; it; it = it->next) accept(it, visitor); accept(declarator, visitor); accept(expression, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -746,7 +627,6 @@ void ParameterDeclarationAST::accept0(ASTVisitor *visitor) void ParameterDeclarationClauseAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ParameterDeclarationClauseAST for (DeclarationListAST *it = parameter_declarations; it; it = it->next) accept(it, visitor); } @@ -756,10 +636,8 @@ void ParameterDeclarationClauseAST::accept0(ASTVisitor *visitor) void CallAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit CallAST for (ExpressionListAST *it = expression_list; it; it = it->next) accept(it, visitor); - // visit PostfixAST } visitor->endVisit(this); } @@ -767,9 +645,7 @@ void CallAST::accept0(ASTVisitor *visitor) void ArrayAccessAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ArrayAccessAST accept(expression, visitor); - // visit PostfixAST } visitor->endVisit(this); } @@ -777,8 +653,6 @@ void ArrayAccessAST::accept0(ASTVisitor *visitor) void PostIncrDecrAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit PostIncrDecrAST - // visit PostfixAST } visitor->endVisit(this); } @@ -786,9 +660,7 @@ void PostIncrDecrAST::accept0(ASTVisitor *visitor) void MemberAccessAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit MemberAccessAST accept(member_name, visitor); - // visit PostfixAST } visitor->endVisit(this); } @@ -796,9 +668,7 @@ void MemberAccessAST::accept0(ASTVisitor *visitor) void TypeidExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TypeidExpressionAST accept(expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -806,11 +676,9 @@ void TypeidExpressionAST::accept0(ASTVisitor *visitor) void TypenameCallExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TypenameCallExpressionAST accept(name, visitor); for (ExpressionListAST *it = expression_list; it; it = it->next) accept(it, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -818,12 +686,10 @@ void TypenameCallExpressionAST::accept0(ASTVisitor *visitor) void TypeConstructorCallAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TypeConstructorCallAST for (SpecifierAST *it = type_specifier; it; it = it->next) accept(it, visitor); for (ExpressionListAST *it = expression_list; it; it = it->next) accept(it, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -831,11 +697,9 @@ void TypeConstructorCallAST::accept0(ASTVisitor *visitor) void PostfixExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit PostfixExpressionAST accept(base_expression, visitor); for (PostfixAST *it = postfix_expressions; it; it = it->next) accept(it, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -843,12 +707,10 @@ void PostfixExpressionAST::accept0(ASTVisitor *visitor) void PointerToMemberAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit PointerToMemberAST for (NestedNameSpecifierAST *it = nested_name_specifier; it; it = it->next) accept(it, visitor); for (SpecifierAST *it = cv_qualifier_seq; it; it = it->next) accept(it, visitor); - // visit PtrOperatorAST } visitor->endVisit(this); } @@ -856,10 +718,8 @@ void PointerToMemberAST::accept0(ASTVisitor *visitor) void PointerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit PointerAST for (SpecifierAST *it = cv_qualifier_seq; it; it = it->next) accept(it, visitor); - // visit PtrOperatorAST } visitor->endVisit(this); } @@ -867,8 +727,6 @@ void PointerAST::accept0(ASTVisitor *visitor) void ReferenceAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ReferenceAST - // visit PtrOperatorAST } visitor->endVisit(this); } @@ -876,8 +734,6 @@ void ReferenceAST::accept0(ASTVisitor *visitor) void BreakStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit BreakStatementAST - // visit StatementAST } visitor->endVisit(this); } @@ -885,8 +741,6 @@ void BreakStatementAST::accept0(ASTVisitor *visitor) void ContinueStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ContinueStatementAST - // visit StatementAST } visitor->endVisit(this); } @@ -894,8 +748,6 @@ void ContinueStatementAST::accept0(ASTVisitor *visitor) void GotoStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit GotoStatementAST - // visit StatementAST } visitor->endVisit(this); } @@ -903,9 +755,7 @@ void GotoStatementAST::accept0(ASTVisitor *visitor) void ReturnStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ReturnStatementAST accept(expression, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -913,9 +763,7 @@ void ReturnStatementAST::accept0(ASTVisitor *visitor) void SizeofExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit SizeofExpressionAST accept(expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -923,8 +771,6 @@ void SizeofExpressionAST::accept0(ASTVisitor *visitor) void NumericLiteralAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NumericLiteralAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -932,8 +778,6 @@ void NumericLiteralAST::accept0(ASTVisitor *visitor) void BoolLiteralAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit BoolLiteralAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -941,8 +785,6 @@ void BoolLiteralAST::accept0(ASTVisitor *visitor) void ThisExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ThisExpressionAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -950,9 +792,7 @@ void ThisExpressionAST::accept0(ASTVisitor *visitor) void NestedExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit NestedExpressionAST accept(expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -960,8 +800,6 @@ void NestedExpressionAST::accept0(ASTVisitor *visitor) void StringLiteralAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit StringLiteralAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -969,10 +807,8 @@ void StringLiteralAST::accept0(ASTVisitor *visitor) void SwitchStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit SwitchStatementAST accept(condition, visitor); accept(statement, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -980,7 +816,6 @@ void SwitchStatementAST::accept0(ASTVisitor *visitor) void TemplateArgumentListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TemplateArgumentListAST accept(template_argument, visitor); } visitor->endVisit(this); @@ -989,11 +824,9 @@ void TemplateArgumentListAST::accept0(ASTVisitor *visitor) void TemplateDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TemplateDeclarationAST for (DeclarationListAST *it = template_parameters; it; it = it->next) accept(it, visitor); accept(declaration, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1001,9 +834,7 @@ void TemplateDeclarationAST::accept0(ASTVisitor *visitor) void ThrowExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ThrowExpressionAST accept(expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -1011,7 +842,6 @@ void ThrowExpressionAST::accept0(ASTVisitor *visitor) void TranslationUnitAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TranslationUnitAST for (DeclarationListAST *it = declarations; it; it = it->next) accept(it, visitor); } @@ -1021,11 +851,9 @@ void TranslationUnitAST::accept0(ASTVisitor *visitor) void TryBlockStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TryBlockStatementAST accept(statement, visitor); for (CatchClauseAST *it = catch_clause_seq; it; it = it->next) accept(it, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -1033,10 +861,8 @@ void TryBlockStatementAST::accept0(ASTVisitor *visitor) void CatchClauseAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit CatchClauseAST accept(exception_declaration, visitor); accept(statement, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -1044,11 +870,9 @@ void CatchClauseAST::accept0(ASTVisitor *visitor) void TypeIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TypeIdAST for (SpecifierAST *it = type_specifier; it; it = it->next) accept(it, visitor); accept(declarator, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -1056,10 +880,8 @@ void TypeIdAST::accept0(ASTVisitor *visitor) void TypenameTypeParameterAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TypenameTypeParameterAST accept(name, visitor); accept(type_id, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1067,12 +889,10 @@ void TypenameTypeParameterAST::accept0(ASTVisitor *visitor) void TemplateTypeParameterAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit TemplateTypeParameterAST for (DeclarationListAST *it = template_parameters; it; it = it->next) accept(it, visitor); accept(name, visitor); accept(type_id, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1080,9 +900,7 @@ void TemplateTypeParameterAST::accept0(ASTVisitor *visitor) void UnaryExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit UnaryExpressionAST accept(expression, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -1090,9 +908,7 @@ void UnaryExpressionAST::accept0(ASTVisitor *visitor) void UsingAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit UsingAST accept(name, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1100,9 +916,7 @@ void UsingAST::accept0(ASTVisitor *visitor) void UsingDirectiveAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit UsingDirectiveAST accept(name, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1110,10 +924,8 @@ void UsingDirectiveAST::accept0(ASTVisitor *visitor) void WhileStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit WhileStatementAST accept(condition, visitor); accept(statement, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -1121,7 +933,6 @@ void WhileStatementAST::accept0(ASTVisitor *visitor) void IdentifierListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit IdentifierListAST accept(name, visitor); } visitor->endVisit(this); @@ -1130,12 +941,10 @@ void IdentifierListAST::accept0(ASTVisitor *visitor) void ObjCClassForwardDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCClassForwardDeclarationAST for (SpecifierAST *it = attributes; it; it = it->next) accept(it, visitor); for (IdentifierListAST *it = identifier_list; it; it = it->next) accept(it, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1143,7 +952,6 @@ void ObjCClassForwardDeclarationAST::accept0(ASTVisitor *visitor) void ObjCClassDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCClassInterfaceDefinitionAST for (SpecifierAST *it = attributes; it; it = it->next) accept(it, visitor); accept(class_name, visitor); @@ -1153,7 +961,6 @@ void ObjCClassDeclarationAST::accept0(ASTVisitor *visitor) accept(inst_vars_decl, visitor); for (DeclarationListAST *it = member_declarations; it; it = it->next) accept(it, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1161,12 +968,10 @@ void ObjCClassDeclarationAST::accept0(ASTVisitor *visitor) void ObjCProtocolForwardDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCProtocolDeclarationAST for (SpecifierAST *it = attributes; it; it = it->next) accept(it, visitor); for (IdentifierListAST *it = identifier_list; it; it = it->next) accept(it, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1174,14 +979,12 @@ void ObjCProtocolForwardDeclarationAST::accept0(ASTVisitor *visitor) void ObjCProtocolDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCProtocolDeclarationAST for (SpecifierAST *it = attributes; it; it = it->next) accept(it, visitor); accept(name, visitor); accept(protocol_refs, visitor); for (DeclarationListAST *it = member_declarations; it; it = it->next) accept(it, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1189,7 +992,6 @@ void ObjCProtocolDeclarationAST::accept0(ASTVisitor *visitor) void ObjCProtocolRefsAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCProtocolRefsAST for (IdentifierListAST *it = identifier_list; it; it = it->next) accept(it, visitor); } @@ -1199,7 +1001,6 @@ void ObjCProtocolRefsAST::accept0(ASTVisitor *visitor) void ObjCMessageArgumentAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCMessageArgumentAST accept(parameter_value_expression, visitor); } visitor->endVisit(this); @@ -1208,7 +1009,6 @@ void ObjCMessageArgumentAST::accept0(ASTVisitor *visitor) void ObjCMessageArgumentListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCMessageArgumentListAST accept(arg, visitor); } visitor->endVisit(this); @@ -1217,12 +1017,10 @@ void ObjCMessageArgumentListAST::accept0(ASTVisitor *visitor) void ObjCMessageExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCMessageExpressionAST accept(receiver_expression, visitor); accept(selector, visitor); for (ObjCMessageArgumentListAST *it = argument_list; it; it = it->next) accept(it, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -1230,8 +1028,6 @@ void ObjCMessageExpressionAST::accept0(ASTVisitor *visitor) void ObjCProtocolExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCProtocolExpressionAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -1239,7 +1035,6 @@ void ObjCProtocolExpressionAST::accept0(ASTVisitor *visitor) void ObjCTypeNameAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCTypeNameAST accept(type_id, visitor); } visitor->endVisit(this); @@ -1248,9 +1043,7 @@ void ObjCTypeNameAST::accept0(ASTVisitor *visitor) void ObjCEncodeExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCEncodeExpressionAST accept(type_name, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -1258,8 +1051,6 @@ void ObjCEncodeExpressionAST::accept0(ASTVisitor *visitor) void ObjCSelectorWithoutArgumentsAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCSelectorWithoutArgumentsAST - // visit ObjCSelectorAST } visitor->endVisit(this); } @@ -1267,7 +1058,6 @@ void ObjCSelectorWithoutArgumentsAST::accept0(ASTVisitor *visitor) void ObjCSelectorArgumentAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCSelectorArgumentAST } visitor->endVisit(this); } @@ -1275,7 +1065,6 @@ void ObjCSelectorArgumentAST::accept0(ASTVisitor *visitor) void ObjCSelectorArgumentListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCSelectorArgumentListAST accept(argument, visitor); } visitor->endVisit(this); @@ -1284,10 +1073,8 @@ void ObjCSelectorArgumentListAST::accept0(ASTVisitor *visitor) void ObjCSelectorWithArgumentsAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCSelectorWithArgumentsAST for (ObjCSelectorArgumentListAST *it = selector_arguments; it; it = it->next) accept(it, visitor); - // visit ObjCSelectorAST } visitor->endVisit(this); } @@ -1295,9 +1082,7 @@ void ObjCSelectorWithArgumentsAST::accept0(ASTVisitor *visitor) void ObjCSelectorExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCSelectorExpressionAST accept(selector, visitor); - // visit ExpressionAST } visitor->endVisit(this); } @@ -1305,7 +1090,6 @@ void ObjCSelectorExpressionAST::accept0(ASTVisitor *visitor) void ObjCInstanceVariablesDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCInstanceVariablesDeclarationAST for (DeclarationListAST *it = instance_variables; it; it = it->next) accept(it, visitor); } @@ -1315,8 +1099,6 @@ void ObjCInstanceVariablesDeclarationAST::accept0(ASTVisitor *visitor) void ObjCVisibilityDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCVisibilityDeclarationAST - // visit DeclarationAST } visitor->endVisit(this); } @@ -1324,7 +1106,6 @@ void ObjCVisibilityDeclarationAST::accept0(ASTVisitor *visitor) void ObjCPropertyAttributeAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCPropertyAttributeAST accept(method_selector, visitor); } visitor->endVisit(this); @@ -1333,7 +1114,6 @@ void ObjCPropertyAttributeAST::accept0(ASTVisitor *visitor) void ObjCPropertyAttributeListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCPropertyAttributeListAST accept(attr, visitor); } visitor->endVisit(this); @@ -1342,13 +1122,11 @@ void ObjCPropertyAttributeListAST::accept0(ASTVisitor *visitor) void ObjCPropertyDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCPropertyDeclarationAST for (SpecifierAST *it = attributes; it; it = it->next) accept(it, visitor); for (ObjCPropertyAttributeListAST *it = property_attributes; it; it = it->next) accept(it, visitor); accept(simple_declaration, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1356,12 +1134,9 @@ void ObjCPropertyDeclarationAST::accept0(ASTVisitor *visitor) void ObjCMessageArgumentDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCMessageArgumentDeclarationAST accept(type_name, visitor); for (SpecifierAST *it = attributes; it; it = it->next) accept(it, visitor); - // visit NameAST - // visit ExpressionAST } visitor->endVisit(this); } @@ -1369,7 +1144,6 @@ void ObjCMessageArgumentDeclarationAST::accept0(ASTVisitor *visitor) void ObjCMessageArgumentDeclarationListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCMessageArgumentDeclarationListAST accept(argument_declaration, visitor); } visitor->endVisit(this); @@ -1378,7 +1152,6 @@ void ObjCMessageArgumentDeclarationListAST::accept0(ASTVisitor *visitor) void ObjCMethodPrototypeAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCMethodPrototypeAST accept(type_name, visitor); accept(selector, visitor); for (ObjCMessageArgumentDeclarationListAST *it = arguments; it; it = it->next) @@ -1392,10 +1165,8 @@ void ObjCMethodPrototypeAST::accept0(ASTVisitor *visitor) void ObjCMethodDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCMethodDeclarationAST accept(method_prototype, visitor); accept(function_body, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1403,7 +1174,6 @@ void ObjCMethodDeclarationAST::accept0(ASTVisitor *visitor) void ObjCSynthesizedPropertyAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCSynthesizedPropertyAST } visitor->endVisit(this); } @@ -1411,7 +1181,6 @@ void ObjCSynthesizedPropertyAST::accept0(ASTVisitor *visitor) void ObjCSynthesizedPropertyListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCSynthesizedPropertyListAST accept(synthesized_property, visitor); } visitor->endVisit(this); @@ -1420,10 +1189,8 @@ void ObjCSynthesizedPropertyListAST::accept0(ASTVisitor *visitor) void ObjCSynthesizedPropertiesDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCSynthesizedPropertiesDeclarationAST for (ObjCSynthesizedPropertyListAST *it = property_identifiers; it; it = it->next) accept(it, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1431,10 +1198,8 @@ void ObjCSynthesizedPropertiesDeclarationAST::accept0(ASTVisitor *visitor) void ObjCDynamicPropertiesDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCDynamicPropertiesDeclarationAST for (IdentifierListAST *it = property_identifiers; it; it = it->next) accept(it, visitor); - // visit DeclarationAST } visitor->endVisit(this); } @@ -1442,14 +1207,12 @@ void ObjCDynamicPropertiesDeclarationAST::accept0(ASTVisitor *visitor) void ObjCFastEnumerationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCFastEnumerationAST for (SpecifierAST *it = type_specifiers; it; it = it->next) accept(it, visitor); accept(declarator, visitor); accept(initializer, visitor); accept(fast_enumeratable_expression, visitor); accept(body_statement, visitor); - // visit StatementAST } visitor->endVisit(this); } @@ -1457,12 +1220,9 @@ void ObjCFastEnumerationAST::accept0(ASTVisitor *visitor) void ObjCSynchronizedStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { - // visit ObjCSynchronizedStatementAST accept(synchronized_object, visitor); accept(statement, visitor); - // visit StatementAST } visitor->endVisit(this); } - diff --git a/src/tools/cplusplus/Main.cpp b/src/tools/cplusplus/Main.cpp index a60d3c661e8c5135505ca33531effdc3c34485b2..6fc9dd5d8ee49ac96b6c2d3a7af730d572e9dd2e 100644 --- a/src/tools/cplusplus/Main.cpp +++ b/src/tools/cplusplus/Main.cpp @@ -16,12 +16,237 @@ #include <Literals.h> #include <CppDocument.h> #include <Overview.h> +#include <Names.h> +#include <Scope.h> #include <iostream> #include <cstdlib> using namespace CPlusPlus; +class SearchListNodes: protected ASTVisitor +{ + QList<QByteArray> _listNodes; + +public: + SearchListNodes(Control *control) + : ASTVisitor(control) + { } + + QList<QByteArray> operator()(AST *ast) + { + _listNodes.clear(); + accept(ast); + return _listNodes; + } + +protected: + virtual bool visit(ClassSpecifierAST *ast) + { + const QString className = oo(ast->symbol->name()); + + if (! (className.length() > 3 && className.endsWith(QLatin1String("AST")))) + return true; + + for (unsigned i = 0; i < ast->symbol->memberCount(); ++i) { + Symbol *member = ast->symbol->memberAt(i); + Name *memberName = member->name(); + + if (! memberName) + continue; + else if (! memberName->identifier()) + continue; + + if (! qstrcmp("next", memberName->identifier()->chars())) { + _listNodes.append(className.toUtf8()); + break; + } + } + + return true; + } + +private: + Overview oo; +}; + +class VisitCG: protected ASTVisitor +{ + QDir _cplusplusDir; + QList<QByteArray> _listNodes; + QTextStream *out; + +public: + VisitCG(const QDir &cplusplusDir, Control *control) + : ASTVisitor(control), _cplusplusDir(cplusplusDir), out(0) + { } + + void operator()(AST *ast) + { + QFileInfo fileInfo(_cplusplusDir, QLatin1String("ASTVisit.cpp")); + + QFile file(fileInfo.absoluteFilePath()); + if (! file.open(QFile::WriteOnly)) + return; + + QTextStream output(&file); + out = &output; + + *out << + "/**************************************************************************\n" + "**\n" + "** This file is part of Qt Creator\n" + "**\n" + "** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).\n" + "**\n" + "** Contact: Nokia Corporation (qt-info@nokia.com)\n" + "**\n" + "** Commercial Usage\n" + "**\n" + "** Licensees holding valid Qt Commercial licenses may use this file in\n" + "** accordance with the Qt Commercial License Agreement provided with the\n" + "** Software or, alternatively, in accordance with the terms contained in\n" + "** a written agreement between you and Nokia.\n" + "**\n" + "** GNU Lesser General Public License Usage\n" + "**\n" + "** Alternatively, this file may be used under the terms of the GNU Lesser\n" + "** General Public License version 2.1 as published by the Free Software\n" + "** Foundation and appearing in the file LICENSE.LGPL included in the\n" + "** packaging of this file. Please review the following information to\n" + "** ensure the GNU Lesser General Public License version 2.1 requirements\n" + "** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.\n" + "**\n" + "** If you are unsure which license is appropriate for your use, please\n" + "** contact the sales department at http://qt.nokia.com/contact.\n" + "**\n" + "**************************************************************************/\n" + "\n" + "#include \"AST.h\"\n" + "#include \"ASTVisitor.h\"\n" + "\n" + "using namespace CPlusPlus;\n" << endl; + + SearchListNodes listNodes(control()); + _listNodes = listNodes(ast); + + accept(ast); + } + +protected: + using ASTVisitor::visit; + + QMap<QByteArray, ClassSpecifierAST *> classMap; + + QByteArray id_cast(NameAST *name) + { + if (! name) + return QByteArray(); + + Identifier *id = identifier(name->asSimpleName()->identifier_token); + + return QByteArray::fromRawData(id->chars(), id->size()); + } + + void visitMembers(Class *klass) + { + const QByteArray className = klass->name()->identifier()->chars(); + + // *out << " // visit " << className.constData() << endl; + for (unsigned i = 0; i < klass->memberCount(); ++i) { + Symbol *member = klass->memberAt(i); + if (! member->name()) + continue; + + Identifier *id = member->name()->identifier(); + + if (! id) + continue; + + const QByteArray memberName = QByteArray::fromRawData(id->chars(), id->size()); + if (member->type().isUnsigned() && memberName.endsWith("_token")) { + // nothing to do. The member is a token. + + } else if (PointerType *ptrTy = member->type()->asPointerType()) { + + if (NamedType *namedTy = ptrTy->elementType()->asNamedType()) { + QByteArray typeName = namedTy->name()->identifier()->chars(); + + if (_listNodes.contains(typeName) && memberName != "next") { + *out + << " for (" << typeName.constData() << " *it = " + << memberName.constData() << "; it; it = it->next)" << endl + << " accept(it, visitor);" << endl; + + } else if (typeName.endsWith("AST") && memberName != "next") { + *out << " accept(" << memberName.constData() << ", visitor);" << endl; + } + } + } + } + + for (unsigned i = 0; i < klass->baseClassCount(); ++i) { + const QByteArray baseClassName = klass->baseClassAt(i)->identifier()->chars(); + + if (ClassSpecifierAST *baseClassSpec = classMap.value(baseClassName, 0)) { + visitMembers(baseClassSpec->symbol); + } + } + } + + bool checkMethod(Symbol *accept0Method) const + { + Declaration *decl = accept0Method->asDeclaration(); + if (! decl) + return false; + + Function *funTy = decl->type()->asFunctionType(); + if (! funTy) + return false; + + else if (funTy->isPureVirtual()) + return false; + + return true; + } + + virtual bool visit(ClassSpecifierAST *ast) + { + Class *klass = ast->symbol; + const QByteArray className = id_cast(ast->name); + + Identifier *visit_id = control()->findOrInsertIdentifier("accept0"); + Symbol *accept0Method = klass->members()->lookat(visit_id); + for (; accept0Method; accept0Method = accept0Method->next()) { + if (accept0Method->identifier() != visit_id) + continue; + + if (checkMethod(accept0Method)) + break; + } + + if (! accept0Method) + return true; + + classMap.insert(className, ast); + + *out + << "void " << className.constData() << "::accept0(ASTVisitor *visitor)" << endl + << "{" << endl + << " if (visitor->visit(this)) {" << endl; + + visitMembers(klass); + + *out + << " }" << endl + << " visitor->endVisit(this);" << endl + << "}" << endl + << endl; + + return true; + } +}; + QTextCursor createCursor(TranslationUnit *unit, AST *ast, QTextDocument *document) { unsigned startLine, startColumn, endLine, endColumn; @@ -226,6 +451,9 @@ QStringList generateAST_H(const Snapshot &snapshot, const QDir &cplusplusDir) out << document.toPlainText(); } + VisitCG cg(cplusplusDir, doc->control()); + cg(doc->translationUnit()->ast()); + return astDerivedClasses; }