Bond 0.9
C++ Bond Runtime Library API Documentation
Loading...
Searching...
No Matches
Bond::StructDeclaration Class Reference

#include <bond/compiler/parsenodes.h>

Inheritance diagram for Bond::StructDeclaration:
Bond::Symbol Bond::ListParseNode Bond::ParseNode

Public Types

enum  Variant { VARIANT_BOND , VARIANT_NATIVE , VARIANT_NATIVE_STUB }
 
- Public Types inherited from Bond::Symbol
enum  SymbolType {
  TYPE_NAMESPACE , TYPE_STRUCT , TYPE_ENUM , TYPE_LOCALSCOPE ,
  TYPE_VALUE , TYPE_FUNCTION
}
 

Public Member Functions

 StructDeclaration (const Token *name, const Token *size, const Token *alignment, FunctionDefinition *memberFunctionList, DeclarativeStatement *memberVariableList, Variant variant)
 
virtual ~StructDeclaration ()
 
virtual void Accept (ParseNodeVisitor &visitor) override
 
virtual void Accept (ParseNodeVisitor &visitor) const override
 
virtual SymbolType GetSymbolType () const override
 
virtual const TokenGetName () const override
 
virtual bool IsResolved () const override
 
TypeDescriptorGetThisTypeDescriptor ()
 
const TypeDescriptorGetThisTypeDescriptor () const
 
TypeDescriptorGetConstThisTypeDescriptor ()
 
const TypeDescriptorGetConstThisTypeDescriptor () const
 
const TokenGetSizeToken () const
 
const TokenGetAlignmentToken () const
 
FunctionDefinitionGetMemberFunctionList ()
 
const FunctionDefinitionGetMemberFunctionList () const
 
void SetMemberFunctionList (FunctionDefinition *memberFunctionList)
 
DeclarativeStatementGetMemberVariableList ()
 
const DeclarativeStatementGetMemberVariableList () const
 
void SetMemberVariableList (DeclarativeStatement *memberVariableList)
 
const StructDeclarationGetSizeSpecifier () const
 
void SetSizeSpecifier (const StructDeclaration *sizeSpecifier)
 
Variant GetVariant () const
 
bool IsNative () const
 
uint32_t GetSize () const
 
void SetSize (uint32_t size)
 
uint32_t GetAlignment () const
 
void SetAlignment (uint32_t alignment)
 
bool IsInstantiable () const
 
- Public Member Functions inherited from Bond::Symbol
virtual ~Symbol ()
 
virtual const TokenGetContextToken () const override
 
virtual SymbolType GetSymbolType () const =0
 
virtual const TokenGetName () const
 
virtual TypeAndValueGetTypeAndValue ()
 
virtual const TypeAndValueGetTypeAndValue () const
 
virtual bool IsResolved () const
 
bool IsTypeDefinition () const
 
SymbolGetParentSymbol ()
 
const SymbolGetParentSymbol () const
 
void SetParentSymbol (Symbol *parent)
 
SymbolFindSymbol (const StringView &name)
 
const SymbolFindSymbol (const StringView &name) const
 
SymbolFindSymbol (const Token *name)
 
const SymbolFindSymbol (const Token *name) const
 
SymbolFindSymbol (const QualifiedIdentifier *identifier)
 
const SymbolFindSymbol (const QualifiedIdentifier *identifier) const
 
void InsertSymbol (Symbol *symbol)
 
bool IsAnonymous () const
 
bool Matches (const StringView &name) const
 
- Public Member Functions inherited from Bond::ListParseNode
virtual ~ListParseNode ()
 
ListParseNodeGetNextNode ()
 
const ListParseNodeGetNextNode () const
 
void SetNextNode (ListParseNode *next)
 
- Public Member Functions inherited from Bond::ParseNode
virtual ~ParseNode ()
 
virtual void Accept (ParseNodeVisitor &visitor)=0
 
virtual void Accept (ParseNodeVisitor &visitor) const =0
 
virtual const TokenGetContextToken () const =0
 

Additional Inherited Members

- Protected Member Functions inherited from Bond::Symbol
 Symbol ()
 
- Protected Member Functions inherited from Bond::ListParseNode
 ListParseNode ()
 
- Protected Member Functions inherited from Bond::ParseNode
 ParseNode ()
 

