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

Represents a namespace definition. More...

#include <bond/compiler/parsenodes.h>

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

Public Member Functions

 NamespaceDefinition (const Token *name, ListParseNode *declarationList)
 Constructs a namespace definition.
virtual ~NamespaceDefinition ()
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.
ListParseNode * GetExternalDeclarationList ()
 Returns declarations contained in this namespace.
const ListParseNode * GetExternalDeclarationList () const
 Returns declarations contained in this namespace.
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 a namespace definition.

Constructor & Destructor Documentation

◆ NamespaceDefinition()

Bond::NamespaceDefinition::NamespaceDefinition ( const Token * name,
ListParseNode * declarationList )
inline

Constructs a namespace definition.

Parameters
nameNamespace name token.
declarationListList of declarations in the namespace.

◆ ~NamespaceDefinition()

virtual Bond::NamespaceDefinition::~NamespaceDefinition ( )
inlinevirtual

Member Function Documentation

◆ Accept() [1/2]

virtual void Bond::NamespaceDefinition::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::NamespaceDefinition::Accept ( ParseNodeVisitor & visitor)
inlineoverridevirtual

Dispatches this node to the given visitor.

Parameters
visitorVisitor that handles this node type.

Implements Bond::ParseNode.

◆ GetExternalDeclarationList() [1/2]

ListParseNode * Bond::NamespaceDefinition::GetExternalDeclarationList ( )
inline

Returns declarations contained in this namespace.

◆ GetExternalDeclarationList() [2/2]

const ListParseNode * Bond::NamespaceDefinition::GetExternalDeclarationList ( ) const
inline

Returns declarations contained in this namespace.

◆ GetName()

virtual const Token * Bond::NamespaceDefinition::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::NamespaceDefinition::GetSymbolType ( ) const
inlineoverridevirtual

Returns the concrete symbol type.

Implements Bond::Symbol.


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