Bond 0.9
C++ Bond Runtime Library API Documentation
Loading...
Searching...
No Matches
Compiler

These classes form the parts of the Bond compiler. More...

Modules

 Parse Nodes
 These classes define all of the types of ParseNodes that form the parse trees generated by the Bond compiler.
 

Classes

class  Bond::CharStream
 An iterator over the contents of a stream of text. More...
 
class  Bond::CodeGenerator
 A code generator for the Bond scripting language. More...
 
class  Bond::CompilerError
 A container for error information reported by the various components of the Bond compiler. More...
 
class  Bond::CompilerErrorBuffer
 A container for CompilerError instances generated by the various components of the Bond compiler. More...
 
class  Bond::FrontEnd
 A compiler front end for the Bond scripting language. More...
 
class  Bond::Lexer
 A lexer for the Bond scripting language. More...
 
class  Bond::ParseNodeTraverser
 A concrete implementation of ParseNodeVisitor that, in addition to visiting a ParseNode, does a depth-first traversal its children and visits them too. More...
 
class  Bond::CastVisitor< T >
 
class  Bond::ParseNodeVisitor
 An abstract interface that implements the Visitor pattern over all concrete types that derive from ParseNode. More...
 
class  Bond::ParseNodeVisitorAdapter
 A concrete implementation of ParseNodeVisitor with methods that do nothing. More...
 
class  Bond::Parser
 A parser for the Bond scripting language. More...
 
class  Bond::SemanticAnalyzer
 A semantic analyzer for a parse tree generated from the Bond scripting language. More...
 
struct  Bond::StreamPos
 A POD struct to contain the index, line and column of a token in source code. More...
 
class  Bond::SymbolTable
 A heirarchical symbol table used by the Bond compiler. More...
 
class  Bond::Token
 A token describing a syntactic unit of the Bond scripting language (e.g. keywords, identifiers, literal constants and operators). More...
 
class  Bond::TokenTypeSet
 Represents a collection of related TokenTypes. More...
 
class  Bond::TokenStream
 An iterator over the contents of a TokenCollection. More...
 
class  Bond::TokenCollection
 An ordered immutable collection of Tokens. More...
 
class  Bond::TypeAndValue
 Contains the information regarding the type and value of an expression as it is evaluated by the compiler. More...
 

Typedefs

typedef Allocator::Handle< const TokenCollectionBond::TokenCollectionHandle
 An owning pointer to a dynamically allocated TokenCollection. More...
 
typedef Vector< TokenCollectionHandleBond::TokenCollectionStore
 A collection of dynamically allocated TokenCollection. More...
 
typedef Allocator::ObjectHandle< ParseNodeBond::ParseNodeHandle
 An owning pointer to a dynamically allocated ParseNode. More...
 
typedef Vector< ParseNodeHandleBond::ParseNodeStore
 A collection of dynamically allocated ParseNodes. More...
 

Functions

uint32_t Bond::GetLength (const ListParseNode *list)
 Counts and returns the length of a list of ListParseNodes. More...
 
template<typename NodeType >
NodeType * Bond::NextNode (NodeType *list)
 
template<typename T >
T * Bond::CastNode (ParseNode *node)
 
template<typename T >
const T * Bond::CastNode (const ParseNode *node)
 
template<typename NodeType , typename Comparator >
NodeType * Bond::InsertNode (NodeType *head, NodeType *node, Comparator compare)
 
bool Bond::AreComparableTypes (const TypeDescriptor &typeA, const TypeDescriptor &typeB)
 
bool Bond::AreConvertibleTypes (const TypeDescriptor &fromType, const TypeDescriptor &toType)
 
bool Bond::AreSameTypes (const TypeDescriptor &fromType, const TypeDescriptor &toType)
 
bool Bond::AreAssignableTypes (const TypeDescriptor &fromType, const TypeDescriptor &toType)
 
bool Bond::IsLossyConversion (const TypeAndValue &fromTav, const TypeDescriptor &toType)
 
TypeDescriptor Bond::PromoteType (const TypeDescriptor &type)
 