Member Enumeration Documentation

◆ Variant

Enumerator
VARIANT_BOND 
VARIANT_NATIVE 
VARIANT_NATIVE_STUB 

Constructor & Destructor Documentation

◆ StructDeclaration()

Bond::StructDeclaration::StructDeclaration ( const Token name,
const Token size,
const Token alignment,
FunctionDefinition memberFunctionList,
DeclarativeStatement memberVariableList,
Variant  variant 
)
inline

◆ ~StructDeclaration()

virtual Bond::StructDeclaration::~StructDeclaration ( )
inlinevirtual

Member Function Documentation

◆ Accept() [1/2]

virtual void Bond::StructDeclaration::Accept ( ParseNodeVisitor visitor) const
inlineoverridevirtual

Implements Bond::ParseNode.

◆ Accept() [2/2]

virtual void Bond::StructDeclaration::Accept ( ParseNodeVisitor visitor)
inlineoverridevirtual

Implements Bond::ParseNode.

◆ GetAlignment()

uint32_t Bond::StructDeclaration::GetAlignment ( ) const
inline

◆ GetAlignmentToken()

const Token * Bond::StructDeclaration::GetAlignmentToken ( ) const
inline

◆ GetConstThisTypeDescriptor() [1/2]

TypeDescriptor & Bond::StructDeclaration::GetConstThisTypeDescriptor ( )
inline

◆ GetConstThisTypeDescriptor() [2/2]

const TypeDescriptor & Bond::StructDeclaration::GetConstThisTypeDescriptor ( ) const
inline

◆ GetMemberFunctionList() [1/2]

FunctionDefinition * Bond::StructDeclaration::GetMemberFunctionList ( )
inline

◆ GetMemberFunctionList() [2/2]

const FunctionDefinition * Bond::StructDeclaration::GetMemberFunctionList ( ) const
inline

◆ GetMemberVariableList() [1/2]

DeclarativeStatement * Bond::StructDeclaration::GetMemberVariableList ( )
inline

◆ GetMemberVariableList() [2/2]

const DeclarativeStatement * Bond::StructDeclaration::GetMemberVariableList ( ) const
inline

◆ GetName()

virtual const Token * Bond::StructDeclaration::GetName ( ) const
inlineoverridevirtual

Reimplemented from Bond::Symbol.

◆ GetSize()

uint32_t Bond::StructDeclaration::GetSize ( ) const
inline

◆ GetSizeSpecifier()

const StructDeclaration * Bond::StructDeclaration::GetSizeSpecifier ( ) const
inline

◆ GetSizeToken()

const Token * Bond::StructDeclaration::GetSizeToken ( ) const
inline

◆ GetSymbolType()

virtual SymbolType Bond::StructDeclaration::GetSymbolType ( ) const
inlineoverridevirtual

Implements Bond::Symbol.

◆ GetThisTypeDescriptor() [1/2]

TypeDescriptor & Bond::StructDeclaration::GetThisTypeDescriptor ( )
inline

◆ GetThisTypeDescriptor() [2/2]

const TypeDescriptor & Bond::StructDeclaration::GetThisTypeDescriptor ( ) const
inline

◆ GetVariant()

Variant Bond::StructDeclaration::GetVariant ( ) const
inline

◆ IsInstantiable()

bool Bond::StructDeclaration::IsInstantiable ( ) const
inline

◆ IsNative()

bool Bond::StructDeclaration::IsNative ( ) const
inline

◆ IsResolved()

virtual bool Bond::StructDeclaration::IsResolved ( ) const
overridevirtual

Reimplemented from Bond::Symbol.

◆ SetAlignment()

void Bond::StructDeclaration::SetAlignment ( uint32_t  alignment)
inline

◆ SetMemberFunctionList()

void Bond::StructDeclaration::SetMemberFunctionList ( FunctionDefinition memberFunctionList)
inline

◆ SetMemberVariableList()

void Bond::StructDeclaration::SetMemberVariableList ( DeclarativeStatement memberVariableList)
inline

◆ SetSize()

void Bond::StructDeclaration::SetSize ( uint32_t  size)
inline

◆ SetSizeSpecifier()

void Bond::StructDeclaration::SetSizeSpecifier ( const StructDeclaration sizeSpecifier)
inline

The documentation for this class was generated from the following file: