In this chapter:
Table of Contents | ||
---|---|---|
|
Attributes
Nodes describing an "attribute" as it appeared in the source. The following attribute nodes are available:
Table of Content Zone | ||||||
---|---|---|---|---|---|---|
| ||||||
AttributeNode describing an "attribute" as it appeared in the source. For example: Attribute ArgumentNode describing the arguments of an attribute. For example:
Attribute GroupNode describing an attribute group. For example:
|
Constants
Constant value of any type. The following constant nodes are available:
Table of Content Zone | ||||||
---|---|---|---|---|---|---|
| ||||||
Integer ConstantConstant integer expression. For example:
Real ConstantConstant expression that is a real number. For example: String ConstantConstant string expression. For example:
Template Parameter ConstantA constant template parameter in template class declaration. For example:
bool ConstantA constant value of true or false. enum ConstantAn enum identifier declared in body of enum declaration. For example:
nullptr constantA pointer literal of type std::nullptr_t. Example:
|
Declarations
Nodes representing various declarations in user code.
Some declaration nodes can be accessed from both their declaration and expressions that reference the declaration. In these cases, the IsDecl
property returns a boolean, allowing users to distinguish between the actual declaration and references to that declaration.
The following declaration nodes are available:
Table of Content Zone | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
FriendFriend function declaration. For example:
FunctionsFunction declarations. This includes Global and Member functions.. Global FunctionGlobal function declaration. For example:
Member FunctionMember function declaration. For example:
ParameterParameters include parameter and this. ParameterFunction parameter declaration. For example:
ThisParameter usage. For example:
VariablesVariables include global, local, and member variables. Global VariableGlobal Variable. For example:
Local VariableLocal Variable. For example:
Member VariableMember Variable. For example:
|
Expressions
Includes all types of expression nodes:
Table of Content Zone | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AssignmentIncludes all expression nodes used for assignment. ++aPreincrement expression. For example:
--aPre-decrement expression. For example:
a%=bMod-equals operator expression. For example:
a&=bBitwise-and-equals operator expression. For example:
a*=bMultiply-equals operator expression. For example:
a++Post increment expression. For example:
a+=bPlus-equals operator expression. For example:
a--Post decrement expression. For example:
a-=bMinus-equals operator expression. For example:
a/=bDivide-equals operator expression. For example:
a<<=bLeft-shift-equals operator expression. For example:
a=bAssignment operator expression. For example:
a>>=bRight-shift-equals operator expression. For example:
a^=bBitwise-xor-equals operator expression. For example:
a|=bBitwise-or-equals operator expression. For example:
BitwiseExpressions involving non-assignment bitwise operators. a&bBitwise 'and' expression. For example:
a^bBitwise XOR expression. For example:
a|bBitwise 'or' expression. For example:
~aBitwise 'not' expression. For example:
ComparisonExpressions that compare values. a!=bNot-equal operator expression. For example:
a<=b'Less than or equals' expression. For example:
a<b'Less than' expression. For example:
a==bEquality operator expression. For example:
a>=b'Greater than or equals' expression. For example:
a>b'Greater than' expression. For example:
LogicalComparison expressions involving logical operators. !aLogical 'not' expression. For example:
a&&bLogical 'and' expression. For example:
a||bLogical 'or' expression. For example:
MiscellaneousMiscellaneous expressions that don't fit in other categories. &aAddress of expression. For example:
*aDereference expression. For example:
a->bDereference operator expression. For example:
CastExpression that casts from one type to another. For example:
GNU Statement ExpressionA compound statement enclosed in parentheses that may appear as an expression in GNU C. For example:
Initializer ListExpression containing initializations, used in member functions. For example:
OverloadedAn expression using an overloaded operator. For example:
LabelLabel in goto statement. For example:
a(b)Function call expression. For example:
a,bCompound statement list. For example:
a->*bArrow-star expression used in pointers to member functions. For example:
a.*bDot-star expression used in pointers to member functions. For example:
a.bDot operator expression. For example:
a::bObsolete. Formerly used to represent scope reference expressions. Use ScopePrefix instead. a?b:cTernary operator expression. For example:
a[b]Array reference. For example:
asmInlined assembly expression. For example:
deleteDelete operator expression. For example:
ellipses (...)Ellipses expression used for catch parameters. For example:
newNew operator expression. For example:
sizeofSizeof operator expression. For example:
throwThrow operator expression. For example:
typeidTypeid operator expression used for RTTI. For example:
noexceptNoexcept operator. For example:
Vacuous destructor callExplicit destructor call for simple types or classes that do not have a type. For simple types, this represents a pseudo-destructor call. For example:
LambdaLambda expression. For example:
NumericalNumerical expressions that are not assignments. +aPositive signed expression. For example:
-aNegative signed expression. For example:
a%bModulo expression. For example:
a*bMultiplication expression. For example:
a+bAddition expression. For example:
a-bSubtraction expression. For example:
a/bDivision expression. For example:
a<<bLeft-shift expression. For example:
a>>bRight-shift expression. For example:
|
General
The following nodes do not easily fit into a particular category.
Table of Content Zone | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ArgumentActual argument (actual parameter) of a function call. Returned by the "Arguments" property. For example:
BaseClassDerivationRepresents a possible inheritance path led from the parent class represented by BaseType to the child class. For example:
For BaseTypeA Base Class of another class. For example:
FileFile containing source code. Used for rules about relationships of nodes within a file. Lambda CaptureSimple or init capture on a capture list. Includes also implicit captures provided through a capture-default. For example:
Template ArgumentRepresents actual argument used for instantiation of a template class or template function. For example:
Translation UnitRepresents current translation unit. |
Name Spaces
Nodes involving the use of namespaces.
Table of Content Zone | ||||||
---|---|---|---|---|---|---|
| ||||||
namespaceNamespace declaration. For example:
usingUse of 'using' namespace keyword. For example:
|
Statements
General node for all types of statements.
Table of Content Zone | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||
BlockBlock statement. Normally contains other statements. Begins and ends with curly braces. For example:
Case LabelRepresents a
SimpleA statement that does not fall into any other statement category. The simple statement's body usually contains an expression. For example:
EmptyAn empty
breakBreak statement. For example:
caseCase statement. For example:
catchCatch statement used for exception handling. For example:
continueContinue statement used in loops. For example:
defaultDefault statement used inside a switch statement. For example:
do whileDo while loop statement. For example:
forFor loop statement. For example:
for rangeRange-based for loop statement. For example:
gotoGoto statement. For example:
ifIf statement. For example:
returnReturn statement. For example:
switchSwitch statement. For example:
tryTry statement. For example:
whileWhile statement. For example:
|
Types
All types that can be used for variable declaration.
Table of Content Zone | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
ComplexNon-primitive types. This category contains the following types: ArrayArray type. For example:
BuiltinNon-primitive type builtin for a given compiler. ClassUser-defined class type. For example:
EnumUser-defined enum type. For example:
FunctionFunction type. Used for function pointers. For example:
ReferenceReference type. Used for passing by reference. For example:
structStruct type. For example:
Template ParameterA template parameter in template class declaration. For example:
TypedefTypedef type. For example:
UnionUnion type. For example":
PrimitiveAll primitive types. This category contains the following types: boolPrimitive type bool. For example:
charPrimitive type char. For example:
doublePrimitive type double. For example:
floatPrimitive type float. For example:
intPrimitive type int. For example:
longPrimitive type long. For example:
long doublePrimitive type long double. For example:
pointerPointer type. For example:
shortPrimitive type short. For example:
voidPrimitive type void. Used for void pointers. For example:
wchar_tPrimitive type wchar_t. For example:
std::nullptr_tThe type of pointer literal. Example:
|