/* * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. * WARNING: Any modifications to this file will be lost. * Relations can be changed by modifying master.py or * by adding rules to dbscheme.template */ /* This is a dummy line to alter the dbscheme, so we can make a database upgrade * without actually changing any of the dbscheme predicates. It contains a date * to allow for such updates in the future as well. * * 2020-07-02 * * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a * previously seen state (matching a previously seen SHA), which would make the upgrade * mechanism not work properly. */ /* * External artifacts */ externalDefects( unique int id : @externalDefect, varchar(900) queryPath : string ref, int location : @location ref, varchar(900) message : string ref, float severity : float ref ); externalMetrics( unique int id : @externalMetric, varchar(900) queryPath : string ref, int location : @location ref, float value : float ref ); externalData( int id : @externalDataElement, varchar(900) queryPath : string ref, int column: int ref, varchar(900) data : string ref ); snapshotDate(unique date snapshotDate : date ref); sourceLocationPrefix(varchar(900) prefix : string ref); /* * Duplicate code */ duplicateCode( unique int id : @duplication, varchar(900) relativePath : string ref, int equivClass : int ref); similarCode( unique int id : @similarity, varchar(900) relativePath : string ref, int equivClass : int ref); @duplication_or_similarity = @duplication | @similarity tokens( int id : @duplication_or_similarity ref, int offset : int ref, int beginLine : int ref, int beginColumn : int ref, int endLine : int ref, int endColumn : int ref); /* * Line metrics */ py_codelines(int id : @py_scope ref, int count : int ref); py_commentlines(int id : @py_scope ref, int count : int ref); py_docstringlines(int id : @py_scope ref, int count : int ref); py_alllines(int id : @py_scope ref, int count : int ref); /* * Version history */ svnentries( int id : @svnentry, varchar(500) revision : string ref, varchar(500) author : string ref, date revisionDate : date ref, int changeSize : int ref ) svnaffectedfiles( int id : @svnentry ref, int file : @file ref, varchar(500) action : string ref ) svnentrymsg( int id : @svnentry ref, varchar(500) message : string ref ) svnchurn( int commit : @svnentry ref, int file : @file ref, int addedLines : int ref, int deletedLines : int ref ) /**************************** Python dbscheme ****************************/ files(unique int id: @file, varchar(900) name: string ref); folders(unique int id: @folder, varchar(900) name: string ref); @container = @folder | @file; containerparent(int parent: @container ref, unique int child: @container ref); @sourceline = @file | @py_Module | @xmllocatable; numlines(int element_id: @sourceline ref, int num_lines: int ref, int num_code: int ref, int num_comment: int ref ); @location = @location_ast | @location_default ; locations_default(unique int id: @location_default, int file: @file ref, int beginLine: int ref, int beginColumn: int ref, int endLine: int ref, int endColumn: int ref); locations_ast(unique int id: @location_ast, int module: @py_Module ref, int beginLine: int ref, int beginColumn: int ref, int endLine: int ref, int endColumn: int ref); file_contents(unique int file: @file ref, string contents: string ref); py_module_path(int module: @py_Module ref, int file: @container ref); variable(unique int id : @py_variable, int scope : @py_scope ref, varchar(1) name : string ref); py_line_lengths(unique int id : @py_line, int file: @py_Module ref, int line : int ref, int length : int ref); py_extracted_version(int module : @py_Module ref, varchar(1) version : string ref); /* AUTO GENERATED PART STARTS HERE */ /* AnnAssign.location = 0, location */ /* AnnAssign.value = 1, expr */ /* AnnAssign.annotation = 2, expr */ /* AnnAssign.target = 3, expr */ /* Assert.location = 0, location */ /* Assert.test = 1, expr */ /* Assert.msg = 2, expr */ /* Assign.location = 0, location */ /* Assign.value = 1, expr */ /* Assign.targets = 2, expr_list */ /* AssignExpr.location = 0, location */ /* AssignExpr.parenthesised = 1, bool */ /* AssignExpr.value = 2, expr */ /* AssignExpr.target = 3, expr */ /* Attribute.location = 0, location */ /* Attribute.parenthesised = 1, bool */ /* Attribute.value = 2, expr */ /* Attribute.attr = 3, str */ /* Attribute.ctx = 4, expr_context */ /* AugAssign.location = 0, location */ /* AugAssign.operation = 1, BinOp */ /* Await.location = 0, location */ /* Await.parenthesised = 1, bool */ /* Await.value = 2, expr */ /* BinaryExpr.location = 0, location */ /* BinaryExpr.parenthesised = 1, bool */ /* BinaryExpr.left = 2, expr */ /* BinaryExpr.op = 3, operator */ /* BinaryExpr.right = 4, expr */ /* BinaryExpr = AugAssign */ /* BoolExpr.location = 0, location */ /* BoolExpr.parenthesised = 1, bool */ /* BoolExpr.op = 2, boolop */ /* BoolExpr.values = 3, expr_list */ /* Break.location = 0, location */ /* Bytes.location = 0, location */ /* Bytes.parenthesised = 1, bool */ /* Bytes.s = 2, bytes */ /* Bytes.prefix = 3, bytes */ /* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ /* Call.location = 0, location */ /* Call.parenthesised = 1, bool */ /* Call.func = 2, expr */ /* Call.positional_args = 3, expr_list */ /* Call.named_args = 4, dict_item_list */ /* Case.location = 0, location */ /* Case.pattern = 1, pattern */ /* Case.guard = 2, expr */ /* Case.body = 3, stmt_list */ /* Class.name = 0, str */ /* Class.body = 1, stmt_list */ /* Class = ClassExpr */ /* ClassExpr.location = 0, location */ /* ClassExpr.parenthesised = 1, bool */ /* ClassExpr.name = 2, str */ /* ClassExpr.bases = 3, expr_list */ /* ClassExpr.keywords = 4, dict_item_list */ /* ClassExpr.inner_scope = 5, Class */ /* Compare.location = 0, location */ /* Compare.parenthesised = 1, bool */ /* Compare.left = 2, expr */ /* Compare.ops = 3, cmpop_list */ /* Compare.comparators = 4, expr_list */ /* Continue.location = 0, location */ /* Delete.location = 0, location */ /* Delete.targets = 1, expr_list */ /* Dict.location = 0, location */ /* Dict.parenthesised = 1, bool */ /* Dict.items = 2, dict_item_list */ /* DictComp.location = 0, location */ /* DictComp.parenthesised = 1, bool */ /* DictComp.function = 2, Function */ /* DictComp.iterable = 3, expr */ /* DictUnpacking.location = 0, location */ /* DictUnpacking.value = 1, expr */ /* Ellipsis.location = 0, location */ /* Ellipsis.parenthesised = 1, bool */ /* ExceptStmt.location = 0, location */ /* ExceptStmt.type = 1, expr */ /* ExceptStmt.name = 2, expr */ /* ExceptStmt.body = 3, stmt_list */ /* Exec.location = 0, location */ /* Exec.body = 1, expr */ /* Exec.globals = 2, expr */ /* Exec.locals = 3, expr */ /* ExprStmt.location = 0, location */ /* ExprStmt.value = 1, expr */ /* Filter.location = 0, location */ /* Filter.parenthesised = 1, bool */ /* Filter.value = 2, expr */ /* Filter.filter = 3, expr */ /* For.location = 0, location */ /* For.target = 1, expr */ /* For.iter = 2, expr */ /* For.body = 3, stmt_list */ /* For.orelse = 4, stmt_list */ /* For.is_async = 5, bool */ /* FormattedValue.location = 0, location */ /* FormattedValue.parenthesised = 1, bool */ /* FormattedValue.value = 2, expr */ /* FormattedValue.conversion = 3, str */ /* FormattedValue.format_spec = 4, JoinedStr */ /* Function.name = 0, str */ /* Function.args = 1, parameter_list */ /* Function.vararg = 2, expr */ /* Function.kwonlyargs = 3, expr_list */ /* Function.kwarg = 4, expr */ /* Function.body = 5, stmt_list */ /* Function.is_async = 6, bool */ /* Function = FunctionParent */ /* FunctionExpr.location = 0, location */ /* FunctionExpr.parenthesised = 1, bool */ /* FunctionExpr.name = 2, str */ /* FunctionExpr.args = 3, arguments */ /* FunctionExpr.returns = 4, expr */ /* FunctionExpr.inner_scope = 5, Function */ /* GeneratorExp.location = 0, location */ /* GeneratorExp.parenthesised = 1, bool */ /* GeneratorExp.function = 2, Function */ /* GeneratorExp.iterable = 3, expr */ /* Global.location = 0, location */ /* Global.names = 1, str_list */ /* Guard.location = 0, location */ /* Guard.parenthesised = 1, bool */ /* Guard.test = 2, expr */ /* If.location = 0, location */ /* If.test = 1, expr */ /* If.body = 2, stmt_list */ /* If.orelse = 3, stmt_list */ /* IfExp.location = 0, location */ /* IfExp.parenthesised = 1, bool */ /* IfExp.test = 2, expr */ /* IfExp.body = 3, expr */ /* IfExp.orelse = 4, expr */ /* Import.location = 0, location */ /* Import.names = 1, alias_list */ /* ImportExpr.location = 0, location */ /* ImportExpr.parenthesised = 1, bool */ /* ImportExpr.level = 2, int */ /* ImportExpr.name = 3, str */ /* ImportExpr.top = 4, bool */ /* ImportStar.location = 0, location */ /* ImportStar.module = 1, expr */ /* ImportMember.location = 0, location */ /* ImportMember.parenthesised = 1, bool */ /* ImportMember.module = 2, expr */ /* ImportMember.name = 3, str */ /* Fstring.location = 0, location */ /* Fstring.parenthesised = 1, bool */ /* Fstring.values = 2, expr_list */ /* Fstring = FormattedValue */ /* KeyValuePair.location = 0, location */ /* KeyValuePair.value = 1, expr */ /* KeyValuePair.key = 2, expr */ /* Lambda.location = 0, location */ /* Lambda.parenthesised = 1, bool */ /* Lambda.args = 2, arguments */ /* Lambda.inner_scope = 3, Function */ /* List.location = 0, location */ /* List.parenthesised = 1, bool */ /* List.elts = 2, expr_list */ /* List.ctx = 3, expr_context */ /* ListComp.location = 0, location */ /* ListComp.parenthesised = 1, bool */ /* ListComp.function = 2, Function */ /* ListComp.iterable = 3, expr */ /* ListComp.generators = 4, comprehension_list */ /* ListComp.elt = 5, expr */ /* MatchStmt.location = 0, location */ /* MatchStmt.subject = 1, expr */ /* MatchStmt.cases = 2, stmt_list */ /* MatchAsPattern.location = 0, location */ /* MatchAsPattern.parenthesised = 1, bool */ /* MatchAsPattern.pattern = 2, pattern */ /* MatchAsPattern.alias = 3, expr */ /* MatchCapturePattern.location = 0, location */ /* MatchCapturePattern.parenthesised = 1, bool */ /* MatchCapturePattern.variable = 2, expr */ /* MatchClassPattern.location = 0, location */ /* MatchClassPattern.parenthesised = 1, bool */ /* MatchClassPattern.class = 2, expr */ /* MatchClassPattern.class_name = 3, expr */ /* MatchClassPattern.positional = 4, pattern_list */ /* MatchClassPattern.keyword = 5, pattern_list */ /* MatchDoubleStarPattern.location = 0, location */ /* MatchDoubleStarPattern.parenthesised = 1, bool */ /* MatchDoubleStarPattern.target = 2, pattern */ /* MatchKeyValuePattern.location = 0, location */ /* MatchKeyValuePattern.parenthesised = 1, bool */ /* MatchKeyValuePattern.key = 2, pattern */ /* MatchKeyValuePattern.value = 3, pattern */ /* MatchKeywordPattern.location = 0, location */ /* MatchKeywordPattern.parenthesised = 1, bool */ /* MatchKeywordPattern.attribute = 2, expr */ /* MatchKeywordPattern.value = 3, pattern */ /* MatchLiteralPattern.location = 0, location */ /* MatchLiteralPattern.parenthesised = 1, bool */ /* MatchLiteralPattern.literal = 2, expr */ /* MatchMappingPattern.location = 0, location */ /* MatchMappingPattern.parenthesised = 1, bool */ /* MatchMappingPattern.mappings = 2, pattern_list */ /* MatchOrPattern.location = 0, location */ /* MatchOrPattern.parenthesised = 1, bool */ /* MatchOrPattern.patterns = 2, pattern_list */ /* MatchSequencePattern.location = 0, location */ /* MatchSequencePattern.parenthesised = 1, bool */ /* MatchSequencePattern.patterns = 2, pattern_list */ /* MatchStarPattern.location = 0, location */ /* MatchStarPattern.parenthesised = 1, bool */ /* MatchStarPattern.target = 2, pattern */ /* MatchValuePattern.location = 0, location */ /* MatchValuePattern.parenthesised = 1, bool */ /* MatchValuePattern.value = 2, expr */ /* MatchWildcardPattern.location = 0, location */ /* MatchWildcardPattern.parenthesised = 1, bool */ /* Module.name = 0, str */ /* Module.hash = 1, str */ /* Module.body = 2, stmt_list */ /* Module.kind = 3, str */ /* Name.location = 0, location */ /* Name.parenthesised = 1, bool */ /* Name.variable = 2, variable */ /* Name.ctx = 3, expr_context */ /* Name = ParameterList */ /* Nonlocal.location = 0, location */ /* Nonlocal.names = 1, str_list */ /* Num.location = 0, location */ /* Num.parenthesised = 1, bool */ /* Num.n = 2, number */ /* Num.text = 3, number */ /* Pass.location = 0, location */ /* PlaceHolder.location = 0, location */ /* PlaceHolder.parenthesised = 1, bool */ /* PlaceHolder.variable = 2, variable */ /* PlaceHolder.ctx = 3, expr_context */ /* Print.location = 0, location */ /* Print.dest = 1, expr */ /* Print.values = 2, expr_list */ /* Print.nl = 3, bool */ /* Raise.location = 0, location */ /* Raise.exc = 1, expr */ /* Raise.cause = 2, expr */ /* Raise.type = 3, expr */ /* Raise.inst = 4, expr */ /* Raise.tback = 5, expr */ /* Repr.location = 0, location */ /* Repr.parenthesised = 1, bool */ /* Repr.value = 2, expr */ /* Return.location = 0, location */ /* Return.value = 1, expr */ /* Set.location = 0, location */ /* Set.parenthesised = 1, bool */ /* Set.elts = 2, expr_list */ /* SetComp.location = 0, location */ /* SetComp.parenthesised = 1, bool */ /* SetComp.function = 2, Function */ /* SetComp.iterable = 3, expr */ /* Slice.location = 0, location */ /* Slice.parenthesised = 1, bool */ /* Slice.start = 2, expr */ /* Slice.stop = 3, expr */ /* Slice.step = 4, expr */ /* SpecialOperation.location = 0, location */ /* SpecialOperation.parenthesised = 1, bool */ /* SpecialOperation.name = 2, str */ /* SpecialOperation.arguments = 3, expr_list */ /* Starred.location = 0, location */ /* Starred.parenthesised = 1, bool */ /* Starred.value = 2, expr */ /* Starred.ctx = 3, expr_context */ /* Str.location = 0, location */ /* Str.parenthesised = 1, bool */ /* Str.s = 2, str */ /* Str.prefix = 3, str */ /* Str.implicitly_concatenated_parts = 4, StringPart_list */ /* StringPart.text = 0, str */ /* StringPart.location = 1, location */ /* StringPart = StringPartList */ /* StringPartList = BytesOrStr */ /* Subscript.location = 0, location */ /* Subscript.parenthesised = 1, bool */ /* Subscript.value = 2, expr */ /* Subscript.index = 3, expr */ /* Subscript.ctx = 4, expr_context */ /* TemplateDottedNotation.location = 0, location */ /* TemplateDottedNotation.parenthesised = 1, bool */ /* TemplateDottedNotation.value = 2, expr */ /* TemplateDottedNotation.attr = 3, str */ /* TemplateDottedNotation.ctx = 4, expr_context */ /* TemplateWrite.location = 0, location */ /* TemplateWrite.value = 1, expr */ /* Try.location = 0, location */ /* Try.body = 1, stmt_list */ /* Try.orelse = 2, stmt_list */ /* Try.handlers = 3, stmt_list */ /* Try.finalbody = 4, stmt_list */ /* Tuple.location = 0, location */ /* Tuple.parenthesised = 1, bool */ /* Tuple.elts = 2, expr_list */ /* Tuple.ctx = 3, expr_context */ /* Tuple = ParameterList */ /* UnaryExpr.location = 0, location */ /* UnaryExpr.parenthesised = 1, bool */ /* UnaryExpr.op = 2, unaryop */ /* UnaryExpr.operand = 3, expr */ /* While.location = 0, location */ /* While.test = 1, expr */ /* While.body = 2, stmt_list */ /* While.orelse = 3, stmt_list */ /* With.location = 0, location */ /* With.context_expr = 1, expr */ /* With.optional_vars = 2, expr */ /* With.body = 3, stmt_list */ /* With.is_async = 4, bool */ /* Yield.location = 0, location */ /* Yield.parenthesised = 1, bool */ /* Yield.value = 2, expr */ /* YieldFrom.location = 0, location */ /* YieldFrom.parenthesised = 1, bool */ /* YieldFrom.value = 2, expr */ /* Alias.value = 0, expr */ /* Alias.asname = 1, expr */ /* Alias = AliasList */ /* AliasList = Import */ /* Arguments.kw_defaults = 0, expr_list */ /* Arguments.defaults = 1, expr_list */ /* Arguments.annotations = 2, expr_list */ /* Arguments.varargannotation = 3, expr */ /* Arguments.kwargannotation = 4, expr */ /* Arguments.kw_annotations = 5, expr_list */ /* Arguments = ArgumentsParent */ /* boolean = BoolParent */ /* Boolop = BoolExpr */ /* string = Bytes */ /* Cmpop = CmpopList */ /* CmpopList = Compare */ /* Comprehension.location = 0, location */ /* Comprehension.iter = 1, expr */ /* Comprehension.target = 2, expr */ /* Comprehension.ifs = 3, expr_list */ /* Comprehension = ComprehensionList */ /* ComprehensionList = ListComp */ /* DictItem = DictItemList */ /* DictItemList = DictItemListParent */ /* Expr.location = 0, location */ /* Expr.parenthesised = 1, bool */ /* Expr = ExprParent */ /* ExprContext = ExprContextParent */ /* ExprList = ExprListParent */ /* int = ImportExpr */ /* Keyword.location = 0, location */ /* Keyword.value = 1, expr */ /* Keyword.arg = 2, str */ /* Location = LocationParent */ /* string = Num */ /* Operator = BinaryExpr */ /* ParameterList = Function */ /* Pattern.location = 0, location */ /* Pattern.parenthesised = 1, bool */ /* Pattern = PatternParent */ /* PatternList = PatternListParent */ /* Stmt.location = 0, location */ /* Stmt = StmtList */ /* StmtList = StmtListParent */ /* string = StrParent */ /* StringList = StrListParent */ /* Unaryop = UnaryExpr */ /* Variable = VariableParent */ py_Classes(unique int id : @py_Class, unique int parent : @py_ClassExpr ref); py_Functions(unique int id : @py_Function, unique int parent : @py_Function_parent ref); py_Modules(unique int id : @py_Module); py_StringParts(unique int id : @py_StringPart, int parent : @py_StringPart_list ref, int idx : int ref); py_StringPart_lists(unique int id : @py_StringPart_list, unique int parent : @py_Bytes_or_Str ref); py_aliases(unique int id : @py_alias, int parent : @py_alias_list ref, int idx : int ref); py_alias_lists(unique int id : @py_alias_list, unique int parent : @py_Import ref); py_arguments(unique int id : @py_arguments, unique int parent : @py_arguments_parent ref); py_bools(int parent : @py_bool_parent ref, int idx : int ref); py_boolops(unique int id : @py_boolop, int kind: int ref, unique int parent : @py_BoolExpr ref); py_bytes(varchar(1) id : string ref, int parent : @py_Bytes ref, int idx : int ref); py_cmpops(unique int id : @py_cmpop, int kind: int ref, int parent : @py_cmpop_list ref, int idx : int ref); py_cmpop_lists(unique int id : @py_cmpop_list, unique int parent : @py_Compare ref); py_comprehensions(unique int id : @py_comprehension, int parent : @py_comprehension_list ref, int idx : int ref); py_comprehension_lists(unique int id : @py_comprehension_list, unique int parent : @py_ListComp ref); py_dict_items(unique int id : @py_dict_item, int kind: int ref, int parent : @py_dict_item_list ref, int idx : int ref); py_dict_item_lists(unique int id : @py_dict_item_list, unique int parent : @py_dict_item_list_parent ref); py_exprs(unique int id : @py_expr, int kind: int ref, int parent : @py_expr_parent ref, int idx : int ref); py_expr_contexts(unique int id : @py_expr_context, int kind: int ref, unique int parent : @py_expr_context_parent ref); py_expr_lists(unique int id : @py_expr_list, int parent : @py_expr_list_parent ref, int idx : int ref); py_ints(int id : int ref, unique int parent : @py_ImportExpr ref); py_locations(unique int id : @location ref, unique int parent : @py_location_parent ref); py_numbers(varchar(1) id : string ref, int parent : @py_Num ref, int idx : int ref); py_operators(unique int id : @py_operator, int kind: int ref, unique int parent : @py_BinaryExpr ref); py_parameter_lists(unique int id : @py_parameter_list, unique int parent : @py_Function ref); py_patterns(unique int id : @py_pattern, int kind: int ref, int parent : @py_pattern_parent ref, int idx : int ref); py_pattern_lists(unique int id : @py_pattern_list, int parent : @py_pattern_list_parent ref, int idx : int ref); py_stmts(unique int id : @py_stmt, int kind: int ref, int parent : @py_stmt_list ref, int idx : int ref); py_stmt_lists(unique int id : @py_stmt_list, int parent : @py_stmt_list_parent ref, int idx : int ref); py_strs(varchar(1) id : string ref, int parent : @py_str_parent ref, int idx : int ref); py_str_lists(unique int id : @py_str_list, unique int parent : @py_str_list_parent ref); py_unaryops(unique int id : @py_unaryop, int kind: int ref, unique int parent : @py_UnaryExpr ref); py_variables(int id : @py_variable ref, unique int parent : @py_variable_parent ref); case @py_boolop.kind of 0 = @py_And | 1 = @py_Or; case @py_cmpop.kind of 0 = @py_Eq | 1 = @py_Gt | 2 = @py_GtE | 3 = @py_In | 4 = @py_Is | 5 = @py_IsNot | 6 = @py_Lt | 7 = @py_LtE | 8 = @py_NotEq | 9 = @py_NotIn; case @py_dict_item.kind of 0 = @py_DictUnpacking | 1 = @py_KeyValuePair | 2 = @py_keyword; case @py_expr.kind of 0 = @py_Attribute | 1 = @py_BinaryExpr | 2 = @py_BoolExpr | 3 = @py_Bytes | 4 = @py_Call | 5 = @py_ClassExpr | 6 = @py_Compare | 7 = @py_Dict | 8 = @py_DictComp | 9 = @py_Ellipsis | 10 = @py_FunctionExpr | 11 = @py_GeneratorExp | 12 = @py_IfExp | 13 = @py_ImportExpr | 14 = @py_ImportMember | 15 = @py_Lambda | 16 = @py_List | 17 = @py_ListComp | 18 = @py_Guard | 19 = @py_Name | 20 = @py_Num | 21 = @py_Repr | 22 = @py_Set | 23 = @py_SetComp | 24 = @py_Slice | 25 = @py_Starred | 26 = @py_Str | 27 = @py_Subscript | 28 = @py_Tuple | 29 = @py_UnaryExpr | 30 = @py_Yield | 31 = @py_YieldFrom | 32 = @py_TemplateDottedNotation | 33 = @py_Filter | 34 = @py_PlaceHolder | 35 = @py_Await | 36 = @py_Fstring | 37 = @py_FormattedValue | 38 = @py_AssignExpr | 39 = @py_SpecialOperation; case @py_expr_context.kind of 0 = @py_AugLoad | 1 = @py_AugStore | 2 = @py_Del | 3 = @py_Load | 4 = @py_Param | 5 = @py_Store; case @py_operator.kind of 0 = @py_Add | 1 = @py_BitAnd | 2 = @py_BitOr | 3 = @py_BitXor | 4 = @py_Div | 5 = @py_FloorDiv | 6 = @py_LShift | 7 = @py_Mod | 8 = @py_Mult | 9 = @py_Pow | 10 = @py_RShift | 11 = @py_Sub | 12 = @py_MatMult; case @py_pattern.kind of 0 = @py_MatchAsPattern | 1 = @py_MatchOrPattern | 2 = @py_MatchLiteralPattern | 3 = @py_MatchCapturePattern | 4 = @py_MatchWildcardPattern | 5 = @py_MatchValuePattern | 6 = @py_MatchSequencePattern | 7 = @py_MatchStarPattern | 8 = @py_MatchMappingPattern | 9 = @py_MatchDoubleStarPattern | 10 = @py_MatchKeyValuePattern | 11 = @py_MatchClassPattern | 12 = @py_MatchKeywordPattern; case @py_stmt.kind of 0 = @py_Assert | 1 = @py_Assign | 2 = @py_AugAssign | 3 = @py_Break | 4 = @py_Continue | 5 = @py_Delete | 6 = @py_ExceptStmt | 7 = @py_Exec | 8 = @py_Expr_stmt | 9 = @py_For | 10 = @py_Global | 11 = @py_If | 12 = @py_Import | 13 = @py_ImportStar | 14 = @py_MatchStmt | 15 = @py_Case | 16 = @py_Nonlocal | 17 = @py_Pass | 18 = @py_Print | 19 = @py_Raise | 20 = @py_Return | 21 = @py_Try | 22 = @py_While | 23 = @py_With | 24 = @py_TemplateWrite | 25 = @py_AnnAssign; case @py_unaryop.kind of 0 = @py_Invert | 1 = @py_Not | 2 = @py_UAdd | 3 = @py_USub; @py_Bytes_or_Str = @py_Bytes | @py_Str; @py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; @py_arguments_parent = @py_FunctionExpr | @py_Lambda; @py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt; @py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; @py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; @py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; @py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_Tuple | @py_arguments | @py_comprehension; @py_expr_or_stmt = @py_expr | @py_stmt; @py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateWrite | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; @py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt; @py_parameter = @py_Name | @py_Tuple; @py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; @py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; @py_scope = @py_Class | @py_Function | @py_Module; @py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; @py_str_list_parent = @py_Global | @py_Nonlocal; @py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_keyword | @py_str_list; @py_variable_parent = @py_Name | @py_PlaceHolder; /* * End of auto-generated part */ /* Map relative names to absolute names for imports */ py_absolute_names(int module : @py_Module ref, varchar(1) relname : string ref, varchar(1) absname : string ref); py_exports(int id : @py_Module ref, varchar(1) name : string ref); /* Successor information */ py_successors(int predecessor : @py_flow_node ref, int successor : @py_flow_node ref); py_true_successors(int predecessor : @py_flow_node ref, int successor : @py_flow_node ref); py_exception_successors(int predecessor : @py_flow_node ref, int successor : @py_flow_node ref); py_false_successors(int predecessor : @py_flow_node ref, int successor : @py_flow_node ref); py_flow_bb_node(unique int flownode : @py_flow_node, int realnode : @py_ast_node ref, int basicblock : @py_flow_node ref, int index : int ref); py_scope_flow(int flow : @py_flow_node ref, int scope : @py_scope ref, int kind : int ref); py_idoms(unique int node : @py_flow_node ref, int immediate_dominator : @py_flow_node ref); py_ssa_phi(int phi : @py_ssa_var ref, int arg: @py_ssa_var ref); py_ssa_var(unique int id : @py_ssa_var, int var : @py_variable ref); py_ssa_use(int node: @py_flow_node ref, int var : @py_ssa_var ref); py_ssa_defn(unique int id : @py_ssa_var ref, int node: @py_flow_node ref); @py_base_var = @py_variable | @py_ssa_var; py_scopes(unique int node : @py_expr_or_stmt ref, int scope : @py_scope ref); py_scope_location(unique int id : @location ref, unique int scope : @py_scope ref); py_flags_versioned(varchar(1) name : string ref, varchar(1) value : string ref, varchar(1) version : string ref); py_syntax_error_versioned(unique int id : @location ref, varchar(1) message : string ref, varchar(1) version : string ref); py_comments(unique int id : @py_comment, varchar(1) text : string ref, unique int location : @location ref); /* Type information support */ py_cobjects(unique int obj : @py_cobject); py_cobjecttypes(unique int obj : @py_cobject ref, int typeof : @py_cobject ref); py_cobjectnames(unique int obj : @py_cobject ref, varchar(1) name : string ref); /* Kind should be 0 for introspection, > 0 from source, as follows: 1 from C extension source */ py_cobject_sources(int obj : @py_cobject ref, int kind : int ref); py_cmembers_versioned(int object : @py_cobject ref, varchar(1) name : string ref, int member : @py_cobject ref, varchar(1) version : string ref); py_citems(int object : @py_cobject ref, int index : int ref, int member : @py_cobject ref); ext_argtype(int funcid : @py_object ref, int arg : int ref, int typeid : @py_object ref); ext_rettype(int funcid : @py_object ref, int typeid : @py_object ref); ext_proptype(int propid : @py_object ref, int typeid : @py_object ref); ext_argreturn(int funcid : @py_object ref, int arg : int ref); py_special_objects(unique int obj : @py_cobject ref, unique varchar(1) name : string ref); py_decorated_object(int object : @py_object ref, int level: int ref); @py_object = @py_cobject | @py_flow_node; @py_source_element = @py_ast_node | @container; /* XML Files */ xmlEncoding (unique int id: @file ref, varchar(900) encoding: string ref); xmlDTDs (unique int id: @xmldtd, varchar(900) root: string ref, varchar(900) publicId: string ref, varchar(900) systemId: string ref, int fileid: @file ref); xmlElements (unique int id: @xmlelement, varchar(900) name: string ref, int parentid: @xmlparent ref, int idx: int ref, int fileid: @file ref); xmlAttrs (unique int id: @xmlattribute, int elementid: @xmlelement ref, varchar(900) name: string ref, varchar(3600) value: string ref, int idx: int ref, int fileid: @file ref); xmlNs (int id: @xmlnamespace, varchar(900) prefixName: string ref, varchar(900) URI: string ref, int fileid: @file ref); xmlHasNs (int elementId: @xmlnamespaceable ref, int nsId: @xmlnamespace ref, int fileid: @file ref); xmlComments (unique int id: @xmlcomment, varchar(3600) text: string ref, int parentid: @xmlparent ref, int fileid: @file ref); xmlChars (unique int id: @xmlcharacters, varchar(3600) text: string ref, int parentid: @xmlparent ref, int idx: int ref, int isCDATA: int ref, int fileid: @file ref); @xmlparent = @file | @xmlelement; @xmlnamespaceable = @xmlelement | @xmlattribute; xmllocations(int xmlElement: @xmllocatable ref, int location: @location_default ref); @xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace;