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

Represents one labeled section inside a switch statement. More...

#include <bond/compiler/parsenodes.h>

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

Public Member Functions

 SwitchSection (SwitchLabel *labelList, ListParseNode *statementList)
 Constructs a switch section.
virtual ~SwitchSection ()
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.
SwitchLabel * GetLabelList ()
 Returns the label list for this section.
const SwitchLabel * GetLabelList () const
 Returns the label list for this section.
ListParseNode * GetStatementList ()
 Returns the statement list for this section.
const ListParseNode * GetStatementList () const
 Returns the statement list for this section.
size_t GetJumpTargetId () const
 Returns the jump target ID assigned to this section.
void SetJumpTargetId (size_t id)
 Sets the jump target ID assigned to this section.
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 const Token * GetName () const
 Returns the symbol name token.
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 one labeled section inside a switch statement.

Constructor & Destructor Documentation

◆ SwitchSection()

Bond::SwitchSection::SwitchSection ( SwitchLabel * labelList,
ListParseNode * statementList )
inline

Constructs a switch section.

Parameters
labelListList of case/default labels.
statementListList of statements for this section.

◆ ~SwitchSection()

virtual Bond::SwitchSection::~SwitchSection ( )
inlinevirtual

Member Function Documentation

◆ Accept() [1/2]

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

Dispatches this node to the given visitor.

Parameters
visitorVisitor that handles this node type.

Implements Bond::ParseNode.

◆ GetJumpTargetId()

size_t Bond::SwitchSection::GetJumpTargetId ( ) const
inline

Returns the jump target ID assigned to this section.

◆ GetLabelList() [1/2]

SwitchLabel * Bond::SwitchSection::GetLabelList ( )
inline

Returns the label list for this section.

◆ GetLabelList() [2/2]

const SwitchLabel * Bond::SwitchSection::GetLabelList ( ) const
inline

Returns the label list for this section.

◆ GetStatementList() [1/2]

ListParseNode * Bond::SwitchSection::GetStatementList ( )
inline

Returns the statement list for this section.

◆ GetStatementList() [2/2]

const ListParseNode * Bond::SwitchSection::GetStatementList ( ) const
inline

Returns the statement list for this section.

◆ GetSymbolType()

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

Returns the concrete symbol type.

Implements Bond::Symbol.

◆ SetJumpTargetId()

void Bond::SwitchSection::SetJumpTargetId ( size_t id)
inline

Sets the jump target ID assigned to this section.

Parameters
idJump target identifier.

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