kde-extraapps/kdevelop/languages/cpp/codegen/ast/changeimplementor.cpp
2015-07-26 14:23:17 +03:00

415 lines
13 KiB
C++

/*
Copyright 2008 Hamish Rodda <rodda@kde.org>
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.
*/
#include "changeimplementor.h"
#include "astchange.h"
#include "tokens.h"
#include <parsesession.h>
#include <lexer.h>
void ChangeImplementor::replaceToken(std::size_t token, int newToken)
{
const Token& t = m_session->token_stream->token( token );
rpp::Anchor a = m_session->positionAt( token );
KDevelop::RangeInRevision tokenRange(a, t.size);
m_changes.addChange(KDevelop::DocumentChangePointer(new KDevelop::DocumentChange(m_url, tokenRange.castToSimpleRange(), t.symbolString(), token_text( newToken ))));
}
void ChangeImplementor::visitAccessSpecifier(AccessSpecifierChange* change, AccessSpecifierAST* node)
{
ChangeVisitor::visitAccessSpecifier(change, node);
}
void ChangeImplementor::visitAsmDefinition(AsmDefinitionChange* change, AsmDefinitionAST* node)
{
ChangeVisitor::visitAsmDefinition(change, node);
}
void ChangeImplementor::visitBaseClause(BaseClauseChange* change, BaseClauseAST* node)
{
ChangeVisitor::visitBaseClause(change, node);
}
void ChangeImplementor::visitBaseSpecifier(BaseSpecifierChange* change, BaseSpecifierAST* node)
{
replaceToken(node->access_specifier, change->accessSpecifier());
replaceToken(node->virt, change->isVirtual() ? Token_virtual : Token_none);
ChangeVisitor::visitBaseSpecifier(change, node);
}
void ChangeImplementor::visitBinaryExpression(BinaryExpressionChange* change, BinaryExpressionAST* node)
{
ChangeVisitor::visitBinaryExpression(change, node);
}
void ChangeImplementor::visitCastExpression(CastExpressionChange* change, CastExpressionAST* node)
{
ChangeVisitor::visitCastExpression(change, node);
}
void ChangeImplementor::visitClassMemberAccess(ClassMemberAccessChange* change, ClassMemberAccessAST* node)
{
ChangeVisitor::visitClassMemberAccess(change, node);
}
void ChangeImplementor::visitClassSpecifier(ClassSpecifierChange* change, ClassSpecifierAST* node)
{
ChangeVisitor::visitClassSpecifier(change, node);
}
void ChangeImplementor::visitCompoundStatement(CompoundStatementChange* change, CompoundStatementAST* node)
{
ChangeVisitor::visitCompoundStatement(change, node);
}
void ChangeImplementor::visitCondition(ConditionChange* change, ConditionAST* node)
{
ChangeVisitor::visitCondition(change, node);
}
void ChangeImplementor::visitConditionalExpression(ConditionalExpressionChange* change, ConditionalExpressionAST* node)
{
ChangeVisitor::visitConditionalExpression(change, node);
}
void ChangeImplementor::visitCppCastExpression(CppCastExpressionChange* change, CppCastExpressionAST* node)
{
ChangeVisitor::visitCppCastExpression(change, node);
}
void ChangeImplementor::visitCtorInitializer(CtorInitializerChange* change, CtorInitializerAST* node)
{
ChangeVisitor::visitCtorInitializer(change, node);
}
void ChangeImplementor::visitDeclarationStatement(DeclarationStatementChange* change, DeclarationStatementAST* node)
{
ChangeVisitor::visitDeclarationStatement(change, node);
}
void ChangeImplementor::visitDeclarator(DeclaratorChange* change, DeclaratorAST* node)
{
ChangeVisitor::visitDeclarator(change, node);
}
void ChangeImplementor::visitDeleteExpression(DeleteExpressionChange* change, DeleteExpressionAST* node)
{
ChangeVisitor::visitDeleteExpression(change, node);
}
void ChangeImplementor::visitDoStatement(DoStatementChange* change, DoStatementAST* node)
{
ChangeVisitor::visitDoStatement(change, node);
}
void ChangeImplementor::visitElaboratedTypeSpecifier(ElaboratedTypeSpecifierChange* change, ElaboratedTypeSpecifierAST* node)
{
ChangeVisitor::visitElaboratedTypeSpecifier(change, node);
}
void ChangeImplementor::visitEnumSpecifier(EnumSpecifierChange* change, EnumSpecifierAST* node)
{
ChangeVisitor::visitEnumSpecifier(change, node);
}
void ChangeImplementor::visitEnumerator(EnumeratorChange* change, EnumeratorAST* node)
{
ChangeVisitor::visitEnumerator(change, node);
}
void ChangeImplementor::visitExceptionSpecification(ExceptionSpecificationChange* change, ExceptionSpecificationAST* node)
{
ChangeVisitor::visitExceptionSpecification(change, node);
}
void ChangeImplementor::visitExpressionOrDeclarationStatement(ExpressionOrDeclarationStatementChange* change, ExpressionOrDeclarationStatementAST* node)
{
ChangeVisitor::visitExpressionOrDeclarationStatement(change, node);
}
void ChangeImplementor::visitExpressionStatement(ExpressionStatementChange* change, ExpressionStatementAST* node)
{
ChangeVisitor::visitExpressionStatement(change, node);
}
void ChangeImplementor::visitForStatement(ForStatementChange* change, ForStatementAST* node)
{
ChangeVisitor::visitForStatement(change, node);
}
void ChangeImplementor::visitFunctionCall(FunctionCallChange* change, FunctionCallAST* node)
{
ChangeVisitor::visitFunctionCall(change, node);
}
void ChangeImplementor::visitFunctionDefinition(FunctionDefinitionChange* change, FunctionDefinitionAST* node)
{
ChangeVisitor::visitFunctionDefinition(change, node);
}
void ChangeImplementor::visitIfStatement(IfStatementChange* change, IfStatementAST* node)
{
ChangeVisitor::visitIfStatement(change, node);
}
void ChangeImplementor::visitIncrDecrExpression(IncrDecrExpressionChange* change, IncrDecrExpressionAST* node)
{
ChangeVisitor::visitIncrDecrExpression(change, node);
}
void ChangeImplementor::visitInitDeclarator(InitDeclaratorChange* change, InitDeclaratorAST* node)
{
ChangeVisitor::visitInitDeclarator(change, node);
}
void ChangeImplementor::visitInitializer(InitializerChange* change, InitializerAST* node)
{
ChangeVisitor::visitInitializer(change, node);
}
void ChangeImplementor::visitInitializerClause(InitializerClauseChange* change, InitializerClauseAST* node)
{
ChangeVisitor::visitInitializerClause(change, node);
}
void ChangeImplementor::visitJumpStatement(JumpStatementChange* change, JumpStatementAST* node)
{
ChangeVisitor::visitJumpStatement(change, node);
}
void ChangeImplementor::visitLabeledStatement(LabeledStatementChange* change, LabeledStatementAST* node)
{
ChangeVisitor::visitLabeledStatement(change, node);
}
void ChangeImplementor::visitLinkageBody(LinkageBodyChange* change, LinkageBodyAST* node)
{
ChangeVisitor::visitLinkageBody(change, node);
}
void ChangeImplementor::visitLinkageSpecification(LinkageSpecificationChange* change, LinkageSpecificationAST* node)
{
ChangeVisitor::visitLinkageSpecification(change, node);
}
void ChangeImplementor::visitMemInitializer(MemInitializerChange* change, MemInitializerAST* node)
{
ChangeVisitor::visitMemInitializer(change, node);
}
void ChangeImplementor::visitName(NameChange* change, NameAST* node)
{
ChangeVisitor::visitName(change, node);
}
void ChangeImplementor::visitNamespace(NamespaceChange* change, NamespaceAST* node)
{
ChangeVisitor::visitNamespace(change, node);
}
void ChangeImplementor::visitNamespaceAliasDefinition(NamespaceAliasDefinitionChange* change, NamespaceAliasDefinitionAST* node)
{
ChangeVisitor::visitNamespaceAliasDefinition(change, node);
}
void ChangeImplementor::visitNewDeclarator(NewDeclaratorChange* change, NewDeclaratorAST* node)
{
ChangeVisitor::visitNewDeclarator(change, node);
}
void ChangeImplementor::visitNewExpression(NewExpressionChange* change, NewExpressionAST* node)
{
ChangeVisitor::visitNewExpression(change, node);
}
void ChangeImplementor::visitNewInitializer(NewInitializerChange* change, NewInitializerAST* node)
{
ChangeVisitor::visitNewInitializer(change, node);
}
void ChangeImplementor::visitNewTypeId(NewTypeIdChange* change, NewTypeIdAST* node)
{
ChangeVisitor::visitNewTypeId(change, node);
}
void ChangeImplementor::visitOperator(OperatorChange* change, OperatorAST* node)
{
ChangeVisitor::visitOperator(change, node);
}
void ChangeImplementor::visitOperatorFunctionId(OperatorFunctionIdChange* change, OperatorFunctionIdAST* node)
{
ChangeVisitor::visitOperatorFunctionId(change, node);
}
void ChangeImplementor::visitParameterDeclaration(ParameterDeclarationChange* change, ParameterDeclarationAST* node)
{
ChangeVisitor::visitParameterDeclaration(change, node);
}
void ChangeImplementor::visitParameterDeclarationClause(ParameterDeclarationClauseChange* change, ParameterDeclarationClauseAST* node)
{
ChangeVisitor::visitParameterDeclarationClause(change, node);
}
void ChangeImplementor::visitPostfixExpression(PostfixExpressionChange* change, PostfixExpressionAST* node)
{
ChangeVisitor::visitPostfixExpression(change, node);
}
void ChangeImplementor::visitPrimaryExpression(PrimaryExpressionChange* change, PrimaryExpressionAST* node)
{
ChangeVisitor::visitPrimaryExpression(change, node);
}
void ChangeImplementor::visitPtrOperator(PtrOperatorChange* change, PtrOperatorAST* node)
{
ChangeVisitor::visitPtrOperator(change, node);
}
void ChangeImplementor::visitPtrToMember(PtrToMemberChange* change, PtrToMemberAST* node)
{
ChangeVisitor::visitPtrToMember(change, node);
}
void ChangeImplementor::visitReturnStatement(ReturnStatementChange* change, ReturnStatementAST* node)
{
ChangeVisitor::visitReturnStatement(change, node);
}
void ChangeImplementor::visitSimpleDeclaration(SimpleDeclarationChange* change, SimpleDeclarationAST* node)
{
ChangeVisitor::visitSimpleDeclaration(change, node);
}
void ChangeImplementor::visitSimpleTypeSpecifier(SimpleTypeSpecifierChange* change, SimpleTypeSpecifierAST* node)
{
ChangeVisitor::visitSimpleTypeSpecifier(change, node);
}
void ChangeImplementor::visitSizeofExpression(SizeofExpressionChange* change, SizeofExpressionAST* node)
{
ChangeVisitor::visitSizeofExpression(change, node);
}
void ChangeImplementor::visitStringLiteral(StringLiteralChange* change, StringLiteralAST* node)
{
ChangeVisitor::visitStringLiteral(change, node);
}
void ChangeImplementor::visitSubscriptExpression(SubscriptExpressionChange* change, SubscriptExpressionAST* node)
{
ChangeVisitor::visitSubscriptExpression(change, node);
}
void ChangeImplementor::visitSwitchStatement(SwitchStatementChange* change, SwitchStatementAST* node)
{
ChangeVisitor::visitSwitchStatement(change, node);
}
void ChangeImplementor::visitTemplateArgument(TemplateArgumentChange* change, TemplateArgumentAST* node)
{
ChangeVisitor::visitTemplateArgument(change, node);
}
void ChangeImplementor::visitTemplateDeclaration(TemplateDeclarationChange* change, TemplateDeclarationAST* node)
{
ChangeVisitor::visitTemplateDeclaration(change, node);
}
void ChangeImplementor::visitTemplateParameter(TemplateParameterChange* change, TemplateParameterAST* node)
{
ChangeVisitor::visitTemplateParameter(change, node);
}
void ChangeImplementor::visitThrowExpression(ThrowExpressionChange* change, ThrowExpressionAST* node)
{
ChangeVisitor::visitThrowExpression(change, node);
}
void ChangeImplementor::visitTranslationUnit(TranslationUnitChange* change, TranslationUnitAST* node)
{
ChangeVisitor::visitTranslationUnit(change, node);
}
void ChangeImplementor::visitTryBlockStatement(TryBlockStatementChange* change, TryBlockStatementAST* node)
{
ChangeVisitor::visitTryBlockStatement(change, node);
}
void ChangeImplementor::visitCatchStatement(CatchStatementChange* change, CatchStatementAST* node)
{
ChangeVisitor::visitCatchStatement(change, node);
}
void ChangeImplementor::visitTypeId(TypeIdChange* change, TypeIdAST* node)
{
ChangeVisitor::visitTypeId(change, node);
}
void ChangeImplementor::visitTypeIdentification(TypeIdentificationChange* change, TypeIdentificationAST* node)
{
ChangeVisitor::visitTypeIdentification(change, node);
}
void ChangeImplementor::visitTypeParameter(TypeParameterChange* change, TypeParameterAST* node)
{
ChangeVisitor::visitTypeParameter(change, node);
}
void ChangeImplementor::visitTypedef(TypedefChange* change, TypedefAST* node)
{
ChangeVisitor::visitTypedef(change, node);
}
void ChangeImplementor::visitUnaryExpression(UnaryExpressionChange* change, UnaryExpressionAST* node)
{
ChangeVisitor::visitUnaryExpression(change, node);
}
void ChangeImplementor::visitUnqualifiedName(UnqualifiedNameChange* change, UnqualifiedNameAST* node)
{
ChangeVisitor::visitUnqualifiedName(change, node);
}
void ChangeImplementor::visitUsing(UsingChange* change, UsingAST* node)
{
ChangeVisitor::visitUsing(change, node);
}
void ChangeImplementor::visitUsingDirective(UsingDirectiveChange* change, UsingDirectiveAST* node)
{
ChangeVisitor::visitUsingDirective(change, node);
}
void ChangeImplementor::visitWhileStatement(WhileStatementChange* change, WhileStatementAST* node)
{
ChangeVisitor::visitWhileStatement(change, node);
}
void ChangeImplementor::visitWinDeclSpec(WinDeclSpecChange* change, WinDeclSpecAST* node)
{
ChangeVisitor::visitWinDeclSpec(change, node);
}
void ChangeImplementor::visitSignalSlotExpression(SignalSlotExpressionChange* change, SignalSlotExpressionAST* node)
{
ChangeVisitor::visitSignalSlotExpression(change, node);
}