Package-level declarations
Types
Expressions of the form new Type[] that represents the creation of an array, mostly used in combination with a VariableDeclaration.
Expressions of the form floor ... ceiling
Represents the subscription or access of an array of the form array[index], where both array (arrayExpression) and index (subscriptExpression) are of type Expression. CPP can overload operators thus changing semantics of array access.
An expression, which calls another function. It has a list of arguments (list of Expressions) and is connected via the INVOKES edge to its FunctionDeclaration.
An expression, which calls another function. It has a list of arguments (list of [ ]s) and is connected via the INVOKES edge to its FunctionDeclaration.
Represents an expression containing a ternary operator: var x = condition ? valueIfTrue : valueIfFalse;
Represents a call to a constructor, usually as an initializer.
A list of initializer expressions.
Represents a key / value pair, often found in languages that allow associative arrays or objects, such as Python, Golang or JavaScript.
This expression denotes the usage of an anonymous / lambda function. It connects the inner anonymous function to the user of a lambda function with an expression.
Represents a literal value, meaning the value is fixed and not depending on the runtime evaluation of the expression.
Represents a CallExpression to something which is a member of an object (the base). For example obj.toString(). The type of the callee property should be a MemberExpression (unless a translation error occurred). One notable exception are function pointer calls to class methods in C++, in which the callee is a BinaryOperator with a .* operator.
Represents access to a member of a RecordDeclaration, such as obj.property. Another common use-case is access of a member function (method) as part of the MemberCallExpression.callee property of a MemberCallExpression.
Represents the creation of a new object through the new keyword.
A node where the statement could not be translated by the graph. We use ProblemExpressions whenever the CPG library requires an Expression.
Represets a Type used as an expression for instance when instantiating templates
Models C++ operations that inspect types. These are typeof, sizeof, typeid, alignofand are stored as string in their operator code.
a++.