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