TypeDescriptor Bond::CombineOperandTypes (const TypeDescriptor &typeA, const TypeDescriptor &typeB)
 
Value Bond::CastValue (const Token &fromValue, Token::TokenType toType)
 
Value Bond::CastValue (const TypeAndValue &fromTav, const TypeDescriptor &toType)
 
bool Bond::IsNegativeIntegerConstant (const Token &token)
 

Variables

const Token Bond::VOID_TOKEN
 Constant Token of type KEY_VOID representing the void keyword. More...
 
const Token Bond::BOOL_TOKEN
 Constant Token of type KEY_BOOL representing the bool keyword. More...
 
const Token Bond::CHAR_TOKEN
 Constant Token of type KEY_CHAR representing the char keyword. More...
 
const Token Bond::UCHAR_TOKEN
 Constant Token of type KEY_UCHAR representing the uchar keyword. More...
 
const Token Bond::INT_TOKEN
 Constant Token of type KEY_INT representing the int keyword. More...
 
const Token Bond::UINT_TOKEN
 Constant Token of type KEY_UINT representing the uint keyword. More...
 
const Token Bond::LONG_TOKEN
 Constant Token of type KEY_LONG representing the long keyword. More...
 
const Token Bond::ULONG_TOKEN
 Constant Token of type KEY_ULONG representing the ulong keyword. More...
 
const Token Bond::FLOAT_TOKEN
 Constant Token of type KEY_FLOAT representing the float keyword. More...
 
const Token Bond::DOUBLE_TOKEN
 Constant Token of type KEY_DOUBLE representing the double keyword. More...
 
const TokenTypeSet Bond::PRIMITIVE_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet of all keywords representing Bond primitive typesn namely: KEY_BOOL, KEY_CHAR, KEY_UCHAR, KEY_SHORT, KEY_USHORT, KEY_INT, KEY_UINT, KEY_LONG, KEY_ULONG, KEY_FLOAT, KEY_DOUBLE and KEY_VOID. More...
 
const TokenTypeSet Bond::BOOLEAN_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet containing only KEY_BOOL. More...
 
const TokenTypeSet Bond::CHAR_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet of all keywords representing Bond character types, namely: KEY_CHAR and KEY_UCHAR. More...
 
const TokenTypeSet Bond::INTEGER_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet of all keywords representing Bond integral types, namely: KEY_CHAR, KEY_UCHAR, KEY_SHORT, KEY_USHORT, KEY_INT, KEY_UINT, KEY_LONG and KEY_ULONG. More...
 
const TokenTypeSet Bond::SIGNED_INTEGER_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet of all keywords representing Bond signed integral types, namely: KEY_CHAR, KEY_SHORT, KEY_INT and KEY_LONG. More...
 
const TokenTypeSet Bond::UNSIGNED_INTEGER_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet of all keywords representing Bond unsigned integral types, namely: KEY_UCHAR, KEY_USHORT, KEY_UINT and KEY_ULONG. More...
 
const TokenTypeSet Bond::LEAST32_INTEGER_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet of all keywords representing Bond integral types having at least 32 bits, namely: KEY_INT, KEY_UINT, KEY_LONG and KEY_ULONG. More...
 
const TokenTypeSet Bond::MOST32_INTEGER_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet of all keywords representing Bond integral types having at most 32 bits, namely: KEY_CHAR, KEY_UCHAR, KEY_SHORT, KEY_USHORT, KEY_INT and KEY_UINT. More...
 
const TokenTypeSet Bond::LONG_INTEGER_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet of all keywords representing Bond long integral types, namely: KEY_LONG and KEY_ULONG. More...
 
const TokenTypeSet Bond::NUMERIC_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet of all keywords representing Bond numeric types, namely: KEY_CHAR, KEY_UCHAR, KEY_SHORT, KEY_USHORT, KEY_INT, KEY_UINT, KEY_LONG, KEY_ULONG, KEY_FLOAT and KEY_DOUBLE. More...
 
const TokenTypeSet Bond::VOID_TYPE_SPECIFIERS_TYPESET
 Constant TokenTypeSet containing only KEY_VOID. More...
 
