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

Represents an enum declaration. More...

#include <bond/compiler/parsenodes.h>

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

Public Member Functions

 EnumDeclaration (const Token *name)
 Constructs an enum declaration.
virtual ~EnumDeclaration ()
virtual void Accept (ParseNodeVisitor &visitor) override
 Dispatches this node to the given visitor.
virtual void Accept (ParseNodeVisitor &visitor) const override
 Dispatches this node to the given visitor.
virtual SymbolType GetSymbolType () const override
 Returns the concrete symbol type.
virtual const Token * GetName () const override
 Returns the symbol name token.
TypeDescriptor & GetTypeDescriptor ()
 Returns the enum's underlying type descriptor.
const TypeDescriptor & GetTypeDescriptor () const
 Returns the enum's underlying type descriptor.
Enumerator * GetEnumeratorList ()
 Returns the list of enumerators.
const Enumerator * GetEnumeratorList () const
 Returns the list of enumerators.
void SetEnumeratorList (Enumerator *enumeratorList)
 Sets the list of enumerators.
Public Member Functions inherited from Bond::Symbol
virtual ~Symbol ()
virtual const Token * GetContextToken () const override
 Returns the token used as source context for diagnostics.
virtual TypeAndValue * GetTypeAndValue ()
 Returns the symbol's type-and-value metadata.
virtual const TypeAndValue * GetTypeAndValue () const
 Returns the symbol's type-and-value metadata.
virtual bool IsResolved () const
 Returns true when symbol resolution has completed for this symbol.
bool IsTypeDefinition () const
 Returns true if this symbol defines a type.
Symbol * GetParentSymbol ()
 Returns the enclosing symbol.
const Symbol * GetParentSymbol () const
 Returns the enclosing symbol.
void SetParentSymbol (Symbol *parent)
 Sets the enclosing symbol.
Symbol * FindSymbol (const StringView &name)
 Finds a directly contained symbol by name.
const Symbol * FindSymbol (const StringView &name) const
 Finds a directly contained symbol by name.
Symbol * FindSymbol (const Token *name)
 Finds a directly contained symbol by token text.
const Symbol * FindSymbol (const Token *name) const
 Finds a directly contained symbol by token text.
Symbol * FindSymbol (const QualifiedIdentifier *identifier)
 Finds a symbol referenced by a qualified identifier.
const Symbol * FindSymbol (const QualifiedIdentifier *identifier) const
 Finds a symbol referenced by a qualified identifier.
void InsertSymbol (Symbol *symbol)
 Inserts a symbol into this symbol's child list.
bool IsAnonymous () const
 Returns true if this symbol has no explicit name.
bool Matches (const StringView &name) const
 Returns true if this symbol's name matches the given text.
Public Member Functions inherited from Bond::ListParseNode
virtual ~ListParseNode ()
ListParseNode * GetNextNode ()
 Returns the next node in the list.
const ListParseNode * GetNextNode () const
 Returns the next node in the list.
void SetNextNode (ListParseNode *next)
 Sets the next node in the list.
Public Member Functions inherited from Bond::ParseNode
virtual ~ParseNode ()

Additional Inherited Members

Public Types inherited from Bond::Symbol
enum  SymbolType {
  TYPE_NAMESPACE , TYPE_STRUCT , TYPE_ENUM , TYPE_LOCALSCOPE ,
  TYPE_VALUE , TYPE_FUNCTION
}
 Identifies the concrete symbol category. More...
Protected Member Functions inherited from Bond::Symbol
 Symbol ()
Protected Member Functions inherited from Bond::ListParseNode
 ListParseNode ()
Protected Member Functions inherited from Bond::ParseNode
 ParseNode ()

Detailed Description

Represents an enum declaration.

Constructor & Destructor Documentation

◆ EnumDeclaration()

Bond::EnumDeclaration::EnumDeclaration ( const Token * name)
inlineexplicit

Constructs an enum declaration.

Parameters
nameEnum name token.

◆ ~EnumDeclaration()

virtual Bond::EnumDeclaration::~EnumDeclaration ( )
inlinevirtual

Member Function Documentation

◆ Accept() [1/2]

virtual void Bond::EnumDeclaration::Accept ( ParseNodeVisitor & visitor) const
inlineoverridevirtual

Dispatches this node to the given visitor.

Parameters
visitorVisitor that handles this node type.

Implements Bond::ParseNode.

◆ Accept() [2/2]

virtual void Bond::EnumDeclaration::Accept ( ParseNodeVisitor & visitor)
inlineoverridevirtual

Dispatches this node to the given visitor.

Parameters
visitorVisitor that handles this node type.

Implements Bond::ParseNode.

◆ GetEnumeratorList() [1/2]

Enumerator * Bond::EnumDeclaration::GetEnumeratorList ( )
inline

Returns the list of enumerators.

◆ GetEnumeratorList() [2/2]

const Enumerator * Bond::EnumDeclaration::GetEnumeratorList ( ) const
inline

Returns the list of enumerators.

◆ GetName()

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

Returns the symbol name token.

Returns
The name token, or null for anonymous symbols.

Reimplemented from Bond::Symbol.

◆ GetSymbolType()

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

Returns the concrete symbol type.

Implements Bond::Symbol.

◆ GetTypeDescriptor() [1/2]

TypeDescriptor & Bond::EnumDeclaration::GetTypeDescriptor ( )
inline

Returns the enum's underlying type descriptor.

◆ GetTypeDescriptor() [2/2]

const TypeDescriptor & Bond::EnumDeclaration::GetTypeDescriptor ( ) const
inline

Returns the enum's underlying type descriptor.

◆ SetEnumeratorList()

void Bond::EnumDeclaration::SetEnumeratorList ( Enumerator * enumeratorList)
inline

Sets the list of enumerators.

Parameters
enumeratorListHead of the enumerator list.

The documentation for this class was generated from the following file:
  • include/bond/compiler/parsenodes.h