def visitStatement()

in Extractors/Python/extractor/xmlnodegenerator.py [0:0]


    def visitStatement(self, statementNode) -> [ET.ElementTree]:
        ''' Visit any statement '''
        if isinstance(statementNode, ast.ClassDef):
            result = self.visitClassDefStatement(statementNode)
        elif isinstance(statementNode, ast.AsyncFunctionDef):
            result = self.visitAsyncFunctionDefStatement(statementNode)
        elif isinstance(statementNode, ast.FunctionDef):
            result = self.visitFunctionDefStatement(statementNode)
        elif isinstance(statementNode, ast.Return):
            result = self.visitReturnStatement(statementNode)
        elif isinstance(statementNode, ast.If):
            result = self.visitIfStatement(statementNode)
        elif isinstance(statementNode, ast.While):
            result = self.visitWhileStatement(statementNode)
        elif isinstance(statementNode, ast.For):
            result = self.visitForStatement(statementNode)
        elif isinstance(statementNode, ast.AsyncFor):
            result = self.visitAsyncForStatement(statementNode)
        elif isinstance(statementNode, ast.Try):
            result = self.visitTryExceptStatement(statementNode)
        elif isinstance(statementNode, ast.AsyncWith):
            result = self.visitAsyncWithStatement(statementNode)
        elif isinstance(statementNode, ast.With):
            result = self.visitWithStatement(statementNode)
        elif isinstance(statementNode, ast.Raise):
            result = self.visitRaiseStatement(statementNode)
        elif isinstance(statementNode, ast.Pass):
            result = self.visitPassStatement(statementNode)
        elif isinstance(statementNode, ast.Break):
            result = self.visitBreakStatement(statementNode)
        elif isinstance(statementNode, ast.Continue):
            result = self.visitContinueStatement(statementNode)
        elif isinstance(statementNode, ast.ImportFrom):
            result =  self.visitImportFromStatement(statementNode)
        elif isinstance(statementNode, ast.Import):
            result = self.visitImportStatement(statementNode)
        elif isinstance(statementNode, ast.Expr):
            result = self.visitExpressionStatement(statementNode)
        elif isinstance(statementNode, ast.Delete):
            result = self.visitDeleteStatement(statementNode)
        elif isinstance(statementNode, ast.Assert):
            result = self.visitAssertStatement(statementNode)
        elif isinstance(statementNode, ast.Assign):
            result = self.visitAssignmentStatement(statementNode)
        elif isinstance(statementNode, ast.AugAssign):
            result = self.visitAugmentedAssignmentStatement(statementNode)
        elif isinstance(statementNode, ast.AnnAssign):
            result = self.visitAnnotatedAssignmentStatement(statementNode)
        elif isinstance(statementNode, ast.Global):
            result = self.visitGlobalStatement(statementNode)
        elif isinstance(statementNode, ast.Nonlocal):
            result = self.visitNonlocalStatement(statementNode)
        else:
            raise NotImplementedError("Unknown statement type: " + str(type(statementNode)))

        result.attrib["StartLine"] = str(statementNode.lineno)
        result.attrib["StartCol"]  = str(statementNode.col_offset+1)
        # result.attrib["EndLine"] = str(statementNode.end_lineno)
        # result.attrib["EndCol"] = str(statementNode.end_col_offset)

        return result