const TokenTypeSet Bond::TYPE_DESCRIPTORS_TYPESET
 Constant TokenTypeSet of all punctuation token types used to begin a new level of indirection in type descriptors, namely: OP_STAR and OBRACKET. More...
 
const TokenTypeSet Bond::MOST32_INTEGER_CONSTANTS_TYPESET
 Constant TokenTypeSet of all integral literal constants having at most 32 bits, namely: CONST_CHAR, CONST_INT and CONST_UINT. More...
 
const TokenTypeSet Bond::SIGNED_INTEGER_CONSTANTS_TYPESET
 Constant TokenTypeSet of all signed integral literal constants, namely: CONST_CHAR, CONST_INT and CONST_LONG. More...
 
const TokenTypeSet Bond::JUMP_KEYWORDS_TYPESET
 Constant TokenTypeSet of all keywords used for jumps in Bond source code, namely: KEY_BREAK, KEY_CONTINUE and KEY_RETURN. More...
 
const TokenTypeSet Bond::SWITCH_LABELS_TYPESET
 Constant TokenTypeSet of all keywords used for defining case labels in Bond switch statements, namely: KEY_CASE and KEY_DEFAULT. More...
 
const TokenTypeSet Bond::ASSIGNMENT_OPERATORS_TYPESET
 Constant TokenTypeSet of all Bond assignment operators, namely: ASSIGN, ASSIGN_LEFT, ASSIGN_RIGHT, ASSIGN_PLUS, ASSIGN_MINUS, ASSIGN_MULT, ASSIGN_DIV, ASSIGN_MOD, ASSIGN_AND, ASSIGN_OR and ASSIGN_XOR. More...
 
const TokenTypeSet Bond::EQUALITY_OPERATORS_TYPESET
 Constant TokenTypeSet of all Bond equality operators, namely: OP_EQUAL, OP_NOT_EQUAL. More...
 
const TokenTypeSet Bond::RELATIONAL_OPERATORS_TYPESET
 Constant TokenTypeSet of all Bond relational operators, namely: OP_LT, OP_LTE, OP_GT and OP_GTE. More...
 
const TokenTypeSet Bond::SHIFT_OPERATORS_TYPESET
 Constant TokenTypeSet of all Bond shift operators, namely: OP_LEFT and OP_RIGHT. More...
 
const TokenTypeSet Bond::ADDITIVE_OPERATORS_TYPESET
 Constant TokenTypeSet of all Bond additive arithmetic operators, namely: OP_PLUS and OP_MINUS. More...
 
const TokenTypeSet Bond::MULTIPLICATIVE_OPERATORS_TYPESET
 Constant TokenTypeSet of all Bond multiplicative arithmetic operators, namely: OP_STAR, OP_DIV and OP_MOD. More...
 
const TokenTypeSet Bond::UNARY_OPERATORS_TYPESET
 Constant TokenTypeSet of all Bond prefix unary operators, namely: OP_PLUS, OP_MINUS, OP_STAR, OP_INC, OP_DEC, OP_NOT, OP_AMP and OP_BIT_NOT. More...
 
const TokenTypeSet Bond::POSTFIX_OPERATORS_TYPESET
 Constant TokenTypeSet of all Bond postfix unary operators, namely: OP_INC, OP_DEC, OP_ARROW, OPAREN, OBRACKET and PERIOD. More...
 
const TokenTypeSet Bond::PROPERTYOF_OPERATORS_TYPESET
 Constant TokenTypeSet of all Bond operators for retrieving type properties, namely: KEY_ALIGNOFand KEY_SIZEOF. More...
 
const TokenTypeSet Bond::CONSTANT_LITERALS_TYPESET
 Constant TokenTypeSet of all Bond constant literals, namely: CONST_BOOL, CONST_CHAR, CONST_INT, CONST_UINT, CONST_LONG, CONST_ULONG, CONST_FLOAT, CONST_DOUBLE, CONST_STRING and CONST_NULL. More...
 
const TokenTypeSet Bond::BLOCK_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of a block of Bond source, namely: CBRACE and END. More...
 
const TokenTypeSet Bond::DECLARATION_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of Bond declarations, namely: KEY_ENUM, KEY_NAMESPACE, KEY_NATIVE, KEY_STRUCT, CBRACE, SEMICOLON, and END. More...
 
const TokenTypeSet Bond::INCLUDE_AND_DECLARATION_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of Bond declarations and includes, namely: KEY_ENUM, KEY_INCLUDE, KEY_NAMESPACE, KEY_NATIVE, KEY_STRUCT, CBRACE, SEMICOLON, and END. More...
 
const TokenTypeSet Bond::ENUM_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of Bond enum declarations, namely: CBRACE, SEMICOLON, and END. More...
 
const TokenTypeSet Bond::ENUMERATOR_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of Bond enumerator declarations, namely: CBRACE, SEMICOLON, and COMMA. More...
 
const TokenTypeSet Bond::STRUCT_MEMBER_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of Bond struct member declarations, namely: CBRACE and SEMICOLON. More...
 
const TokenTypeSet Bond::INITIALIZER_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of Bond initializers, namely: CBRACE, OBRACE and COMMA. More...
 
const TokenTypeSet Bond::SWITCH_SECTION_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of Bond switch statement sections, namely: KEY_CASE, KEY_DEFAULT, CBRACE and COMMA. More...
 
const TokenTypeSet Bond::STATEMENT_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of Bond statements, namely: KEY_BREAK, KEY_CASE, KEY_CONTINUE, KEY_DEFAULT, KEY_DO, KEY_IF, KEY_FOR, KEY_RETURN, KEY_SWITCH, KEY_WHILE, OBRACE, CBRACE and COLON. More...
 
const TokenTypeSet Bond::LABEL_DELIMITERS_TYPESET
 Constant TokenTypeSet of tokens delimiting the end of Bond switch labels, namely: KEY_BREAK, KEY_CASE, KEY_CONTINUE, KEY_DEFAULT, KEY_DO, KEY_IF, KEY_FOR, KEY_RETURN, KEY_SWITCH, KEY_WHILE, OBRACE, CBRACE, SEMICOLON and COLON. More...
 

Detailed Description

These classes form the parts of the Bond compiler.

Typedef Documentation

◆ ParseNodeHandle

An owning pointer to a dynamically allocated ParseNode.

◆ ParseNodeStore

A collection of dynamically allocated ParseNodes.

◆ TokenCollectionHandle

An owning pointer to a dynamically allocated TokenCollection.

◆ TokenCollectionStore

A collection of dynamically allocated TokenCollection.

Function Documentation

◆ AreAssignableTypes()

bool Bond::AreAssignableTypes ( const TypeDescriptor fromType,
const TypeDescriptor toType 
)

◆ AreComparableTypes()

bool Bond::AreComparableTypes ( const TypeDescriptor typeA,
const TypeDescriptor typeB 
)

◆ AreConvertibleTypes()

bool Bond::AreConvertibleTypes ( const TypeDescriptor fromType,
const TypeDescriptor toType 
)

◆ AreSameTypes()

bool Bond::AreSameTypes ( const TypeDescriptor fromType,
const TypeDescriptor toType 
)

◆ CastNode() [1/2]

template<typename T >
const T * Bond::CastNode ( const ParseNode node)

◆ CastNode() [2/2]

template<typename T >
T * Bond::CastNode ( ParseNode node)

◆ CastValue() [1/2]

Value Bond::CastValue ( const Token fromValue,
Token::TokenType  toType 
)

◆ CastValue() [2/2]

Value Bond::CastValue ( const TypeAndValue fromTav,
const TypeDescriptor toType 
)

◆ CombineOperandTypes()

TypeDescriptor Bond::CombineOperandTypes ( const TypeDescriptor typeA,
const TypeDescriptor typeB 
)

◆ GetLength()

uint32_t Bond::GetLength ( const ListParseNode list)

Counts and returns the length of a list of ListParseNodes.

Parameters
listPointer to the list of nodes to be counted.

◆ InsertNode()

