Skip to content

Declaration Nodes

AttributeDeclarationNode (extends DeclarationNode)

Section titled “AttributeDeclarationNode (extends DeclarationNode)”

kind discriminant: "AttributeDeclaration"

FieldType
attributesAttribute[]

kind discriminant: "Class"

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

kind discriminant: "Concept"

FieldType
identifierIdentifierNode?
constraintExprNode?
templateDeclNode?

kind discriminant: "Constructor"

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

kind discriminant: "Destructor"

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

kind discriminant: "EnumeratorSpecifier"

FieldType
identifierIdentifierNode?
underlyingTypeTypeSignature
isScopedboolean
isForwardDeclarationboolean
enumeratorsNode[]

EnumSpecifierNode (extends DeclarationNode)

Section titled “EnumSpecifierNode (extends DeclarationNode)”

kind discriminant: "Enumerator"

FieldType
namestring
valueNode?

ExportDeclarationNode (extends DeclarationNode)

Section titled “ExportDeclarationNode (extends DeclarationNode)”

kind discriminant: "ExportDeclaration"

FieldType
childrenNode[]

kind discriminant: "ExternC"

FieldType
languagestring
isBlockboolean
childrenNode[]

kind discriminant: "Friend"

FieldType
kindstring
identifierIdentifierNode?
definitionNode?

kind discriminant: "Function"

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

ModuleImportNode (extends DeclarationNode)

Section titled “ModuleImportNode (extends DeclarationNode)”

kind discriminant: "ModuleImport"

FieldType
moduleNamestring
partitionstring
headerstring
isSystemboolean
isExportedboolean

kind discriminant: "Module"

FieldType
moduleNamestring
partitionstring
isExportedboolean
isGlobalFragmentboolean
isPrivateFragmentboolean
childrenNode[]

NamespaceAliasNode (extends DeclarationNode)

Section titled “NamespaceAliasNode (extends DeclarationNode)”

kind discriminant: "NamespaceAlias"

FieldType
aliasNamestring
targetNamespaceIdentifierNode?

kind discriminant: "Namespace"

FieldType
segmentsNamespaceSegment[]
isAnonymousboolean
isInlineboolean
childrenNode[]

kind discriminant: "Operator"

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

StaticAssertNode (extends DeclarationNode)

Section titled “StaticAssertNode (extends DeclarationNode)”

kind discriminant: "StaticAssert"

FieldType
conditionNode?
messagestring

kind discriminant: "Struct"

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

StructuredBindingNode (extends DeclarationNode)

Section titled “StructuredBindingNode (extends DeclarationNode)”

kind discriminant: "StructuredBinding"

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

kind discriminant: "Template"

FieldType
parametersTemplateParameter[]
requiresClauseNode?

kind discriminant: "TypeAlias"

FieldType
aliasNamestring
targetTypeTypeSignature
templateDeclNode?

kind discriminant: "Typedef"

FieldType
aliasNamestring
typeDeclDeclarationNode?
targetTypeTypeSignature?

kind discriminant: "Union"

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

UsingDeclarationNode (extends DeclarationNode)

Section titled “UsingDeclarationNode (extends DeclarationNode)”

kind discriminant: "UsingDeclaration"

FieldType
aliasNamestring
targetTypeTypeSignature

UsingNamespaceNode (extends DeclarationNode)

Section titled “UsingNamespaceNode (extends DeclarationNode)”

kind discriminant: "UsingNamespace"

FieldType
identifierIdentifierNode?

VariableGroupNode (extends DeclarationNode)

Section titled “VariableGroupNode (extends DeclarationNode)”

kind discriminant: "VariableGroup"

FieldType
variablesVariableNode[]

kind discriminant: "Variable"

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