Skip to content

Declaration Nodes

AttributeDeclarationNode (extends DeclarationNode)

Section titled “AttributeDeclarationNode (extends DeclarationNode)”

kind discriminant: "AttributeDeclaration"

FieldType
attributesAttribute[]

kind discriminant: "Template"

FieldType
parametersTemplateParameter[]
requiresClauseNode?

kind discriminant: "Namespace"

FieldType
segmentsNamespaceSegment[]
isAnonymousboolean
isInlineboolean
childrenNode[]

UsingNamespaceNode (extends DeclarationNode)

Section titled “UsingNamespaceNode (extends DeclarationNode)”

kind discriminant: "UsingNamespace"

FieldType
identifierIdentifierNode?

StaticAssertNode (extends DeclarationNode)

Section titled “StaticAssertNode (extends DeclarationNode)”

kind discriminant: "StaticAssert"

FieldType
conditionNode?
messagestring

NamespaceAliasNode (extends DeclarationNode)

Section titled “NamespaceAliasNode (extends DeclarationNode)”

kind discriminant: "NamespaceAlias"

FieldType
aliasNamestring
targetNamespaceIdentifierNode?

kind discriminant: "Typedef"

FieldType
aliasNamestring
typeDeclDeclarationNode?
targetTypeTypeSignature?

kind discriminant: "TypeAlias"

FieldType
aliasNamestring
targetTypeTypeSignature
templateDeclNode?

UsingDeclarationNode (extends DeclarationNode)

Section titled “UsingDeclarationNode (extends DeclarationNode)”

kind discriminant: "UsingDeclaration"

FieldType
aliasNamestring
targetTypeTypeSignature

kind discriminant: "EnumeratorSpecifier"

FieldType
identifierIdentifierNode?
underlyingTypeTypeSignature
isScopedboolean
isForwardDeclarationboolean
enumeratorsNode[]

EnumSpecifierNode (extends DeclarationNode)

Section titled “EnumSpecifierNode (extends DeclarationNode)”

kind discriminant: "Enumerator"

FieldType
namestring
valueNode?

kind discriminant: "Variable"

FieldType
isStaticboolean
isConstexprboolean
isThreadLocalboolean
isInlineboolean
isExternboolean
isConstinitboolean
attributesAttribute[]
alignasExprsstring[]
typeSignatureTypeSignature
identifierIdentifierNode?
defaultValueNode?

VariableGroupNode (extends DeclarationNode)

Section titled “VariableGroupNode (extends DeclarationNode)”

kind discriminant: "VariableGroup"

FieldType
variablesVariableNode[]

StructuredBindingNode (extends DeclarationNode)

Section titled “StructuredBindingNode (extends DeclarationNode)”

kind discriminant: "StructuredBinding"

FieldType
namesstring[]
typeSignatureTypeSignature
initializerNode?
isStaticboolean
isConstexprboolean
isConstinitboolean
isThreadLocalboolean
isInlineboolean

kind discriminant: "Concept"

FieldType
identifierIdentifierNode?
constraintExprNode?
templateDeclNode?

kind discriminant: "Function"

FieldType
isStaticboolean
isConstboolean
isVolatileboolean
isVirtualboolean
isPureVirtualboolean
isOverrideboolean
isNoexceptboolean
noexceptConditionNode?
isFinalboolean
isInlineboolean
isConstexprboolean
isConstevalboolean
isExplicitboolean
explicitConditionNode?
isDefaultedboolean
isDeletedboolean
isTrailingReturnboolean
refQualifierRefQualifier
requiresClauseNode?
bodyBlockNode?
attributesAttribute[]
returnSignatureTypeSignature
identifierIdentifierNode?
parametersFunctionParameter[]
templateDeclNode?
templateArgsTemplateArgument[]

kind discriminant: "Constructor"

FieldType
isExplicitboolean
explicitConditionNode?
isNoexceptboolean
noexceptConditionNode?
isDefaultedboolean
isDeletedboolean
isConstexprboolean
isInlineboolean
isCopyConstructorboolean
isMoveConstructorboolean
requiresClauseNode?
bodyBlockNode?
attributesAttribute[]
identifierIdentifierNode?
parametersFunctionParameter[]
templateDeclNode?
templateArgsTemplateArgument[]

kind discriminant: "Destructor"

FieldType
isVirtualboolean
isPureVirtualboolean
isDefaultedboolean
isDeletedboolean
isNoexceptboolean
noexceptConditionNode?
isInlineboolean
isConstexprboolean
requiresClauseNode?
bodyBlockNode?
attributesAttribute[]
identifierIdentifierNode?

kind discriminant: "Operator"

FieldType
isStaticboolean
isConstboolean
isVolatileboolean
isVirtualboolean
isPureVirtualboolean
isOverrideboolean
isNoexceptboolean
noexceptConditionNode?
isFinalboolean
isInlineboolean
isConstexprboolean
isExplicitboolean
explicitConditionNode?
isDefaultedboolean
isDeletedboolean
isTrailingReturnboolean
refQualifierRefQualifier
requiresClauseNode?
bodyBlockNode?
attributesAttribute[]
operatorSymbolstring
returnSignatureTypeSignature
castTargetTypeTypeSignature
parametersFunctionParameter[]
templateDeclNode?
templateArgsTemplateArgument[]

kind discriminant: "Union"

FieldType
isAnonymousboolean
isForwardDeclarationboolean
attributesAttribute[]
alignasExprsstring[]
identifierIdentifierNode?
templateDeclNode?
templateArgsTemplateArgument[]
memberVariablesNode[]
memberFunctionsNode[]
staticMemberVariablesNode[]
staticMemberFunctionsNode[]
constructorsNode[]
destructorsNode[]
operatorsNode[]
nestedTypesNode[]

kind discriminant: "Friend"

FieldType
kindstring
identifierIdentifierNode?

kind discriminant: "Struct"

FieldType
isFinalboolean
isForwardDeclarationboolean
attributesAttribute[]
alignasExprsstring[]
identifierIdentifierNode?
templateDeclNode?
templateArgsTemplateArgument[]
baseClasses[?, IdentifierNode][]
derivedClassesstring[]
memberVariablesNode[]
memberFunctionsNode[]
staticMemberVariablesNode[]
staticMemberFunctionsNode[]
constructorsNode[]
destructorsNode[]
operatorsNode[]
friendsNode[]
nestedTypesNode[]
statementsNode[]

kind discriminant: "Class"

FieldType
isFinalboolean
isForwardDeclarationboolean
attributesAttribute[]
alignasExprsstring[]
identifierIdentifierNode?
templateDeclNode?
templateArgsTemplateArgument[]
baseClasses[?, IdentifierNode][]
derivedClassesstring[]
memberVariables[?, Node][]
memberFunctions[?, Node][]
staticMemberVariables[?, Node][]
staticMemberFunctions[?, Node][]
constructors[?, Node][]
destructors[?, Node][]
operators[?, Node][]
friends[?, Node][]
nestedTypes[?, Node][]
statementsNode[]

kind discriminant: "Module"

FieldType
moduleNamestring
partitionstring
isExportedboolean
isGlobalFragmentboolean
isPrivateFragmentboolean
childrenNode[]

ModuleImportNode (extends DeclarationNode)

Section titled “ModuleImportNode (extends DeclarationNode)”

kind discriminant: "ModuleImport"

FieldType
moduleNamestring
partitionstring
headerstring
isSystemboolean
isExportedboolean

kind discriminant: "ExternC"

FieldType
languagestring
isBlockboolean
childrenNode[]

ExportDeclarationNode (extends DeclarationNode)

Section titled “ExportDeclarationNode (extends DeclarationNode)”

kind discriminant: "ExportDeclaration"

FieldType
childrenNode[]