template<typename NodeType , typename Comparator >
NodeType * Bond::InsertNode ( NodeType *  head,
NodeType *  node,
Comparator  compare 
)

◆ IsLossyConversion()

bool Bond::IsLossyConversion ( const TypeAndValue fromTav,
const TypeDescriptor toType 
)

◆ IsNegativeIntegerConstant()

bool Bond::IsNegativeIntegerConstant ( const Token token)

◆ NextNode()

template<typename NodeType >
NodeType * Bond::NextNode ( NodeType *  list)

◆ PromoteType()

TypeDescriptor Bond::PromoteType ( const TypeDescriptor type)

Variable Documentation

◆ ADDITIVE_OPERATORS_TYPESET

const TokenTypeSet Bond::ADDITIVE_OPERATORS_TYPESET
extern

Constant TokenTypeSet of all Bond additive arithmetic operators, namely: OP_PLUS and OP_MINUS.

◆ ASSIGNMENT_OPERATORS_TYPESET

const TokenTypeSet Bond::ASSIGNMENT_OPERATORS_TYPESET
extern

Constant TokenTypeSet of all Bond assignment operators, namely: ASSIGN, ASSIGN_LEFT, ASSIGN_RIGHT, ASSIGN_PLUS, ASSIGN_MINUS, ASSIGN_MULT, ASSIGN_DIV, ASSIGN_MOD, ASSIGN_AND, ASSIGN_OR and ASSIGN_XOR.

◆ BLOCK_DELIMITERS_TYPESET

const TokenTypeSet Bond::BLOCK_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of a block of Bond source, namely: CBRACE and END.

◆ BOOL_TOKEN

const Token Bond::BOOL_TOKEN
extern

Constant Token of type KEY_BOOL representing the bool keyword.

◆ BOOLEAN_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::BOOLEAN_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet containing only KEY_BOOL.

◆ CHAR_TOKEN

const Token Bond::CHAR_TOKEN
extern

Constant Token of type KEY_CHAR representing the char keyword.

◆ CHAR_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::CHAR_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet of all keywords representing Bond character types, namely: KEY_CHAR and KEY_UCHAR.

◆ CONSTANT_LITERALS_TYPESET

const TokenTypeSet Bond::CONSTANT_LITERALS_TYPESET
extern

Constant TokenTypeSet of all Bond constant literals, namely: CONST_BOOL, CONST_CHAR, CONST_INT, CONST_UINT, CONST_LONG, CONST_ULONG, CONST_FLOAT, CONST_DOUBLE, CONST_STRING and CONST_NULL.

◆ DECLARATION_DELIMITERS_TYPESET

const TokenTypeSet Bond::DECLARATION_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of Bond declarations, namely: KEY_ENUM, KEY_NAMESPACE, KEY_NATIVE, KEY_STRUCT, CBRACE, SEMICOLON, and END.

◆ DOUBLE_TOKEN

const Token Bond::DOUBLE_TOKEN
extern

Constant Token of type KEY_DOUBLE representing the double keyword.

◆ ENUM_DELIMITERS_TYPESET

const TokenTypeSet Bond::ENUM_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of Bond enum declarations, namely: CBRACE, SEMICOLON, and END.

◆ ENUMERATOR_DELIMITERS_TYPESET

const TokenTypeSet Bond::ENUMERATOR_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of Bond enumerator declarations, namely: CBRACE, SEMICOLON, and COMMA.

◆ EQUALITY_OPERATORS_TYPESET

const TokenTypeSet Bond::EQUALITY_OPERATORS_TYPESET
extern

Constant TokenTypeSet of all Bond equality operators, namely: OP_EQUAL, OP_NOT_EQUAL.

◆ FLOAT_TOKEN

const Token Bond::FLOAT_TOKEN
extern

Constant Token of type KEY_FLOAT representing the float keyword.

◆ INCLUDE_AND_DECLARATION_DELIMITERS_TYPESET

const TokenTypeSet Bond::INCLUDE_AND_DECLARATION_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of Bond declarations and includes, namely: KEY_ENUM, KEY_INCLUDE, KEY_NAMESPACE, KEY_NATIVE, KEY_STRUCT, CBRACE, SEMICOLON, and END.

