All Downloads are FREE. Search and download functionalities are using the official Maven repository.

codepropertygraph.0.9.68.source-code.cpg.json Maven / Gradle / Ivy

{
"edgeKeys": [
{
"cardinality": "zeroOrOne",
"id": 7,
"valueType": "boolean",
"comment": "The condition result under which a CFG edge is followed.",
"name": "CONDITION"
},
{
"cardinality": "zeroOrOne",
"id": 8,
"valueType": "int",
"comment": "index of referenced CONTAINED node (0 based) - used together with cardinality=list",
"name": "INDEX"
},
{
"cardinality": "zeroOrOne",
"id": 6,
"valueType": "string",
"comment": "localName of referenced CONTAINED node",
"name": "LOCAL_NAME"
}
],
"nodeTypes": [
{
"id": 14,
"keys": [],
"comment": "Initialization contruct for arrays.",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "ARRAY_INITIALIZER"
},
{
"id": 31,
"keys": [
"ORDER",
"ARGUMENT_INDEX",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"comment": "A structuring block in the AST.",
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"LOCAL",
"UNKNOWN"
],
"edgeName": "AST"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "BLOCK"
},
{
"id": 15,
"keys": [
"CODE",
"NAME",
"ORDER",
"ARGUMENT_INDEX",
"DISPATCH_TYPE",
"SIGNATURE",
"TYPE_FULL_NAME",
"METHOD_INST_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF"
],
"edgeName": "AST"
},
{
"inNodes": [
"MEMBER"
],
"edgeName": "REF"
},
{
"inNodes": [
"METHOD_INST"
],
"edgeName": "CALL"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"EXPRESSION"
],
"comment": "A (method)-call",
"name": "CALL"
},
{
"id": 334,
"keys": [
"CLOSURE_BINDING_ID",
"EVALUATION_STRATEGY"
],
"comment": "Represents the binding of a LOCAL or METHOD_PARAMETER_IN into the closure of a method.",
"outEdges": [
{
"inNodes": [
"LOCAL",
"METHOD_PARAMETER_IN"
],
"edgeName": "REF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "CLOSURE_BINDING"
},
{
"id": 38,
"keys": [
"NAME"
],
"comment": "Node presenting a source file. Often also the AST root.",
"outEdges": [
{
"inNodes": [
"NAMESPACE_BLOCK"
],
"edgeName": "AST"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "FILE"
},
{
"id": 27,
"keys": [
"CODE",
"NAME",
"ORDER",
"ARGUMENT_INDEX",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"LOCAL"
],
"edgeName": "REF"
},
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"DATA_FLOW_OBJECT",
"EXPRESSION",
"LOCAL_LIKE"
],
"comment": "An arbitrary identifier/reference.",
"name": "IDENTIFIER"
},
{
"id": 8,
"keys": [
"CODE",
"NAME",
"ORDER",
"ARGUMENT_INDEX",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"DECLARATION",
"DATA_FLOW_OBJECT",
"EXPRESSION"
],
"comment": "Literal/Constant",
"name": "LITERAL"
},
{
"id": 23,
"keys": [
"CODE",
"NAME",
"CLOSURE_BINDING_ID",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"DECLARATION",
"LOCAL_LIKE"
],
"comment": "A local variable",
"name": "LOCAL"
},
{
"id": 9,
"keys": [
"CODE",
"NAME",
"TYPE_FULL_NAME"
],
"outEdges": [
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"DECLARATION"
],
"comment": "Member of a class struct or union",
"name": "MEMBER"
},
{
"id": 39,
"keys": [
"LANGUAGE",
"VERSION"
],
"comment": "Node to save meta data about the graph on its properties. Exactly one node of this type per graph.",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "META_DATA"
},
{
"id": 1,
"keys": [
"NAME",
"FULL_NAME",
"SIGNATURE",
"AST_PARENT_TYPE",
"AST_PARENT_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"METHOD_RETURN",
"METHOD_PARAMETER_IN",
"MODIFIER",
"BLOCK",
"TYPE_PARAMETER",
"TYPE_DECL",
"METHOD"
],
"edgeName": "AST"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"DECLARATION"
],
"comment": "A method/function/procedure",
"name": "METHOD"
},
{
"id": 32,
"keys": [
"NAME",
"FULL_NAME",
"SIGNATURE",
"METHOD_FULL_NAME"
],
"outEdges": [
{
"inNodes": [
"TYPE_ARGUMENT"
],
"edgeName": "AST"
},
{
"inNodes": [
"METHOD"
],
"edgeName": "REF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "A method instance which always has to reference a method and may have type argument children if the refered method is a template.",
"name": "METHOD_INST"
},
{
"id": 34,
"keys": [
"CODE",
"ORDER",
"NAME",
"EVALUATION_STRATEGY",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"DECLARATION",
"DATA_FLOW_OBJECT",
"LOCAL_LIKE"
],
"comment": "This node represents a formal parameter going towards the callee side.",
"name": "METHOD_PARAMETER_IN"
},
{
"id": 33,
"keys": [
"CODE",
"ORDER",
"NAME",
"EVALUATION_STRATEGY",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"UNKNOWN"
],
"edgeName": "CALL_ARG_OUT"
},
{
"inNodes": [
"TAG"
],
"edgeName": "TAGGED_BY"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"DECLARATION",
"DATA_FLOW_OBJECT"
],
"comment": "This node represents a formal parameter going towards the caller side.",
"name": "METHOD_PARAMETER_OUT"
},
{
"id": 333,
"keys": [
"CODE",
"ORDER",
"ARGUMENT_INDEX",
"METHOD_INST_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF",
"RETURN",
"UNKNOWN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"CLOSURE_BINDING"
],
"edgeName": "CAPTURE"
},
{
"inNodes": [
"METHOD_INST"
],
"edgeName": "REF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"EXPRESSION"
],
"comment": "Reference to a method instance.",
"name": "METHOD_REF"
},
{
"id": 3,
"keys": [
"CODE",
"EVALUATION_STRATEGY",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"DATA_FLOW_OBJECT"
],
"comment": "A formal method return",
"name": "METHOD_RETURN"
},
{
"id": 300,
"keys": [
"MODIFIER_TYPE"
],
"comment": "The static-modifier",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "MODIFIER"
},
{
"id": 40,
"keys": [
"NAME"
],
"comment": "This node represents a namespace as a hole 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": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "NAMESPACE"
},
{
"id": 41,
"keys": [
"NAME",
"FULL_NAME"
],
"outEdges": [
{
"inNodes": [
"TYPE_DECL",
"METHOD"
],
"edgeName": "AST"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "A reference to a namespace.",
"name": "NAMESPACE_BLOCK"
},
{
"id": 30,
"keys": [
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END",
"ORDER",
"ARGUMENT_INDEX",
"CODE"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"METHOD_REF"
],
"edgeName": "AST"
},
{
"inNodes": [
"METHOD_RETURN"
],
"edgeName": "CFG"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"EXPRESSION"
],
"comment": "A return instruction.",
"name": "RETURN"
},
{
"id": 24,
"keys": [
"NAME",
"VALUE"
],
"comment": "A string tag.",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "TAG"
},
{
"id": 45,
"keys": [
"NAME",
"FULL_NAME",
"TYPE_DECL_FULL_NAME"
],
"outEdges": [
{
"inNodes": [
"TYPE_ARGUMENT"
],
"edgeName": "AST"
},
{
"inNodes": [
"TYPE_DECL"
],
"edgeName": "REF"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "A type which always has to reference a type declaration and may have type argument children if the refered type declaration is a template.",
"name": "TYPE"
},
{
"id": 48,
"keys": [],
"comment": "Argument for a TYPE_PARAMETER and belonging to a TYPE or METHOD_INST. It binds another TYPE to a TYPE_PARAMETER.",
"outEdges": [
{
"inNodes": [
"TYPE"
],
"edgeName": "REF"
},
{
"inNodes": [
"TYPE_PARAMETER"
],
"edgeName": "BINDS_TO"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "TYPE_ARGUMENT"
},
{
"id": 46,
"keys": [
"NAME",
"FULL_NAME",
"IS_EXTERNAL",
"INHERITS_FROM_TYPE_FULL_NAME",
"AST_PARENT_TYPE",
"AST_PARENT_FULL_NAME"
],
"outEdges": [
{
"inNodes": [
"METHOD"
],
"edgeName": "VTABLE"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "INHERITS_FROM"
},
{
"inNodes": [
"TYPE_PARAMETER",
"MEMBER",
"MODIFIER",
"TYPE_DECL",
"METHOD"
],
"edgeName": "AST"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"comment": "A type declaration.",
"name": "TYPE_DECL"
},
{
"id": 47,
"keys": [
"NAME",
"ORDER"
],
"comment": "Type parameter of TYPE_DECL or METHOD.",
"outEdges": [
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"name": "TYPE_PARAMETER"
},
{
"id": 44,
"keys": [
"CODE",
"PARSER_TYPE_NAME",
"ORDER",
"ARGUMENT_INDEX",
"TYPE_FULL_NAME",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"outEdges": [
{
"inNodes": [
"CALL",
"IDENTIFIER",
"LITERAL",
"RETURN",
"METHOD_REF"
],
"edgeName": "CFG"
},
{
"inNodes": [
"LITERAL",
"MEMBER",
"MODIFIER",
"ARRAY_INITIALIZER",
"CALL",
"LOCAL",
"IDENTIFIER",
"RETURN",
"BLOCK",
"METHOD_INST",
"UNKNOWN"
],
"edgeName": "AST"
},
{
"inNodes": [
"TYPE"
],
"edgeName": "EVAL_TYPE"
},
{
"inNodes": [
"NODE"
],
"edgeName": "CONTAINS_NODE"
}
],
"is": [
"EXPRESSION"
],
"comment": "A language-specific node",
"name": "UNKNOWN"
}
],
"evaluationStrategies": [
{
"id": 1,
"comment": "A parameter or return of a function is passed by reference which means an address is used behind the scene.",
"name": "BY_REFERENCE"
},
{
"id": 2,
"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 propageted out of the method context.",
"name": "BY_SHARING"
},
{
"id": 3,
"comment": "A parameter or return of a function passed by value which means a flat copy is used.",
"name": "BY_VALUE"
}
],
"edgeTypes": [
{
"id": 3,
"keys": [],
"comment": "Syntax child",
"name": "AST"
},
{
"id": 22,
"keys": [],
"comment": "Type argument binding to a type parameter.",
"name": "BINDS_TO"
},
{
"id": 6,
"keys": [],
"comment": "Referencing to e.g. a LOCAL",
"name": "CALL"
},
{
"id": 4,
"keys": [],
"comment": "Function call argument",
"name": "CALL_ARG"
},
{
"id": 14,
"keys": [],
"comment": "Function call output argument. Goes from METHOD_PARAMETER_OUT to call argument node.",
"name": "CALL_ARG_OUT"
},
{
"id": 5,
"keys": [],
"comment": "Function call return value",
"name": "CALL_RET"
},
{
"id": 40,
"keys": [],
"comment": "Represents the capturing of a variable into a closure.",
"name": "CAPTURE"
},
{
"id": 41,
"keys": [],
"comment": "Connection between a capture LOCAL and the corresponding CLOSURE_BINDING",
"name": "CAPTURED_BY"
},
{
"id": 19,
"keys": [],
"comment": "Control flow",
"name": "CFG"
},
{
"id": 28,
"keys": [],
"comment": "Shortcut over multiple AST edges",
"name": "CONTAINS"
},
{
"id": 9,
"keys": [
"LOCAL_NAME",
"INDEX"
],
"comment": "Membership relation for a compound object",
"name": "CONTAINS_NODE"
},
{
"id": 21,
"keys": [],
"comment": "Link to evaluation type.",
"name": "EVAL_TYPE"
},
{
"id": 23,
"keys": [],
"comment": "Inheritance relation between types.",
"name": "INHERITS_FROM"
},
{
"id": 12,
"keys": [],
"comment": "Links together corresponding METHOD_PARAMETER_IN and METHOD_PARAMETER_OUT nodes.",
"name": "PARAMETER_LINK"
},
{
"id": 10,
"keys": [],
"comment": "Referencing to e.g. a LOCAL",
"name": "REF"
},
{
"id": 11,
"keys": [],
"comment": "Edges from nodes to tags",
"name": "TAGGED_BY"
},
{
"id": 30,
"keys": [],
"comment": "Indicates that a method is part of the vtable of a certain type declaration.",
"name": "VTABLE"
}
],
"nodeBaseTraits": [
{
"comment": "",
"hasKeys": [
"NAME"
],
"name": "DECLARATION"
},
{
"comment": "anything that can appear inside a data flow",
"hasKeys": [
"CODE",
"LINE_NUMBER",
"LINE_NUMBER_END",
"COLUMN_NUMBER",
"COLUMN_NUMBER_END"
],
"name": "DATA_FLOW_OBJECT"
},
{
"comment": "expression as a specialisation of data flow objects",
"hasKeys": [
"ORDER"
],
"extends": "DATA_FLOW_OBJECT",
"name": "EXPRESSION"
},
{
"comment": "",
"hasKeys": [
"NAME"
],
"name": "LOCAL_LIKE"
}
],
"dispatchTypes": [
{
"id": 1,
"comment": "For statically dispatched calls the call target is known before program execution.",
"name": "STATIC_DISPATCH"
},
{
"id": 2,
"comment": "For dynamitcally dispatched calls the target is determined during runtime.",
"name": "DYNAMIC_DISPATCH"
}
],
"languages": [
{
"id": 1,
"comment": "",
"name": "JAVA"
},
{
"id": 2,
"comment": "",
"name": "JAVA_SCRIPT"
},
{
"id": 3,
"comment": "",
"name": "GOLANG"
},
{
"id": 4,
"comment": "",
"name": "CSHARP"
}
],
"nodeKeys": [
{
"cardinality": "one",
"id": 40,
"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.",
"name": "ARGUMENT_INDEX"
},
{
"cardinality": "one",
"id": 57,
"valueType": "string",
"comment": "The FULL_NAME of a the AST parent of an entity.",
"name": "AST_PARENT_FULL_NAME"
},
{
"cardinality": "one",
"id": 56,
"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.",
"name": "AST_PARENT_TYPE"
},
{
"cardinality": "zeroOrOne",
"id": 50,
"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.",
"name": "CLOSURE_BINDING_ID"
},
{
"cardinality": "one",
"id": 21,
"valueType": "string",
"comment": "The code snippet the node represents",
"name": "CODE"
},
{
"cardinality": "zeroOrOne",
"id": 11,
"valueType": "int",
"comment": "Column where the code starts",
"name": "COLUMN_NUMBER"
},
{
"cardinality": "zeroOrOne",
"id": 12,
"valueType": "int",
"comment": "Column where the code ends",
"name": "COLUMN_NUMBER_END"
},
{
"cardinality": "one",
"id": 25,
"valueType": "string",
"comment": "The dispatch type of a call, which is either static or dynamic. See dispatchTypes.",
"name": "DISPATCH_TYPE"
},
{
"cardinality": "one",
"id": 15,
"valueType": "string",
"comment": "Evaluation strategy for function parameters and return values. One of the values in \"evaluationStrategies\".",
"name": "EVALUATION_STRATEGY"
},
{
"cardinality": "one",
"id": 6,
"valueType": "string",
"comment": "Full name of an element, e.g., the class name along, including its package.",
"name": "FULL_NAME"
},
{
"cardinality": "list",
"id": 53,
"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.",
"name": "INHERITS_FROM_TYPE_FULL_NAME"
},
{
"cardinality": "one",
"id": 7,
"valueType": "boolean",
"comment": "Indicates that the construct is external, that is, it is referenced but not defined in the code",
"name": "IS_EXTERNAL"
},
{
"cardinality": "one",
"id": 19,
"valueType": "string",
"comment": "The programming language this graph originates from",
"name": "LANGUAGE"
},
{
"cardinality": "zeroOrOne",
"id": 2,
"valueType": "int",
"comment": "Line where the code starts",
"name": "LINE_NUMBER"
},
{
"cardinality": "zeroOrOne",
"id": 10,
"valueType": "int",
"comment": "Line where the code ends",
"name": "LINE_NUMBER_END"
},
{
"cardinality": "one",
"id": 54,
"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.",
"name": "METHOD_FULL_NAME"
},
{
"cardinality": "one",
"id": 55,
"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.",
"name": "METHOD_INST_FULL_NAME"
},
{
"cardinality": "one",
"id": 26,
"valueType": "string",
"comment": "Indicates the which modifier is represented by a MODIFIER node. See modifierTypes.",
"name": "MODIFIER_TYPE"
},
{
"cardinality": "one",
"id": 5,
"valueType": "string",
"comment": "Name of represented object, e.g., method name",
"name": "NAME"
},
{
"cardinality": "one",
"id": 4,
"valueType": "int",
"comment": "General ordering property. E.g. used to express the ordering of children in the AST.",
"name": "ORDER"
},
{
"cardinality": "one",
"id": 3,
"valueType": "string",
"comment": "Type name emitted by parser, only present for logical type  UNKNOWN",
"name": "PARSER_TYPE_NAME"
},
{
"cardinality": "one",
"id": 22,
"valueType": "string",
"comment": "Method signature",
"name": "SIGNATURE"
},
{
"cardinality": "one",
"id": 52,
"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.",
"name": "TYPE_DECL_FULL_NAME"
},
{
"cardinality": "one",
"id": 51,
"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.",
"name": "TYPE_FULL_NAME"
},
{
"cardinality": "one",
"id": 8,
"valueType": "string",
"comment": "Tag value",
"name": "VALUE"
},
{
"cardinality": "one",
"id": 13,
"valueType": "string",
"comment": "A version, given as a string",
"name": "VERSION"
}
],
"modifierTypes": [
{
"id": 1,
"comment": "The static modifier.",
"name": "STATIC"
},
{
"id": 2,
"comment": "The public modifier.",
"name": "PUBLIC"
},
{
"id": 3,
"comment": "The protected modifier.",
"name": "PROTECTED"
},
{
"id": 4,
"comment": "The private modifier.",
"name": "PRIVATE"
},
{
"id": 5,
"comment": "The abstract modifier.",
"name": "ABSTRACT"
},
{
"id": 6,
"comment": "The native modifier.",
"name": "NATIVE"
},
{
"id": 7,
"comment": "The constructor modifier.",
"name": "CONSTRUCTOR"
},
{
"id": 8,
"comment": "The virtual modifier.",
"name": "VIRTUAL"
}
],
"operatorNames": [
{
"operator": "addition",
"name": ".addition"
},
{
"operator": "subtraction",
"name": ".subtraction"
},
{
"operator": "multiplication",
"name": ".multiplication"
},
{
"operator": "division",
"name": ".division"
},
{
"operator": "exponentiation",
"name": ".exponentiation"
},
{
"operator": "modulo",
"name": ".modulo"
},
{
"operator": "shiftLeft",
"name": ".shiftLeft"
},
{
"operator": "logicalShiftRight",
"comment": "shift right padding with zeros",
"name": ".logicalShiftRight"
},
{
"operator": "arithmeticShiftRight",
"comment": "shift right preserving the sign",
"name": ".arithmeticShiftRight"
},
{
"operator": "not",
"name": ".not"
},
{
"operator": "and",
"name": ".and"
},
{
"operator": "or",
"name": ".or"
},
{
"operator": "xor",
"name": ".xor"
},
{
"operator": "assignmentPlus",
"name": ".assignmentPlus"
},
{
"operator": "assignmentMinus",
"name": ".assignmentMinus"
},
{
"operator": "assignmentMultiplication",
"name": ".assignmentMuliplication"
},
{
"operator": "assignmentDivision",
"name": ".assignmentDivision"
},
{
"operator": "assignmentExponentiation",
"name": ".assignmentExponentiation"
},
{
"operator": "assignmentModulo",
"name": ".assignmentModulo"
},
{
"operator": "assignmentShiftLeft",
"name": ".assignmentShiftLeft"
},
{
"operator": "assignmentLogicalShifRight",
"name": ".assignmentLogicalShifRight"
},
{
"operator": "assignmentArithmeticShiftRight",
"name": ".assignmentArithmeticShiftRight"
},
{
"operator": "assignmentAnd",
"name": ".assignmentAnd"
},
{
"operator": "assignmentOr",
"name": ".assignmentOr"
},
{
"operator": "assignmentXor",
"name": ".assignmentXor"
},
{
"operator": "assignment",
"name": ".assignment"
},
{
"operator": "minus",
"comment": "e.g. `a = -b`",
"name": ".minus"
},
{
"operator": "plus",
"comment": "e.g. `a = +b`",
"name": ".plus"
},
{
"operator": "preIncrement",
"name": ".preIncrement"
},
{
"operator": "preDecrement",
"name": ".preDecrement"
},
{
"operator": "postIncrement",
"name": ".postIncrement"
},
{
"operator": "postDecrement",
"name": ".postDecrement"
},
{
"operator": "logicalNot",
"name": ".logicalNot"
},
{
"operator": "logicalOr",
"name": ".logicalOr"
},
{
"operator": "logicalAnd",
"name": ".logicalAnd"
},
{
"operator": "equals",
"name": ".equals"
},
{
"operator": "notEquals",
"name": ".notEquals"
},
{
"operator": "greaterThan",
"name": ".greaterThan"
},
{
"operator": "lessThan",
"name": ".lessThan"
},
{
"operator": "greaterEqualsThan",
"name": ".greaterEqualsThan"
},
{
"operator": "lessEqualsThan",
"name": ".lessEqualsThan"
},
{
"operator": "instanceOf",
"name": ".instanceOf"
},
{
"operator": "memberAccess",
"comment": "e.g. in C: `a.b` but not! in Java",
"name": ".memberAccess"
},
{
"operator": "indirectMemberAccess",
"comment": "e.g. in C: `a->b` and `a.b` in Java",
"name": ".indirectMemberAccess"
},
{
"operator": "computedMemberAccess",
"comment": "e.g. in C: `a[b]` but not! in Java",
"name": ".computedMemberAccess"
},
{
"operator": "indirectComputedMemberAccess",
"comment": "e.g. in C++: `a->*b` and a[b] in Java",
"name": ".indirectComputedMemberAccess"
},
{
"operator": "indirection",
"comment": "e.g. in C: `*a`",
"name": ".indirection"
},
{
"operator": "delete",
"comment": "deletes a property from a namespace. E.g. `a=3; delete a; a == undefined;",
"name": ".delete"
},
{
"operator": "conditional",
"comment": "E.g. `a ? consequent : alternate`. In future probably also used for if statements.",
"name": ".conditional"
},
{
"operator": "cast",
"comment": "Type casts of any sort.",
"name": ".cast"
},
{
"operator": "compare",
"comment": "Comparsion between to arguments with the results: 0 == equal, negative == left < right, positive == left > right",
"name": ".compare"
}
],
"frameworks": []
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy