Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
codepropertygraph.0.9.330.source-code.cpg.json Maven / Gradle / Ivy
{
"dispatchTypes": [
{
"name": "STATIC_DISPATCH",
"comment": "For statically dispatched calls the call target is known before program execution",
"id": 1
},
{
"name": "DYNAMIC_DISPATCH",
"comment": "For dynamically dispatched calls the target is determined during runtime",
"id": 2
}
],
"edgeKeys": [
{
"name": "ALIAS",
"valueType": "boolean",
"comment": "Defines whether a PROPAGATE edge creates an alias",
"cardinality": "one",
"id": 1
},
{
"name": "INDEX",
"valueType": "int",
"comment": "Index of referenced CONTAINED node (0 based) - used together with cardinality=list",
"cardinality": "zeroOrOne",
"id": 8
},
{
"name": "LOCAL_NAME",
"valueType": "string",
"comment": "Local name of referenced CONTAINED node",
"cardinality": "zeroOrOne",
"id": 6
}
],
"nodeTypes": [
{
"is": [
"AST_NODE"
],
"id": 5,
"name": "ANNOTATION",
"comment": "A method annotation",
"keys": [
"CODE",
"NAME",
"FULL_NAME",
"ORDER"
],
"outEdges": [
{
"inNodes": [
"ANNOTATION_PARAMETER_ASSIGN"
],
"edgeName": "AST"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"is": [
"EXPRESSION"
],
"id": 49,
"name": "ANNOTATION_LITERAL",
"comment": "A literal value assigned to an ANNOTATION_PARAMETER",
"keys": [
"CODE",
"NAME",
"ORDER",
"COLUMN_NUMBER",
"LINE_NUMBER"
],
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"is": [
"AST_NODE"
],
"id": 7,
"name": "ANNOTATION_PARAMETER",
"comment": "Formal annotation parameter",
"keys": [
"CODE",
"ORDER"
],
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"is": [
"AST_NODE"
],
"id": 6,
"name": "ANNOTATION_PARAMETER_ASSIGN",
"comment": "Assignment of annotation argument to annotation parameter",
"keys": [
"CODE",
"ORDER"
],
"outEdges": [
{
"inNodes": [
"ANNOTATION_PARAMETER",
"ARRAY_INITIALIZER",
"ANNOTATION_LITERAL",
"ANNOTATION"
],
"edgeName": "AST"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"outEdges": [
{
"inNodes": [
"LITERAL"
],
"edgeName": "AST"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 14,
"name": "ARRAY_INITIALIZER",
"is": [
"AST_NODE",
"EXPRESSION"
],
"keys": [
"CODE",
"COLUMN_NUMBER",
"LINE_NUMBER",
"ORDER"
],
"comment": "Initialization construct for arrays"
},
{
"id": 31,
"name": "BLOCK",
"is": [
"EXPRESSION"
],
"comment": "A structuring block in the AST",
"keys": [
"CODE",
"ORDER",
"ARGUMENT_INDEX",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"BLOCK",
"LOCAL",
"UNKNOWN",
"CONTROL_STRUCTURE"
],
"edgeName": "AST"
},
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"BLOCK",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"CALL",
"RETURN",
"BLOCK"
],
"edgeName": "REACHING_DEF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"id": 15,
"name": "CALL",
"is": [
"EXPRESSION",
"CALL_REPR"
],
"comment": "A (method)-call",
"keys": [
"CODE",
"NAME",
"ORDER",
"ARGUMENT_INDEX",
"DISPATCH_TYPE",
"SIGNATURE",
"TYPE_FULL_NAME",
"METHOD_INST_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"BLOCK",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"BLOCK",
"CONTROL_STRUCTURE"
],
"edgeName": "AST"
},
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"BLOCK",
"UNKNOWN"
],
"edgeName": "RECEIVER"
},
{
"inNodes": [
"MEMBER"
],
"edgeName": "REF"
},
{
"inNodes": [
"METHOD_INST"
],
"edgeName": "CALL"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"CALL",
"RETURN"
],
"edgeName": "REACHING_DEF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"name": "CLOSURE_BINDING",
"outEdges": [
{
"inNodes": [
"LOCAL",
"METHOD_PARAMETER_IN"
],
"edgeName": "REF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "Represents the binding of a LOCAL or METHOD_PARAMETER_IN into the closure of a method",
"keys": [
"CLOSURE_BINDING_ID",
"EVALUATION_STRATEGY",
"CLOSURE_ORIGINAL_NAME"
],
"id": 334
},
{
"name": "COMMENT",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "A comment",
"keys": [
"LINE_NUMBER",
"CODE"
],
"id": 511
},
{
"name": "CONFIG_FILE",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "Configuration file contents. Might be in use by a framework",
"keys": [
"NAME",
"CONTENT"
],
"id": 50
},
{
"outEdges": [
{
"inNodes": [
"LITERAL",
"MODIFIER",
"ARRAY_INITIALIZER",
"CALL",
"LOCAL",
"IDENTIFIER",
"RETURN",
"BLOCK",
"METHOD_INST",
"UNKNOWN",
"CONTROL_STRUCTURE"
],
"edgeName": "AST"
},
{
"inNodes": [
"LITERAL",
"CALL",
"IDENTIFIER",
"RETURN",
"BLOCK",
"METHOD_REF",
"CONTROL_STRUCTURE",
"UNKNOWN",
"ARRAY_INITIALIZER"
],
"edgeName": "CONDITION"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 339,
"name": "CONTROL_STRUCTURE",
"is": [
"EXPRESSION"
],
"keys": [
"CODE",
"COLUMN_NUMBER",
"LINE_NUMBER",
"ORDER",
"PARSER_TYPE_NAME",
"ARGUMENT_INDEX"
],
"comment": "A control structure such as if, while, or for"
},
{
"name": "DEPENDENCY",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "This node represents a dependency",
"keys": [
"VERSION",
"NAME",
"DEPENDENCY_GROUP_ID"
],
"id": 35
},
{
"id": 38,
"name": "FILE",
"is": [
"AST_NODE"
],
"comment": "Node representing a source file. Often also the AST root",
"keys": [
"NAME",
"ORDER"
],
"outEdges": [
{
"inNodes": [
"NAMESPACE_BLOCK",
"COMMENT"
],
"edgeName": "AST"
},
{
"inNodes": [
"TYPE_DECL",
"METHOD"
],
"edgeName": "CONTAINS"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"id": 27,
"name": "IDENTIFIER",
"is": [
"EXPRESSION",
"LOCAL_LIKE"
],
"comment": "An arbitrary identifier/reference",
"keys": [
"CODE",
"NAME",
"ORDER",
"ARGUMENT_INDEX",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER"
],
"outEdges": [
{
"inNodes": [
"LOCAL",
"METHOD_PARAMETER_IN"
],
"edgeName": "REF"
},
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"BLOCK",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 307,
"name": "IMPLICIT_CALL",
"is": [
"CALL_REPR",
"CFG_NODE",
"TRACKING_POINT"
],
"keys": [
"CODE",
"NAME",
"SIGNATURE",
"LINE_NUMBER",
"COLUMN_NUMBER",
"ORDER"
],
"comment": "An implicit call site hidden in a method indicated by METHOD_MAP policy entries"
},
{
"id": 8,
"name": "LITERAL",
"is": [
"EXPRESSION"
],
"comment": "Literal/Constant",
"keys": [
"CODE",
"ORDER",
"ARGUMENT_INDEX",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"BLOCK",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"outEdges": [
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"CLOSURE_BINDING"
],
"edgeName": "CAPTURED_BY"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 23,
"name": "LOCAL",
"is": [
"DECLARATION",
"LOCAL_LIKE",
"AST_NODE"
],
"keys": [
"CODE",
"NAME",
"CLOSURE_BINDING_ID",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER",
"ORDER"
],
"comment": "A local variable"
},
{
"id": 9,
"name": "MEMBER",
"is": [
"DECLARATION",
"AST_NODE"
],
"comment": "Member of a class struct or union",
"keys": [
"CODE",
"NAME",
"TYPE_FULL_NAME",
"ORDER"
],
"outEdges": [
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"ANNOTATION"
],
"edgeName": "AST"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"name": "META_DATA",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "Node to save meta data about the graph on its properties. Exactly one node of this type per graph",
"keys": [
"LANGUAGE",
"VERSION"
],
"id": 39
},
{
"outEdges": [
{
"inNodes": [
"METHOD_RETURN",
"METHOD_PARAMETER_IN",
"MODIFIER",
"BLOCK",
"TYPE_PARAMETER",
"TYPE_DECL",
"METHOD",
"METHOD_PARAMETER_OUT",
"IMPLICIT_CALL",
"ANNOTATION"
],
"edgeName": "AST"
},
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"BLOCK",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"CALL",
"RETURN"
],
"edgeName": "REACHING_DEF"
},
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"RETURN",
"METHOD_REF",
"BLOCK",
"UNKNOWN"
],
"edgeName": "CONTAINS"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 1,
"name": "METHOD",
"is": [
"DECLARATION",
"CFG_NODE",
"AST_NODE"
],
"keys": [
"NAME",
"FULL_NAME",
"IS_EXTERNAL",
"SIGNATURE",
"AST_PARENT_TYPE",
"AST_PARENT_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER",
"ORDER",
"BINARY_SIGNATURE"
],
"comment": "A method/function/procedure"
},
{
"outEdges": [
{
"inNodes": [
"TYPE_ARGUMENT"
],
"edgeName": "AST"
},
{
"inNodes": [
"METHOD"
],
"edgeName": "REF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 32,
"name": "METHOD_INST",
"is": [
"AST_NODE"
],
"keys": [
"NAME",
"FULL_NAME",
"SIGNATURE",
"METHOD_FULL_NAME",
"ORDER"
],
"comment": "A method instance which always has to reference a method and may have type argument children if the referred to method is a template"
},
{
"id": 34,
"name": "METHOD_PARAMETER_IN",
"is": [
"DECLARATION",
"LOCAL_LIKE",
"TRACKING_POINT",
"AST_NODE"
],
"comment": "This node represents a formal parameter going towards the callee side",
"keys": [
"CODE",
"ORDER",
"NAME",
"EVALUATION_STRATEGY",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER"
],
"outEdges": [
{
"inNodes": [
"METHOD_PARAMETER_OUT",
"METHOD_RETURN"
],
"edgeName": "PROPAGATE"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"CALL",
"RETURN"
],
"edgeName": "REACHING_DEF"
},
{
"inNodes": [
"METHOD_PARAMETER_OUT"
],
"edgeName": "PARAMETER_LINK"
},
{
"inNodes": [
"ANNOTATION"
],
"edgeName": "AST"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"outEdges": [
{
"inNodes": [
"TAG"
],
"edgeName": "TAGGED_BY"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 33,
"name": "METHOD_PARAMETER_OUT",
"is": [
"DECLARATION",
"TRACKING_POINT",
"AST_NODE"
],
"keys": [
"CODE",
"ORDER",
"NAME",
"EVALUATION_STRATEGY",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER"
],
"comment": "This node represents a formal parameter going towards the caller side"
},
{
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"BLOCK",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"CLOSURE_BINDING"
],
"edgeName": "CAPTURE"
},
{
"inNodes": [
"METHOD_INST"
],
"edgeName": "REF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 333,
"name": "METHOD_REF",
"is": [
"EXPRESSION"
],
"keys": [
"CODE",
"ORDER",
"ARGUMENT_INDEX",
"METHOD_INST_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER"
],
"comment": "Reference to a method instance"
},
{
"outEdges": [
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 3,
"name": "METHOD_RETURN",
"is": [
"CFG_NODE",
"TRACKING_POINT"
],
"keys": [
"CODE",
"EVALUATION_STRATEGY",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER",
"ORDER"
],
"comment": "A formal method return"
},
{
"is": [
"AST_NODE"
],
"id": 300,
"name": "MODIFIER",
"comment": "A modifier, e.g., static, public, private",
"keys": [
"MODIFIER_TYPE",
"ORDER"
],
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 40,
"name": "NAMESPACE",
"is": [
"AST_NODE"
],
"keys": [
"NAME",
"ORDER"
],
"comment": "This node represents a namespace as a whole whereas the NAMESPACE_BLOCK is used for each grouping occurrence of a namespace in code. Single representing NAMESPACE node is required for easier navigation in the query language"
},
{
"outEdges": [
{
"inNodes": [
"TYPE_DECL",
"METHOD"
],
"edgeName": "AST"
},
{
"inNodes": [
"NAMESPACE"
],
"edgeName": "REF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"id": 41,
"name": "NAMESPACE_BLOCK",
"is": [
"AST_NODE"
],
"keys": [
"NAME",
"FULL_NAME",
"ORDER"
],
"comment": "A reference to a namespace"
},
{
"id": 30,
"name": "RETURN",
"is": [
"EXPRESSION"
],
"comment": "A return instruction",
"keys": [
"LINE_NUMBER",
"COLUMN_NUMBER",
"ORDER",
"ARGUMENT_INDEX",
"CODE"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"BLOCK",
"UNKNOWN",
"CONTROL_STRUCTURE"
],
"edgeName": "AST"
},
{
"inNodes": [
"METHOD_RETURN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"METHOD_RETURN"
],
"edgeName": "REACHING_DEF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"name": "TAG",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "A string tag",
"keys": [
"NAME",
"VALUE"
],
"id": 24
},
{
"id": 45,
"name": "TYPE",
"outEdges": [
{
"inNodes": [
"TYPE_ARGUMENT"
],
"edgeName": "AST"
},
{
"inNodes": [
"TYPE_DECL"
],
"edgeName": "REF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"keys": [
"NAME",
"FULL_NAME",
"TYPE_DECL_FULL_NAME"
],
"comment": "A type which always has to reference a type declaration and may have type argument children if the referred to type declaration is a template"
},
{
"is": [
"AST_NODE"
],
"id": 48,
"name": "TYPE_ARGUMENT",
"comment": "Argument for a TYPE_PARAMETER that belongs to a TYPE or METHOD_INST. It binds another TYPE to a TYPE_PARAMETER",
"keys": [
"ORDER"
],
"outEdges": [
{
"inNodes": [
"TYPE"
],
"edgeName": "REF"
},
{
"inNodes": [
"TYPE_PARAMETER"
],
"edgeName": "BINDS_TO"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"id": 46,
"name": "TYPE_DECL",
"is": [
"AST_NODE"
],
"comment": "A type declaration",
"keys": [
"NAME",
"FULL_NAME",
"IS_EXTERNAL",
"INHERITS_FROM_TYPE_FULL_NAME",
"AST_PARENT_TYPE",
"AST_PARENT_FULL_NAME",
"ALIAS_TYPE_FULL_NAME",
"ORDER"
],
"outEdges": [
{
"inNodes": [
"TYPE_PARAMETER",
"MEMBER",
"MODIFIER",
"TYPE_DECL",
"METHOD",
"ANNOTATION"
],
"edgeName": "AST"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "INHERITS_FROM"
},
{
"inNodes": [
"METHOD"
],
"edgeName": "VTABLE"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "ALIAS_OF"
},
{
"inNodes": [
"METHOD"
],
"edgeName": "CONTAINS"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"is": [
"AST_NODE"
],
"id": 47,
"name": "TYPE_PARAMETER",
"comment": "Type parameter of TYPE_DECL or METHOD",
"keys": [
"NAME",
"ORDER"
],
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"id": 44,
"name": "UNKNOWN",
"is": [
"EXPRESSION"
],
"comment": "A language-specific node",
"keys": [
"CODE",
"PARSER_TYPE_NAME",
"ORDER",
"ARGUMENT_INDEX",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"COLUMN_NUMBER"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"RETURN",
"METHOD_REF",
"BLOCK",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"LITERAL",
"MEMBER",
"MODIFIER",
"ARRAY_INITIALIZER",
"CALL",
"LOCAL",
"IDENTIFIER",
"RETURN",
"BLOCK",
"METHOD_INST",
"UNKNOWN",
"CONTROL_STRUCTURE"
],
"edgeName": "AST"
},
{
"inNodes": [
"CALL",
"RETURN"
],
"edgeName": "REACHING_DEF"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
]
},
{
"name": "PACKAGE_PREFIX",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "This node records what package prefix is most common to all analysed classes in the CPG",
"keys": [
"VALUE"
],
"id": 36
}
],
"modifierTypes": [
{
"name": "STATIC",
"comment": "The static modifier",
"id": 1
},
{
"name": "PUBLIC",
"comment": "The public modifier",
"id": 2
},
{
"name": "PROTECTED",
"comment": "The protected modifier",
"id": 3
},
{
"name": "PRIVATE",
"comment": "The private modifier",
"id": 4
},
{
"name": "ABSTRACT",
"comment": "The abstract modifier",
"id": 5
},
{
"name": "NATIVE",
"comment": "The native modifier",
"id": 6
},
{
"name": "CONSTRUCTOR",
"comment": "The constructor modifier",
"id": 7
},
{
"name": "VIRTUAL",
"comment": "The virtual modifier",
"id": 8
}
],
"frameworks": [],
"operatorNames": [
{
"name": ".addition",
"operator": "addition"
},
{
"name": ".subtraction",
"operator": "subtraction"
},
{
"name": ".multiplication",
"operator": "multiplication"
},
{
"name": ".division",
"operator": "division"
},
{
"name": ".exponentiation",
"operator": "exponentiation"
},
{
"name": ".modulo",
"operator": "modulo"
},
{
"name": ".shiftLeft",
"operator": "shiftLeft"
},
{
"name": ".logicalShiftRight",
"operator": "logicalShiftRight",
"comment": "Shift right padding with zeros"
},
{
"name": ".arithmeticShiftRight",
"operator": "arithmeticShiftRight",
"comment": "Shift right preserving the sign"
},
{
"name": ".not",
"operator": "not"
},
{
"name": ".and",
"operator": "and"
},
{
"name": ".or",
"operator": "or"
},
{
"name": ".xor",
"operator": "xor"
},
{
"name": ".assignmentPlus",
"operator": "assignmentPlus"
},
{
"name": ".assignmentMinus",
"operator": "assignmentMinus"
},
{
"name": ".assignmentMultiplication",
"operator": "assignmentMultiplication"
},
{
"name": ".assignmentDivision",
"operator": "assignmentDivision"
},
{
"name": ".assignmentExponentiation",
"operator": "assignmentExponentiation"
},
{
"name": ".assignmentModulo",
"operator": "assignmentModulo"
},
{
"name": ".assignmentShiftLeft",
"operator": "assignmentShiftLeft"
},
{
"name": ".assignmentLogicalShiftRight",
"operator": "assignmentLogicalShiftRight"
},
{
"name": ".assignmentArithmeticShiftRight",
"operator": "assignmentArithmeticShiftRight"
},
{
"name": ".assignmentAnd",
"operator": "assignmentAnd"
},
{
"name": ".assignmentOr",
"operator": "assignmentOr"
},
{
"name": ".assignmentXor",
"operator": "assignmentXor"
},
{
"name": ".assignment",
"operator": "assignment"
},
{
"name": ".minus",
"operator": "minus",
"comment": "E.g. `a = -b`"
},
{
"name": ".plus",
"operator": "plus",
"comment": "E.g. `a = +b`"
},
{
"name": ".preIncrement",
"operator": "preIncrement"
},
{
"name": ".preDecrement",
"operator": "preDecrement"
},
{
"name": ".postIncrement",
"operator": "postIncrement"
},
{
"name": ".postDecrement",
"operator": "postDecrement"
},
{
"name": ".logicalNot",
"operator": "logicalNot"
},
{
"name": ".logicalOr",
"operator": "logicalOr"
},
{
"name": ".logicalAnd",
"operator": "logicalAnd"
},
{
"name": ".equals",
"operator": "equals"
},
{
"name": ".notEquals",
"operator": "notEquals"
},
{
"name": ".greaterThan",
"operator": "greaterThan"
},
{
"name": ".lessThan",
"operator": "lessThan"
},
{
"name": ".greaterEqualsThan",
"operator": "greaterEqualsThan"
},
{
"name": ".lessEqualsThan",
"operator": "lessEqualsThan"
},
{
"name": ".instanceOf",
"operator": "instanceOf"
},
{
"name": ".memberAccess",
"operator": "memberAccess",
"comment": "E.g. in C: `a.b` but not! in Java"
},
{
"name": ".indirectMemberAccess",
"operator": "indirectMemberAccess",
"comment": "E.g. in C: `a->b` and `a.b` in Java"
},
{
"name": ".computedMemberAccess",
"operator": "computedMemberAccess",
"comment": "E.g. in C: `a[b]` but not! in Java"
},
{
"name": ".indirectComputedMemberAccess",
"operator": "indirectComputedMemberAccess",
"comment": "E.g. in C++: `a->*b` and a[b] in Java"
},
{
"name": ".indirection",
"operator": "indirection",
"comment": "E.g. in C: `*a`"
},
{
"name": ".delete",
"operator": "delete",
"comment": "Deletes a property from a namespace. E.g. `a=3; delete a; a == undefined;"
},
{
"name": ".conditional",
"operator": "conditional",
"comment": "E.g. `a ? consequent : alternate`. In future probably also used for if statements"
},
{
"name": ".cast",
"operator": "cast",
"comment": "Type casts of any sort"
},
{
"name": ".compare",
"operator": "compare",
"comment": "Comparison between two arguments with the results: 0 == equal, negative == left < right, positive == left > right"
},
{
"name": ".addressOf",
"operator": "addressOf",
"comment": "Returns the address of a given object"
},
{
"name": ".sizeOf",
"operator": "sizeOf",
"comment": "Returns the size of a given object"
}
],
"languages": [
{
"name": "JAVA",
"comment": "",
"id": 1
},
{
"name": "JAVASCRIPT",
"comment": "",
"id": 2
},
{
"name": "GOLANG",
"comment": "",
"id": 3
},
{
"name": "CSHARP",
"comment": "",
"id": 4
},
{
"name": "C",
"comment": "",
"id": 5
}
],
"edgeTypes": [
{
"name": "ALIAS_OF",
"comment": "Alias relation between types",
"keys": [],
"id": 138
},
{
"name": "AST",
"comment": "Syntax tree edge",
"keys": [],
"id": 3
},
{
"name": "BINDS_TO",
"comment": "Type argument binding to a type parameter",
"keys": [],
"id": 22
},
{
"name": "CALL",
"comment": "Referencing to e.g. a LOCAL",
"keys": [],
"id": 6
},
{
"name": "CAPTURE",
"comment": "Represents the capturing of a variable into a closure",
"keys": [],
"id": 40
},
{
"name": "CAPTURED_BY",
"comment": "Connection between a captured LOCAL and the corresponding CLOSURE_BINDING",
"keys": [],
"id": 41
},
{
"name": "CFG",
"comment": "Control flow edge",
"keys": [],
"id": 19
},
{
"name": "CONDITION",
"comment": "Edge from control structure node to the expression that holds the condition",
"keys": [],
"id": 56
},
{
"name": "CONTAINS",
"comment": "Shortcut over multiple AST edges",
"keys": [],
"id": 28
},
{
"name": "CONTAINS_NODE",
"comment": "Membership relation for a compound object",
"keys": [
"LOCAL_NAME",
"INDEX"
],
"id": 9
},
{
"name": "EVAL_TYPE",
"comment": "Link to evaluation type",
"keys": [],
"id": 21
},
{
"name": "INHERITS_FROM",
"comment": "Inheritance relation between types",
"keys": [],
"id": 23
},
{
"name": "PARAMETER_LINK",
"comment": "Links together corresponding METHOD_PARAMETER_IN and METHOD_PARAMETER_OUT nodes",
"keys": [],
"id": 12
},
{
"name": "PROPAGATE",
"comment": "Encodes propagation of data from on node to another",
"keys": [
"ALIAS"
],
"id": 1
},
{
"name": "REACHING_DEF",
"comment": "Reaching definition edge",
"keys": [],
"id": 137
},
{
"name": "RECEIVER",
"comment": "The receiver of a method call which is either an object or a pointer",
"keys": [],
"id": 55
},
{
"name": "REF",
"comment": "A reference to e.g. a LOCAL",
"keys": [],
"id": 10
},
{
"name": "TAGGED_BY",
"comment": "Edges from nodes to tags",
"keys": [],
"id": 11
},
{
"name": "VTABLE",
"comment": "Indicates that a method is part of the vtable of a certain type declaration",
"keys": [],
"id": 30
}
],
"nodeBaseTraits": [
{
"name": "DECLARATION",
"hasKeys": [
"NAME"
],
"comment": ""
},
{
"name": "EXPRESSION",
"extends": [
"TRACKING_POINT",
"CFG_NODE",
"AST_NODE"
],
"hasKeys": [
"CODE",
"ORDER"
],
"comment": "Expression as a specialisation of tracking point"
},
{
"name": "LOCAL_LIKE",
"hasKeys": [
"NAME"
],
"comment": "Formal input parameters, locals, and identifiers"
},
{
"name": "CFG_NODE",
"extends": [
"WITHIN_METHOD",
"AST_NODE"
],
"hasKeys": [
"LINE_NUMBER",
"COLUMN_NUMBER"
],
"comment": "Any node that can occur as part of a control flow graph"
},
{
"name": "TRACKING_POINT",
"extends": [
"WITHIN_METHOD"
],
"hasKeys": [],
"comment": "Any node that can occur in a data flow"
},
{
"name": "WITHIN_METHOD",
"hasKeys": [],
"comment": "Any node that can exist in a method"
},
{
"name": "AST_NODE",
"hasKeys": [
"ORDER"
],
"comment": "Any node that can exist in an abstract syntax tree."
},
{
"name": "CALL_REPR",
"extends": [],
"hasKeys": [
"CODE",
"NAME",
"SIGNATURE"
],
"comment": "Call representation"
}
],
"evaluationStrategies": [
{
"name": "BY_REFERENCE",
"comment": "A parameter or return of a function is passed by reference which means an address is used behind the scenes",
"id": 1
},
{
"name": "BY_SHARING",
"comment": "Only applicable to object parameter or return values. The pointer to the object is passed by value but the object itself is not copied and changes to it are thus propagated out of the method context",
"id": 2
},
{
"name": "BY_VALUE",
"comment": "A parameter or return of a function passed by value which means a flat copy is used",
"id": 3
}
],
"nodeKeys": [
{
"name": "ALIAS_TYPE_FULL_NAME",
"valueType": "string",
"comment": "Type full name of which a TYPE_DECL is an alias of",
"cardinality": "zeroOrOne",
"id": 158
},
{
"name": "ARGUMENT_INDEX",
"valueType": "int",
"comment": "The index of a call argument. This is used for the association between arguments and parameters. This property is different from ORDER for named arguments because of the required reordering to align arguments with parameters",
"cardinality": "one",
"id": 40
},
{
"name": "AST_PARENT_FULL_NAME",
"valueType": "string",
"comment": "The FULL_NAME of a the AST parent of an entity",
"cardinality": "one",
"id": 57
},
{
"name": "AST_PARENT_TYPE",
"valueType": "string",
"comment": "The type of the AST parent. Since this is only used in some parts of the graph the list does not include all possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK",
"cardinality": "one",
"id": 56
},
{
"name": "BINARY_SIGNATURE",
"valueType": "string",
"comment": "Binary type signature",
"cardinality": "zeroOrOne",
"id": 14
},
{
"name": "CLOSURE_BINDING_ID",
"valueType": "string",
"comment": "Identifier which uniquely describes a CLOSURE_BINDING. This property is used to match captured LOCAL nodes with the corresponding CLOSURE_BINDING nodes",
"cardinality": "zeroOrOne",
"id": 50
},
{
"name": "CLOSURE_ORIGINAL_NAME",
"valueType": "string",
"comment": "The original name of the (potentially mangled) captured variable",
"cardinality": "zeroOrOne",
"id": 159
},
{
"name": "CODE",
"valueType": "string",
"comment": "The code snippet the node represents",
"cardinality": "one",
"id": 21
},
{
"name": "COLUMN_NUMBER",
"valueType": "int",
"comment": "Column where the code starts",
"cardinality": "zeroOrOne",
"id": 11
},
{
"name": "CONTENT",
"valueType": "string",
"comment": "Content of CONFIG_FILE node",
"cardinality": "one",
"id": 20
},
{
"name": "DEPENDENCY_GROUP_ID",
"valueType": "string",
"comment": "The group ID for a dependency",
"cardinality": "zeroOrOne",
"id": 58
},
{
"name": "DISPATCH_TYPE",
"valueType": "string",
"comment": "The dispatch type of a call, which is either static or dynamic. See dispatchTypes",
"cardinality": "one",
"id": 25
},
{
"name": "EVALUATION_STRATEGY",
"valueType": "string",
"comment": "Evaluation strategy for function parameters and return values. One of the values in \"evaluationStrategies\"",
"cardinality": "one",
"id": 15
},
{
"name": "FULL_NAME",
"valueType": "string",
"comment": "Full name of an element, e.g., the class name along, including its package",
"cardinality": "one",
"id": 6
},
{
"name": "INHERITS_FROM_TYPE_FULL_NAME",
"valueType": "string",
"comment": "The static types a TYPE_DECL inherits from. This property is matched against the FULL_NAME of TYPE nodes and thus it is required to have at least one TYPE node for each TYPE_FULL_NAME",
"cardinality": "list",
"id": 53
},
{
"name": "IS_EXTERNAL",
"valueType": "boolean",
"comment": "Indicates that the construct is external, that is, it is referenced but not defined in the code",
"cardinality": "one",
"id": 7
},
{
"name": "LANGUAGE",
"valueType": "string",
"comment": "The programming language this graph originates from",
"cardinality": "one",
"id": 19
},
{
"name": "LINE_NUMBER",
"valueType": "int",
"comment": "Line where the code starts",
"cardinality": "zeroOrOne",
"id": 2
},
{
"name": "METHOD_FULL_NAME",
"valueType": "string",
"comment": "The FULL_NAME of a method. Used to link METHOD_INST and METHOD nodes. It is required to have exactly one METHOD node for each METHOD_FULL_NAME",
"cardinality": "one",
"id": 54
},
{
"name": "METHOD_INST_FULL_NAME",
"valueType": "string",
"comment": "The FULL_NAME of a method instance. Used to link CALL and METHOD_REF nodes to METHOD_INST nodes. There needs to be at least one METHOD_INST node for each METHOD_INST_FULL_NAME",
"cardinality": "one",
"id": 55
},
{
"name": "MODIFIER_TYPE",
"valueType": "string",
"comment": "Indicates the modifier which is represented by a MODIFIER node. See modifierTypes",
"cardinality": "one",
"id": 26
},
{
"name": "NAME",
"valueType": "string",
"comment": "Name of represented object, e.g., method name",
"cardinality": "one",
"id": 5
},
{
"name": "ORDER",
"valueType": "int",
"comment": "General ordering property. E.g. used to express the ordering of children in the AST",
"cardinality": "one",
"id": 4
},
{
"name": "PARSER_TYPE_NAME",
"valueType": "string",
"comment": "Type name emitted by parser, only present for logical type UNKNOWN",
"cardinality": "one",
"id": 3
},
{
"name": "SIGNATURE",
"valueType": "string",
"comment": "Method signature",
"cardinality": "one",
"id": 22
},
{
"name": "TYPE_DECL_FULL_NAME",
"valueType": "string",
"comment": "The static type decl of a TYPE. This property is matched against the FULL_NAME of TYPE_DECL nodes. It is required to have exactly one TYPE_DECL for each different TYPE_DECL_FULL_NAME",
"cardinality": "one",
"id": 52
},
{
"name": "TYPE_FULL_NAME",
"valueType": "string",
"comment": "The static type of an entity. E.g. expressions, local, parameters etc. This property is matched against the FULL_NAME of TYPE nodes and thus it is required to have at least one TYPE node for each TYPE_FULL_NAME",
"cardinality": "one",
"id": 51
},
{
"name": "VALUE",
"valueType": "string",
"comment": "Tag value",
"cardinality": "one",
"id": 8
},
{
"name": "VERSION",
"valueType": "string",
"comment": "A version, given as a string",
"cardinality": "one",
"id": 13
}
]
}