◆ INITIALIZER_DELIMITERS_TYPESET

const TokenTypeSet Bond::INITIALIZER_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of Bond initializers, namely: CBRACE, OBRACE and COMMA.

◆ INT_TOKEN

const Token Bond::INT_TOKEN
extern

Constant Token of type KEY_INT representing the int keyword.

◆ INTEGER_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::INTEGER_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet of all keywords representing Bond integral types, namely: KEY_CHAR, KEY_UCHAR, KEY_SHORT, KEY_USHORT, KEY_INT, KEY_UINT, KEY_LONG and KEY_ULONG.

◆ JUMP_KEYWORDS_TYPESET

const TokenTypeSet Bond::JUMP_KEYWORDS_TYPESET
extern

Constant TokenTypeSet of all keywords used for jumps in Bond source code, namely: KEY_BREAK, KEY_CONTINUE and KEY_RETURN.

◆ LABEL_DELIMITERS_TYPESET

const TokenTypeSet Bond::LABEL_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of Bond switch labels, namely: KEY_BREAK, KEY_CASE, KEY_CONTINUE, KEY_DEFAULT, KEY_DO, KEY_IF, KEY_FOR, KEY_RETURN, KEY_SWITCH, KEY_WHILE, OBRACE, CBRACE, SEMICOLON and COLON.

◆ LEAST32_INTEGER_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::LEAST32_INTEGER_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet of all keywords representing Bond integral types having at least 32 bits, namely: KEY_INT, KEY_UINT, KEY_LONG and KEY_ULONG.

◆ LONG_INTEGER_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::LONG_INTEGER_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet of all keywords representing Bond long integral types, namely: KEY_LONG and KEY_ULONG.

◆ LONG_TOKEN

const Token Bond::LONG_TOKEN
extern

Constant Token of type KEY_LONG representing the long keyword.

◆ MOST32_INTEGER_CONSTANTS_TYPESET

const TokenTypeSet Bond::MOST32_INTEGER_CONSTANTS_TYPESET
extern

Constant TokenTypeSet of all integral literal constants having at most 32 bits, namely: CONST_CHAR, CONST_INT and CONST_UINT.

◆ MOST32_INTEGER_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::MOST32_INTEGER_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet of all keywords representing Bond integral types having at most 32 bits, namely: KEY_CHAR, KEY_UCHAR, KEY_SHORT, KEY_USHORT, KEY_INT and KEY_UINT.

◆ MULTIPLICATIVE_OPERATORS_TYPESET

const TokenTypeSet Bond::MULTIPLICATIVE_OPERATORS_TYPESET
extern

Constant TokenTypeSet of all Bond multiplicative arithmetic operators, namely: OP_STAR, OP_DIV and OP_MOD.

◆ NUMERIC_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::NUMERIC_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet of all keywords representing Bond numeric types, namely: KEY_CHAR, KEY_UCHAR, KEY_SHORT, KEY_USHORT, KEY_INT, KEY_UINT, KEY_LONG, KEY_ULONG, KEY_FLOAT and KEY_DOUBLE.

◆ POSTFIX_OPERATORS_TYPESET

const TokenTypeSet Bond::POSTFIX_OPERATORS_TYPESET
extern

Constant TokenTypeSet of all Bond postfix unary operators, namely: OP_INC, OP_DEC, OP_ARROW, OPAREN, OBRACKET and PERIOD.

◆ PRIMITIVE_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::PRIMITIVE_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet of all keywords representing Bond primitive typesn namely: KEY_BOOL, KEY_CHAR, KEY_UCHAR, KEY_SHORT, KEY_USHORT, KEY_INT, KEY_UINT, KEY_LONG, KEY_ULONG, KEY_FLOAT, KEY_DOUBLE and KEY_VOID.

◆ PROPERTYOF_OPERATORS_TYPESET

const TokenTypeSet Bond::PROPERTYOF_OPERATORS_TYPESET
extern

