diff --git a/docs/docs/CPG/specs/graph.md b/docs/docs/CPG/specs/graph.md
index 7e594aad52..f05b76461e 100644
--- a/docs/docs/CPG/specs/graph.md
+++ b/docs/docs/CPG/specs/graph.md
@@ -12,29 +12,30 @@ This file shows all node labels and relationships between them that are persiste
[Annotation](#eannotation)
### Relationships
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
-
+[CDG](#NodeCDG)
+[DFG](#NodeDFG)
[ANNOTATIONS](#NodeANNOTATIONS)
-
+[PDG](#NodePDG)
[AST](#NodeAST)
-
[SCOPE](#NodeSCOPE)
-
-[TYPEDEFS](#NodeTYPEDEFS)
-
-#### DFG
+#### EOG
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"DFG*"-->NodeDFG[Node]:::outer
+Node--"EOG*"-->NodeEOG[Node]:::outer
```
-#### EOG
+#### CDG
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"EOG*"-->NodeEOG[Node]:::outer
+Node--"CDG*"-->NodeCDG[Node]:::outer
+```
+#### DFG
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+Node--"DFG*"-->NodeDFG[Node]:::outer
```
#### ANNOTATIONS
```mermaid
@@ -42,24 +43,55 @@ flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
Node--"ANNOTATIONS*"-->NodeANNOTATIONS[Annotation]:::outer
```
-#### AST
+#### PDG
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"AST*"-->NodeAST[Node]:::outer
+Node--"PDG*"-->NodePDG[Node]:::outer
```
-#### SCOPE
+#### AST
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"SCOPE¹"-->NodeSCOPE[Node]:::outer
+Node--"AST*"-->NodeAST[Node]:::outer
```
-#### TYPEDEFS
+#### SCOPE
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"TYPEDEFS*"-->NodeTYPEDEFS[TypedefDeclaration]:::outer
+Node--"SCOPE¹"-->NodeSCOPE[Node]:::outer
```
+### Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
## Statement
**Labels**:[Node](#enode)
[Statement](#estatement)
@@ -67,17 +99,15 @@ Node--"TYPEDEFS*"-->NodeTYPEDEFS[TypedefDeclarati
### Children
[AssertStatement](#eassertstatement)
[DoStatement](#edostatement)
+[Expression](#eexpression)
[CaseStatement](#ecasestatement)
[ReturnStatement](#ereturnstatement)
-[Expression](#eexpression)
[IfStatement](#eifstatement)
-[DeclarationStatement](#edeclarationstatement)
[ForStatement](#eforstatement)
[CatchClause](#ecatchclause)
[SwitchStatement](#eswitchstatement)
[GotoStatement](#egotostatement)
[WhileStatement](#ewhilestatement)
-[BlockStatement](#ecompoundstatement)
[ContinueStatement](#econtinuestatement)
[DefaultStatement](#edefaultstatement)
[SynchronizedStatement](#esynchronizedstatement)
@@ -85,22 +115,28 @@ Node--"TYPEDEFS*"-->NodeTYPEDEFS[TypedefDeclarati
[ForEachStatement](#eforeachstatement)
[LabelStatement](#elabelstatement)
[BreakStatement](#ebreakstatement)
+[DeclarationStatement](#edeclarationstatement)
[EmptyStatement](#eemptystatement)
### Relationships
[LOCALS](#StatementLOCALS)
-
-[DFG](#NodeDFG)
+Inherited Relationships
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
#### LOCALS
```mermaid
@@ -108,42 +144,114 @@ flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
Statement--"LOCALS*"-->StatementLOCALS[VariableDeclaration]:::outer
```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
## AssertStatement
**Labels**:[Node](#enode)
[Statement](#estatement)
[AssertStatement](#eassertstatement)
### Relationships
-[CONDITION](#AssertStatementCONDITION)
-
[MESSAGE](#AssertStatementMESSAGE)
+[CONDITION](#AssertStatementCONDITION)
+Inherited Relationships
[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### CONDITION
+#### MESSAGE
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssertStatement--"CONDITION¹"-->AssertStatementCONDITION[Expression]:::outer
+AssertStatement--"MESSAGE¹"-->AssertStatementMESSAGE[Statement]:::outer
```
-#### MESSAGE
+#### CONDITION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssertStatement--"MESSAGE¹"-->AssertStatementMESSAGE[Statement]:::outer
+AssertStatement--"CONDITION¹"-->AssertStatementCONDITION[Expression]:::outer
```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
## DoStatement
**Labels**:[Node](#enode)
[Statement](#estatement)
@@ -151,22 +259,26 @@ AssertStatement--"MESSAGE¹"-->AssertStatementMESSAGE[Stat
### Relationships
[CONDITION](#DoStatementCONDITION)
-
[STATEMENT](#DoStatementSTATEMENT)
+Inherited Relationships
[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
#### CONDITION
```mermaid
@@ -180,2913 +292,6248 @@ flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
DoStatement--"STATEMENT¹"-->DoStatementSTATEMENT[Statement]:::outer
```
-## CaseStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[CaseStatement](#ecasestatement)
-
-### Relationships
-[CASE_EXPRESSION](#CaseStatementCASE_EXPRESSION)
+### Properties
+Inherited Properties
+code : String
-[LOCALS](#StatementLOCALS)
-
-[DFG](#NodeDFG)
+argumentIndex : int
-[EOG](#NodeEOG)
+file : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+isImplicit : boolean
-[AST](#NodeAST)
+fullName : String
-[SCOPE](#NodeSCOPE)
+localName : String
-[TYPEDEFS](#NodeTYPEDEFS)
+name : String
-#### CASE_EXPRESSION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CaseStatement--"CASE_EXPRESSION¹"-->CaseStatementCASE_EXPRESSION[Expression]:::outer
-```
-## ReturnStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[ReturnStatement](#ereturnstatement)
+nameDelimiter : String
-### Relationships
-[RETURN_VALUES](#ReturnStatementRETURN_VALUES)
+comment : String
-[LOCALS](#StatementLOCALS)
+artifact : String
-[DFG](#NodeDFG)
+startLine : int
-[EOG](#NodeEOG)
+endLine : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+startColumn : int
-[AST](#NodeAST)
+endColumn : int
-[SCOPE](#NodeSCOPE)
+isInferred : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### RETURN_VALUES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ReturnStatement--"RETURN_VALUES*"-->ReturnStatementRETURN_VALUES[Expression]:::outer
-```
## Expression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
### Children
+[RangeExpression](#erangeexpression)
[NewExpression](#enewexpression)
[LambdaExpression](#elambdaexpression)
[UnaryOperator](#eunaryoperator)
-[ArrayRangeExpression](#earrayrangeexpression)
+[Block](#eblock)
[CallExpression](#ecallexpression)
-[DesignatedInitializerExpression](#edesignatedinitializerexpression)
+[NewArrayExpression](#enewarrayexpression)
[KeyValueExpression](#ekeyvalueexpression)
[AssignExpression](#eassignexpression)
[CastExpression](#ecastexpression)
-[NewArrayExpression](#earraycreationexpression)
-[SubscriptionExpression](#earraysubscriptionexpression)
[TypeExpression](#etypeexpression)
+[Reference](#ereference)
[BinaryOperator](#ebinaryoperator)
[ConditionalExpression](#econditionalexpression)
-[Reference](#edeclaredreferenceexpression)
[InitializerListExpression](#einitializerlistexpression)
[DeleteExpression](#edeleteexpression)
-[BlockStatementExpression](#ecompoundstatementexpression)
+[SubscriptExpression](#esubscriptexpression)
[ProblemExpression](#eproblemexpression)
[Literal](#eliteral)
[TypeIdExpression](#etypeidexpression)
[ExpressionList](#eexpressionlist)
### Relationships
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-
[TYPE](#ExpressionTYPE)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
+Inherited Relationships
[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### POSSIBLE_SUB_TYPES
+#### TYPE
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Expression--"POSSIBLE_SUB_TYPES*"-->ExpressionPOSSIBLE_SUB_TYPES[Type]:::outer
+Expression--"TYPE¹"-->ExpressionTYPE[Type]:::outer
```
-#### TYPE
+#### ASSIGNED_TYPES
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Expression--"TYPE¹"-->ExpressionTYPE[Type]:::outer
+Expression--"ASSIGNED_TYPES*"-->ExpressionASSIGNED_TYPES[Type]:::outer
```
-## NewExpression
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[NewExpression](#enewexpression)
+### Properties
+Inherited Properties
+code : String
-### Relationships
-[INITIALIZER](#NewExpressionINITIALIZER)
+argumentIndex : int
-[TEMPLATE_PARAMETERS](#NewExpressionTEMPLATE_PARAMETERS)
+file : String
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+isImplicit : boolean
-[TYPE](#ExpressionTYPE)
+fullName : String
-[LOCALS](#StatementLOCALS)
+localName : String
-[DFG](#NodeDFG)
+name : String
-[EOG](#NodeEOG)
+nameDelimiter : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+comment : String
-[AST](#NodeAST)
+artifact : String
-[SCOPE](#NodeSCOPE)
+startLine : int
-[TYPEDEFS](#NodeTYPEDEFS)
+endLine : int
-#### INITIALIZER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NewExpression--"INITIALIZER¹"-->NewExpressionINITIALIZER[Expression]:::outer
-```
-#### TEMPLATE_PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NewExpression--"TEMPLATE_PARAMETERS*"-->NewExpressionTEMPLATE_PARAMETERS[Node]:::outer
-```
-## LambdaExpression
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## RangeExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[LambdaExpression](#elambdaexpression)
+[RangeExpression](#erangeexpression)
### Relationships
-[MUTABLE_VARIABLES](#LambdaExpressionMUTABLE_VARIABLES)
-
-[FUNCTION](#LambdaExpressionFUNCTION)
-
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[CEILING](#RangeExpressionCEILING)
+[THIRD](#RangeExpressionTHIRD)
+[FLOOR](#RangeExpressionFLOOR)
+Inherited Relationships
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### MUTABLE_VARIABLES
+#### CEILING
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-LambdaExpression--"MUTABLE_VARIABLES*"-->LambdaExpressionMUTABLE_VARIABLES[ValueDeclaration]:::outer
+RangeExpression--"CEILING¹"-->RangeExpressionCEILING[Expression]:::outer
```
-#### FUNCTION
+#### THIRD
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-LambdaExpression--"FUNCTION¹"-->LambdaExpressionFUNCTION[FunctionDeclaration]:::outer
+RangeExpression--"THIRD¹"-->RangeExpressionTHIRD[Expression]:::outer
```
-## UnaryOperator
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[UnaryOperator](#eunaryoperator)
+#### FLOOR
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RangeExpression--"FLOOR¹"-->RangeExpressionFLOOR[Expression]:::outer
+```
+### Properties
+operatorCode : String
-### Relationships
-[INPUT](#UnaryOperatorINPUT)
+Inherited Properties
+code : String
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+argumentIndex : int
-[TYPE](#ExpressionTYPE)
+file : String
-[LOCALS](#StatementLOCALS)
+isImplicit : boolean
-[DFG](#NodeDFG)
+fullName : String
-[EOG](#NodeEOG)
+localName : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+name : String
-[AST](#NodeAST)
+nameDelimiter : String
-[SCOPE](#NodeSCOPE)
+comment : String
-[TYPEDEFS](#NodeTYPEDEFS)
+artifact : String
-#### INPUT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-UnaryOperator--"INPUT¹"-->UnaryOperatorINPUT[Expression]:::outer
-```
-## ArrayRangeExpression
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## NewExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[ArrayRangeExpression](#earrayrangeexpression)
+[NewExpression](#enewexpression)
### Relationships
-[CEILING](#ArrayRangeExpressionCEILING)
+[INITIALIZER](#NewExpressionINITIALIZER)
+[TEMPLATE_PARAMETERS](#NewExpressionTEMPLATE_PARAMETERS)
+Inherited Relationships
-[STEP](#ArrayRangeExpressionSTEP)
+[TYPE](#ExpressionTYPE)
-[FLOOR](#ArrayRangeExpressionFLOOR)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[LOCALS](#StatementLOCALS)
-[TYPE](#ExpressionTYPE)
+[EOG](#NodeEOG)
-[LOCALS](#StatementLOCALS)
+[CDG](#NodeCDG)
[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### CEILING
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ArrayRangeExpression--"CEILING¹"-->ArrayRangeExpressionCEILING[Expression]:::outer
-```
-#### STEP
+#### INITIALIZER
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ArrayRangeExpression--"STEP¹"-->ArrayRangeExpressionSTEP[Expression]:::outer
+NewExpression--"INITIALIZER¹"-->NewExpressionINITIALIZER[Expression]:::outer
```
-#### FLOOR
+#### TEMPLATE_PARAMETERS
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ArrayRangeExpression--"FLOOR¹"-->ArrayRangeExpressionFLOOR[Expression]:::outer
+NewExpression--"TEMPLATE_PARAMETERS*"-->NewExpressionTEMPLATE_PARAMETERS[Node]:::outer
```
-## CallExpression
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[CallExpression](#ecallexpression)
+### Properties
+Inherited Properties
+code : String
-### Children
-[ConstructorCallExpression](#eexplicitconstructorinvocation)
-[ConstructExpression](#econstructexpression)
-[MemberCallExpression](#emembercallexpression)
+argumentIndex : int
-### Relationships
-[CALLEE](#CallExpressionCALLEE)
+file : String
-[INVOKES](#CallExpressionINVOKES)
+isImplicit : boolean
-[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
+fullName : String
-[ARGUMENTS](#CallExpressionARGUMENTS)
+localName : String
-[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
+name : String
+
+nameDelimiter : String
+
+comment : String
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## LambdaExpression
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[Expression](#eexpression)
+[LambdaExpression](#elambdaexpression)
+
+### Relationships
+[MUTABLE_VARIABLES](#LambdaExpressionMUTABLE_VARIABLES)
+[FUNCTION](#LambdaExpressionFUNCTION)
+Inherited Relationships
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### CALLEE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"CALLEE¹"-->CallExpressionCALLEE[Expression]:::outer
-```
-#### INVOKES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"INVOKES*"-->CallExpressionINVOKES[FunctionDeclaration]:::outer
-```
-#### TEMPLATE_INSTANTIATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"TEMPLATE_INSTANTIATION¹"-->CallExpressionTEMPLATE_INSTANTIATION[TemplateDeclaration]:::outer
-```
-#### ARGUMENTS
+#### MUTABLE_VARIABLES
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"ARGUMENTS*"-->CallExpressionARGUMENTS[Expression]:::outer
+LambdaExpression--"MUTABLE_VARIABLES*"-->LambdaExpressionMUTABLE_VARIABLES[ValueDeclaration]:::outer
```
-#### TEMPLATE_PARAMETERS
+#### FUNCTION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"TEMPLATE_PARAMETERS*"-->CallExpressionTEMPLATE_PARAMETERS[Node]:::outer
+LambdaExpression--"FUNCTION¹"-->LambdaExpressionFUNCTION[FunctionDeclaration]:::outer
```
-## ConstructorCallExpression
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[CallExpression](#ecallexpression)
-[ConstructorCallExpression](#eexplicitconstructorinvocation)
+### Properties
+areVariablesMutable : boolean
-### Relationships
-[CALLEE](#CallExpressionCALLEE)
+Inherited Properties
+code : String
-[INVOKES](#CallExpressionINVOKES)
+argumentIndex : int
-[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
+file : String
-[ARGUMENTS](#CallExpressionARGUMENTS)
+isImplicit : boolean
-[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
+fullName : String
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+localName : String
-[TYPE](#ExpressionTYPE)
+name : String
-[LOCALS](#StatementLOCALS)
+nameDelimiter : String
-[DFG](#NodeDFG)
+comment : String
-[EOG](#NodeEOG)
+artifact : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+startLine : int
-[AST](#NodeAST)
+endLine : int
-[SCOPE](#NodeSCOPE)
+startColumn : int
-[TYPEDEFS](#NodeTYPEDEFS)
+endColumn : int
-## ConstructExpression
+isInferred : boolean
+
+
+
+## UnaryOperator
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[CallExpression](#ecallexpression)
-[ConstructExpression](#econstructexpression)
+[UnaryOperator](#eunaryoperator)
### Relationships
-[INSTANTIATES](#ConstructExpressionINSTANTIATES)
-
-[CONSTRUCTOR](#ConstructExpressionCONSTRUCTOR)
-
-[ANOYMOUS_CLASS](#ConstructExpressionANOYMOUS_CLASS)
-
-[CALLEE](#CallExpressionCALLEE)
-
-[INVOKES](#CallExpressionINVOKES)
-
-[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
+[INPUT](#UnaryOperatorINPUT)
+Inherited Relationships
-[ARGUMENTS](#CallExpressionARGUMENTS)
+[TYPE](#ExpressionTYPE)
-[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[LOCALS](#StatementLOCALS)
-[TYPE](#ExpressionTYPE)
+[EOG](#NodeEOG)
-[LOCALS](#StatementLOCALS)
+[CDG](#NodeCDG)
[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### INSTANTIATES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConstructExpression--"INSTANTIATES¹"-->ConstructExpressionINSTANTIATES[Declaration]:::outer
-```
-#### CONSTRUCTOR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConstructExpression--"CONSTRUCTOR¹"-->ConstructExpressionCONSTRUCTOR[ConstructorDeclaration]:::outer
-```
-#### ANOYMOUS_CLASS
+#### INPUT
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConstructExpression--"ANOYMOUS_CLASS¹"-->ConstructExpressionANOYMOUS_CLASS[RecordDeclaration]:::outer
+UnaryOperator--"INPUT¹"-->UnaryOperatorINPUT[Expression]:::outer
```
-## MemberCallExpression
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[CallExpression](#ecallexpression)
-[MemberCallExpression](#emembercallexpression)
+### Properties
+operatorCode : String
-### Relationships
-[CALLEE](#CallExpressionCALLEE)
+isPostfix : boolean
-[INVOKES](#CallExpressionINVOKES)
+isPrefix : boolean
-[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
+Inherited Properties
+code : String
-[ARGUMENTS](#CallExpressionARGUMENTS)
+argumentIndex : int
-[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
+file : String
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+isImplicit : boolean
-[TYPE](#ExpressionTYPE)
+fullName : String
-[LOCALS](#StatementLOCALS)
+localName : String
-[DFG](#NodeDFG)
+name : String
-[EOG](#NodeEOG)
+nameDelimiter : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+comment : String
-[AST](#NodeAST)
+artifact : String
-[SCOPE](#NodeSCOPE)
+startLine : int
+
+endLine : int
+
+startColumn : int
-[TYPEDEFS](#NodeTYPEDEFS)
+endColumn : int
-## DesignatedInitializerExpression
+isInferred : boolean
+
+
+
+## Block
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[DesignatedInitializerExpression](#edesignatedinitializerexpression)
-
-### Relationships
-[LHS](#DesignatedInitializerExpressionLHS)
+[Block](#eblock)
-[RHS](#DesignatedInitializerExpressionRHS)
+### Children
+[DistinctLanguageBlock](#edistinctlanguageblock)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+### Relationships
+[STATEMENTS](#BlockSTATEMENTS)
+Inherited Relationships
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### LHS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DesignatedInitializerExpression--"LHS*"-->DesignatedInitializerExpressionLHS[Expression]:::outer
-```
-#### RHS
+#### STATEMENTS
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DesignatedInitializerExpression--"RHS¹"-->DesignatedInitializerExpressionRHS[Expression]:::outer
+Block--"STATEMENTS*"-->BlockSTATEMENTS[Statement]:::outer
```
-## KeyValueExpression
+### Properties
+isStaticBlock : boolean
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## DistinctLanguageBlock
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[KeyValueExpression](#ekeyvalueexpression)
+[Block](#eblock)
+[DistinctLanguageBlock](#edistinctlanguageblock)
### Relationships
-[VALUE](#KeyValueExpressionVALUE)
-
-[KEY](#KeyValueExpressionKEY)
+Inherited Relationships
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[STATEMENTS](#BlockSTATEMENTS)
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### VALUE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-KeyValueExpression--"VALUE¹"-->KeyValueExpressionVALUE[Expression]:::outer
-```
-#### KEY
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-KeyValueExpression--"KEY¹"-->KeyValueExpressionKEY[Expression]:::outer
-```
-## AssignExpression
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+isStaticBlock : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## CallExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[AssignExpression](#eassignexpression)
+[CallExpression](#ecallexpression)
+
+### Children
+[ConstructExpression](#econstructexpression)
+[MemberCallExpression](#emembercallexpression)
### Relationships
-[DECLARATIONS](#AssignExpressionDECLARATIONS)
+[CALLEE](#CallExpressionCALLEE)
+[INVOKES](#CallExpressionINVOKES)
+[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
+[ARGUMENTS](#CallExpressionARGUMENTS)
+[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
+Inherited Relationships
-[LHS](#AssignExpressionLHS)
+[TYPE](#ExpressionTYPE)
-[RHS](#AssignExpressionRHS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[LOCALS](#StatementLOCALS)
-[TYPE](#ExpressionTYPE)
+[EOG](#NodeEOG)
-[LOCALS](#StatementLOCALS)
+[CDG](#NodeCDG)
[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### DECLARATIONS
+#### CALLEE
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssignExpression--"DECLARATIONS*"-->AssignExpressionDECLARATIONS[VariableDeclaration]:::outer
+CallExpression--"CALLEE¹"-->CallExpressionCALLEE[Expression]:::outer
```
-#### LHS
+#### INVOKES
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssignExpression--"LHS*"-->AssignExpressionLHS[Expression]:::outer
+CallExpression--"INVOKES*"-->CallExpressionINVOKES[FunctionDeclaration]:::outer
```
-#### RHS
+#### TEMPLATE_INSTANTIATION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssignExpression--"RHS*"-->AssignExpressionRHS[Expression]:::outer
+CallExpression--"TEMPLATE_INSTANTIATION¹"-->CallExpressionTEMPLATE_INSTANTIATION[TemplateDeclaration]:::outer
```
-## CastExpression
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[CastExpression](#ecastexpression)
+#### ARGUMENTS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+CallExpression--"ARGUMENTS*"-->CallExpressionARGUMENTS[Expression]:::outer
+```
+#### TEMPLATE_PARAMETERS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+CallExpression--"TEMPLATE_PARAMETERS*"-->CallExpressionTEMPLATE_PARAMETERS[Node]:::outer
+```
+### Properties
+template : boolean
-### Relationships
-[CAST_TYPE](#CastExpressionCAST_TYPE)
+Inherited Properties
+code : String
-[EXPRESSION](#CastExpressionEXPRESSION)
+argumentIndex : int
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+file : String
-[TYPE](#ExpressionTYPE)
+isImplicit : boolean
-[LOCALS](#StatementLOCALS)
+fullName : String
-[DFG](#NodeDFG)
+localName : String
-[EOG](#NodeEOG)
+name : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+nameDelimiter : String
-[AST](#NodeAST)
+comment : String
-[SCOPE](#NodeSCOPE)
+artifact : String
-[TYPEDEFS](#NodeTYPEDEFS)
+startLine : int
-#### CAST_TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CastExpression--"CAST_TYPE¹"-->CastExpressionCAST_TYPE[Type]:::outer
-```
-#### EXPRESSION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CastExpression--"EXPRESSION¹"-->CastExpressionEXPRESSION[Expression]:::outer
-```
-## NewArrayExpression
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ConstructExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[NewArrayExpression](#earraycreationexpression)
+[CallExpression](#ecallexpression)
+[ConstructExpression](#econstructexpression)
### Relationships
-[INITIALIZER](#NewArrayExpressionINITIALIZER)
+[INSTANTIATES](#ConstructExpressionINSTANTIATES)
+[CONSTRUCTOR](#ConstructExpressionCONSTRUCTOR)
+[ANOYMOUS_CLASS](#ConstructExpressionANOYMOUS_CLASS)
+Inherited Relationships
-[DIMENSIONS](#NewArrayExpressionDIMENSIONS)
+[CALLEE](#CallExpressionCALLEE)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[INVOKES](#CallExpressionINVOKES)
+
+[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
+
+[ARGUMENTS](#CallExpressionARGUMENTS)
+
+[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### INITIALIZER
+#### INSTANTIATES
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NewArrayExpression--"INITIALIZER¹"-->NewArrayExpressionINITIALIZER[Expression]:::outer
+ConstructExpression--"INSTANTIATES¹"-->ConstructExpressionINSTANTIATES[Declaration]:::outer
```
-#### DIMENSIONS
+#### CONSTRUCTOR
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NewArrayExpression--"DIMENSIONS*"-->NewArrayExpressionDIMENSIONS[Expression]:::outer
+ConstructExpression--"CONSTRUCTOR¹"-->ConstructExpressionCONSTRUCTOR[ConstructorDeclaration]:::outer
```
-## SubscriptionExpression
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[SubscriptionExpression](#earraysubscriptionexpression)
+#### ANOYMOUS_CLASS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ConstructExpression--"ANOYMOUS_CLASS¹"-->ConstructExpressionANOYMOUS_CLASS[RecordDeclaration]:::outer
+```
+### Properties
+Inherited Properties
+template : boolean
-### Relationships
-[ARRAY_EXPRESSION](#SubscriptionExpressionARRAY_EXPRESSION)
+code : String
-[SUBSCRIPT_EXPRESSION](#SubscriptionExpressionSUBSCRIPT_EXPRESSION)
+file : String
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+isInferred : boolean
-[TYPE](#ExpressionTYPE)
+argumentIndex : int
-[LOCALS](#StatementLOCALS)
+isImplicit : boolean
-[DFG](#NodeDFG)
+fullName : String
-[EOG](#NodeEOG)
+localName : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+name : String
-[AST](#NodeAST)
+nameDelimiter : String
-[SCOPE](#NodeSCOPE)
+comment : String
-[TYPEDEFS](#NodeTYPEDEFS)
+artifact : String
-#### ARRAY_EXPRESSION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SubscriptionExpression--"ARRAY_EXPRESSION¹"-->SubscriptionExpressionARRAY_EXPRESSION[Expression]:::outer
-```
-#### SUBSCRIPT_EXPRESSION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SubscriptionExpression--"SUBSCRIPT_EXPRESSION¹"-->SubscriptionExpressionSUBSCRIPT_EXPRESSION[Expression]:::outer
-```
-## TypeExpression
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+
+
+## MemberCallExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[TypeExpression](#etypeexpression)
+[CallExpression](#ecallexpression)
+[MemberCallExpression](#emembercallexpression)
### Relationships
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+Inherited Relationships
+
+[CALLEE](#CallExpressionCALLEE)
+
+[INVOKES](#CallExpressionINVOKES)
+
+[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
+
+[ARGUMENTS](#CallExpressionARGUMENTS)
+
+[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## BinaryOperator
+### Properties
+isStatic : boolean
+
+Inherited Properties
+template : boolean
+
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## NewArrayExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[BinaryOperator](#ebinaryoperator)
+[NewArrayExpression](#enewarrayexpression)
### Relationships
-[LHS](#BinaryOperatorLHS)
-
-[RHS](#BinaryOperatorRHS)
-
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[INITIALIZER](#NewArrayExpressionINITIALIZER)
+[DIMENSIONS](#NewArrayExpressionDIMENSIONS)
+Inherited Relationships
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### LHS
+#### INITIALIZER
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-BinaryOperator--"LHS¹"-->BinaryOperatorLHS[Expression]:::outer
+NewArrayExpression--"INITIALIZER¹"-->NewArrayExpressionINITIALIZER[Expression]:::outer
```
-#### RHS
+#### DIMENSIONS
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-BinaryOperator--"RHS¹"-->BinaryOperatorRHS[Expression]:::outer
+NewArrayExpression--"DIMENSIONS*"-->NewArrayExpressionDIMENSIONS[Expression]:::outer
```
-## ConditionalExpression
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## KeyValueExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[ConditionalExpression](#econditionalexpression)
+[KeyValueExpression](#ekeyvalueexpression)
### Relationships
-[ELSE_EXPR](#ConditionalExpressionELSE_EXPR)
+[VALUE](#KeyValueExpressionVALUE)
+[KEY](#KeyValueExpressionKEY)
+Inherited Relationships
-[THEN_EXPR](#ConditionalExpressionTHEN_EXPR)
+[TYPE](#ExpressionTYPE)
-[CONDITION](#ConditionalExpressionCONDITION)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[LOCALS](#StatementLOCALS)
-[TYPE](#ExpressionTYPE)
+[EOG](#NodeEOG)
-[LOCALS](#StatementLOCALS)
+[CDG](#NodeCDG)
[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### ELSE_EXPR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConditionalExpression--"ELSE_EXPR¹"-->ConditionalExpressionELSE_EXPR[Expression]:::outer
-```
-#### THEN_EXPR
+#### VALUE
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConditionalExpression--"THEN_EXPR¹"-->ConditionalExpressionTHEN_EXPR[Expression]:::outer
+KeyValueExpression--"VALUE¹"-->KeyValueExpressionVALUE[Expression]:::outer
```
-#### CONDITION
+#### KEY
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConditionalExpression--"CONDITION¹"-->ConditionalExpressionCONDITION[Expression]:::outer
+KeyValueExpression--"KEY¹"-->KeyValueExpressionKEY[Expression]:::outer
```
-## Reference
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[Reference](#edeclaredreferenceexpression)
+### Properties
+Inherited Properties
+code : String
-### Children
-[MemberExpression](#ememberexpression)
+argumentIndex : int
-### Relationships
-[REFERS_TO](#ReferenceREFERS_TO)
+file : String
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+isImplicit : boolean
-[TYPE](#ExpressionTYPE)
+fullName : String
-[LOCALS](#StatementLOCALS)
+localName : String
-[DFG](#NodeDFG)
+name : String
-[EOG](#NodeEOG)
+nameDelimiter : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+comment : String
-[AST](#NodeAST)
+artifact : String
-[SCOPE](#NodeSCOPE)
+startLine : int
-[TYPEDEFS](#NodeTYPEDEFS)
+endLine : int
-#### REFERS_TO
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Reference--"REFERS_TO¹"-->ReferenceREFERS_TO[Declaration]:::outer
-```
-## MemberExpression
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## AssignExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[Reference](#edeclaredreferenceexpression)
-[MemberExpression](#ememberexpression)
+[AssignExpression](#eassignexpression)
### Relationships
-[BASE](#MemberExpressionBASE)
-
-[REFERS_TO](#ReferenceREFERS_TO)
-
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[DECLARATIONS](#AssignExpressionDECLARATIONS)
+[LHS](#AssignExpressionLHS)
+[RHS](#AssignExpressionRHS)
+Inherited Relationships
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### BASE
+#### DECLARATIONS
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-MemberExpression--"BASE¹"-->MemberExpressionBASE[Expression]:::outer
+AssignExpression--"DECLARATIONS*"-->AssignExpressionDECLARATIONS[VariableDeclaration]:::outer
```
-## InitializerListExpression
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[InitializerListExpression](#einitializerlistexpression)
-
-### Relationships
-[INITIALIZERS](#InitializerListExpressionINITIALIZERS)
-
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-
-[TYPE](#ExpressionTYPE)
-
-[LOCALS](#StatementLOCALS)
+#### LHS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+AssignExpression--"LHS*"-->AssignExpressionLHS[Expression]:::outer
+```
+#### RHS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+AssignExpression--"RHS*"-->AssignExpressionRHS[Expression]:::outer
+```
+### Properties
+usedAsExpression : boolean
-[DFG](#NodeDFG)
+operatorCode : String
-[EOG](#NodeEOG)
+Inherited Properties
+code : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+argumentIndex : int
-[AST](#NodeAST)
+file : String
-[SCOPE](#NodeSCOPE)
+isImplicit : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+fullName : String
-#### INITIALIZERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-InitializerListExpression--"INITIALIZERS*"-->InitializerListExpressionINITIALIZERS[Expression]:::outer
-```
-## DeleteExpression
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[DeleteExpression](#edeleteexpression)
+localName : String
-### Relationships
-[OPERAND](#DeleteExpressionOPERAND)
+name : String
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+nameDelimiter : String
-[TYPE](#ExpressionTYPE)
+comment : String
-[LOCALS](#StatementLOCALS)
+artifact : String
-[DFG](#NodeDFG)
+startLine : int
-[EOG](#NodeEOG)
+endLine : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+startColumn : int
-[AST](#NodeAST)
+endColumn : int
-[SCOPE](#NodeSCOPE)
+isInferred : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### OPERAND
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DeleteExpression--"OPERAND¹"-->DeleteExpressionOPERAND[Expression]:::outer
-```
-## BlockStatementExpression
+## CastExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[BlockStatementExpression](#ecompoundstatementexpression)
+[CastExpression](#ecastexpression)
### Relationships
-[STATEMENT](#BlockStatementExpressionSTATEMENT)
-
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+[CAST_TYPE](#CastExpressionCAST_TYPE)
+[EXPRESSION](#CastExpressionEXPRESSION)
+Inherited Relationships
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### STATEMENT
+#### CAST_TYPE
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-BlockStatementExpression--"STATEMENT¹"-->BlockStatementExpressionSTATEMENT[Statement]:::outer
+CastExpression--"CAST_TYPE¹"-->CastExpressionCAST_TYPE[Type]:::outer
```
-## ProblemExpression
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[ProblemExpression](#eproblemexpression)
-
-### Relationships
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-
-[TYPE](#ExpressionTYPE)
-
-[LOCALS](#StatementLOCALS)
-
-[DFG](#NodeDFG)
+#### EXPRESSION
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+CastExpression--"EXPRESSION¹"-->CastExpressionEXPRESSION[Expression]:::outer
+```
+### Properties
+Inherited Properties
+code : String
-[EOG](#NodeEOG)
+argumentIndex : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+file : String
-[AST](#NodeAST)
+isImplicit : boolean
-[SCOPE](#NodeSCOPE)
+fullName : String
-[TYPEDEFS](#NodeTYPEDEFS)
+localName : String
-## Literal
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[Literal](#eliteral)
+name : String
-### Relationships
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+nameDelimiter : String
-[TYPE](#ExpressionTYPE)
+comment : String
-[LOCALS](#StatementLOCALS)
+artifact : String
-[DFG](#NodeDFG)
+startLine : int
-[EOG](#NodeEOG)
+endLine : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+startColumn : int
-[AST](#NodeAST)
+endColumn : int
-[SCOPE](#NodeSCOPE)
+isInferred : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## TypeIdExpression
+## TypeExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
[Expression](#eexpression)
-[TypeIdExpression](#etypeidexpression)
+[TypeExpression](#etypeexpression)
### Relationships
-[REFERENCED_TYPE](#TypeIdExpressionREFERENCED_TYPE)
-
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+Inherited Relationships
[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### REFERENCED_TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TypeIdExpression--"REFERENCED_TYPE¹"-->TypeIdExpressionREFERENCED_TYPE[Type]:::outer
-```
-## ExpressionList
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[Expression](#eexpression)
-[ExpressionList](#eexpressionlist)
+### Properties
+Inherited Properties
+code : String
-### Relationships
-[SUBEXPR](#ExpressionListSUBEXPR)
+argumentIndex : int
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
+file : String
-[TYPE](#ExpressionTYPE)
+isImplicit : boolean
-[LOCALS](#StatementLOCALS)
+fullName : String
-[DFG](#NodeDFG)
+localName : String
-[EOG](#NodeEOG)
+name : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+nameDelimiter : String
-[AST](#NodeAST)
+comment : String
-[SCOPE](#NodeSCOPE)
+artifact : String
-[TYPEDEFS](#NodeTYPEDEFS)
+startLine : int
-#### SUBEXPR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ExpressionList--"SUBEXPR*"-->ExpressionListSUBEXPR[Statement]:::outer
-```
-## IfStatement
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## Reference
**Labels**:[Node](#enode)
[Statement](#estatement)
-[IfStatement](#eifstatement)
+[Expression](#eexpression)
+[Reference](#ereference)
+
+### Children
+[MemberExpression](#ememberexpression)
### Relationships
-[CONDITION_DECLARATION](#IfStatementCONDITION_DECLARATION)
+[REFERS_TO](#ReferenceREFERS_TO)
+[ALIASES](#ReferenceALIASES)
+[RESOLUTION_HELPER](#ReferenceRESOLUTION_HELPER)
+Inherited Relationships
-[INITIALIZER_STATEMENT](#IfStatementINITIALIZER_STATEMENT)
+[TYPE](#ExpressionTYPE)
-[THEN_STATEMENT](#IfStatementTHEN_STATEMENT)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[CONDITION](#IfStatementCONDITION)
+[LOCALS](#StatementLOCALS)
-[ELSE_STATEMENT](#IfStatementELSE_STATEMENT)
+[EOG](#NodeEOG)
-[LOCALS](#StatementLOCALS)
+[CDG](#NodeCDG)
[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### CONDITION_DECLARATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"CONDITION_DECLARATION¹"-->IfStatementCONDITION_DECLARATION[Declaration]:::outer
-```
-#### INITIALIZER_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"INITIALIZER_STATEMENT¹"-->IfStatementINITIALIZER_STATEMENT[Statement]:::outer
-```
-#### THEN_STATEMENT
+#### REFERS_TO
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"THEN_STATEMENT¹"-->IfStatementTHEN_STATEMENT[Statement]:::outer
+Reference--"REFERS_TO¹"-->ReferenceREFERS_TO[Declaration]:::outer
```
-#### CONDITION
+#### ALIASES
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"CONDITION¹"-->IfStatementCONDITION[Expression]:::outer
+Reference--"ALIASES*"-->ReferenceALIASES[Node]:::outer
```
-#### ELSE_STATEMENT
+#### RESOLUTION_HELPER
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"ELSE_STATEMENT¹"-->IfStatementELSE_STATEMENT[Statement]:::outer
+Reference--"RESOLUTION_HELPER¹"-->ReferenceRESOLUTION_HELPER[Node]:::outer
```
-## DeclarationStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[DeclarationStatement](#edeclarationstatement)
-
-### Children
-[ASMDeclarationStatement](#easmdeclarationstatement)
+### Properties
+access : AccessValues
-### Relationships
-[DECLARATIONS](#DeclarationStatementDECLARATIONS)
+isStaticAccess : boolean
-[LOCALS](#StatementLOCALS)
+Inherited Properties
+code : String
-[DFG](#NodeDFG)
+argumentIndex : int
-[EOG](#NodeEOG)
+file : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+isImplicit : boolean
-[AST](#NodeAST)
+fullName : String
-[SCOPE](#NodeSCOPE)
+localName : String
-[TYPEDEFS](#NodeTYPEDEFS)
+name : String
-#### DECLARATIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DeclarationStatement--"DECLARATIONS*"-->DeclarationStatementDECLARATIONS[Declaration]:::outer
-```
-## ASMDeclarationStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[DeclarationStatement](#edeclarationstatement)
-[ASMDeclarationStatement](#easmdeclarationstatement)
+nameDelimiter : String
-### Relationships
-[DECLARATIONS](#DeclarationStatementDECLARATIONS)
+comment : String
-[LOCALS](#StatementLOCALS)
+artifact : String
-[DFG](#NodeDFG)
+startLine : int
-[EOG](#NodeEOG)
+endLine : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+startColumn : int
-[AST](#NodeAST)
+endColumn : int
-[SCOPE](#NodeSCOPE)
+isInferred : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## ForStatement
+## MemberExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
-[ForStatement](#eforstatement)
+[Expression](#eexpression)
+[Reference](#ereference)
+[MemberExpression](#ememberexpression)
### Relationships
-[CONDITION_DECLARATION](#ForStatementCONDITION_DECLARATION)
+[BASE](#MemberExpressionBASE)
+Inherited Relationships
-[INITIALIZER_STATEMENT](#ForStatementINITIALIZER_STATEMENT)
+[REFERS_TO](#ReferenceREFERS_TO)
-[ITERATION_STATEMENT](#ForStatementITERATION_STATEMENT)
+[ALIASES](#ReferenceALIASES)
-[CONDITION](#ForStatementCONDITION)
+[RESOLUTION_HELPER](#ReferenceRESOLUTION_HELPER)
-[STATEMENT](#ForStatementSTATEMENT)
+[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### CONDITION_DECLARATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"CONDITION_DECLARATION¹"-->ForStatementCONDITION_DECLARATION[Declaration]:::outer
-```
-#### INITIALIZER_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"INITIALIZER_STATEMENT¹"-->ForStatementINITIALIZER_STATEMENT[Statement]:::outer
-```
-#### ITERATION_STATEMENT
+#### BASE
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"ITERATION_STATEMENT¹"-->ForStatementITERATION_STATEMENT[Statement]:::outer
+MemberExpression--"BASE¹"-->MemberExpressionBASE[Expression]:::outer
```
-#### CONDITION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"CONDITION¹"-->ForStatementCONDITION[Expression]:::outer
-```
-#### STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"STATEMENT¹"-->ForStatementSTATEMENT[Statement]:::outer
-```
-## CatchClause
+### Properties
+operatorCode : String
+
+Inherited Properties
+access : AccessValues
+
+code : String
+
+isStaticAccess : boolean
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## BinaryOperator
**Labels**:[Node](#enode)
[Statement](#estatement)
-[CatchClause](#ecatchclause)
+[Expression](#eexpression)
+[BinaryOperator](#ebinaryoperator)
+
+### Children
+[ShortCircuitOperator](#eshortcircuitoperator)
### Relationships
-[PARAMETER](#CatchClausePARAMETER)
+[LHS](#BinaryOperatorLHS)
+[RHS](#BinaryOperatorRHS)
+Inherited Relationships
-[BODY](#CatchClauseBODY)
+[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### PARAMETER
+#### LHS
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CatchClause--"PARAMETER¹"-->CatchClausePARAMETER[VariableDeclaration]:::outer
+BinaryOperator--"LHS¹"-->BinaryOperatorLHS[Expression]:::outer
```
-#### BODY
+#### RHS
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CatchClause--"BODY¹"-->CatchClauseBODY[BlockStatement]:::outer
+BinaryOperator--"RHS¹"-->BinaryOperatorRHS[Expression]:::outer
```
-## SwitchStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[SwitchStatement](#eswitchstatement)
+### Properties
+operatorCode : String
-### Relationships
-[INITIALIZER_STATEMENT](#SwitchStatementINITIALIZER_STATEMENT)
+Inherited Properties
+code : String
-[SELECTOR_DECLARATION](#SwitchStatementSELECTOR_DECLARATION)
+argumentIndex : int
-[STATEMENT](#SwitchStatementSTATEMENT)
+file : String
-[SELECTOR](#SwitchStatementSELECTOR)
+isImplicit : boolean
-[LOCALS](#StatementLOCALS)
+fullName : String
-[DFG](#NodeDFG)
+localName : String
-[EOG](#NodeEOG)
+name : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+nameDelimiter : String
-[AST](#NodeAST)
+comment : String
-[SCOPE](#NodeSCOPE)
+artifact : String
-[TYPEDEFS](#NodeTYPEDEFS)
+startLine : int
-#### INITIALIZER_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SwitchStatement--"INITIALIZER_STATEMENT¹"-->SwitchStatementINITIALIZER_STATEMENT[Statement]:::outer
-```
-#### SELECTOR_DECLARATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SwitchStatement--"SELECTOR_DECLARATION¹"-->SwitchStatementSELECTOR_DECLARATION[Declaration]:::outer
-```
-#### STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SwitchStatement--"STATEMENT¹"-->SwitchStatementSTATEMENT[Statement]:::outer
-```
-#### SELECTOR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SwitchStatement--"SELECTOR¹"-->SwitchStatementSELECTOR[Expression]:::outer
-```
-## GotoStatement
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ShortCircuitOperator
**Labels**:[Node](#enode)
[Statement](#estatement)
-[GotoStatement](#egotostatement)
+[Expression](#eexpression)
+[BinaryOperator](#ebinaryoperator)
+[ShortCircuitOperator](#eshortcircuitoperator)
### Relationships
-[TARGET_LABEL](#GotoStatementTARGET_LABEL)
+Inherited Relationships
-[LOCALS](#StatementLOCALS)
+[LHS](#BinaryOperatorLHS)
-[DFG](#NodeDFG)
+[RHS](#BinaryOperatorRHS)
+
+[TYPE](#ExpressionTYPE)
+
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
+
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### TARGET_LABEL
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-GotoStatement--"TARGET_LABEL¹"-->GotoStatementTARGET_LABEL[LabelStatement]:::outer
-```
-## WhileStatement
+### Properties
+Inherited Properties
+code : String
+
+operatorCode : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ConditionalExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
-[WhileStatement](#ewhilestatement)
+[Expression](#eexpression)
+[ConditionalExpression](#econditionalexpression)
### Relationships
-[CONDITION_DECLARATION](#WhileStatementCONDITION_DECLARATION)
+[ELSE_EXPRESSION](#ConditionalExpressionELSE_EXPRESSION)
+[CONDITION](#ConditionalExpressionCONDITION)
+[THEN_EXPRESSION](#ConditionalExpressionTHEN_EXPRESSION)
+Inherited Relationships
-[CONDITION](#WhileStatementCONDITION)
+[TYPE](#ExpressionTYPE)
-[STATEMENT](#WhileStatementSTATEMENT)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### CONDITION_DECLARATION
+#### ELSE_EXPRESSION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-WhileStatement--"CONDITION_DECLARATION¹"-->WhileStatementCONDITION_DECLARATION[Declaration]:::outer
+ConditionalExpression--"ELSE_EXPRESSION¹"-->ConditionalExpressionELSE_EXPRESSION[Expression]:::outer
```
-#### CONDITION
+#### CONDITION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-WhileStatement--"CONDITION¹"-->WhileStatementCONDITION[Expression]:::outer
+ConditionalExpression--"CONDITION¹"-->ConditionalExpressionCONDITION[Expression]:::outer
```
-#### STATEMENT
+#### THEN_EXPRESSION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-WhileStatement--"STATEMENT¹"-->WhileStatementSTATEMENT[Statement]:::outer
+ConditionalExpression--"THEN_EXPRESSION¹"-->ConditionalExpressionTHEN_EXPRESSION[Expression]:::outer
```
-## BlockStatement
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## InitializerListExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
-[BlockStatement](#ecompoundstatement)
+[Expression](#eexpression)
+[InitializerListExpression](#einitializerlistexpression)
### Relationships
-[STATEMENTS](#BlockStatementSTATEMENTS)
+[INITIALIZERS](#InitializerListExpressionINITIALIZERS)
+Inherited Relationships
-[LOCALS](#StatementLOCALS)
+[TYPE](#ExpressionTYPE)
-[DFG](#NodeDFG)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
+
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### STATEMENTS
+#### INITIALIZERS
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-BlockStatement--"STATEMENTS*"-->BlockStatementSTATEMENTS[Statement]:::outer
+InitializerListExpression--"INITIALIZERS*"-->InitializerListExpressionINITIALIZERS[Expression]:::outer
```
-## ContinueStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[ContinueStatement](#econtinuestatement)
+### Properties
+Inherited Properties
+code : String
-### Relationships
-[LOCALS](#StatementLOCALS)
+argumentIndex : int
-[DFG](#NodeDFG)
+file : String
-[EOG](#NodeEOG)
+isImplicit : boolean
-[ANNOTATIONS](#NodeANNOTATIONS)
+fullName : String
-[AST](#NodeAST)
+localName : String
-[SCOPE](#NodeSCOPE)
+name : String
-[TYPEDEFS](#NodeTYPEDEFS)
+nameDelimiter : String
-## DefaultStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[DefaultStatement](#edefaultstatement)
+comment : String
-### Relationships
-[LOCALS](#StatementLOCALS)
+artifact : String
-[DFG](#NodeDFG)
+startLine : int
-[EOG](#NodeEOG)
+endLine : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+startColumn : int
-[AST](#NodeAST)
+endColumn : int
-[SCOPE](#NodeSCOPE)
+isInferred : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## SynchronizedStatement
+## DeleteExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
-[SynchronizedStatement](#esynchronizedstatement)
+[Expression](#eexpression)
+[DeleteExpression](#edeleteexpression)
### Relationships
-[BLOCK_STATEMENT](#SynchronizedStatementBLOCK_STATEMENT)
+[OPERAND](#DeleteExpressionOPERAND)
+Inherited Relationships
-[EXPRESSION](#SynchronizedStatementEXPRESSION)
+[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### BLOCK_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SynchronizedStatement--"BLOCK_STATEMENT¹"-->SynchronizedStatementBLOCK_STATEMENT[BlockStatement]:::outer
-```
-#### EXPRESSION
+#### OPERAND
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SynchronizedStatement--"EXPRESSION¹"-->SynchronizedStatementEXPRESSION[Expression]:::outer
+DeleteExpression--"OPERAND¹"-->DeleteExpressionOPERAND[Expression]:::outer
```
-## TryStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[TryStatement](#etrystatement)
+### Properties
+Inherited Properties
+code : String
-### Relationships
-[RESOURCES](#TryStatementRESOURCES)
+argumentIndex : int
-[FINALLY_BLOCK](#TryStatementFINALLY_BLOCK)
+file : String
-[TRY_BLOCK](#TryStatementTRY_BLOCK)
+isImplicit : boolean
-[CATCH_CLAUSES](#TryStatementCATCH_CLAUSES)
+fullName : String
-[LOCALS](#StatementLOCALS)
+localName : String
-[DFG](#NodeDFG)
+name : String
-[EOG](#NodeEOG)
+nameDelimiter : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+comment : String
-[AST](#NodeAST)
+artifact : String
-[SCOPE](#NodeSCOPE)
+startLine : int
-[TYPEDEFS](#NodeTYPEDEFS)
+endLine : int
-#### RESOURCES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TryStatement--"RESOURCES*"-->TryStatementRESOURCES[Statement]:::outer
-```
-#### FINALLY_BLOCK
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TryStatement--"FINALLY_BLOCK¹"-->TryStatementFINALLY_BLOCK[BlockStatement]:::outer
-```
-#### TRY_BLOCK
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TryStatement--"TRY_BLOCK¹"-->TryStatementTRY_BLOCK[BlockStatement]:::outer
-```
-#### CATCH_CLAUSES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TryStatement--"CATCH_CLAUSES*"-->TryStatementCATCH_CLAUSES[CatchClause]:::outer
-```
-## ForEachStatement
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## SubscriptExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
-[ForEachStatement](#eforeachstatement)
+[Expression](#eexpression)
+[SubscriptExpression](#esubscriptexpression)
### Relationships
-[STATEMENT](#ForEachStatementSTATEMENT)
+[ARRAY_EXPRESSION](#SubscriptExpressionARRAY_EXPRESSION)
+[SUBSCRIPT_EXPRESSION](#SubscriptExpressionSUBSCRIPT_EXPRESSION)
+Inherited Relationships
-[VARIABLE](#ForEachStatementVARIABLE)
+[TYPE](#ExpressionTYPE)
-[ITERABLE](#ForEachStatementITERABLE)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForEachStatement--"STATEMENT¹"-->ForEachStatementSTATEMENT[Statement]:::outer
-```
-#### VARIABLE
+#### ARRAY_EXPRESSION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForEachStatement--"VARIABLE¹"-->ForEachStatementVARIABLE[Statement]:::outer
+SubscriptExpression--"ARRAY_EXPRESSION¹"-->SubscriptExpressionARRAY_EXPRESSION[Expression]:::outer
```
-#### ITERABLE
+#### SUBSCRIPT_EXPRESSION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForEachStatement--"ITERABLE¹"-->ForEachStatementITERABLE[Statement]:::outer
+SubscriptExpression--"SUBSCRIPT_EXPRESSION¹"-->SubscriptExpressionSUBSCRIPT_EXPRESSION[Expression]:::outer
```
-## LabelStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[LabelStatement](#elabelstatement)
+### Properties
+Inherited Properties
+code : String
-### Relationships
-[SUB_STATEMENT](#LabelStatementSUB_STATEMENT)
+argumentIndex : int
-[LOCALS](#StatementLOCALS)
+file : String
-[DFG](#NodeDFG)
+isImplicit : boolean
-[EOG](#NodeEOG)
+fullName : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+localName : String
-[AST](#NodeAST)
+name : String
-[SCOPE](#NodeSCOPE)
+nameDelimiter : String
-[TYPEDEFS](#NodeTYPEDEFS)
+comment : String
-#### SUB_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-LabelStatement--"SUB_STATEMENT¹"-->LabelStatementSUB_STATEMENT[Statement]:::outer
-```
-## BreakStatement
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ProblemExpression
**Labels**:[Node](#enode)
[Statement](#estatement)
-[BreakStatement](#ebreakstatement)
+[Expression](#eexpression)
+[ProblemExpression](#eproblemexpression)
### Relationships
-[LOCALS](#StatementLOCALS)
+Inherited Relationships
-[DFG](#NodeDFG)
+[TYPE](#ExpressionTYPE)
+
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
+
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## EmptyStatement
-**Labels**:[Node](#enode)
-[Statement](#estatement)
-[EmptyStatement](#eemptystatement)
+### Properties
+problem : String
-### Relationships
-[LOCALS](#StatementLOCALS)
+problemType : ProblemType
-[DFG](#NodeDFG)
+Inherited Properties
+code : String
-[EOG](#NodeEOG)
+argumentIndex : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+file : String
-[AST](#NodeAST)
+isImplicit : boolean
-[SCOPE](#NodeSCOPE)
+fullName : String
-[TYPEDEFS](#NodeTYPEDEFS)
+localName : String
-## Declaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
+name : String
-### Children
-[ValueDeclaration](#evaluedeclaration)
-[TemplateDeclaration](#etemplatedeclaration)
-[EnumDeclaration](#eenumdeclaration)
-[TypedefDeclaration](#etypedefdeclaration)
-[UsingDirective](#eusingdirective)
-[NamespaceDeclaration](#enamespacedeclaration)
-[RecordDeclaration](#erecorddeclaration)
-[DeclarationSequence](#edeclarationsequence)
-[TranslationUnitDeclaration](#etranslationunitdeclaration)
-[IncludeDeclaration](#eincludedeclaration)
+nameDelimiter : String
-### Relationships
-[DFG](#NodeDFG)
+comment : String
-[EOG](#NodeEOG)
+artifact : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+startLine : int
-[AST](#NodeAST)
+endLine : int
-[SCOPE](#NodeSCOPE)
+startColumn : int
-[TYPEDEFS](#NodeTYPEDEFS)
+endColumn : int
-## ValueDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
+isInferred : boolean
-### Children
-[FieldDeclaration](#efielddeclaration)
-[VariableDeclaration](#evariabledeclaration)
-[ProblemDeclaration](#eproblemdeclaration)
-[EnumConstantDeclaration](#eenumconstantdeclaration)
-[FunctionDeclaration](#efunctiondeclaration)
-[ParameterDeclaration](#eparamvariabledeclaration)
-[TypeParameterDeclaration](#etypeparamdeclaration)
+
+
+## Literal
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[Expression](#eexpression)
+[Literal](#eliteral)
### Relationships
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
+Inherited Relationships
-[TYPE](#ValueDeclarationTYPE)
+[TYPE](#ExpressionTYPE)
-[USAGE](#ValueDeclarationUSAGE)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### POSSIBLE_SUB_TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ValueDeclaration--"POSSIBLE_SUB_TYPES*"-->ValueDeclarationPOSSIBLE_SUB_TYPES[Type]:::outer
-```
-#### TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ValueDeclaration--"TYPE¹"-->ValueDeclarationTYPE[Type]:::outer
-```
-#### USAGE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ValueDeclaration--"USAGE*"-->ValueDeclarationUSAGE[Reference]:::outer
-```
-## FieldDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
-[FieldDeclaration](#efielddeclaration)
+### Properties
+value : Object
-### Relationships
-[INITIALIZER](#FieldDeclarationINITIALIZER)
+Inherited Properties
+code : String
-[DEFINES](#FieldDeclarationDEFINES)
+argumentIndex : int
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
+file : String
-[TYPE](#ValueDeclarationTYPE)
+isImplicit : boolean
-[USAGE](#ValueDeclarationUSAGE)
+fullName : String
-[DFG](#NodeDFG)
+localName : String
-[EOG](#NodeEOG)
+name : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+nameDelimiter : String
-[AST](#NodeAST)
+comment : String
-[SCOPE](#NodeSCOPE)
+artifact : String
-[TYPEDEFS](#NodeTYPEDEFS)
+startLine : int
-#### INITIALIZER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FieldDeclaration--"INITIALIZER¹"-->FieldDeclarationINITIALIZER[Expression]:::outer
-```
-#### DEFINES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FieldDeclaration--"DEFINES¹"-->FieldDeclarationDEFINES[FieldDeclaration]:::outer
-```
-## VariableDeclaration
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## TypeIdExpression
**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
-[VariableDeclaration](#evariabledeclaration)
+[Statement](#estatement)
+[Expression](#eexpression)
+[TypeIdExpression](#etypeidexpression)
### Relationships
-[INITIALIZER](#VariableDeclarationINITIALIZER)
+[REFERENCED_TYPE](#TypeIdExpressionREFERENCED_TYPE)
+Inherited Relationships
-[TEMPLATE_PARAMETERS](#VariableDeclarationTEMPLATE_PARAMETERS)
+[TYPE](#ExpressionTYPE)
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[TYPE](#ValueDeclarationTYPE)
+[LOCALS](#StatementLOCALS)
-[USAGE](#ValueDeclarationUSAGE)
+[EOG](#NodeEOG)
-[DFG](#NodeDFG)
+[CDG](#NodeCDG)
-[EOG](#NodeEOG)
+[DFG](#NodeDFG)
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### INITIALIZER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-VariableDeclaration--"INITIALIZER¹"-->VariableDeclarationINITIALIZER[Expression]:::outer
-```
-#### TEMPLATE_PARAMETERS
+#### REFERENCED_TYPE
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-VariableDeclaration--"TEMPLATE_PARAMETERS*"-->VariableDeclarationTEMPLATE_PARAMETERS[Node]:::outer
+TypeIdExpression--"REFERENCED_TYPE¹"-->TypeIdExpressionREFERENCED_TYPE[Type]:::outer
```
-## ProblemDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
-[ProblemDeclaration](#eproblemdeclaration)
+### Properties
+operatorCode : String
-### Relationships
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
+Inherited Properties
+code : String
-[TYPE](#ValueDeclarationTYPE)
+argumentIndex : int
-[USAGE](#ValueDeclarationUSAGE)
+file : String
-[DFG](#NodeDFG)
+isImplicit : boolean
-[EOG](#NodeEOG)
+fullName : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+localName : String
-[AST](#NodeAST)
+name : String
-[SCOPE](#NodeSCOPE)
+nameDelimiter : String
-[TYPEDEFS](#NodeTYPEDEFS)
+comment : String
-## EnumConstantDeclaration
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ExpressionList
**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
-[EnumConstantDeclaration](#eenumconstantdeclaration)
+[Statement](#estatement)
+[Expression](#eexpression)
+[ExpressionList](#eexpressionlist)
### Relationships
-[INITIALIZER](#EnumConstantDeclarationINITIALIZER)
-
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
+[SUBEXPR](#ExpressionListSUBEXPR)
+Inherited Relationships
-[TYPE](#ValueDeclarationTYPE)
+[TYPE](#ExpressionTYPE)
-[USAGE](#ValueDeclarationUSAGE)
+[ASSIGNED_TYPES](#ExpressionASSIGNED_TYPES)
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### INITIALIZER
+#### SUBEXPR
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-EnumConstantDeclaration--"INITIALIZER¹"-->EnumConstantDeclarationINITIALIZER[Expression]:::outer
+ExpressionList--"SUBEXPR*"-->ExpressionListSUBEXPR[Statement]:::outer
```
-## FunctionDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
-[FunctionDeclaration](#efunctiondeclaration)
+### Properties
+Inherited Properties
+code : String
-### Children
-[MethodDeclaration](#emethoddeclaration)
+argumentIndex : int
-### Relationships
-[THROWS_TYPES](#FunctionDeclarationTHROWS_TYPES)
+file : String
-[OVERRIDES](#FunctionDeclarationOVERRIDES)
+isImplicit : boolean
-[BODY](#FunctionDeclarationBODY)
+fullName : String
-[RECORDS](#FunctionDeclarationRECORDS)
+localName : String
-[RETURN_TYPES](#FunctionDeclarationRETURN_TYPES)
+name : String
-[PARAMETERS](#FunctionDeclarationPARAMETERS)
+nameDelimiter : String
-[DEFINES](#FunctionDeclarationDEFINES)
+comment : String
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
+artifact : String
-[TYPE](#ValueDeclarationTYPE)
+startLine : int
-[USAGE](#ValueDeclarationUSAGE)
+endLine : int
-[DFG](#NodeDFG)
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## CaseStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[CaseStatement](#ecasestatement)
+
+### Relationships
+[CASE_EXPRESSION](#CaseStatementCASE_EXPRESSION)
+Inherited Relationships
+
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### THROWS_TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"THROWS_TYPES*"-->FunctionDeclarationTHROWS_TYPES[Type]:::outer
-```
-#### OVERRIDES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"OVERRIDES*"-->FunctionDeclarationOVERRIDES[FunctionDeclaration]:::outer
-```
-#### BODY
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"BODY¹"-->FunctionDeclarationBODY[Statement]:::outer
-```
-#### RECORDS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"RECORDS*"-->FunctionDeclarationRECORDS[RecordDeclaration]:::outer
-```
-#### RETURN_TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"RETURN_TYPES*"-->FunctionDeclarationRETURN_TYPES[Type]:::outer
-```
-#### PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"PARAMETERS*"-->FunctionDeclarationPARAMETERS[ParameterDeclaration]:::outer
-```
-#### DEFINES
+#### CASE_EXPRESSION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"DEFINES¹"-->FunctionDeclarationDEFINES[FunctionDeclaration]:::outer
+CaseStatement--"CASE_EXPRESSION¹"-->CaseStatementCASE_EXPRESSION[Expression]:::outer
```
-## MethodDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
-[FunctionDeclaration](#efunctiondeclaration)
-[MethodDeclaration](#emethoddeclaration)
+### Properties
+Inherited Properties
+code : String
-### Children
-[ConstructorDeclaration](#econstructordeclaration)
+argumentIndex : int
-### Relationships
-[RECEIVER](#MethodDeclarationRECEIVER)
+file : String
-[RECORD_DECLARATION](#MethodDeclarationRECORD_DECLARATION)
+isImplicit : boolean
-[THROWS_TYPES](#FunctionDeclarationTHROWS_TYPES)
+fullName : String
-[OVERRIDES](#FunctionDeclarationOVERRIDES)
+localName : String
-[BODY](#FunctionDeclarationBODY)
+name : String
-[RECORDS](#FunctionDeclarationRECORDS)
+nameDelimiter : String
-[RETURN_TYPES](#FunctionDeclarationRETURN_TYPES)
+comment : String
-[PARAMETERS](#FunctionDeclarationPARAMETERS)
+artifact : String
-[DEFINES](#FunctionDeclarationDEFINES)
+startLine : int
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
+endLine : int
-[TYPE](#ValueDeclarationTYPE)
+startColumn : int
-[USAGE](#ValueDeclarationUSAGE)
+endColumn : int
-[DFG](#NodeDFG)
+isInferred : boolean
+
+
+
+## ReturnStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[ReturnStatement](#ereturnstatement)
+
+### Relationships
+[RETURN_VALUES](#ReturnStatementRETURN_VALUES)
+Inherited Relationships
+
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### RECEIVER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-MethodDeclaration--"RECEIVER¹"-->MethodDeclarationRECEIVER[VariableDeclaration]:::outer
-```
-#### RECORD_DECLARATION
+#### RETURN_VALUES
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-MethodDeclaration--"RECORD_DECLARATION¹"-->MethodDeclarationRECORD_DECLARATION[RecordDeclaration]:::outer
+ReturnStatement--"RETURN_VALUES*"-->ReturnStatementRETURN_VALUES[Expression]:::outer
```
-## ConstructorDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
-[FunctionDeclaration](#efunctiondeclaration)
-[MethodDeclaration](#emethoddeclaration)
-[ConstructorDeclaration](#econstructordeclaration)
-
-### Relationships
-[RECEIVER](#MethodDeclarationRECEIVER)
-
-[RECORD_DECLARATION](#MethodDeclarationRECORD_DECLARATION)
+### Properties
+Inherited Properties
+code : String
-[THROWS_TYPES](#FunctionDeclarationTHROWS_TYPES)
-
-[OVERRIDES](#FunctionDeclarationOVERRIDES)
+argumentIndex : int
-[BODY](#FunctionDeclarationBODY)
+file : String
-[RECORDS](#FunctionDeclarationRECORDS)
+isImplicit : boolean
-[RETURN_TYPES](#FunctionDeclarationRETURN_TYPES)
+fullName : String
-[PARAMETERS](#FunctionDeclarationPARAMETERS)
+localName : String
-[DEFINES](#FunctionDeclarationDEFINES)
+name : String
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
+nameDelimiter : String
-[TYPE](#ValueDeclarationTYPE)
+comment : String
-[USAGE](#ValueDeclarationUSAGE)
+artifact : String
-[DFG](#NodeDFG)
+startLine : int
-[EOG](#NodeEOG)
+endLine : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+startColumn : int
-[AST](#NodeAST)
+endColumn : int
-[SCOPE](#NodeSCOPE)
+isInferred : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## ParameterDeclaration
+## IfStatement
**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
-[ParameterDeclaration](#eparamvariabledeclaration)
+[Statement](#estatement)
+[IfStatement](#eifstatement)
### Relationships
-[DEFAULT](#ParameterDeclarationDEFAULT)
+[CONDITION_DECLARATION](#IfStatementCONDITION_DECLARATION)
+[INITIALIZER_STATEMENT](#IfStatementINITIALIZER_STATEMENT)
+[THEN_STATEMENT](#IfStatementTHEN_STATEMENT)
+[CONDITION](#IfStatementCONDITION)
+[ELSE_STATEMENT](#IfStatementELSE_STATEMENT)
+Inherited Relationships
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
+[LOCALS](#StatementLOCALS)
-[TYPE](#ValueDeclarationTYPE)
+[EOG](#NodeEOG)
-[USAGE](#ValueDeclarationUSAGE)
+[CDG](#NodeCDG)
[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### DEFAULT
+#### CONDITION_DECLARATION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ParameterDeclaration--"DEFAULT¹"-->ParameterDeclarationDEFAULT[Expression]:::outer
+IfStatement--"CONDITION_DECLARATION¹"-->IfStatementCONDITION_DECLARATION[Declaration]:::outer
```
-## TypeParameterDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[ValueDeclaration](#evaluedeclaration)
-[TypeParameterDeclaration](#etypeparamdeclaration)
-
-### Relationships
-[DEFAULT](#TypeParameterDeclarationDEFAULT)
-
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-
-[TYPE](#ValueDeclarationTYPE)
+#### INITIALIZER_STATEMENT
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+IfStatement--"INITIALIZER_STATEMENT¹"-->IfStatementINITIALIZER_STATEMENT[Statement]:::outer
+```
+#### THEN_STATEMENT
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+IfStatement--"THEN_STATEMENT¹"-->IfStatementTHEN_STATEMENT[Statement]:::outer
+```
+#### CONDITION
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+IfStatement--"CONDITION¹"-->IfStatementCONDITION[Expression]:::outer
+```
+#### ELSE_STATEMENT
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+IfStatement--"ELSE_STATEMENT¹"-->IfStatementELSE_STATEMENT[Statement]:::outer
+```
+### Properties
+isConstExpression : boolean
-[USAGE](#ValueDeclarationUSAGE)
+Inherited Properties
+code : String
-[DFG](#NodeDFG)
+argumentIndex : int
-[EOG](#NodeEOG)
+file : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+isImplicit : boolean
-[AST](#NodeAST)
+fullName : String
-[SCOPE](#NodeSCOPE)
+localName : String
-[TYPEDEFS](#NodeTYPEDEFS)
+name : String
-#### DEFAULT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TypeParameterDeclaration--"DEFAULT¹"-->TypeParameterDeclarationDEFAULT[Type]:::outer
-```
-## TemplateDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[TemplateDeclaration](#etemplatedeclaration)
+nameDelimiter : String
-### Children
-[ClassTemplateDeclaration](#eclasstemplatedeclaration)
-[FunctionTemplateDeclaration](#efunctiontemplatedeclaration)
+comment : String
-### Relationships
-[PARAMETERS](#TemplateDeclarationPARAMETERS)
+artifact : String
-[DFG](#NodeDFG)
+startLine : int
-[EOG](#NodeEOG)
+endLine : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+startColumn : int
-[AST](#NodeAST)
+endColumn : int
-[SCOPE](#NodeSCOPE)
+isInferred : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TemplateDeclaration--"PARAMETERS*"-->TemplateDeclarationPARAMETERS[Declaration]:::outer
-```
-## ClassTemplateDeclaration
+## ForStatement
**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[TemplateDeclaration](#etemplatedeclaration)
-[ClassTemplateDeclaration](#eclasstemplatedeclaration)
+[Statement](#estatement)
+[ForStatement](#eforstatement)
### Relationships
-[REALIZATION](#ClassTemplateDeclarationREALIZATION)
-
-[PARAMETERS](#TemplateDeclarationPARAMETERS)
+[CONDITION_DECLARATION](#ForStatementCONDITION_DECLARATION)
+[INITIALIZER_STATEMENT](#ForStatementINITIALIZER_STATEMENT)
+[ITERATION_STATEMENT](#ForStatementITERATION_STATEMENT)
+[CONDITION](#ForStatementCONDITION)
+[STATEMENT](#ForStatementSTATEMENT)
+Inherited Relationships
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### REALIZATION
+#### CONDITION_DECLARATION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ClassTemplateDeclaration--"REALIZATION*"-->ClassTemplateDeclarationREALIZATION[RecordDeclaration]:::outer
+ForStatement--"CONDITION_DECLARATION¹"-->ForStatementCONDITION_DECLARATION[Declaration]:::outer
```
-## FunctionTemplateDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[TemplateDeclaration](#etemplatedeclaration)
-[FunctionTemplateDeclaration](#efunctiontemplatedeclaration)
-
-### Relationships
-[REALIZATION](#FunctionTemplateDeclarationREALIZATION)
-
-[PARAMETERS](#TemplateDeclarationPARAMETERS)
-
-[DFG](#NodeDFG)
-
-[EOG](#NodeEOG)
-
-[ANNOTATIONS](#NodeANNOTATIONS)
-
-[AST](#NodeAST)
-
-[SCOPE](#NodeSCOPE)
-
-[TYPEDEFS](#NodeTYPEDEFS)
-
-#### REALIZATION
+#### INITIALIZER_STATEMENT
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionTemplateDeclaration--"REALIZATION*"-->FunctionTemplateDeclarationREALIZATION[FunctionDeclaration]:::outer
+ForStatement--"INITIALIZER_STATEMENT¹"-->ForStatementINITIALIZER_STATEMENT[Statement]:::outer
```
-## EnumDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[EnumDeclaration](#eenumdeclaration)
-
-### Relationships
-[ENTRIES](#EnumDeclarationENTRIES)
-
-[SUPER_TYPE_DECLARATIONS](#EnumDeclarationSUPER_TYPE_DECLARATIONS)
-
-[SUPER_TYPES](#EnumDeclarationSUPER_TYPES)
-
-[DFG](#NodeDFG)
-
-[EOG](#NodeEOG)
-
-[ANNOTATIONS](#NodeANNOTATIONS)
-
-[AST](#NodeAST)
-
-[SCOPE](#NodeSCOPE)
-
-[TYPEDEFS](#NodeTYPEDEFS)
-
-#### ENTRIES
+#### ITERATION_STATEMENT
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-EnumDeclaration--"ENTRIES*"-->EnumDeclarationENTRIES[EnumConstantDeclaration]:::outer
+ForStatement--"ITERATION_STATEMENT¹"-->ForStatementITERATION_STATEMENT[Statement]:::outer
```
-#### SUPER_TYPE_DECLARATIONS
+#### CONDITION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-EnumDeclaration--"SUPER_TYPE_DECLARATIONS*"-->EnumDeclarationSUPER_TYPE_DECLARATIONS[RecordDeclaration]:::outer
+ForStatement--"CONDITION¹"-->ForStatementCONDITION[Expression]:::outer
```
-#### SUPER_TYPES
+#### STATEMENT
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-EnumDeclaration--"SUPER_TYPES*"-->EnumDeclarationSUPER_TYPES[Type]:::outer
+ForStatement--"STATEMENT¹"-->ForStatementSTATEMENT[Statement]:::outer
```
-## TypedefDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[TypedefDeclaration](#etypedefdeclaration)
+### Properties
+Inherited Properties
+code : String
-### Relationships
-[ALIAS](#TypedefDeclarationALIAS)
+argumentIndex : int
-[TYPE](#TypedefDeclarationTYPE)
+file : String
-[DFG](#NodeDFG)
+isImplicit : boolean
-[EOG](#NodeEOG)
+fullName : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+localName : String
-[AST](#NodeAST)
+name : String
-[SCOPE](#NodeSCOPE)
+nameDelimiter : String
-[TYPEDEFS](#NodeTYPEDEFS)
+comment : String
-#### ALIAS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TypedefDeclaration--"ALIAS¹"-->TypedefDeclarationALIAS[Type]:::outer
-```
-#### TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TypedefDeclaration--"TYPE¹"-->TypedefDeclarationTYPE[Type]:::outer
-```
-## UsingDirective
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[UsingDirective](#eusingdirective)
+artifact : String
-### Relationships
-[DFG](#NodeDFG)
+startLine : int
-[EOG](#NodeEOG)
+endLine : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+startColumn : int
-[AST](#NodeAST)
+endColumn : int
-[SCOPE](#NodeSCOPE)
+isInferred : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## NamespaceDeclaration
+## CatchClause
**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[NamespaceDeclaration](#enamespacedeclaration)
+[Statement](#estatement)
+[CatchClause](#ecatchclause)
### Relationships
-[STATEMENTS](#NamespaceDeclarationSTATEMENTS)
-
-[DECLARATIONS](#NamespaceDeclarationDECLARATIONS)
+[BODY](#CatchClauseBODY)
+[PARAMETER](#CatchClausePARAMETER)
+Inherited Relationships
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### STATEMENTS
+#### BODY
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NamespaceDeclaration--"STATEMENTS*"-->NamespaceDeclarationSTATEMENTS[Statement]:::outer
+CatchClause--"BODY¹"-->CatchClauseBODY[Block]:::outer
```
-#### DECLARATIONS
+#### PARAMETER
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NamespaceDeclaration--"DECLARATIONS*"-->NamespaceDeclarationDECLARATIONS[Declaration]:::outer
+CatchClause--"PARAMETER¹"-->CatchClausePARAMETER[VariableDeclaration]:::outer
```
-## RecordDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[RecordDeclaration](#erecorddeclaration)
+### Properties
+Inherited Properties
+code : String
-### Relationships
-[IMPORTS](#RecordDeclarationIMPORTS)
+argumentIndex : int
-[CONSTRUCTORS](#RecordDeclarationCONSTRUCTORS)
+file : String
-[FIELDS](#RecordDeclarationFIELDS)
+isImplicit : boolean
-[TEMPLATES](#RecordDeclarationTEMPLATES)
+fullName : String
-[STATIC_IMPORTS](#RecordDeclarationSTATIC_IMPORTS)
+localName : String
-[RECORDS](#RecordDeclarationRECORDS)
+name : String
-[SUPER_TYPE_DECLARATIONS](#RecordDeclarationSUPER_TYPE_DECLARATIONS)
+nameDelimiter : String
-[STATEMENTS](#RecordDeclarationSTATEMENTS)
+comment : String
-[METHODS](#RecordDeclarationMETHODS)
+artifact : String
-[DFG](#NodeDFG)
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## SwitchStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[SwitchStatement](#eswitchstatement)
+
+### Relationships
+[INITIALIZER_STATEMENT](#SwitchStatementINITIALIZER_STATEMENT)
+[SELECTOR_DECLARATION](#SwitchStatementSELECTOR_DECLARATION)
+[STATEMENT](#SwitchStatementSTATEMENT)
+[SELECTOR](#SwitchStatementSELECTOR)
+Inherited Relationships
+
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### IMPORTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"IMPORTS*"-->RecordDeclarationIMPORTS[Declaration]:::outer
-```
-#### CONSTRUCTORS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"CONSTRUCTORS*"-->RecordDeclarationCONSTRUCTORS[ConstructorDeclaration]:::outer
-```
-#### FIELDS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"FIELDS*"-->RecordDeclarationFIELDS[FieldDeclaration]:::outer
-```
-#### TEMPLATES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"TEMPLATES*"-->RecordDeclarationTEMPLATES[TemplateDeclaration]:::outer
-```
-#### STATIC_IMPORTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"STATIC_IMPORTS*"-->RecordDeclarationSTATIC_IMPORTS[ValueDeclaration]:::outer
-```
-#### RECORDS
+#### INITIALIZER_STATEMENT
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"RECORDS*"-->RecordDeclarationRECORDS[RecordDeclaration]:::outer
+SwitchStatement--"INITIALIZER_STATEMENT¹"-->SwitchStatementINITIALIZER_STATEMENT[Statement]:::outer
```
-#### SUPER_TYPE_DECLARATIONS
+#### SELECTOR_DECLARATION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"SUPER_TYPE_DECLARATIONS*"-->RecordDeclarationSUPER_TYPE_DECLARATIONS[RecordDeclaration]:::outer
+SwitchStatement--"SELECTOR_DECLARATION¹"-->SwitchStatementSELECTOR_DECLARATION[Declaration]:::outer
```
-#### STATEMENTS
+#### STATEMENT
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"STATEMENTS*"-->RecordDeclarationSTATEMENTS[Statement]:::outer
+SwitchStatement--"STATEMENT¹"-->SwitchStatementSTATEMENT[Statement]:::outer
```
-#### METHODS
+#### SELECTOR
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"METHODS*"-->RecordDeclarationMETHODS[MethodDeclaration]:::outer
+SwitchStatement--"SELECTOR¹"-->SwitchStatementSELECTOR[Expression]:::outer
```
-## DeclarationSequence
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## GotoStatement
**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[DeclarationSequence](#edeclarationsequence)
+[Statement](#estatement)
+[GotoStatement](#egotostatement)
### Relationships
-[CHILDREN](#DeclarationSequenceCHILDREN)
+[TARGET_LABEL](#GotoStatementTARGET_LABEL)
+Inherited Relationships
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### CHILDREN
+#### TARGET_LABEL
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DeclarationSequence--"CHILDREN*"-->DeclarationSequenceCHILDREN[Declaration]:::outer
+GotoStatement--"TARGET_LABEL¹"-->GotoStatementTARGET_LABEL[LabelStatement]:::outer
```
-## TranslationUnitDeclaration
-**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[TranslationUnitDeclaration](#etranslationunitdeclaration)
+### Properties
+labelName : String
-### Relationships
-[NAMESPACES](#TranslationUnitDeclarationNAMESPACES)
+Inherited Properties
+code : String
-[DECLARATIONS](#TranslationUnitDeclarationDECLARATIONS)
+argumentIndex : int
-[STATEMENTS](#TranslationUnitDeclarationSTATEMENTS)
+file : String
-[INCLUDES](#TranslationUnitDeclarationINCLUDES)
+isImplicit : boolean
-[DFG](#NodeDFG)
+fullName : String
-[EOG](#NodeEOG)
+localName : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+name : String
-[AST](#NodeAST)
+nameDelimiter : String
-[SCOPE](#NodeSCOPE)
+comment : String
-[TYPEDEFS](#NodeTYPEDEFS)
+artifact : String
-#### NAMESPACES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TranslationUnitDeclaration--"NAMESPACES*"-->TranslationUnitDeclarationNAMESPACES[NamespaceDeclaration]:::outer
-```
-#### DECLARATIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TranslationUnitDeclaration--"DECLARATIONS*"-->TranslationUnitDeclarationDECLARATIONS[Declaration]:::outer
-```
-#### STATEMENTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TranslationUnitDeclaration--"STATEMENTS*"-->TranslationUnitDeclarationSTATEMENTS[Statement]:::outer
-```
-#### INCLUDES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TranslationUnitDeclaration--"INCLUDES*"-->TranslationUnitDeclarationINCLUDES[IncludeDeclaration]:::outer
-```
-## IncludeDeclaration
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## WhileStatement
**Labels**:[Node](#enode)
-[Declaration](#edeclaration)
-[IncludeDeclaration](#eincludedeclaration)
+[Statement](#estatement)
+[WhileStatement](#ewhilestatement)
### Relationships
-[INCLUDES](#IncludeDeclarationINCLUDES)
-
-[PROBLEMS](#IncludeDeclarationPROBLEMS)
+[CONDITION_DECLARATION](#WhileStatementCONDITION_DECLARATION)
+[CONDITION](#WhileStatementCONDITION)
+[STATEMENT](#WhileStatementSTATEMENT)
+Inherited Relationships
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### INCLUDES
+#### CONDITION_DECLARATION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IncludeDeclaration--"INCLUDES*"-->IncludeDeclarationINCLUDES[IncludeDeclaration]:::outer
+WhileStatement--"CONDITION_DECLARATION¹"-->WhileStatementCONDITION_DECLARATION[Declaration]:::outer
```
-#### PROBLEMS
+#### CONDITION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IncludeDeclaration--"PROBLEMS*"-->IncludeDeclarationPROBLEMS[ProblemDeclaration]:::outer
+WhileStatement--"CONDITION¹"-->WhileStatementCONDITION[Expression]:::outer
```
-## Type
-**Labels**:[Node](#enode)
-[Type](#etype)
+#### STATEMENT
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+WhileStatement--"STATEMENT¹"-->WhileStatementSTATEMENT[Statement]:::outer
+```
+### Properties
+Inherited Properties
+code : String
-### Children
-[UnknownType](#eunknowntype)
-[ObjectType](#eobjecttype)
-[ParameterizedType](#eparameterizedtype)
-[PointerType](#epointertype)
-[FunctionPointerType](#efunctionpointertype)
-[TupleType](#etupletype)
-[IncompleteType](#eincompletetype)
-[ReferenceType](#ereferencetype)
-[FunctionType](#efunctiontype)
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ContinueStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[ContinueStatement](#econtinuestatement)
### Relationships
-[SUPER_TYPE](#TypeSUPER_TYPE)
+Inherited Relationships
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### SUPER_TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Type--"SUPER_TYPE*"-->TypeSUPER_TYPE[Type]:::outer
-```
-## UnknownType
+### Properties
+label : String
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## DefaultStatement
**Labels**:[Node](#enode)
-[Type](#etype)
-[UnknownType](#eunknowntype)
+[Statement](#estatement)
+[DefaultStatement](#edefaultstatement)
### Relationships
-[SUPER_TYPE](#TypeSUPER_TYPE)
+Inherited Relationships
-[DFG](#NodeDFG)
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## ObjectType
-**Labels**:[Node](#enode)
-[Type](#etype)
-[ObjectType](#eobjecttype)
+### Properties
+Inherited Properties
+code : String
-### Children
-[NumericType](#enumerictype)
-[StringType](#estringtype)
+argumentIndex : int
-### Relationships
-[GENERICS](#ObjectTypeGENERICS)
+file : String
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+isImplicit : boolean
-[SUPER_TYPE](#TypeSUPER_TYPE)
+fullName : String
-[DFG](#NodeDFG)
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## SynchronizedStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[SynchronizedStatement](#esynchronizedstatement)
+
+### Relationships
+[EXPRESSION](#SynchronizedStatementEXPRESSION)
+[BLOCK](#SynchronizedStatementBLOCK)
+Inherited Relationships
+
+[LOCALS](#StatementLOCALS)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### GENERICS
+#### EXPRESSION
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ObjectType--"GENERICS*"-->ObjectTypeGENERICS[Type]:::outer
+SynchronizedStatement--"EXPRESSION¹"-->SynchronizedStatementEXPRESSION[Expression]:::outer
```
-#### RECORD_DECLARATION
+#### BLOCK
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ObjectType--"RECORD_DECLARATION¹"-->ObjectTypeRECORD_DECLARATION[RecordDeclaration]:::outer
+SynchronizedStatement--"BLOCK¹"-->SynchronizedStatementBLOCK[Block]:::outer
```
-## NumericType
-**Labels**:[Node](#enode)
-[Type](#etype)
-[ObjectType](#eobjecttype)
-[NumericType](#enumerictype)
+### Properties
+Inherited Properties
+code : String
-### Children
-[IntegerType](#eintegertype)
-[FloatingPointType](#efloatingpointtype)
-[BooleanType](#ebooleantype)
+argumentIndex : int
-### Relationships
-[GENERICS](#ObjectTypeGENERICS)
+file : String
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+isImplicit : boolean
-[SUPER_TYPE](#TypeSUPER_TYPE)
+fullName : String
-[DFG](#NodeDFG)
+localName : String
-[EOG](#NodeEOG)
+name : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+nameDelimiter : String
-[AST](#NodeAST)
+comment : String
-[SCOPE](#NodeSCOPE)
+artifact : String
-[TYPEDEFS](#NodeTYPEDEFS)
+startLine : int
-## IntegerType
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## TryStatement
**Labels**:[Node](#enode)
-[Type](#etype)
-[ObjectType](#eobjecttype)
-[NumericType](#enumerictype)
-[IntegerType](#eintegertype)
+[Statement](#estatement)
+[TryStatement](#etrystatement)
### Relationships
-[GENERICS](#ObjectTypeGENERICS)
+[RESOURCES](#TryStatementRESOURCES)
+[FINALLY_BLOCK](#TryStatementFINALLY_BLOCK)
+[TRY_BLOCK](#TryStatementTRY_BLOCK)
+[CATCH_CLAUSES](#TryStatementCATCH_CLAUSES)
+Inherited Relationships
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+[LOCALS](#StatementLOCALS)
-[SUPER_TYPE](#TypeSUPER_TYPE)
+[EOG](#NodeEOG)
-[DFG](#NodeDFG)
+[CDG](#NodeCDG)
-[EOG](#NodeEOG)
+[DFG](#NodeDFG)
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## FloatingPointType
-**Labels**:[Node](#enode)
-[Type](#etype)
-[ObjectType](#eobjecttype)
-[NumericType](#enumerictype)
-[FloatingPointType](#efloatingpointtype)
+#### RESOURCES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TryStatement--"RESOURCES*"-->TryStatementRESOURCES[Statement]:::outer
+```
+#### FINALLY_BLOCK
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TryStatement--"FINALLY_BLOCK¹"-->TryStatementFINALLY_BLOCK[Block]:::outer
+```
+#### TRY_BLOCK
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TryStatement--"TRY_BLOCK¹"-->TryStatementTRY_BLOCK[Block]:::outer
+```
+#### CATCH_CLAUSES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TryStatement--"CATCH_CLAUSES*"-->TryStatementCATCH_CLAUSES[CatchClause]:::outer
+```
+### Properties
+Inherited Properties
+code : String
-### Relationships
-[GENERICS](#ObjectTypeGENERICS)
+argumentIndex : int
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+file : String
-[SUPER_TYPE](#TypeSUPER_TYPE)
+isImplicit : boolean
-[DFG](#NodeDFG)
+fullName : String
-[EOG](#NodeEOG)
+localName : String
-[ANNOTATIONS](#NodeANNOTATIONS)
+name : String
-[AST](#NodeAST)
+nameDelimiter : String
-[SCOPE](#NodeSCOPE)
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ForEachStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[ForEachStatement](#eforeachstatement)
+
+### Relationships
+[ITERABLE](#ForEachStatementITERABLE)
+[STATEMENT](#ForEachStatementSTATEMENT)
+[VARIABLE](#ForEachStatementVARIABLE)
+Inherited Relationships
+
+[LOCALS](#StatementLOCALS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### ITERABLE
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ForEachStatement--"ITERABLE¹"-->ForEachStatementITERABLE[Statement]:::outer
+```
+#### STATEMENT
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ForEachStatement--"STATEMENT¹"-->ForEachStatementSTATEMENT[Statement]:::outer
+```
+#### VARIABLE
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ForEachStatement--"VARIABLE¹"-->ForEachStatementVARIABLE[Statement]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## LabelStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[LabelStatement](#elabelstatement)
+
+### Relationships
+[SUB_STATEMENT](#LabelStatementSUB_STATEMENT)
+Inherited Relationships
+
+[LOCALS](#StatementLOCALS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### SUB_STATEMENT
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+LabelStatement--"SUB_STATEMENT¹"-->LabelStatementSUB_STATEMENT[Statement]:::outer
+```
+### Properties
+label : String
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## BreakStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[BreakStatement](#ebreakstatement)
+
+### Relationships
+Inherited Relationships
+
+[LOCALS](#StatementLOCALS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+label : String
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## DeclarationStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[DeclarationStatement](#edeclarationstatement)
+
+### Relationships
+[DECLARATIONS](#DeclarationStatementDECLARATIONS)
+Inherited Relationships
+
+[LOCALS](#StatementLOCALS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### DECLARATIONS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+DeclarationStatement--"DECLARATIONS*"-->DeclarationStatementDECLARATIONS[Declaration]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## EmptyStatement
+**Labels**:[Node](#enode)
+[Statement](#estatement)
+[EmptyStatement](#eemptystatement)
+
+### Relationships
+Inherited Relationships
+
+[LOCALS](#StatementLOCALS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## Declaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+
+### Children
+[ValueDeclaration](#evaluedeclaration)
+[TemplateDeclaration](#etemplatedeclaration)
+[RecordDeclaration](#erecorddeclaration)
+[TypedefDeclaration](#etypedefdeclaration)
+[NamespaceDeclaration](#enamespacedeclaration)
+[DeclarationSequence](#edeclarationsequence)
+[TranslationUnitDeclaration](#etranslationunitdeclaration)
+[UsingDeclaration](#eusingdeclaration)
+[IncludeDeclaration](#eincludedeclaration)
+
+### Relationships
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ValueDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+
+### Children
+[VariableDeclaration](#evariabledeclaration)
+[ProblemDeclaration](#eproblemdeclaration)
+[EnumConstantDeclaration](#eenumconstantdeclaration)
+[FunctionDeclaration](#efunctiondeclaration)
+[TypeParameterDeclaration](#etypeparameterdeclaration)
+[ParameterDeclaration](#eparameterdeclaration)
+
+### Relationships
+[ALIASES](#ValueDeclarationALIASES)
+[TYPE](#ValueDeclarationTYPE)
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+[USAGE](#ValueDeclarationUSAGE)
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### ALIASES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ValueDeclaration--"ALIASES*"-->ValueDeclarationALIASES[Node]:::outer
+```
+#### TYPE
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ValueDeclaration--"TYPE¹"-->ValueDeclarationTYPE[Type]:::outer
+```
+#### ASSIGNED_TYPES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ValueDeclaration--"ASSIGNED_TYPES*"-->ValueDeclarationASSIGNED_TYPES[Type]:::outer
+```
+#### USAGE
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ValueDeclaration--"USAGE*"-->ValueDeclarationUSAGE[Reference]:::outer
+```
+#### TYPE_OBSERVERS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ValueDeclaration--"TYPE_OBSERVERS*"-->ValueDeclarationTYPE_OBSERVERS[Node]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## VariableDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[VariableDeclaration](#evariabledeclaration)
+
+### Children
+[TupleDeclaration](#etupledeclaration)
+[FieldDeclaration](#efielddeclaration)
+
+### Relationships
+[INITIALIZER](#VariableDeclarationINITIALIZER)
+[TEMPLATE_PARAMETERS](#VariableDeclarationTEMPLATE_PARAMETERS)
+Inherited Relationships
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### INITIALIZER
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+VariableDeclaration--"INITIALIZER¹"-->VariableDeclarationINITIALIZER[Expression]:::outer
+```
+#### TEMPLATE_PARAMETERS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+VariableDeclaration--"TEMPLATE_PARAMETERS*"-->VariableDeclarationTEMPLATE_PARAMETERS[Node]:::outer
+```
+### Properties
+isImplicitInitializerAllowed : boolean
+
+isArray : boolean
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## TupleDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[VariableDeclaration](#evariabledeclaration)
+[TupleDeclaration](#etupledeclaration)
+
+### Relationships
+[ELEMENTS](#TupleDeclarationELEMENTS)
+Inherited Relationships
+
+[INITIALIZER](#VariableDeclarationINITIALIZER)
+
+[TEMPLATE_PARAMETERS](#VariableDeclarationTEMPLATE_PARAMETERS)
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### ELEMENTS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TupleDeclaration--"ELEMENTS*"-->TupleDeclarationELEMENTS[VariableDeclaration]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+isImplicitInitializerAllowed : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+isArray : boolean
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## FieldDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[VariableDeclaration](#evariabledeclaration)
+[FieldDeclaration](#efielddeclaration)
+
+### Relationships
+[DEFINES](#FieldDeclarationDEFINES)
+Inherited Relationships
+
+[INITIALIZER](#VariableDeclarationINITIALIZER)
+
+[TEMPLATE_PARAMETERS](#VariableDeclarationTEMPLATE_PARAMETERS)
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### DEFINES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+FieldDeclaration--"DEFINES¹"-->FieldDeclarationDEFINES[FieldDeclaration]:::outer
+```
+### Properties
+modifiers : List
+
+isDefinition : boolean
+
+Inherited Properties
+code : String
+
+file : String
+
+isInferred : boolean
+
+argumentIndex : int
+
+isImplicit : boolean
+
+isImplicitInitializerAllowed : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+isArray : boolean
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+
+
+## ProblemDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[ProblemDeclaration](#eproblemdeclaration)
+
+### Relationships
+Inherited Relationships
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+problem : String
+
+problemType : ProblemType
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## EnumConstantDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[EnumConstantDeclaration](#eenumconstantdeclaration)
+
+### Relationships
+[INITIALIZER](#EnumConstantDeclarationINITIALIZER)
+Inherited Relationships
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### INITIALIZER
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+EnumConstantDeclaration--"INITIALIZER¹"-->EnumConstantDeclarationINITIALIZER[Expression]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## FunctionDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[FunctionDeclaration](#efunctiondeclaration)
+
+### Children
+[MethodDeclaration](#emethoddeclaration)
+
+### Relationships
+[THROWS_TYPES](#FunctionDeclarationTHROWS_TYPES)
+[OVERRIDES](#FunctionDeclarationOVERRIDES)
+[BODY](#FunctionDeclarationBODY)
+[RECORDS](#FunctionDeclarationRECORDS)
+[DEFINES](#FunctionDeclarationDEFINES)
+[RETURN_TYPES](#FunctionDeclarationRETURN_TYPES)
+[PARAMETERS](#FunctionDeclarationPARAMETERS)
+Inherited Relationships
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### THROWS_TYPES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+FunctionDeclaration--"THROWS_TYPES*"-->FunctionDeclarationTHROWS_TYPES[Type]:::outer
+```
+#### OVERRIDES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+FunctionDeclaration--"OVERRIDES*"-->FunctionDeclarationOVERRIDES[FunctionDeclaration]:::outer
+```
+#### BODY
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+FunctionDeclaration--"BODY¹"-->FunctionDeclarationBODY[Statement]:::outer
+```
+#### RECORDS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+FunctionDeclaration--"RECORDS*"-->FunctionDeclarationRECORDS[RecordDeclaration]:::outer
+```
+#### DEFINES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+FunctionDeclaration--"DEFINES¹"-->FunctionDeclarationDEFINES[FunctionDeclaration]:::outer
+```
+#### RETURN_TYPES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+FunctionDeclaration--"RETURN_TYPES*"-->FunctionDeclarationRETURN_TYPES[Type]:::outer
+```
+#### PARAMETERS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+FunctionDeclaration--"PARAMETERS*"-->FunctionDeclarationPARAMETERS[ParameterDeclaration]:::outer
+```
+### Properties
+isDefinition : boolean
+
+Inherited Properties
+code : String
+
+file : String
+
+isInferred : boolean
+
+argumentIndex : int
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+
+
+## MethodDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[FunctionDeclaration](#efunctiondeclaration)
+[MethodDeclaration](#emethoddeclaration)
+
+### Children
+[ConstructorDeclaration](#econstructordeclaration)
+
+### Relationships
+[RECORD_DECLARATION](#MethodDeclarationRECORD_DECLARATION)
+[RECEIVER](#MethodDeclarationRECEIVER)
+Inherited Relationships
+
+[THROWS_TYPES](#FunctionDeclarationTHROWS_TYPES)
+
+[OVERRIDES](#FunctionDeclarationOVERRIDES)
+
+[BODY](#FunctionDeclarationBODY)
+
+[RECORDS](#FunctionDeclarationRECORDS)
+
+[DEFINES](#FunctionDeclarationDEFINES)
+
+[RETURN_TYPES](#FunctionDeclarationRETURN_TYPES)
+
+[PARAMETERS](#FunctionDeclarationPARAMETERS)
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### RECORD_DECLARATION
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+MethodDeclaration--"RECORD_DECLARATION¹"-->MethodDeclarationRECORD_DECLARATION[RecordDeclaration]:::outer
+```
+#### RECEIVER
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+MethodDeclaration--"RECEIVER¹"-->MethodDeclarationRECEIVER[VariableDeclaration]:::outer
+```
+### Properties
+isStatic : boolean
+
+Inherited Properties
+code : String
+
+file : String
+
+isInferred : boolean
+
+isDefinition : boolean
+
+argumentIndex : int
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+
+
+## ConstructorDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[FunctionDeclaration](#efunctiondeclaration)
+[MethodDeclaration](#emethoddeclaration)
+[ConstructorDeclaration](#econstructordeclaration)
+
+### Relationships
+Inherited Relationships
+
+[RECORD_DECLARATION](#MethodDeclarationRECORD_DECLARATION)
+
+[RECEIVER](#MethodDeclarationRECEIVER)
+
+[THROWS_TYPES](#FunctionDeclarationTHROWS_TYPES)
+
+[OVERRIDES](#FunctionDeclarationOVERRIDES)
+
+[BODY](#FunctionDeclarationBODY)
+
+[RECORDS](#FunctionDeclarationRECORDS)
+
+[DEFINES](#FunctionDeclarationDEFINES)
+
+[RETURN_TYPES](#FunctionDeclarationRETURN_TYPES)
+
+[PARAMETERS](#FunctionDeclarationPARAMETERS)
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+Inherited Properties
+isStatic : boolean
+
+code : String
+
+file : String
+
+isInferred : boolean
+
+isDefinition : boolean
+
+argumentIndex : int
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+
+
+## TypeParameterDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[TypeParameterDeclaration](#etypeparameterdeclaration)
+
+### Relationships
+[DEFAULT](#TypeParameterDeclarationDEFAULT)
+Inherited Relationships
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### DEFAULT
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TypeParameterDeclaration--"DEFAULT¹"-->TypeParameterDeclarationDEFAULT[Type]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ParameterDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[ValueDeclaration](#evaluedeclaration)
+[ParameterDeclaration](#eparameterdeclaration)
+
+### Relationships
+[DEFAULT](#ParameterDeclarationDEFAULT)
+Inherited Relationships
+
+[ALIASES](#ValueDeclarationALIASES)
+
+[TYPE](#ValueDeclarationTYPE)
+
+[ASSIGNED_TYPES](#ValueDeclarationASSIGNED_TYPES)
+
+[USAGE](#ValueDeclarationUSAGE)
+
+[TYPE_OBSERVERS](#ValueDeclarationTYPE_OBSERVERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### DEFAULT
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ParameterDeclaration--"DEFAULT¹"-->ParameterDeclarationDEFAULT[Expression]:::outer
+```
+### Properties
+isVariadic : boolean
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## TemplateDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[TemplateDeclaration](#etemplatedeclaration)
+
+### Children
+[RecordTemplateDeclaration](#erecordtemplatedeclaration)
+[FunctionTemplateDeclaration](#efunctiontemplatedeclaration)
+
+### Relationships
+[PARAMETERS](#TemplateDeclarationPARAMETERS)
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### PARAMETERS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TemplateDeclaration--"PARAMETERS*"-->TemplateDeclarationPARAMETERS[Declaration]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## RecordTemplateDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[TemplateDeclaration](#etemplatedeclaration)
+[RecordTemplateDeclaration](#erecordtemplatedeclaration)
+
+### Relationships
+[REALIZATION](#RecordTemplateDeclarationREALIZATION)
+Inherited Relationships
+
+[PARAMETERS](#TemplateDeclarationPARAMETERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### REALIZATION
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordTemplateDeclaration--"REALIZATION*"-->RecordTemplateDeclarationREALIZATION[RecordDeclaration]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## FunctionTemplateDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[TemplateDeclaration](#etemplatedeclaration)
+[FunctionTemplateDeclaration](#efunctiontemplatedeclaration)
+
+### Relationships
+[REALIZATION](#FunctionTemplateDeclarationREALIZATION)
+Inherited Relationships
+
+[PARAMETERS](#TemplateDeclarationPARAMETERS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### REALIZATION
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+FunctionTemplateDeclaration--"REALIZATION*"-->FunctionTemplateDeclarationREALIZATION[FunctionDeclaration]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## RecordDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[RecordDeclaration](#erecorddeclaration)
+
+### Children
+[EnumDeclaration](#eenumdeclaration)
+
+### Relationships
+[IMPORTS](#RecordDeclarationIMPORTS)
+[CONSTRUCTORS](#RecordDeclarationCONSTRUCTORS)
+[FIELDS](#RecordDeclarationFIELDS)
+[TEMPLATES](#RecordDeclarationTEMPLATES)
+[STATIC_IMPORTS](#RecordDeclarationSTATIC_IMPORTS)
+[RECORDS](#RecordDeclarationRECORDS)
+[SUPER_TYPE_DECLARATIONS](#RecordDeclarationSUPER_TYPE_DECLARATIONS)
+[STATEMENTS](#RecordDeclarationSTATEMENTS)
+[METHODS](#RecordDeclarationMETHODS)
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### IMPORTS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordDeclaration--"IMPORTS*"-->RecordDeclarationIMPORTS[Declaration]:::outer
+```
+#### CONSTRUCTORS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordDeclaration--"CONSTRUCTORS*"-->RecordDeclarationCONSTRUCTORS[ConstructorDeclaration]:::outer
+```
+#### FIELDS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordDeclaration--"FIELDS*"-->RecordDeclarationFIELDS[FieldDeclaration]:::outer
+```
+#### TEMPLATES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordDeclaration--"TEMPLATES*"-->RecordDeclarationTEMPLATES[TemplateDeclaration]:::outer
+```
+#### STATIC_IMPORTS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordDeclaration--"STATIC_IMPORTS*"-->RecordDeclarationSTATIC_IMPORTS[ValueDeclaration]:::outer
+```
+#### RECORDS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordDeclaration--"RECORDS*"-->RecordDeclarationRECORDS[RecordDeclaration]:::outer
+```
+#### SUPER_TYPE_DECLARATIONS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordDeclaration--"SUPER_TYPE_DECLARATIONS*"-->RecordDeclarationSUPER_TYPE_DECLARATIONS[RecordDeclaration]:::outer
+```
+#### STATEMENTS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordDeclaration--"STATEMENTS*"-->RecordDeclarationSTATEMENTS[Statement]:::outer
+```
+#### METHODS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+RecordDeclaration--"METHODS*"-->RecordDeclarationMETHODS[MethodDeclaration]:::outer
+```
+### Properties
+kind : String
+
+importStatements : List
+
+staticImportStatements : List
+
+Inherited Properties
+code : String
+
+file : String
+
+isInferred : boolean
+
+argumentIndex : int
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+
+
+## EnumDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[RecordDeclaration](#erecorddeclaration)
+[EnumDeclaration](#eenumdeclaration)
+
+### Relationships
+[ENTRIES](#EnumDeclarationENTRIES)
+Inherited Relationships
+
+[IMPORTS](#RecordDeclarationIMPORTS)
+
+[CONSTRUCTORS](#RecordDeclarationCONSTRUCTORS)
+
+[FIELDS](#RecordDeclarationFIELDS)
+
+[TEMPLATES](#RecordDeclarationTEMPLATES)
+
+[STATIC_IMPORTS](#RecordDeclarationSTATIC_IMPORTS)
+
+[RECORDS](#RecordDeclarationRECORDS)
+
+[SUPER_TYPE_DECLARATIONS](#RecordDeclarationSUPER_TYPE_DECLARATIONS)
+
+[STATEMENTS](#RecordDeclarationSTATEMENTS)
+
+[METHODS](#RecordDeclarationMETHODS)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### ENTRIES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+EnumDeclaration--"ENTRIES*"-->EnumDeclarationENTRIES[EnumConstantDeclaration]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+file : String
+
+isInferred : boolean
+
+kind : String
+
+argumentIndex : int
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+importStatements : List
+
+staticImportStatements : List
+
+
+
+## TypedefDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[TypedefDeclaration](#etypedefdeclaration)
+
+### Relationships
+[TYPE](#TypedefDeclarationTYPE)
+[ALIAS](#TypedefDeclarationALIAS)
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### TYPE
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TypedefDeclaration--"TYPE¹"-->TypedefDeclarationTYPE[Type]:::outer
+```
+#### ALIAS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TypedefDeclaration--"ALIAS¹"-->TypedefDeclarationALIAS[Type]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## NamespaceDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[NamespaceDeclaration](#enamespacedeclaration)
+
+### Relationships
+[DECLARATIONS](#NamespaceDeclarationDECLARATIONS)
+[STATEMENTS](#NamespaceDeclarationSTATEMENTS)
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### DECLARATIONS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+NamespaceDeclaration--"DECLARATIONS*"-->NamespaceDeclarationDECLARATIONS[Declaration]:::outer
+```
+#### STATEMENTS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+NamespaceDeclaration--"STATEMENTS*"-->NamespaceDeclarationSTATEMENTS[Statement]:::outer
+```
+### Properties
+path : String
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## DeclarationSequence
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[DeclarationSequence](#edeclarationsequence)
+
+### Relationships
+[CHILDREN](#DeclarationSequenceCHILDREN)
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### CHILDREN
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+DeclarationSequence--"CHILDREN*"-->DeclarationSequenceCHILDREN[Declaration]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## TranslationUnitDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[TranslationUnitDeclaration](#etranslationunitdeclaration)
+
+### Relationships
+[DECLARATIONS](#TranslationUnitDeclarationDECLARATIONS)
+[NAMESPACES](#TranslationUnitDeclarationNAMESPACES)
+[STATEMENTS](#TranslationUnitDeclarationSTATEMENTS)
+[INCLUDES](#TranslationUnitDeclarationINCLUDES)
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### DECLARATIONS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TranslationUnitDeclaration--"DECLARATIONS*"-->TranslationUnitDeclarationDECLARATIONS[Declaration]:::outer
+```
+#### NAMESPACES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TranslationUnitDeclaration--"NAMESPACES*"-->TranslationUnitDeclarationNAMESPACES[NamespaceDeclaration]:::outer
+```
+#### STATEMENTS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TranslationUnitDeclaration--"STATEMENTS*"-->TranslationUnitDeclarationSTATEMENTS[Statement]:::outer
+```
+#### INCLUDES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+TranslationUnitDeclaration--"INCLUDES*"-->TranslationUnitDeclarationINCLUDES[IncludeDeclaration]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## UsingDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[UsingDeclaration](#eusingdeclaration)
+
+### Relationships
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+qualifiedName : String
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## IncludeDeclaration
+**Labels**:[Node](#enode)
+[Declaration](#edeclaration)
+[IncludeDeclaration](#eincludedeclaration)
+
+### Relationships
+[INCLUDES](#IncludeDeclarationINCLUDES)
+[PROBLEMS](#IncludeDeclarationPROBLEMS)
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### INCLUDES
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+IncludeDeclaration--"INCLUDES*"-->IncludeDeclarationINCLUDES[IncludeDeclaration]:::outer
+```
+#### PROBLEMS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+IncludeDeclaration--"PROBLEMS*"-->IncludeDeclarationPROBLEMS[ProblemDeclaration]:::outer
+```
+### Properties
+filename : String
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## Type
+**Labels**:[Node](#enode)
+[Type](#etype)
+
+### Children
+[ProblemType](#eproblemtype)
+[UnknownType](#eunknowntype)
+[ObjectType](#eobjecttype)
+[ParameterizedType](#eparameterizedtype)
+[PointerType](#epointertype)
+[AutoType](#eautotype)
+[FunctionPointerType](#efunctionpointertype)
+[TupleType](#etupletype)
+[IncompleteType](#eincompletetype)
+[ReferenceType](#ereferencetype)
+[FunctionType](#efunctiontype)
+
+### Relationships
+[SUPER_TYPE](#TypeSUPER_TYPE)
+Inherited Relationships
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### SUPER_TYPE
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+Type--"SUPER_TYPE*"-->TypeSUPER_TYPE[Type]:::outer
+```
+### Properties
+isPrimitive : boolean
+
+typeOrigin : Origin
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
+## ProblemType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[ProblemType](#eproblemtype)
+
+### Relationships
+Inherited Relationships
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
+## UnknownType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[UnknownType](#eunknowntype)
+
+### Relationships
+Inherited Relationships
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+typeOrigin : Origin
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+
+
+## ObjectType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[ObjectType](#eobjecttype)
+
+### Children
+[NumericType](#enumerictype)
+[StringType](#estringtype)
+
+### Relationships
+[GENERICS](#ObjectTypeGENERICS)
+[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+Inherited Relationships
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### GENERICS
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ObjectType--"GENERICS*"-->ObjectTypeGENERICS[Type]:::outer
+```
+#### RECORD_DECLARATION
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+ObjectType--"RECORD_DECLARATION¹"-->ObjectTypeRECORD_DECLARATION[RecordDeclaration]:::outer
+```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
+## NumericType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[ObjectType](#eobjecttype)
+[NumericType](#enumerictype)
+
+### Children
+[IntegerType](#eintegertype)
+[FloatingPointType](#efloatingpointtype)
+[BooleanType](#ebooleantype)
+
+### Relationships
+Inherited Relationships
+
+[GENERICS](#ObjectTypeGENERICS)
+
+[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+modifier : Modifier
+
+bitWidth : Integer
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
+## IntegerType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[ObjectType](#eobjecttype)
+[NumericType](#enumerictype)
+[IntegerType](#eintegertype)
+
+### Relationships
+Inherited Relationships
+
+[GENERICS](#ObjectTypeGENERICS)
+
+[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+Inherited Properties
+code : String
+
+modifier : Modifier
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+bitWidth : Integer
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
+## FloatingPointType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[ObjectType](#eobjecttype)
+[NumericType](#enumerictype)
+[FloatingPointType](#efloatingpointtype)
+
+### Relationships
+Inherited Relationships
+
+[GENERICS](#ObjectTypeGENERICS)
+
+[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+Inherited Properties
+code : String
+
+modifier : Modifier
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+bitWidth : Integer
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
+## BooleanType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[ObjectType](#eobjecttype)
+[NumericType](#enumerictype)
+[BooleanType](#ebooleantype)
+
+### Relationships
+Inherited Relationships
+
+[GENERICS](#ObjectTypeGENERICS)
+
+[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+Inherited Properties
+code : String
+
+modifier : Modifier
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+bitWidth : Integer
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
+## StringType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[ObjectType](#eobjecttype)
+[StringType](#estringtype)
+
+### Relationships
+Inherited Relationships
+
+[GENERICS](#ObjectTypeGENERICS)
+
+[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
+## ParameterizedType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[ParameterizedType](#eparameterizedtype)
+
+### Relationships
+Inherited Relationships
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
+## PointerType
+**Labels**:[Node](#enode)
+[Type](#etype)
+[PointerType](#epointertype)
+
+### Relationships
+[ELEMENT_TYPE](#PointerTypeELEMENT_TYPE)
+Inherited Relationships
+
+[SUPER_TYPE](#TypeSUPER_TYPE)
+
+[EOG](#NodeEOG)
+
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
+[ANNOTATIONS](#NodeANNOTATIONS)
+
+[PDG](#NodePDG)
+
+[AST](#NodeAST)
+
+[SCOPE](#NodeSCOPE)
+
+
+
+#### ELEMENT_TYPE
+```mermaid
+flowchart LR
+ classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
+PointerType--"ELEMENT_TYPE¹"-->PointerTypeELEMENT_TYPE[Type]:::outer
+```
+### Properties
+pointerOrigin : PointerOrigin
+
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
-[TYPEDEFS](#NodeTYPEDEFS)
+nameDelimiter : String
-## BooleanType
-**Labels**:[Node](#enode)
-[Type](#etype)
-[ObjectType](#eobjecttype)
-[NumericType](#enumerictype)
-[BooleanType](#ebooleantype)
+comment : String
-### Relationships
-[GENERICS](#ObjectTypeGENERICS)
+artifact : String
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+startLine : int
-[SUPER_TYPE](#TypeSUPER_TYPE)
+endLine : int
-[DFG](#NodeDFG)
+startColumn : int
-[EOG](#NodeEOG)
+endColumn : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+isPrimitive : boolean
-[AST](#NodeAST)
+isInferred : boolean
-[SCOPE](#NodeSCOPE)
+typeOrigin : Origin
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## StringType
+## AutoType
**Labels**:[Node](#enode)
[Type](#etype)
-[ObjectType](#eobjecttype)
-[StringType](#estringtype)
+[AutoType](#eautotype)
### Relationships
-[GENERICS](#ObjectTypeGENERICS)
-
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
+Inherited Relationships
[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-## ParameterizedType
-**Labels**:[Node](#enode)
-[Type](#etype)
-[ParameterizedType](#eparameterizedtype)
+### Properties
+Inherited Properties
+code : String
-### Relationships
-[SUPER_TYPE](#TypeSUPER_TYPE)
+argumentIndex : int
-[DFG](#NodeDFG)
+file : String
-[EOG](#NodeEOG)
+isImplicit : boolean
-[ANNOTATIONS](#NodeANNOTATIONS)
+fullName : String
-[AST](#NodeAST)
+localName : String
-[SCOPE](#NodeSCOPE)
+name : String
-[TYPEDEFS](#NodeTYPEDEFS)
+nameDelimiter : String
-## PointerType
-**Labels**:[Node](#enode)
-[Type](#etype)
-[PointerType](#epointertype)
+comment : String
-### Relationships
-[ELEMENT_TYPE](#PointerTypeELEMENT_TYPE)
+artifact : String
-[SUPER_TYPE](#TypeSUPER_TYPE)
+startLine : int
-[DFG](#NodeDFG)
+endLine : int
-[EOG](#NodeEOG)
+startColumn : int
-[ANNOTATIONS](#NodeANNOTATIONS)
+endColumn : int
-[AST](#NodeAST)
+isPrimitive : boolean
-[SCOPE](#NodeSCOPE)
+isInferred : boolean
-[TYPEDEFS](#NodeTYPEDEFS)
+typeOrigin : Origin
+
+
-#### ELEMENT_TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-PointerType--"ELEMENT_TYPE¹"-->PointerTypeELEMENT_TYPE[Type]:::outer
-```
## FunctionPointerType
**Labels**:[Node](#enode)
[Type](#etype)
@@ -3094,22 +6541,26 @@ PointerType--"ELEMENT_TYPE¹"-->PointerTypeELEMENT_TYPE[Type[PARAMETERS](#FunctionPointerTypePARAMETERS)
-
[RETURN_TYPE](#FunctionPointerTypeRETURN_TYPE)
+Inherited Relationships
[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
#### PARAMETERS
```mermaid
@@ -3123,6 +6574,44 @@ flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
FunctionPointerType--"RETURN_TYPE¹"-->FunctionPointerTypeRETURN_TYPE[Type]:::outer
```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
## TupleType
**Labels**:[Node](#enode)
[Type](#etype)
@@ -3130,20 +6619,25 @@ FunctionPointerType--"RETURN_TYPE¹"-->FunctionPointerTypeRETURN_TYPE[Type]:::outer
```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
## IncompleteType
**Labels**:[Node](#enode)
[Type](#etype)
[IncompleteType](#eincompletetype)
### Relationships
-[SUPER_TYPE](#TypeSUPER_TYPE)
+Inherited Relationships
-[DFG](#NodeDFG)
+[SUPER_TYPE](#TypeSUPER_TYPE)
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
+
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
## ReferenceType
**Labels**:[Node](#enode)
@@ -3177,28 +6753,71 @@ TupleType--"TYPES*"-->TupleTypeTYPES[Type]:::outer
[ReferenceType](#ereferencetype)
### Relationships
-[REFERENCE](#ReferenceTypeREFERENCE)
+[ELEMENT_TYPE](#ReferenceTypeELEMENT_TYPE)
+Inherited Relationships
[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### REFERENCE
+#### ELEMENT_TYPE
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ReferenceType--"REFERENCE¹"-->ReferenceTypeREFERENCE[Type]:::outer
+ReferenceType--"ELEMENT_TYPE¹"-->ReferenceTypeELEMENT_TYPE[Type]:::outer
```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
## FunctionType
**Labels**:[Node](#enode)
[Type](#etype)
@@ -3206,22 +6825,26 @@ ReferenceType--"REFERENCE¹"-->ReferenceTypeREFERENCE[Type]
### Relationships
[RETURN_TYPES](#FunctionTypeRETURN_TYPES)
-
[PARAMETERS](#FunctionTypePARAMETERS)
+Inherited Relationships
[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
#### RETURN_TYPES
```mermaid
@@ -3235,24 +6858,67 @@ flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
FunctionType--"PARAMETERS*"-->FunctionTypePARAMETERS[Type]:::outer
```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isPrimitive : boolean
+
+isInferred : boolean
+
+typeOrigin : Origin
+
+
+
## AnnotationMember
**Labels**:[Node](#enode)
[AnnotationMember](#eannotationmember)
### Relationships
[VALUE](#AnnotationMemberVALUE)
-
-[DFG](#NodeDFG)
+Inherited Relationships
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
#### VALUE
```mermaid
@@ -3260,40 +6926,77 @@ flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
AnnotationMember--"VALUE¹"-->AnnotationMemberVALUE[Expression]:::outer
```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
## Component
**Labels**:[Node](#enode)
[Component](#ecomponent)
### Relationships
+[INCOMING_INTERACTIONS](#ComponentINCOMING_INTERACTIONS)
[OUTGOING_INTERACTIONS](#ComponentOUTGOING_INTERACTIONS)
+[TRANSLATION_UNITS](#ComponentTRANSLATION_UNITS)
+Inherited Relationships
-[INCOMING_INTERACTIONS](#ComponentINCOMING_INTERACTIONS)
+[EOG](#NodeEOG)
-[TRANSLATION_UNITS](#ComponentTRANSLATION_UNITS)
+[CDG](#NodeCDG)
[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
-#### OUTGOING_INTERACTIONS
+#### INCOMING_INTERACTIONS
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Component--"OUTGOING_INTERACTIONS*"-->ComponentOUTGOING_INTERACTIONS[Node]:::outer
+Component--"INCOMING_INTERACTIONS*"-->ComponentINCOMING_INTERACTIONS[Node]:::outer
```
-#### INCOMING_INTERACTIONS
+#### OUTGOING_INTERACTIONS
```mermaid
flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Component--"INCOMING_INTERACTIONS*"-->ComponentINCOMING_INTERACTIONS[Node]:::outer
+Component--"OUTGOING_INTERACTIONS*"-->ComponentOUTGOING_INTERACTIONS[Node]:::outer
```
#### TRANSLATION_UNITS
```mermaid
@@ -3301,24 +7004,63 @@ flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
Component--"TRANSLATION_UNITS*"-->ComponentTRANSLATION_UNITS[TranslationUnitDeclaration]:::outer
```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
## Annotation
**Labels**:[Node](#enode)
[Annotation](#eannotation)
### Relationships
[MEMBERS](#AnnotationMEMBERS)
-
-[DFG](#NodeDFG)
+Inherited Relationships
[EOG](#NodeEOG)
+[CDG](#NodeCDG)
+
+[DFG](#NodeDFG)
+
[ANNOTATIONS](#NodeANNOTATIONS)
+[PDG](#NodePDG)
+
[AST](#NodeAST)
[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
+
#### MEMBERS
```mermaid
@@ -3326,3 +7068,37 @@ flowchart LR
classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
Annotation--"MEMBERS*"-->AnnotationMEMBERS[AnnotationMember]:::outer
```
+### Properties
+Inherited Properties
+code : String
+
+argumentIndex : int
+
+file : String
+
+isImplicit : boolean
+
+fullName : String
+
+localName : String
+
+name : String
+
+nameDelimiter : String
+
+comment : String
+
+artifact : String
+
+startLine : int
+
+endLine : int
+
+startColumn : int
+
+endColumn : int
+
+isInferred : boolean
+
+
+
diff --git a/docs/docs/CPG/specs/schema.md b/docs/docs/CPG/specs/schema.md
deleted file mode 100644
index 3b91b95eb8..0000000000
--- a/docs/docs/CPG/specs/schema.md
+++ /dev/null
@@ -1,10952 +0,0 @@
-# CPG Schema
-This file shows all node labels and relationships between them that are persisted from the in memory CPG to the Neo4j database. The specification is generated automatically and always up to date.
-# Node
-## Children
-[Statement](#estatement) [Declaration](#edeclaration) [Type](#etype) [AnnotationMember](#eannotationmember) [Component](#ecomponent) [Annotation](#eannotation)
-## Relationships
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### DFG
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"DFG*"-->NodeDFG[Node]:::outer
-```
-### EOG
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"EOG*"-->NodeEOG[Node]:::outer
-```
-### ANNOTATIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"ANNOTATIONS*"-->NodeANNOTATIONS[Annotation]:::outer
-```
-### AST
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"AST*"-->NodeAST[Node]:::outer
-```
-### SCOPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"SCOPE¹"-->NodeSCOPE[Node]:::outer
-```
-### TYPEDEFS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Node--"TYPEDEFS*"-->NodeTYPEDEFS[TypedefDeclaration]:::outer
-```
-# Statement
-**Labels**:[Node](#enode) [Statement](#estatement)
-## Children
-[AssertStatement](#eassertstatement) [DoStatement](#edostatement) [CaseStatement](#ecasestatement) [ReturnStatement](#ereturnstatement) [Expression](#eexpression) [IfStatement](#eifstatement) [DeclarationStatement](#edeclarationstatement) [ForStatement](#eforstatement) [CatchClause](#ecatchclause) [SwitchStatement](#eswitchstatement) [GotoStatement](#egotostatement) [WhileStatement](#ewhilestatement) [BlockStatement](#ecompoundstatement) [ContinueStatement](#econtinuestatement) [DefaultStatement](#edefaultstatement) [SynchronizedStatement](#esynchronizedstatement) [TryStatement](#etrystatement) [ForEachStatement](#eforeachstatement) [LabelStatement](#elabelstatement) [BreakStatement](#ebreakstatement) [EmptyStatement](#eemptystatement)
-## Relationships
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### LOCALS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Statement--"LOCALS*"-->StatementLOCALS[VariableDeclaration]:::outer
-```
-# AssertStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [AssertStatement](#eassertstatement)
-## Relationships
-[CONDITION](#AssertStatementCONDITION)
-[MESSAGE](#AssertStatementMESSAGE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CONDITION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssertStatement--"CONDITION¹"-->AssertStatementCONDITION[Expression]:::outer
-```
-### MESSAGE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssertStatement--"MESSAGE¹"-->AssertStatementMESSAGE[Statement]:::outer
-```
-# DoStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [DoStatement](#edostatement)
-## Relationships
-[CONDITION](#DoStatementCONDITION)
-[STATEMENT](#DoStatementSTATEMENT)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CONDITION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DoStatement--"CONDITION¹"-->DoStatementCONDITION[Expression]:::outer
-```
-### STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DoStatement--"STATEMENT¹"-->DoStatementSTATEMENT[Statement]:::outer
-```
-# CaseStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [CaseStatement](#ecasestatement)
-## Relationships
-[CASE_EXPRESSION](#CaseStatementCASE_EXPRESSION)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CASE_EXPRESSION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CaseStatement--"CASE_EXPRESSION¹"-->CaseStatementCASE_EXPRESSION[Expression]:::outer
-```
-# ReturnStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [ReturnStatement](#ereturnstatement)
-## Relationships
-[RETURN_VALUES](#ReturnStatementRETURN_VALUES)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### RETURN_VALUES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ReturnStatement--"RETURN_VALUES*"-->ReturnStatementRETURN_VALUES[Expression]:::outer
-```
-# Expression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression)
-## Children
-[NewExpression](#enewexpression) [LambdaExpression](#elambdaexpression) [UnaryOperator](#eunaryoperator) [ArrayRangeExpression](#earrayrangeexpression) [CallExpression](#ecallexpression) [DesignatedInitializerExpression](#edesignatedinitializerexpression) [KeyValueExpression](#ekeyvalueexpression) [AssignExpression](#eassignexpression) [CastExpression](#ecastexpression) [NewArrayExpression](#earraycreationexpression) [SubscriptionExpression](#earraysubscriptionexpression) [TypeExpression](#etypeexpression) [BinaryOperator](#ebinaryoperator) [ConditionalExpression](#econditionalexpression) [Reference](#edeclaredreferenceexpression) [InitializerListExpression](#einitializerlistexpression) [DeleteExpression](#edeleteexpression) [BlockStatementExpression](#ecompoundstatementexpression) [ProblemExpression](#eproblemexpression) [Literal](#eliteral) [TypeIdExpression](#etypeidexpression) [ExpressionList](#eexpressionlist)
-## Relationships
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### POSSIBLE_SUB_TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Expression--"POSSIBLE_SUB_TYPES*"-->ExpressionPOSSIBLE_SUB_TYPES[Type]:::outer
-```
-### TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Expression--"TYPE¹"-->ExpressionTYPE[Type]:::outer
-```
-# NewExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [NewExpression](#enewexpression)
-## Relationships
-[INITIALIZER](#NewExpressionINITIALIZER)
-[TEMPLATE_PARAMETERS](#NewExpressionTEMPLATE_PARAMETERS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INITIALIZER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NewExpression--"INITIALIZER¹"-->NewExpressionINITIALIZER[Expression]:::outer
-```
-### TEMPLATE_PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NewExpression--"TEMPLATE_PARAMETERS*"-->NewExpressionTEMPLATE_PARAMETERS[Node]:::outer
-```
-# LambdaExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [LambdaExpression](#elambdaexpression)
-## Relationships
-[MUTABLE_VARIABLES](#LambdaExpressionMUTABLE_VARIABLES)
-[FUNCTION](#LambdaExpressionFUNCTION)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### MUTABLE_VARIABLES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-LambdaExpression--"MUTABLE_VARIABLES*"-->LambdaExpressionMUTABLE_VARIABLES[ValueDeclaration]:::outer
-```
-### FUNCTION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-LambdaExpression--"FUNCTION¹"-->LambdaExpressionFUNCTION[FunctionDeclaration]:::outer
-```
-# UnaryOperator
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [UnaryOperator](#eunaryoperator)
-## Relationships
-[INPUT](#UnaryOperatorINPUT)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INPUT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-UnaryOperator--"INPUT¹"-->UnaryOperatorINPUT[Expression]:::outer
-```
-# ArrayRangeExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [ArrayRangeExpression](#earrayrangeexpression)
-## Relationships
-[CEILING](#ArrayRangeExpressionCEILING)
-[STEP](#ArrayRangeExpressionSTEP)
-[FLOOR](#ArrayRangeExpressionFLOOR)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CEILING
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ArrayRangeExpression--"CEILING¹"-->ArrayRangeExpressionCEILING[Expression]:::outer
-```
-### STEP
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ArrayRangeExpression--"STEP¹"-->ArrayRangeExpressionSTEP[Expression]:::outer
-```
-### FLOOR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ArrayRangeExpression--"FLOOR¹"-->ArrayRangeExpressionFLOOR[Expression]:::outer
-```
-# CallExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [CallExpression](#ecallexpression)
-## Children
-[ConstructorCallExpression](#eexplicitconstructorinvocation) [ConstructExpression](#econstructexpression) [MemberCallExpression](#emembercallexpression)
-## Relationships
-[CALLEE](#CallExpressionCALLEE)
-[INVOKES](#CallExpressionINVOKES)
-[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
-[ARGUMENTS](#CallExpressionARGUMENTS)
-[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CALLEE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"CALLEE¹"-->CallExpressionCALLEE[Expression]:::outer
-```
-### INVOKES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"INVOKES*"-->CallExpressionINVOKES[FunctionDeclaration]:::outer
-```
-### TEMPLATE_INSTANTIATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"TEMPLATE_INSTANTIATION¹"-->CallExpressionTEMPLATE_INSTANTIATION[TemplateDeclaration]:::outer
-```
-### ARGUMENTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"ARGUMENTS*"-->CallExpressionARGUMENTS[Expression]:::outer
-```
-### TEMPLATE_PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CallExpression--"TEMPLATE_PARAMETERS*"-->CallExpressionTEMPLATE_PARAMETERS[Node]:::outer
-```
-# ConstructorCallExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [CallExpression](#ecallexpression) [ConstructorCallExpression](#eexplicitconstructorinvocation)
-## Relationships
-[CALLEE](#CallExpressionCALLEE)
-[INVOKES](#CallExpressionINVOKES)
-[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
-[ARGUMENTS](#CallExpressionARGUMENTS)
-[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# ConstructExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [CallExpression](#ecallexpression) [ConstructExpression](#econstructexpression)
-## Relationships
-[INSTANTIATES](#ConstructExpressionINSTANTIATES)
-[CONSTRUCTOR](#ConstructExpressionCONSTRUCTOR)
-[ANOYMOUS_CLASS](#ConstructExpressionANOYMOUS_CLASS)
-[CALLEE](#CallExpressionCALLEE)
-[INVOKES](#CallExpressionINVOKES)
-[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
-[ARGUMENTS](#CallExpressionARGUMENTS)
-[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INSTANTIATES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConstructExpression--"INSTANTIATES¹"-->ConstructExpressionINSTANTIATES[Declaration]:::outer
-```
-### CONSTRUCTOR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConstructExpression--"CONSTRUCTOR¹"-->ConstructExpressionCONSTRUCTOR[ConstructorDeclaration]:::outer
-```
-### ANOYMOUS_CLASS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConstructExpression--"ANOYMOUS_CLASS¹"-->ConstructExpressionANOYMOUS_CLASS[RecordDeclaration]:::outer
-```
-# MemberCallExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [CallExpression](#ecallexpression) [MemberCallExpression](#emembercallexpression)
-## Relationships
-[CALLEE](#CallExpressionCALLEE)
-[INVOKES](#CallExpressionINVOKES)
-[TEMPLATE_INSTANTIATION](#CallExpressionTEMPLATE_INSTANTIATION)
-[ARGUMENTS](#CallExpressionARGUMENTS)
-[TEMPLATE_PARAMETERS](#CallExpressionTEMPLATE_PARAMETERS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# DesignatedInitializerExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [DesignatedInitializerExpression](#edesignatedinitializerexpression)
-## Relationships
-[LHS](#DesignatedInitializerExpressionLHS)
-[RHS](#DesignatedInitializerExpressionRHS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### LHS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DesignatedInitializerExpression--"LHS*"-->DesignatedInitializerExpressionLHS[Expression]:::outer
-```
-### RHS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DesignatedInitializerExpression--"RHS¹"-->DesignatedInitializerExpressionRHS[Expression]:::outer
-```
-# KeyValueExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [KeyValueExpression](#ekeyvalueexpression)
-## Relationships
-[VALUE](#KeyValueExpressionVALUE)
-[KEY](#KeyValueExpressionKEY)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### VALUE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-KeyValueExpression--"VALUE¹"-->KeyValueExpressionVALUE[Expression]:::outer
-```
-### KEY
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-KeyValueExpression--"KEY¹"-->KeyValueExpressionKEY[Expression]:::outer
-```
-# AssignExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [AssignExpression](#eassignexpression)
-## Relationships
-[DECLARATIONS](#AssignExpressionDECLARATIONS)
-[LHS](#AssignExpressionLHS)
-[RHS](#AssignExpressionRHS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### DECLARATIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssignExpression--"DECLARATIONS*"-->AssignExpressionDECLARATIONS[VariableDeclaration]:::outer
-```
-### LHS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssignExpression--"LHS*"-->AssignExpressionLHS[Expression]:::outer
-```
-### RHS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AssignExpression--"RHS*"-->AssignExpressionRHS[Expression]:::outer
-```
-# CastExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [CastExpression](#ecastexpression)
-## Relationships
-[CAST_TYPE](#CastExpressionCAST_TYPE)
-[EXPRESSION](#CastExpressionEXPRESSION)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CAST_TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CastExpression--"CAST_TYPE¹"-->CastExpressionCAST_TYPE[Type]:::outer
-```
-### EXPRESSION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CastExpression--"EXPRESSION¹"-->CastExpressionEXPRESSION[Expression]:::outer
-```
-# NewArrayExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [NewArrayExpression](#earraycreationexpression)
-## Relationships
-[INITIALIZER](#NewArrayExpressionINITIALIZER)
-[DIMENSIONS](#NewArrayExpressionDIMENSIONS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INITIALIZER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NewArrayExpression--"INITIALIZER¹"-->NewArrayExpressionINITIALIZER[Expression]:::outer
-```
-### DIMENSIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NewArrayExpression--"DIMENSIONS*"-->NewArrayExpressionDIMENSIONS[Expression]:::outer
-```
-# SubscriptionExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [SubscriptionExpression](#earraysubscriptionexpression)
-## Relationships
-[ARRAY_EXPRESSION](#SubscriptionExpressionARRAY_EXPRESSION)
-[SUBSCRIPT_EXPRESSION](#SubscriptionExpressionSUBSCRIPT_EXPRESSION)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### ARRAY_EXPRESSION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SubscriptionExpression--"ARRAY_EXPRESSION¹"-->SubscriptionExpressionARRAY_EXPRESSION[Expression]:::outer
-```
-### SUBSCRIPT_EXPRESSION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SubscriptionExpression--"SUBSCRIPT_EXPRESSION¹"-->SubscriptionExpressionSUBSCRIPT_EXPRESSION[Expression]:::outer
-```
-# TypeExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [TypeExpression](#etypeexpression)
-## Relationships
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# BinaryOperator
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [BinaryOperator](#ebinaryoperator)
-## Relationships
-[LHS](#BinaryOperatorLHS)
-[RHS](#BinaryOperatorRHS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### LHS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-BinaryOperator--"LHS¹"-->BinaryOperatorLHS[Expression]:::outer
-```
-### RHS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-BinaryOperator--"RHS¹"-->BinaryOperatorRHS[Expression]:::outer
-```
-# ConditionalExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [ConditionalExpression](#econditionalexpression)
-## Relationships
-[ELSE_EXPR](#ConditionalExpressionELSE_EXPR)
-[THEN_EXPR](#ConditionalExpressionTHEN_EXPR)
-[CONDITION](#ConditionalExpressionCONDITION)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### ELSE_EXPR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConditionalExpression--"ELSE_EXPR¹"-->ConditionalExpressionELSE_EXPR[Expression]:::outer
-```
-### THEN_EXPR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConditionalExpression--"THEN_EXPR¹"-->ConditionalExpressionTHEN_EXPR[Expression]:::outer
-```
-### CONDITION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ConditionalExpression--"CONDITION¹"-->ConditionalExpressionCONDITION[Expression]:::outer
-```
-# Reference
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [Reference](#edeclaredreferenceexpression)
-## Children
-[MemberExpression](#ememberexpression)
-## Relationships
-[REFERS_TO](#ReferenceREFERS_TO)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### REFERS_TO
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Reference--"REFERS_TO¹"-->ReferenceREFERS_TO[Declaration]:::outer
-```
-# MemberExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [Reference](#edeclaredreferenceexpression) [MemberExpression](#ememberexpression)
-## Relationships
-[BASE](#MemberExpressionBASE)
-[REFERS_TO](#ReferenceREFERS_TO)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### BASE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-MemberExpression--"BASE¹"-->MemberExpressionBASE[Expression]:::outer
-```
-# InitializerListExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [InitializerListExpression](#einitializerlistexpression)
-## Relationships
-[INITIALIZERS](#InitializerListExpressionINITIALIZERS)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INITIALIZERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-InitializerListExpression--"INITIALIZERS*"-->InitializerListExpressionINITIALIZERS[Expression]:::outer
-```
-# DeleteExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [DeleteExpression](#edeleteexpression)
-## Relationships
-[OPERAND](#DeleteExpressionOPERAND)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### OPERAND
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DeleteExpression--"OPERAND¹"-->DeleteExpressionOPERAND[Expression]:::outer
-```
-# BlockStatementExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [BlockStatementExpression](#ecompoundstatementexpression)
-## Relationships
-[STATEMENT](#BlockStatementExpressionSTATEMENT)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-BlockStatementExpression--"STATEMENT¹"-->BlockStatementExpressionSTATEMENT[Statement]:::outer
-```
-# ProblemExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [ProblemExpression](#eproblemexpression)
-## Relationships
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# Literal
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [Literal](#eliteral)
-## Relationships
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# TypeIdExpression
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [TypeIdExpression](#etypeidexpression)
-## Relationships
-[REFERENCED_TYPE](#TypeIdExpressionREFERENCED_TYPE)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### REFERENCED_TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TypeIdExpression--"REFERENCED_TYPE¹"-->TypeIdExpressionREFERENCED_TYPE[Type]:::outer
-```
-# ExpressionList
-**Labels**:[Node](#enode) [Statement](#estatement) [Expression](#eexpression) [ExpressionList](#eexpressionlist)
-## Relationships
-[SUBEXPR](#ExpressionListSUBEXPR)
-[POSSIBLE_SUB_TYPES](#ExpressionPOSSIBLE_SUB_TYPES)
-[TYPE](#ExpressionTYPE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### SUBEXPR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ExpressionList--"SUBEXPR*"-->ExpressionListSUBEXPR[Statement]:::outer
-```
-# IfStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [IfStatement](#eifstatement)
-## Relationships
-[CONDITION_DECLARATION](#IfStatementCONDITION_DECLARATION)
-[INITIALIZER_STATEMENT](#IfStatementINITIALIZER_STATEMENT)
-[THEN_STATEMENT](#IfStatementTHEN_STATEMENT)
-[CONDITION](#IfStatementCONDITION)
-[ELSE_STATEMENT](#IfStatementELSE_STATEMENT)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CONDITION_DECLARATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"CONDITION_DECLARATION¹"-->IfStatementCONDITION_DECLARATION[Declaration]:::outer
-```
-### INITIALIZER_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"INITIALIZER_STATEMENT¹"-->IfStatementINITIALIZER_STATEMENT[Statement]:::outer
-```
-### THEN_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"THEN_STATEMENT¹"-->IfStatementTHEN_STATEMENT[Statement]:::outer
-```
-### CONDITION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"CONDITION¹"-->IfStatementCONDITION[Expression]:::outer
-```
-### ELSE_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IfStatement--"ELSE_STATEMENT¹"-->IfStatementELSE_STATEMENT[Statement]:::outer
-```
-# DeclarationStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [DeclarationStatement](#edeclarationstatement)
-## Children
-[ASMDeclarationStatement](#easmdeclarationstatement)
-## Relationships
-[DECLARATIONS](#DeclarationStatementDECLARATIONS)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### DECLARATIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DeclarationStatement--"DECLARATIONS*"-->DeclarationStatementDECLARATIONS[Declaration]:::outer
-```
-# ASMDeclarationStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [DeclarationStatement](#edeclarationstatement) [ASMDeclarationStatement](#easmdeclarationstatement)
-## Relationships
-[DECLARATIONS](#DeclarationStatementDECLARATIONS)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# ForStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [ForStatement](#eforstatement)
-## Relationships
-[CONDITION_DECLARATION](#ForStatementCONDITION_DECLARATION)
-[INITIALIZER_STATEMENT](#ForStatementINITIALIZER_STATEMENT)
-[ITERATION_STATEMENT](#ForStatementITERATION_STATEMENT)
-[CONDITION](#ForStatementCONDITION)
-[STATEMENT](#ForStatementSTATEMENT)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CONDITION_DECLARATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"CONDITION_DECLARATION¹"-->ForStatementCONDITION_DECLARATION[Declaration]:::outer
-```
-### INITIALIZER_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"INITIALIZER_STATEMENT¹"-->ForStatementINITIALIZER_STATEMENT[Statement]:::outer
-```
-### ITERATION_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"ITERATION_STATEMENT¹"-->ForStatementITERATION_STATEMENT[Statement]:::outer
-```
-### CONDITION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"CONDITION¹"-->ForStatementCONDITION[Expression]:::outer
-```
-### STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForStatement--"STATEMENT¹"-->ForStatementSTATEMENT[Statement]:::outer
-```
-# CatchClause
-**Labels**:[Node](#enode) [Statement](#estatement) [CatchClause](#ecatchclause)
-## Relationships
-[PARAMETER](#CatchClausePARAMETER)
-[BODY](#CatchClauseBODY)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### PARAMETER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CatchClause--"PARAMETER¹"-->CatchClausePARAMETER[VariableDeclaration]:::outer
-```
-### BODY
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-CatchClause--"BODY¹"-->CatchClauseBODY[BlockStatement]:::outer
-```
-# SwitchStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [SwitchStatement](#eswitchstatement)
-## Relationships
-[INITIALIZER_STATEMENT](#SwitchStatementINITIALIZER_STATEMENT)
-[SELECTOR_DECLARATION](#SwitchStatementSELECTOR_DECLARATION)
-[STATEMENT](#SwitchStatementSTATEMENT)
-[SELECTOR](#SwitchStatementSELECTOR)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INITIALIZER_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SwitchStatement--"INITIALIZER_STATEMENT¹"-->SwitchStatementINITIALIZER_STATEMENT[Statement]:::outer
-```
-### SELECTOR_DECLARATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SwitchStatement--"SELECTOR_DECLARATION¹"-->SwitchStatementSELECTOR_DECLARATION[Declaration]:::outer
-```
-### STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SwitchStatement--"STATEMENT¹"-->SwitchStatementSTATEMENT[Statement]:::outer
-```
-### SELECTOR
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SwitchStatement--"SELECTOR¹"-->SwitchStatementSELECTOR[Expression]:::outer
-```
-# GotoStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [GotoStatement](#egotostatement)
-## Relationships
-[TARGET_LABEL](#GotoStatementTARGET_LABEL)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### TARGET_LABEL
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-GotoStatement--"TARGET_LABEL¹"-->GotoStatementTARGET_LABEL[LabelStatement]:::outer
-```
-# WhileStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [WhileStatement](#ewhilestatement)
-## Relationships
-[CONDITION_DECLARATION](#WhileStatementCONDITION_DECLARATION)
-[CONDITION](#WhileStatementCONDITION)
-[STATEMENT](#WhileStatementSTATEMENT)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CONDITION_DECLARATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-WhileStatement--"CONDITION_DECLARATION¹"-->WhileStatementCONDITION_DECLARATION[Declaration]:::outer
-```
-### CONDITION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-WhileStatement--"CONDITION¹"-->WhileStatementCONDITION[Expression]:::outer
-```
-### STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-WhileStatement--"STATEMENT¹"-->WhileStatementSTATEMENT[Statement]:::outer
-```
-# BlockStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [BlockStatement](#ecompoundstatement)
-## Relationships
-[STATEMENTS](#BlockStatementSTATEMENTS)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### STATEMENTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-BlockStatement--"STATEMENTS*"-->BlockStatementSTATEMENTS[Statement]:::outer
-```
-# ContinueStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [ContinueStatement](#econtinuestatement)
-## Relationships
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# DefaultStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [DefaultStatement](#edefaultstatement)
-## Relationships
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# SynchronizedStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [SynchronizedStatement](#esynchronizedstatement)
-## Relationships
-[BLOCK_STATEMENT](#SynchronizedStatementBLOCK_STATEMENT)
-[EXPRESSION](#SynchronizedStatementEXPRESSION)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### BLOCK_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SynchronizedStatement--"BLOCK_STATEMENT¹"-->SynchronizedStatementBLOCK_STATEMENT[BlockStatement]:::outer
-```
-### EXPRESSION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-SynchronizedStatement--"EXPRESSION¹"-->SynchronizedStatementEXPRESSION[Expression]:::outer
-```
-# TryStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [TryStatement](#etrystatement)
-## Relationships
-[RESOURCES](#TryStatementRESOURCES)
-[FINALLY_BLOCK](#TryStatementFINALLY_BLOCK)
-[TRY_BLOCK](#TryStatementTRY_BLOCK)
-[CATCH_CLAUSES](#TryStatementCATCH_CLAUSES)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### RESOURCES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TryStatement--"RESOURCES*"-->TryStatementRESOURCES[Statement]:::outer
-```
-### FINALLY_BLOCK
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TryStatement--"FINALLY_BLOCK¹"-->TryStatementFINALLY_BLOCK[BlockStatement]:::outer
-```
-### TRY_BLOCK
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TryStatement--"TRY_BLOCK¹"-->TryStatementTRY_BLOCK[BlockStatement]:::outer
-```
-### CATCH_CLAUSES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TryStatement--"CATCH_CLAUSES*"-->TryStatementCATCH_CLAUSES[CatchClause]:::outer
-```
-# ForEachStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [ForEachStatement](#eforeachstatement)
-## Relationships
-[STATEMENT](#ForEachStatementSTATEMENT)
-[VARIABLE](#ForEachStatementVARIABLE)
-[ITERABLE](#ForEachStatementITERABLE)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForEachStatement--"STATEMENT¹"-->ForEachStatementSTATEMENT[Statement]:::outer
-```
-### VARIABLE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForEachStatement--"VARIABLE¹"-->ForEachStatementVARIABLE[Statement]:::outer
-```
-### ITERABLE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ForEachStatement--"ITERABLE¹"-->ForEachStatementITERABLE[Statement]:::outer
-```
-# LabelStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [LabelStatement](#elabelstatement)
-## Relationships
-[SUB_STATEMENT](#LabelStatementSUB_STATEMENT)
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### SUB_STATEMENT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-LabelStatement--"SUB_STATEMENT¹"-->LabelStatementSUB_STATEMENT[Statement]:::outer
-```
-# BreakStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [BreakStatement](#ebreakstatement)
-## Relationships
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# EmptyStatement
-**Labels**:[Node](#enode) [Statement](#estatement) [EmptyStatement](#eemptystatement)
-## Relationships
-[LOCALS](#StatementLOCALS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# Declaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration)
-## Children
-[ValueDeclaration](#evaluedeclaration) [TemplateDeclaration](#etemplatedeclaration) [EnumDeclaration](#eenumdeclaration) [TypedefDeclaration](#etypedefdeclaration) [UsingDirective](#eusingdirective) [NamespaceDeclaration](#enamespacedeclaration) [RecordDeclaration](#erecorddeclaration) [DeclarationSequence](#edeclarationsequence) [TranslationUnitDeclaration](#etranslationunitdeclaration) [IncludeDeclaration](#eincludedeclaration)
-## Relationships
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# ValueDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration)
-## Children
-[FieldDeclaration](#efielddeclaration) [VariableDeclaration](#evariabledeclaration) [ProblemDeclaration](#eproblemdeclaration) [EnumConstantDeclaration](#eenumconstantdeclaration) [FunctionDeclaration](#efunctiondeclaration) [ParameterDeclaration](#eparamvariabledeclaration) [TypeParameterDeclaration](#etypeparamdeclaration)
-## Relationships
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### POSSIBLE_SUB_TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ValueDeclaration--"POSSIBLE_SUB_TYPES*"-->ValueDeclarationPOSSIBLE_SUB_TYPES[Type]:::outer
-```
-### TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ValueDeclaration--"TYPE¹"-->ValueDeclarationTYPE[Type]:::outer
-```
-### USAGE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ValueDeclaration--"USAGE*"-->ValueDeclarationUSAGE[Reference]:::outer
-```
-# FieldDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration) [FieldDeclaration](#efielddeclaration)
-## Relationships
-[INITIALIZER](#FieldDeclarationINITIALIZER)
-[DEFINES](#FieldDeclarationDEFINES)
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INITIALIZER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FieldDeclaration--"INITIALIZER¹"-->FieldDeclarationINITIALIZER[Expression]:::outer
-```
-### DEFINES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FieldDeclaration--"DEFINES¹"-->FieldDeclarationDEFINES[FieldDeclaration]:::outer
-```
-# VariableDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration) [VariableDeclaration](#evariabledeclaration)
-## Relationships
-[INITIALIZER](#VariableDeclarationINITIALIZER)
-[TEMPLATE_PARAMETERS](#VariableDeclarationTEMPLATE_PARAMETERS)
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INITIALIZER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-VariableDeclaration--"INITIALIZER¹"-->VariableDeclarationINITIALIZER[Expression]:::outer
-```
-### TEMPLATE_PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-VariableDeclaration--"TEMPLATE_PARAMETERS*"-->VariableDeclarationTEMPLATE_PARAMETERS[Node]:::outer
-```
-# ProblemDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration) [ProblemDeclaration](#eproblemdeclaration)
-## Relationships
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# EnumConstantDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration) [EnumConstantDeclaration](#eenumconstantdeclaration)
-## Relationships
-[INITIALIZER](#EnumConstantDeclarationINITIALIZER)
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INITIALIZER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-EnumConstantDeclaration--"INITIALIZER¹"-->EnumConstantDeclarationINITIALIZER[Expression]:::outer
-```
-# FunctionDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration) [FunctionDeclaration](#efunctiondeclaration)
-## Children
-[MethodDeclaration](#emethoddeclaration)
-## Relationships
-[THROWS_TYPES](#FunctionDeclarationTHROWS_TYPES)
-[OVERRIDES](#FunctionDeclarationOVERRIDES)
-[BODY](#FunctionDeclarationBODY)
-[RECORDS](#FunctionDeclarationRECORDS)
-[RETURN_TYPES](#FunctionDeclarationRETURN_TYPES)
-[PARAMETERS](#FunctionDeclarationPARAMETERS)
-[DEFINES](#FunctionDeclarationDEFINES)
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### THROWS_TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"THROWS_TYPES*"-->FunctionDeclarationTHROWS_TYPES[Type]:::outer
-```
-### OVERRIDES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"OVERRIDES*"-->FunctionDeclarationOVERRIDES[FunctionDeclaration]:::outer
-```
-### BODY
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"BODY¹"-->FunctionDeclarationBODY[Statement]:::outer
-```
-### RECORDS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"RECORDS*"-->FunctionDeclarationRECORDS[RecordDeclaration]:::outer
-```
-### RETURN_TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"RETURN_TYPES*"-->FunctionDeclarationRETURN_TYPES[Type]:::outer
-```
-### PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"PARAMETERS*"-->FunctionDeclarationPARAMETERS[ParameterDeclaration]:::outer
-```
-### DEFINES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionDeclaration--"DEFINES¹"-->FunctionDeclarationDEFINES[FunctionDeclaration]:::outer
-```
-# MethodDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration) [FunctionDeclaration](#efunctiondeclaration) [MethodDeclaration](#emethoddeclaration)
-## Children
-[ConstructorDeclaration](#econstructordeclaration)
-## Relationships
-[RECEIVER](#MethodDeclarationRECEIVER)
-[RECORD_DECLARATION](#MethodDeclarationRECORD_DECLARATION)
-[THROWS_TYPES](#FunctionDeclarationTHROWS_TYPES)
-[OVERRIDES](#FunctionDeclarationOVERRIDES)
-[BODY](#FunctionDeclarationBODY)
-[RECORDS](#FunctionDeclarationRECORDS)
-[RETURN_TYPES](#FunctionDeclarationRETURN_TYPES)
-[PARAMETERS](#FunctionDeclarationPARAMETERS)
-[DEFINES](#FunctionDeclarationDEFINES)
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### RECEIVER
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-MethodDeclaration--"RECEIVER¹"-->MethodDeclarationRECEIVER[VariableDeclaration]:::outer
-```
-### RECORD_DECLARATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-MethodDeclaration--"RECORD_DECLARATION¹"-->MethodDeclarationRECORD_DECLARATION[RecordDeclaration]:::outer
-```
-# ConstructorDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration) [FunctionDeclaration](#efunctiondeclaration) [MethodDeclaration](#emethoddeclaration) [ConstructorDeclaration](#econstructordeclaration)
-## Relationships
-[RECEIVER](#MethodDeclarationRECEIVER)
-[RECORD_DECLARATION](#MethodDeclarationRECORD_DECLARATION)
-[THROWS_TYPES](#FunctionDeclarationTHROWS_TYPES)
-[OVERRIDES](#FunctionDeclarationOVERRIDES)
-[BODY](#FunctionDeclarationBODY)
-[RECORDS](#FunctionDeclarationRECORDS)
-[RETURN_TYPES](#FunctionDeclarationRETURN_TYPES)
-[PARAMETERS](#FunctionDeclarationPARAMETERS)
-[DEFINES](#FunctionDeclarationDEFINES)
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# ParameterDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration) [ParameterDeclaration](#eparamvariabledeclaration)
-## Relationships
-[DEFAULT](#ParameterDeclarationDEFAULT)
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### DEFAULT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ParameterDeclaration--"DEFAULT¹"-->ParameterDeclarationDEFAULT[Expression]:::outer
-```
-# TypeParameterDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [ValueDeclaration](#evaluedeclaration) [TypeParameterDeclaration](#etypeparamdeclaration)
-## Relationships
-[DEFAULT](#TypeParameterDeclarationDEFAULT)
-[POSSIBLE_SUB_TYPES](#ValueDeclarationPOSSIBLE_SUB_TYPES)
-[TYPE](#ValueDeclarationTYPE)
-[USAGE](#ValueDeclarationUSAGE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### DEFAULT
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TypeParameterDeclaration--"DEFAULT¹"-->TypeParameterDeclarationDEFAULT[Type]:::outer
-```
-# TemplateDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [TemplateDeclaration](#etemplatedeclaration)
-## Children
-[ClassTemplateDeclaration](#eclasstemplatedeclaration) [FunctionTemplateDeclaration](#efunctiontemplatedeclaration)
-## Relationships
-[PARAMETERS](#TemplateDeclarationPARAMETERS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TemplateDeclaration--"PARAMETERS*"-->TemplateDeclarationPARAMETERS[Declaration]:::outer
-```
-# ClassTemplateDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [TemplateDeclaration](#etemplatedeclaration) [ClassTemplateDeclaration](#eclasstemplatedeclaration)
-## Relationships
-[REALIZATION](#ClassTemplateDeclarationREALIZATION)
-[PARAMETERS](#TemplateDeclarationPARAMETERS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### REALIZATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ClassTemplateDeclaration--"REALIZATION*"-->ClassTemplateDeclarationREALIZATION[RecordDeclaration]:::outer
-```
-# FunctionTemplateDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [TemplateDeclaration](#etemplatedeclaration) [FunctionTemplateDeclaration](#efunctiontemplatedeclaration)
-## Relationships
-[REALIZATION](#FunctionTemplateDeclarationREALIZATION)
-[PARAMETERS](#TemplateDeclarationPARAMETERS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### REALIZATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionTemplateDeclaration--"REALIZATION*"-->FunctionTemplateDeclarationREALIZATION[FunctionDeclaration]:::outer
-```
-# EnumDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [EnumDeclaration](#eenumdeclaration)
-## Relationships
-[ENTRIES](#EnumDeclarationENTRIES)
-[SUPER_TYPE_DECLARATIONS](#EnumDeclarationSUPER_TYPE_DECLARATIONS)
-[SUPER_TYPES](#EnumDeclarationSUPER_TYPES)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### ENTRIES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-EnumDeclaration--"ENTRIES*"-->EnumDeclarationENTRIES[EnumConstantDeclaration]:::outer
-```
-### SUPER_TYPE_DECLARATIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-EnumDeclaration--"SUPER_TYPE_DECLARATIONS*"-->EnumDeclarationSUPER_TYPE_DECLARATIONS[RecordDeclaration]:::outer
-```
-### SUPER_TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-EnumDeclaration--"SUPER_TYPES*"-->EnumDeclarationSUPER_TYPES[Type]:::outer
-```
-# TypedefDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [TypedefDeclaration](#etypedefdeclaration)
-## Relationships
-[ALIAS](#TypedefDeclarationALIAS)
-[TYPE](#TypedefDeclarationTYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### ALIAS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TypedefDeclaration--"ALIAS¹"-->TypedefDeclarationALIAS[Type]:::outer
-```
-### TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TypedefDeclaration--"TYPE¹"-->TypedefDeclarationTYPE[Type]:::outer
-```
-# UsingDirective
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [UsingDirective](#eusingdirective)
-## Relationships
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# NamespaceDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [NamespaceDeclaration](#enamespacedeclaration)
-## Relationships
-[STATEMENTS](#NamespaceDeclarationSTATEMENTS)
-[DECLARATIONS](#NamespaceDeclarationDECLARATIONS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### STATEMENTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NamespaceDeclaration--"STATEMENTS*"-->NamespaceDeclarationSTATEMENTS[Statement]:::outer
-```
-### DECLARATIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-NamespaceDeclaration--"DECLARATIONS*"-->NamespaceDeclarationDECLARATIONS[Declaration]:::outer
-```
-# RecordDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [RecordDeclaration](#erecorddeclaration)
-## Relationships
-[IMPORTS](#RecordDeclarationIMPORTS)
-[CONSTRUCTORS](#RecordDeclarationCONSTRUCTORS)
-[FIELDS](#RecordDeclarationFIELDS)
-[TEMPLATES](#RecordDeclarationTEMPLATES)
-[STATIC_IMPORTS](#RecordDeclarationSTATIC_IMPORTS)
-[RECORDS](#RecordDeclarationRECORDS)
-[SUPER_TYPE_DECLARATIONS](#RecordDeclarationSUPER_TYPE_DECLARATIONS)
-[STATEMENTS](#RecordDeclarationSTATEMENTS)
-[METHODS](#RecordDeclarationMETHODS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### IMPORTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"IMPORTS*"-->RecordDeclarationIMPORTS[Declaration]:::outer
-```
-### CONSTRUCTORS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"CONSTRUCTORS*"-->RecordDeclarationCONSTRUCTORS[ConstructorDeclaration]:::outer
-```
-### FIELDS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"FIELDS*"-->RecordDeclarationFIELDS[FieldDeclaration]:::outer
-```
-### TEMPLATES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"TEMPLATES*"-->RecordDeclarationTEMPLATES[TemplateDeclaration]:::outer
-```
-### STATIC_IMPORTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"STATIC_IMPORTS*"-->RecordDeclarationSTATIC_IMPORTS[ValueDeclaration]:::outer
-```
-### RECORDS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"RECORDS*"-->RecordDeclarationRECORDS[RecordDeclaration]:::outer
-```
-### SUPER_TYPE_DECLARATIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"SUPER_TYPE_DECLARATIONS*"-->RecordDeclarationSUPER_TYPE_DECLARATIONS[RecordDeclaration]:::outer
-```
-### STATEMENTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"STATEMENTS*"-->RecordDeclarationSTATEMENTS[Statement]:::outer
-```
-### METHODS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-RecordDeclaration--"METHODS*"-->RecordDeclarationMETHODS[MethodDeclaration]:::outer
-```
-# DeclarationSequence
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [DeclarationSequence](#edeclarationsequence)
-## Relationships
-[CHILDREN](#DeclarationSequenceCHILDREN)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### CHILDREN
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-DeclarationSequence--"CHILDREN*"-->DeclarationSequenceCHILDREN[Declaration]:::outer
-```
-# TranslationUnitDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [TranslationUnitDeclaration](#etranslationunitdeclaration)
-## Relationships
-[NAMESPACES](#TranslationUnitDeclarationNAMESPACES)
-[DECLARATIONS](#TranslationUnitDeclarationDECLARATIONS)
-[STATEMENTS](#TranslationUnitDeclarationSTATEMENTS)
-[INCLUDES](#TranslationUnitDeclarationINCLUDES)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### NAMESPACES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TranslationUnitDeclaration--"NAMESPACES*"-->TranslationUnitDeclarationNAMESPACES[NamespaceDeclaration]:::outer
-```
-### DECLARATIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TranslationUnitDeclaration--"DECLARATIONS*"-->TranslationUnitDeclarationDECLARATIONS[Declaration]:::outer
-```
-### STATEMENTS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TranslationUnitDeclaration--"STATEMENTS*"-->TranslationUnitDeclarationSTATEMENTS[Statement]:::outer
-```
-### INCLUDES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TranslationUnitDeclaration--"INCLUDES*"-->TranslationUnitDeclarationINCLUDES[IncludeDeclaration]:::outer
-```
-# IncludeDeclaration
-**Labels**:[Node](#enode) [Declaration](#edeclaration) [IncludeDeclaration](#eincludedeclaration)
-## Relationships
-[INCLUDES](#IncludeDeclarationINCLUDES)
-[PROBLEMS](#IncludeDeclarationPROBLEMS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### INCLUDES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IncludeDeclaration--"INCLUDES*"-->IncludeDeclarationINCLUDES[IncludeDeclaration]:::outer
-```
-### PROBLEMS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-IncludeDeclaration--"PROBLEMS*"-->IncludeDeclarationPROBLEMS[ProblemDeclaration]:::outer
-```
-# Type
-**Labels**:[Node](#enode) [Type](#etype)
-## Children
-[UnknownType](#eunknowntype) [ObjectType](#eobjecttype) [ParameterizedType](#eparameterizedtype) [PointerType](#epointertype) [FunctionPointerType](#efunctionpointertype) [TupleType](#etupletype) [IncompleteType](#eincompletetype) [ReferenceType](#ereferencetype) [FunctionType](#efunctiontype)
-## Relationships
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### SUPER_TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Type--"SUPER_TYPE*"-->TypeSUPER_TYPE[Type]:::outer
-```
-# UnknownType
-**Labels**:[Node](#enode) [Type](#etype) [UnknownType](#eunknowntype)
-## Relationships
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# ObjectType
-**Labels**:[Node](#enode) [Type](#etype) [ObjectType](#eobjecttype)
-## Children
-[NumericType](#enumerictype) [StringType](#estringtype)
-## Relationships
-[GENERICS](#ObjectTypeGENERICS)
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### GENERICS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ObjectType--"GENERICS*"-->ObjectTypeGENERICS[Type]:::outer
-```
-### RECORD_DECLARATION
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ObjectType--"RECORD_DECLARATION¹"-->ObjectTypeRECORD_DECLARATION[RecordDeclaration]:::outer
-```
-# NumericType
-**Labels**:[Node](#enode) [Type](#etype) [ObjectType](#eobjecttype) [NumericType](#enumerictype)
-## Children
-[IntegerType](#eintegertype) [FloatingPointType](#efloatingpointtype) [BooleanType](#ebooleantype)
-## Relationships
-[GENERICS](#ObjectTypeGENERICS)
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# IntegerType
-**Labels**:[Node](#enode) [Type](#etype) [ObjectType](#eobjecttype) [NumericType](#enumerictype) [IntegerType](#eintegertype)
-## Relationships
-[GENERICS](#ObjectTypeGENERICS)
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# FloatingPointType
-**Labels**:[Node](#enode) [Type](#etype) [ObjectType](#eobjecttype) [NumericType](#enumerictype) [FloatingPointType](#efloatingpointtype)
-## Relationships
-[GENERICS](#ObjectTypeGENERICS)
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# BooleanType
-**Labels**:[Node](#enode) [Type](#etype) [ObjectType](#eobjecttype) [NumericType](#enumerictype) [BooleanType](#ebooleantype)
-## Relationships
-[GENERICS](#ObjectTypeGENERICS)
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# StringType
-**Labels**:[Node](#enode) [Type](#etype) [ObjectType](#eobjecttype) [StringType](#estringtype)
-## Relationships
-[GENERICS](#ObjectTypeGENERICS)
-[RECORD_DECLARATION](#ObjectTypeRECORD_DECLARATION)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# ParameterizedType
-**Labels**:[Node](#enode) [Type](#etype) [ParameterizedType](#eparameterizedtype)
-## Relationships
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# PointerType
-**Labels**:[Node](#enode) [Type](#etype) [PointerType](#epointertype)
-## Relationships
-[ELEMENT_TYPE](#PointerTypeELEMENT_TYPE)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### ELEMENT_TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-PointerType--"ELEMENT_TYPE¹"-->PointerTypeELEMENT_TYPE[Type]:::outer
-```
-# FunctionPointerType
-**Labels**:[Node](#enode) [Type](#etype) [FunctionPointerType](#efunctionpointertype)
-## Relationships
-[PARAMETERS](#FunctionPointerTypePARAMETERS)
-[RETURN_TYPE](#FunctionPointerTypeRETURN_TYPE)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionPointerType--"PARAMETERS*"-->FunctionPointerTypePARAMETERS[Type]:::outer
-```
-### RETURN_TYPE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionPointerType--"RETURN_TYPE¹"-->FunctionPointerTypeRETURN_TYPE[Type]:::outer
-```
-# TupleType
-**Labels**:[Node](#enode) [Type](#etype) [TupleType](#etupletype)
-## Relationships
-[TYPES](#TupleTypeTYPES)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-TupleType--"TYPES*"-->TupleTypeTYPES[Type]:::outer
-```
-# IncompleteType
-**Labels**:[Node](#enode) [Type](#etype) [IncompleteType](#eincompletetype)
-## Relationships
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-# ReferenceType
-**Labels**:[Node](#enode) [Type](#etype) [ReferenceType](#ereferencetype)
-## Relationships
-[REFERENCE](#ReferenceTypeREFERENCE)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### REFERENCE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-ReferenceType--"REFERENCE¹"-->ReferenceTypeREFERENCE[Type]:::outer
-```
-# FunctionType
-**Labels**:[Node](#enode) [Type](#etype) [FunctionType](#efunctiontype)
-## Relationships
-[RETURN_TYPES](#FunctionTypeRETURN_TYPES)
-[PARAMETERS](#FunctionTypePARAMETERS)
-[SUPER_TYPE](#TypeSUPER_TYPE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### RETURN_TYPES
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionType--"RETURN_TYPES*"-->FunctionTypeRETURN_TYPES[Type]:::outer
-```
-### PARAMETERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-FunctionType--"PARAMETERS*"-->FunctionTypePARAMETERS[Type]:::outer
-```
-# AnnotationMember
-**Labels**:[Node](#enode) [AnnotationMember](#eannotationmember)
-## Relationships
-[VALUE](#AnnotationMemberVALUE)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### VALUE
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-AnnotationMember--"VALUE¹"-->AnnotationMemberVALUE[Expression]:::outer
-```
-# Component
-**Labels**:[Node](#enode) [Component](#ecomponent)
-## Relationships
-[OUTGOING_INTERACTIONS](#ComponentOUTGOING_INTERACTIONS)
-[INCOMING_INTERACTIONS](#ComponentINCOMING_INTERACTIONS)
-[TRANSLATION_UNITS](#ComponentTRANSLATION_UNITS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### OUTGOING_INTERACTIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Component--"OUTGOING_INTERACTIONS*"-->ComponentOUTGOING_INTERACTIONS[Node]:::outer
-```
-### INCOMING_INTERACTIONS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Component--"INCOMING_INTERACTIONS*"-->ComponentINCOMING_INTERACTIONS[Node]:::outer
-```
-### TRANSLATION_UNITS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Component--"TRANSLATION_UNITS*"-->ComponentTRANSLATION_UNITS[TranslationUnitDeclaration]:::outer
-```
-# Annotation
-**Labels**:[Node](#enode) [Annotation](#eannotation)
-## Relationships
-[MEMBERS](#AnnotationMEMBERS)
-[DFG](#NodeDFG)
-[EOG](#NodeEOG)
-[ANNOTATIONS](#NodeANNOTATIONS)
-[AST](#NodeAST)
-[SCOPE](#NodeSCOPE)
-[TYPEDEFS](#NodeTYPEDEFS)
-### MEMBERS
-```mermaid
-flowchart LR
- classDef outer fill:#fff,stroke:#ddd,stroke-dasharray:5 5; classDef special fill:#afa,stroke:#5a5,stroke-dasharray:5 5;
-Annotation--"MEMBERS*"-->AnnotationMEMBERS[AnnotationMember]:::outer
-```