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