Constant TokenTypeSet of all Bond operators for retrieving type properties, namely: KEY_ALIGNOFand KEY_SIZEOF.

◆ RELATIONAL_OPERATORS_TYPESET

const TokenTypeSet Bond::RELATIONAL_OPERATORS_TYPESET
extern

Constant TokenTypeSet of all Bond relational operators, namely: OP_LT, OP_LTE, OP_GT and OP_GTE.

◆ SHIFT_OPERATORS_TYPESET

const TokenTypeSet Bond::SHIFT_OPERATORS_TYPESET
extern

Constant TokenTypeSet of all Bond shift operators, namely: OP_LEFT and OP_RIGHT.

◆ SIGNED_INTEGER_CONSTANTS_TYPESET

const TokenTypeSet Bond::SIGNED_INTEGER_CONSTANTS_TYPESET
extern

Constant TokenTypeSet of all signed integral literal constants, namely: CONST_CHAR, CONST_INT and CONST_LONG.

◆ SIGNED_INTEGER_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::SIGNED_INTEGER_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet of all keywords representing Bond signed integral types, namely: KEY_CHAR, KEY_SHORT, KEY_INT and KEY_LONG.

◆ STATEMENT_DELIMITERS_TYPESET

const TokenTypeSet Bond::STATEMENT_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of Bond statements, namely: KEY_BREAK, KEY_CASE, KEY_CONTINUE, KEY_DEFAULT, KEY_DO, KEY_IF, KEY_FOR, KEY_RETURN, KEY_SWITCH, KEY_WHILE, OBRACE, CBRACE and COLON.

◆ STRUCT_MEMBER_DELIMITERS_TYPESET

const TokenTypeSet Bond::STRUCT_MEMBER_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of Bond struct member declarations, namely: CBRACE and SEMICOLON.

◆ SWITCH_LABELS_TYPESET

const TokenTypeSet Bond::SWITCH_LABELS_TYPESET
extern

Constant TokenTypeSet of all keywords used for defining case labels in Bond switch statements, namely: KEY_CASE and KEY_DEFAULT.

◆ SWITCH_SECTION_DELIMITERS_TYPESET

const TokenTypeSet Bond::SWITCH_SECTION_DELIMITERS_TYPESET
extern

Constant TokenTypeSet of tokens delimiting the end of Bond switch statement sections, namely: KEY_CASE, KEY_DEFAULT, CBRACE and COMMA.

◆ TYPE_DESCRIPTORS_TYPESET

const TokenTypeSet Bond::TYPE_DESCRIPTORS_TYPESET
extern

Constant TokenTypeSet of all punctuation token types used to begin a new level of indirection in type descriptors, namely: OP_STAR and OBRACKET.

◆ UCHAR_TOKEN

const Token Bond::UCHAR_TOKEN
extern

Constant Token of type KEY_UCHAR representing the uchar keyword.

◆ UINT_TOKEN

const Token Bond::UINT_TOKEN
extern

Constant Token of type KEY_UINT representing the uint keyword.

◆ ULONG_TOKEN

const Token Bond::ULONG_TOKEN
extern

Constant Token of type KEY_ULONG representing the ulong keyword.

◆ UNARY_OPERATORS_TYPESET

const TokenTypeSet Bond::UNARY_OPERATORS_TYPESET
extern

Constant TokenTypeSet of all Bond prefix unary operators, namely: OP_PLUS, OP_MINUS, OP_STAR, OP_INC, OP_DEC, OP_NOT, OP_AMP and OP_BIT_NOT.

◆ UNSIGNED_INTEGER_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::UNSIGNED_INTEGER_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet of all keywords representing Bond unsigned integral types, namely: KEY_UCHAR, KEY_USHORT, KEY_UINT and KEY_ULONG.

◆ VOID_TOKEN

const Token Bond::VOID_TOKEN
extern

Constant Token of type KEY_VOID representing the void keyword.

◆ VOID_TYPE_SPECIFIERS_TYPESET

const TokenTypeSet Bond::VOID_TYPE_SPECIFIERS_TYPESET
extern

Constant TokenTypeSet containing only KEY_VOID.