|
Bond 0.9
C++ Bond Runtime Library API Documentation
|
Represents a struct declaration. More...
#include <bond/compiler/parsenodes.h>
Public Types | |
| enum | Variant { VARIANT_BOND , VARIANT_NATIVE , VARIANT_NATIVE_STUB } |
| Identifies the implementation variant of a struct. More... | |
| 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... | |
Public Member Functions | |
| StructDeclaration (const Token *name, const Token *size, const Token *alignment, FunctionDefinition *memberFunctionList, DeclarativeStatement *memberVariableList, Variant variant) | |
| Constructs a struct declaration. | |
| virtual | ~StructDeclaration () |
| 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. | |
| virtual bool | IsResolved () const override |
| Returns true when this struct and its members are resolved. | |
| TypeDescriptor & | GetThisTypeDescriptor () |
| Returns the descriptor of this-parameter type. | |
| const TypeDescriptor & | GetThisTypeDescriptor () const |
| Returns the descriptor of this-parameter type. | |
| TypeDescriptor & | GetConstThisTypeDescriptor () |
| Returns the descriptor of const this-parameter type. | |
| const TypeDescriptor & | GetConstThisTypeDescriptor () const |
| Returns the descriptor of const this-parameter type. | |
| const Token * | GetSizeToken () const |
| Returns the token specifying struct size metadata. | |
| const Token * | GetAlignmentToken () const |
| Returns the token specifying struct alignment metadata. | |
| FunctionDefinition * | GetMemberFunctionList () |
| Returns the list of member functions. | |
| const FunctionDefinition * | GetMemberFunctionList () const |
| Returns the list of member functions. | |
| void | SetMemberFunctionList (FunctionDefinition *memberFunctionList) |
| Sets the list of member functions. | |
| DeclarativeStatement * | GetMemberVariableList () |
| Returns the list of member variables. | |
| const DeclarativeStatement * | GetMemberVariableList () const |
| Returns the list of member variables. | |
| void | SetMemberVariableList (DeclarativeStatement *memberVariableList) |
| Sets the list of member variables. | |
| const StructDeclaration * | GetSizeSpecifier () const |
| Returns the struct used to determine this struct's size. | |
| void | SetSizeSpecifier (const StructDeclaration *sizeSpecifier) |
| Sets the struct used to determine this struct's size. | |
| Variant | GetVariant () const |
| Returns this struct declaration's variant. | |
| bool | IsNative () const |
| Returns true if this struct is native-backed. | |
| uint32_t | GetSize () const |
| Returns the resolved size in bytes. | |
| void | SetSize (uint32_t size) |
| Sets the resolved size in bytes. | |
| uint32_t | GetAlignment () const |
| Returns the resolved alignment in bytes. | |
| void | SetAlignment (uint32_t alignment) |
| Sets the resolved alignment in bytes. | |
| bool | IsInstantiable () const |
| Returns true if instances of this struct can be created. | |
| 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. | |
| 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 | |
| Protected Member Functions inherited from Bond::Symbol | |
| Symbol () | |
| Protected Member Functions inherited from Bond::ListParseNode | |
| ListParseNode () | |
| Protected Member Functions inherited from Bond::ParseNode | |
| ParseNode () | |
Represents a struct declaration.
|
inline |
Constructs a struct declaration.
| name | Struct name token. |
| size | Optional token describing explicit size metadata. |
| alignment | Optional token describing explicit alignment metadata. |
| memberFunctionList | List of member functions. |
| memberVariableList | List of member variables. |
| variant | Struct implementation variant. |
|
inlinevirtual |
|
inlineoverridevirtual |
Dispatches this node to the given visitor.
| visitor | Visitor that handles this node type. |
Implements Bond::ParseNode.
|
inlineoverridevirtual |
Dispatches this node to the given visitor.
| visitor | Visitor that handles this node type. |
Implements Bond::ParseNode.
|
inline |
Returns the resolved alignment in bytes.
|
inline |
Returns the token specifying struct alignment metadata.
|
inline |
Returns the descriptor of const this-parameter type.
|
inline |
Returns the descriptor of const this-parameter type.
|
inline |
Returns the list of member functions.
|
inline |
Returns the list of member functions.
|
inline |
Returns the list of member variables.
|
inline |
Returns the list of member variables.
|
inlineoverridevirtual |
Returns the symbol name token.
Reimplemented from Bond::Symbol.
|
inline |
Returns the resolved size in bytes.
|
inline |
Returns the struct used to determine this struct's size.
|
inline |
Returns the token specifying struct size metadata.
|
inlineoverridevirtual |
Returns the concrete symbol type.
Implements Bond::Symbol.
|
inline |
Returns the descriptor of this-parameter type.
|
inline |
Returns the descriptor of this-parameter type.
|
inline |
Returns this struct declaration's variant.
|
inline |
Returns true if instances of this struct can be created.
|
inline |
Returns true if this struct is native-backed.
|
overridevirtual |
Returns true when this struct and its members are resolved.
Reimplemented from Bond::Symbol.
|
inline |
Sets the resolved alignment in bytes.
| alignment | Struct alignment in bytes. |
|
inline |
Sets the list of member functions.
| memberFunctionList | Head of member function list. |
|
inline |
Sets the list of member variables.
| memberVariableList | Head of member variable list. |
|
inline |
Sets the resolved size in bytes.
| size | Struct size in bytes. |
|
inline |
Sets the struct used to determine this struct's size.
| sizeSpecifier | Struct whose size metadata should be used. |