Bond 0.9
C++ Bond Runtime Library API Documentation
Loading...
Searching...
No Matches
Bond::Symbol Class Referenceabstract

#include <bond/compiler/parsenodes.h>

Inheritance diagram for Bond::Symbol:
Bond::ListParseNode Bond::ParseNode Bond::CompoundStatement Bond::EnumDeclaration Bond::Enumerator Bond::ForStatement Bond::FunctionDefinition Bond::NamedInitializer Bond::NamespaceDefinition Bond::Parameter Bond::StructDeclaration Bond::SwitchSection

Public Types

enum  SymbolType {
  TYPE_NAMESPACE , TYPE_STRUCT , TYPE_ENUM , TYPE_LOCALSCOPE ,
  TYPE_VALUE , TYPE_FUNCTION
}
 

Public Member Functions

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
 

Protected Member Functions

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

Member Enumeration Documentation

◆ SymbolType

Enumerator
TYPE_NAMESPACE 
TYPE_STRUCT 
TYPE_ENUM 
TYPE_LOCALSCOPE 
TYPE_VALUE 
TYPE_FUNCTION 

Constructor & Destructor Documentation

◆ ~Symbol()

virtual Bond::Symbol::~Symbol ( )
inlinevirtual

◆ Symbol()

Bond::Symbol::Symbol ( )
inlineprotected

Member Function Documentation

◆ FindSymbol() [1/6]

Symbol * Bond::Symbol::FindSymbol ( const QualifiedIdentifier identifier)

◆ FindSymbol() [2/6]

const Symbol * Bond::Symbol::FindSymbol ( const QualifiedIdentifier identifier) const

◆ FindSymbol() [3/6]

Symbol * Bond::Symbol::FindSymbol ( const StringView &  name)

◆ FindSymbol() [4/6]

const Symbol * Bond::Symbol::FindSymbol ( const StringView &  name) const

◆ FindSymbol() [5/6]

Symbol * Bond::Symbol::FindSymbol ( const Token name)
inline

◆ FindSymbol() [6/6]

const Symbol * Bond::Symbol::FindSymbol ( const Token name) const
inline

◆ GetContextToken()

virtual const Token * Bond::Symbol::GetContextToken ( ) const
inlineoverridevirtual

Implements Bond::ParseNode.

Reimplemented in Bond::ForStatement.

◆ GetName()

◆ GetParentSymbol() [1/2]

Symbol * Bond::Symbol::GetParentSymbol ( )
inline

◆ GetParentSymbol() [2/2]

const Symbol * Bond::Symbol::GetParentSymbol ( ) const
inline

◆ GetSymbolType()

◆ GetTypeAndValue() [1/2]

virtual TypeAndValue * Bond::Symbol::GetTypeAndValue ( )
inlinevirtual

◆ GetTypeAndValue() [2/2]

virtual const TypeAndValue * Bond::Symbol::GetTypeAndValue ( ) const
inlinevirtual

◆ InsertSymbol()

void Bond::Symbol::InsertSymbol ( Symbol symbol)

◆ IsAnonymous()

bool Bond::Symbol::IsAnonymous ( ) const
inline

◆ IsResolved()

virtual bool Bond::Symbol::IsResolved ( ) const
inlinevirtual

Reimplemented in Bond::StructDeclaration.

◆ IsTypeDefinition()

bool Bond::Symbol::IsTypeDefinition ( ) const

◆ Matches()

bool Bond::Symbol::Matches ( const StringView &  name) const

◆ SetParentSymbol()

void Bond::Symbol::SetParentSymbol ( Symbol parent)

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