Skip to content

SageBuilder::declaration_ownership

Exact structural ownership selected by named declaration producers.

Synopsis

Declared in <SageIII/sageInterface/sageBuilder.h>

class declaration_ownership;

Enums

Name

kind

Static Member Functions

Name

Description

embeddedDeclaratorChild

semanticAuxiliary

semanticAuxiliaryPendingExactSource

Publish through semantic auxiliary ownership while leaving provenance unclassified for one exact frontend publication. The declaration is structurally auxiliary from construction and can never acquire a lexical source‐owner edge.

semanticGroupMember

sourceDeclaratorScopeChildIn

Publish a source‐written tag in the exact function declaration scope that owns its declarator spelling while preserving the tag's semantic scope.

sourceGroupMember

sourceLexical

Publish in the semantic scope passed to the builder.

sourceLexicalClassRedeclarationIn

Publish a distinct class source surface in a lexical scope while joining an already published exact semantic class declaration family directly. No name or template‐argument lookup is permitted for this transaction.

sourceLexicalIn

Publish in a distinct lexical scope without changing semantic scope.

sourceLexicalPendingExactSource

Publish in the semantic scope while leaving provenance unclassified for one later exact physical‐source publication by a frontend.

transformationDetached

Build one generated declaration surface with complete transformation provenance and semantic identity, but no lexical owner. A later typed mutation transaction must publish its exact physical output owner.

Private Member Functions

Name

declaration_ownership [constructor]

Non-Member Functions

Name

Description

buildAnonymousStructDeclaration

Build a source‐anonymous structure with an explicit, non‐empty semantic identity. The internal name is never emitted as source.

buildClassDeclaration

DQ (11/7/2009): Added function to build C++ class (builds both the non‐defining and defining declarations; in that order).

buildClassDeclarationStatement_nfi

Build a generic class declaration statement (SgClassDeclaration or subclass) with a class declaration and definition (creating both the defining and nondefining declarations as required.

buildDerivedTypeStatement

Build an SgDerivedTypeStatement Fortran derived type declaration with a class declaration and definition (creating both the defining and nondefining declarations as required).

buildEnumDeclaration

Build an enum, It is also a declaration statement in SAGE III

buildEnumDeclaration_nfi

Build one enum definition over an explicit canonical type identity.

buildModuleStatement

Build a Fortran module declaration.

buildNondefiningClassDeclaration

DQ (11/7/2009): Added functions to build C++ class.

buildNondefiningClassDeclaration_nfi

Build a class first nondefining declaration, without file info.

buildNondefiningDerivedTypeStatement

Build the canonical semantic forward declaration for a Fortran derived type. A derived‐type forward has no source surface or definition and must be completed later by exactly one buildDerivedTypeStatement() call.

buildNondefiningTemplateClassDeclaration

buildNondefiningTemplateClassDeclaration()

buildNondefiningTemplateClassDeclaration_nfi

DQ (11/29/2011): Adding template declaration support to the AST.

buildNondefiningTemplateClassRedeclaration_nfi

Build one nondefining redeclaration of an existing template class. The canonical declaration is required explicitly; the redeclaration reuses its exact type and symbol and never publishes another symbol.

buildStructDeclaration

Build a structure, It is also a declaration statement in SAGE III

buildTemplateClassDeclaration

Build tempplate class declaration

buildTemplateVariableDeclaration

Build and atomically publish a template variable declaration with explicit structural ownership. The semantic scope is supplied separately; sourceLexicalIn() represents an out‐of‐class definition without changing the variable entity's semantic class scope.

Created with MrDocs