|
Bash++
Bash++ compiler internal documentation
|
#include <string>#include <sstream>#include <vector>#include <unordered_map>#include <list>#include <memory>#include "replace_all.h"#include "../thirdparty/interval_tree/EntityMap.h"

Go to the source code of this file.
Classes | |
| struct | bpp::diagnostic |
| struct | bpp::SymbolPosition |
| class | bpp::bpp_entity |
| The base class for all entities in the Bash++ compiler. More... | |
| class | bpp::bpp_code_entity |
| An entity which can contain code. More... | |
| class | bpp::bpp_string |
| The practical difference between bpp_code_entity and bpp_string is how we handle the code buffers. More... | |
| class | bpp::bpp_method |
| A method in a class. More... | |
| class | bpp::bpp_method_parameter |
| A parameter in a method. More... | |
| class | bpp::bpp_class |
| A class in Bash++. More... | |
| class | bpp::bpp_object |
| An object in Bash++. More... | |
| class | bpp::bpp_datamember |
| A data member in a class. More... | |
| class | bpp::bpp_program |
| The main program. More... | |
| class | bpp::bash_while_loop |
| A while loop in Bash++. More... | |
| class | bpp::bash_while_condition |
| The condition for a while loop in Bash++. More... | |
| class | bpp::bash_if |
| An if statement in Bash++. More... | |
| class | bpp::bash_if_branch |
| A branch of an if statement in Bash++. More... | |
| class | bpp::bash_case |
| A case statement in Bash++. More... | |
| class | bpp::bash_case_pattern |
| A pattern for a case statement in Bash++. More... | |
| class | bpp::bash_for |
| A for loop in Bash++. More... | |
| class | bpp::bash_function |
| class | bpp::bpp_delete_statement |
| A delete statement in Bash++. More... | |
| class | bpp::bpp_dynamic_cast_statement |
| A dynamic_cast statement in Bash++. More... | |
| class | bpp::bpp_pointer_dereference |
| A pointer dereference in Bash++. More... | |
| class | bpp::bpp_value_assignment |
| A value assignment statement in Bash++. More... | |
| class | bpp::bpp_object_assignment |
| An object assignment statement in Bash++. More... | |
| class | bpp::bpp_object_reference |
| An object reference in Bash++. More... | |
| class | bpp::bpp_object_address |
| A statement which takes the address of an object in Bash++. More... | |
Namespaces | |
| namespace | bpp |
Enumerations | |
| enum | bpp::bpp_scope { bpp::SCOPE_PUBLIC , bpp::SCOPE_PROTECTED , bpp::SCOPE_PRIVATE , bpp::SCOPE_INACCESSIBLE } |
| enum | bpp::reference_type { bpp::ref_primitive , bpp::ref_method , bpp::ref_object } |
| enum | bpp::diagnostic_type { bpp::DIAGNOSTIC_ERROR , bpp::DIAGNOSTIC_WARNING , bpp::DIAGNOSTIC_INFO , bpp::DIAGNOSTIC_HINT } |
Functions | |
| bool | bpp::is_protected_keyword (const std::string &keyword) |
| Check if a string matches any of our protected keywords. | |
| bool | bpp::is_valid_identifier (const std::string &identifier) |
| Check if a string is a valid identifier in Bash++. | |
Variables | |
| const std::shared_ptr< bpp_entity > | bpp::inaccessible_entity = std::make_shared<bpp_entity>() |
| A placeholder for an inaccessible entity (scope handling) | |
| const std::shared_ptr< bpp_datamember > | bpp::inaccessible_datamember = std::make_shared<bpp_datamember>() |
| A placeholder for an inaccessible data member of a class (scope handling) | |
| const std::shared_ptr< bpp_method > | bpp::inaccessible_method = std::make_shared<bpp_method>() |
| A placeholder for an inaccessible method of a class (scope handling) | |
| static const char | bpp::bpp_nullptr [] = "0" |
| The secret internal value of '@nullptr' in Bash++. | |
| constexpr const char * | bpp::protected_keywords [] |
| A list of keywords that are reserved and cannot be used as identifiers in Bash++. | |