File indexing completed on 2024-05-19 15:42:34
0001 /* 0002 SPDX-FileCopyrightText: 2007 Andreas Pakulat <apaku@gmx.de> 0003 SPDX-FileCopyrightText: 2012 Patrick Spendrin <ps_ml@gmx.de> 0004 SPDX-FileCopyrightText: 2010-2014 Sven Brauch <svenbrauch@googlemail.com> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #ifndef PYTHONASTDEFAULTVISITOR_H 0010 #define PYTHONASTDEFAULTVISITOR_H 0011 0012 #include "astvisitor.h" 0013 #include "parserexport.h" 0014 0015 /** 0016 * Note: This has been generated using utilities/generate.py 0017 * but you can modifiy it, it's not regenerated automatically 0018 */ 0019 0020 namespace Python 0021 { 0022 0023 class KDEVPYTHONPARSER_EXPORT AstDefaultVisitor : public AstVisitor 0024 { 0025 public: 0026 AstDefaultVisitor(); 0027 ~AstDefaultVisitor() override; 0028 0029 void visitCode(CodeAst* node) override; 0030 void visitFunctionDefinition(FunctionDefinitionAst* node) override; 0031 void visitClassDefinition(ClassDefinitionAst* node) override; 0032 void visitReturn(ReturnAst* node) override; 0033 void visitAwait(AwaitAst* node) override; 0034 void visitDelete(DeleteAst* node) override; 0035 void visitAssignment(AssignmentAst* node) override; 0036 void visitAugmentedAssignment(AugmentedAssignmentAst* node) override; 0037 void visitAnnotationAssignment(AnnotationAssignmentAst* node) override; 0038 void visitAssignmentExpression(AssignmentExpressionAst* node) override; 0039 void visitFor(ForAst* node) override; 0040 void visitWhile(WhileAst* node) override; 0041 void visitIf(IfAst* node) override; 0042 void visitWith(WithAst* node) override; 0043 void visitRaise(RaiseAst* node) override; 0044 void visitTry(TryAst* node) override; 0045 void visitTryStar(TryStarAst* node) override; 0046 void visitAssertion(AssertionAst* node) override; 0047 void visitImport(ImportAst* node) override; 0048 void visitImportFrom(ImportFromAst* node) override; 0049 void visitGlobal(GlobalAst* node) override; 0050 void visitBreak(BreakAst* node) override; 0051 void visitContinue(ContinueAst* node) override; 0052 void visitPass(PassAst* node) override; 0053 void visitNonlocal(NonlocalAst* node) override; 0054 void visitBooleanOperation(BooleanOperationAst* node) override; 0055 void visitBinaryOperation(BinaryOperationAst* node) override; 0056 void visitUnaryOperation(UnaryOperationAst* node) override; 0057 void visitLambda(LambdaAst* node) override; 0058 void visitIfExpression(IfExpressionAst* node) override; 0059 void visitDict(DictAst* node) override; 0060 void visitSet(SetAst* node) override; 0061 void visitListComprehension(ListComprehensionAst* node) override; 0062 void visitSetComprehension(SetComprehensionAst* node) override; 0063 void visitDictionaryComprehension(DictionaryComprehensionAst* node) override; 0064 void visitGeneratorExpression(GeneratorExpressionAst* node) override; 0065 void visitCompare(CompareAst* node) override; 0066 void visitNumber(NumberAst* node) override; 0067 void visitString(StringAst* node) override; 0068 void visitJoinedString(JoinedStringAst* node) override; 0069 void visitFormattedValue(FormattedValueAst* node) override; 0070 void visitBytes(BytesAst* node) override; 0071 void visitYield(YieldAst* node) override; 0072 void visitYieldFrom(YieldFromAst* node) override; 0073 void visitName(NameAst* node) override; 0074 void visitNameConstant(NameConstantAst* node) override; 0075 void visitCall(CallAst* node) override; 0076 void visitAttribute(AttributeAst* node) override; 0077 void visitSubscript(SubscriptAst* node) override; 0078 void visitStarred(StarredAst* node) override; 0079 void visitList(ListAst* node) override; 0080 void visitTuple(TupleAst* node) override; 0081 void visitEllipsis(EllipsisAst* node) override; 0082 void visitSlice(SliceAst* node) override; 0083 void visitArguments(ArgumentsAst* node) override; 0084 void visitArg(ArgAst* node) override; 0085 void visitKeyword(KeywordAst* node) override; 0086 void visitComprehension(ComprehensionAst* node) override; 0087 void visitExceptionHandler(ExceptionHandlerAst* node) override; 0088 void visitAlias(AliasAst* node) override; 0089 void visitExpression(ExpressionAst* node) override; 0090 void visitWithItem(WithItemAst* node) override; 0091 void visitMatch(MatchAst* node) override; 0092 void visitMatchCase(MatchCaseAst* node) override; 0093 void visitMatchValue(MatchValueAst* node) override; 0094 void visitMatchSingleton(MatchSingletonAst* node) override; 0095 void visitMatchSequence(MatchSequenceAst* node) override; 0096 void visitMatchMapping(MatchMappingAst* node) override; 0097 void visitMatchClass(MatchClassAst* node) override; 0098 void visitMatchStar(MatchStarAst* node) override; 0099 void visitMatchAs(MatchAsAst* node) override; 0100 void visitMatchOr(MatchOrAst* node) override; 0101 virtual void visitIdentifier(Identifier* node); 0102 }; 0103 0104 class KDEVPYTHONPARSER_EXPORT AstFreeVisitor : public AstDefaultVisitor { 0105 public: 0106 /* 0107 * lines = open('test.dat', 'r').readlines() 0108 * for line in lines: print line.replace(';\n', ' { AstDefaultVisitor::visit'+ line.split('visit')[1] \ 0109 * .split('(')[0] +'(node); delete node; }') 0110 */ 0111 0112 // The CodeAst should not free itself, as this is supposed to be called from ~CodeAst. 0113 void visitCode(CodeAst* node) override { AstDefaultVisitor::visitCode(node); } 0114 void visitFunctionDefinition(FunctionDefinitionAst* node) override { AstDefaultVisitor::visitFunctionDefinition(node); delete node; } 0115 void visitClassDefinition(ClassDefinitionAst* node) override { AstDefaultVisitor::visitClassDefinition(node); delete node; } 0116 void visitReturn(ReturnAst* node) override { AstDefaultVisitor::visitReturn(node); delete node; } 0117 void visitDelete(DeleteAst* node) override { AstDefaultVisitor::visitDelete(node); delete node; } 0118 void visitAssignment(AssignmentAst* node) override { AstDefaultVisitor::visitAssignment(node); delete node; } 0119 void visitAugmentedAssignment(AugmentedAssignmentAst* node) override { AstDefaultVisitor::visitAugmentedAssignment(node); delete node; } 0120 void visitAnnotationAssignment(AnnotationAssignmentAst* node) override { AstDefaultVisitor::visitAnnotationAssignment(node); delete node; } 0121 void visitAssignmentExpression(AssignmentExpressionAst* node) override { AstDefaultVisitor::visitAssignmentExpression(node); delete node; } 0122 void visitFor(ForAst* node) override { AstDefaultVisitor::visitFor(node); delete node; } 0123 void visitWhile(WhileAst* node) override { AstDefaultVisitor::visitWhile(node); delete node; } 0124 void visitIf(IfAst* node) override { AstDefaultVisitor::visitIf(node); delete node; } 0125 void visitWith(WithAst* node) override { AstDefaultVisitor::visitWith(node); delete node; } 0126 void visitRaise(RaiseAst* node) override { AstDefaultVisitor::visitRaise(node); delete node; } 0127 void visitTry(TryAst* node) override { AstDefaultVisitor::visitTry(node); delete node; } 0128 void visitAssertion(AssertionAst* node) override { AstDefaultVisitor::visitAssertion(node); delete node; } 0129 void visitImport(ImportAst* node) override { AstDefaultVisitor::visitImport(node); delete node; } 0130 void visitImportFrom(ImportFromAst* node) override { AstDefaultVisitor::visitImportFrom(node); delete node; } 0131 void visitGlobal(GlobalAst* node) override { AstDefaultVisitor::visitGlobal(node); delete node; } 0132 void visitBreak(BreakAst* node) override { AstDefaultVisitor::visitBreak(node); delete node; } 0133 void visitContinue(ContinueAst* node) override { AstDefaultVisitor::visitContinue(node); delete node; } 0134 void visitPass(PassAst* node) override { AstDefaultVisitor::visitPass(node); delete node; } 0135 void visitNonlocal(NonlocalAst* node) override { AstDefaultVisitor::visitNonlocal(node); delete node; } 0136 void visitBooleanOperation(BooleanOperationAst* node) override { AstDefaultVisitor::visitBooleanOperation(node); delete node; } 0137 void visitBinaryOperation(BinaryOperationAst* node) override { AstDefaultVisitor::visitBinaryOperation(node); delete node; } 0138 void visitUnaryOperation(UnaryOperationAst* node) override { AstDefaultVisitor::visitUnaryOperation(node); delete node; } 0139 void visitLambda(LambdaAst* node) override { AstDefaultVisitor::visitLambda(node); delete node; } 0140 void visitIfExpression(IfExpressionAst* node) override { AstDefaultVisitor::visitIfExpression(node); delete node; } 0141 void visitDict(DictAst* node) override { AstDefaultVisitor::visitDict(node); delete node; } 0142 void visitSet(SetAst* node) override { AstDefaultVisitor::visitSet(node); delete node; } 0143 void visitListComprehension(ListComprehensionAst* node) override { AstDefaultVisitor::visitListComprehension(node); delete node; } 0144 void visitSetComprehension(SetComprehensionAst* node) override { AstDefaultVisitor::visitSetComprehension(node); delete node; } 0145 void visitDictionaryComprehension(DictionaryComprehensionAst* node) override { AstDefaultVisitor::visitDictionaryComprehension(node); delete node; } 0146 void visitGeneratorExpression(GeneratorExpressionAst* node) override { AstDefaultVisitor::visitGeneratorExpression(node); delete node; } 0147 void visitCompare(CompareAst* node) override { AstDefaultVisitor::visitCompare(node); delete node; } 0148 void visitNumber(NumberAst* node) override { AstDefaultVisitor::visitNumber(node); delete node; } 0149 void visitString(StringAst* node) override { AstDefaultVisitor::visitString(node); delete node; } 0150 void visitJoinedString(JoinedStringAst* node) override { AstDefaultVisitor::visitJoinedString(node); delete node; } 0151 void visitFormattedValue(FormattedValueAst* node) override { AstDefaultVisitor::visitFormattedValue(node); delete node; } 0152 void visitBytes(BytesAst* node) override { AstDefaultVisitor::visitBytes(node); delete node; } 0153 void visitYield(YieldAst* node) override { AstDefaultVisitor::visitYield(node); delete node; } 0154 void visitYieldFrom(YieldFromAst* node) override { AstDefaultVisitor::visitYieldFrom(node); delete node; } 0155 void visitName(NameAst* node) override { AstDefaultVisitor::visitName(node); delete node; } 0156 void visitNameConstant(NameConstantAst* node) override { AstDefaultVisitor::visitNameConstant(node); delete node; } 0157 void visitCall(CallAst* node) override { AstDefaultVisitor::visitCall(node); delete node; } 0158 void visitAttribute(AttributeAst* node) override { AstDefaultVisitor::visitAttribute(node); delete node; } 0159 void visitSubscript(SubscriptAst* node) override { AstDefaultVisitor::visitSubscript(node); delete node; } 0160 void visitStarred(StarredAst* node) override { AstDefaultVisitor::visitStarred(node); delete node; } 0161 void visitList(ListAst* node) override { AstDefaultVisitor::visitList(node); delete node; } 0162 void visitTuple(TupleAst* node) override { AstDefaultVisitor::visitTuple(node); delete node; } 0163 void visitEllipsis(EllipsisAst* node) override { AstDefaultVisitor::visitEllipsis(node); delete node; } 0164 void visitSlice(SliceAst* node) override { AstDefaultVisitor::visitSlice(node); delete node; } 0165 void visitArguments(ArgumentsAst* node) override { AstDefaultVisitor::visitArguments(node); delete node; } 0166 void visitArg(ArgAst* node) override { AstDefaultVisitor::visitArg(node); delete node; } 0167 void visitKeyword(KeywordAst* node) override { AstDefaultVisitor::visitKeyword(node); delete node; } 0168 void visitComprehension(ComprehensionAst* node) override { AstDefaultVisitor::visitComprehension(node); delete node; } 0169 void visitExceptionHandler(ExceptionHandlerAst* node) override { AstDefaultVisitor::visitExceptionHandler(node); delete node; } 0170 void visitAlias(AliasAst* node) override { AstDefaultVisitor::visitAlias(node); delete node; } 0171 void visitExpression(ExpressionAst* node) override { AstDefaultVisitor::visitExpression(node); delete node; } 0172 void visitWithItem(WithItemAst* node) override { AstDefaultVisitor::visitWithItem(node); delete node; } 0173 void visitIdentifier(Identifier* node) override { AstDefaultVisitor::visitIdentifier(node); delete node; } 0174 }; 0175 0176 KDEVPYTHONPARSER_EXPORT void free_ast_recursive(CodeAst* node); 0177 0178 } 0179 0180 #endif