#include "common_types.hpp"
#include "literal_storage.hpp"
#include "flat_icblock.hpp"
#include "labeled_icblock.hpp"
#include "uid_gen.hpp"
#include <vector>
#include <map>
#include <limits>
Go to the source code of this file.
Classes | |
class | mlc::abstract_symbol |
abstract symbol representation More... | |
class | mlc::abstract_type |
abstract entry for a type More... | |
class | mlc::array_type |
entry for an (one-dimensional) array type More... | |
class | mlc::bool_const_symbol |
representation of a named boolean constant More... | |
class | mlc::bool_type |
entry for the 'boolean' type (singleton) More... | |
class | mlc::const_symbol |
common base of all named constant representations More... | |
class | mlc::field_entry |
record field More... | |
class | mlc::field_list |
list of record fields More... | |
class | mlc::function_symbol |
representation of a function More... | |
class | mlc::global_variable_symbol |
global variable representation More... | |
class | mlc::int_const_symbol |
representation of a named integer constant More... | |
class | mlc::int_type |
entry for the 'integer' type (singleton) More... | |
class | mlc::integral_type |
common base for integer and range type entries More... | |
class | mlc::label_entry |
class | mlc::label_symbol |
label entry More... | |
class | mlc::local_symbol_tables |
class | mlc::local_variable_symbol |
local variable representation More... | |
class | mlc::ls_index_comparator< T > |
class | mlc::parameter_by_reference_symbol |
representation of a parameter passed by reference ('var') More... | |
struct | mlc::parameter_entry |
function or procedure parameter entry More... | |
class | mlc::parameter_list |
list of function or procedure parameters More... | |
class | mlc::procedure_symbol |
representation of a procedure More... | |
class | mlc::range_type |
entry for a range type More... | |
class | mlc::real_const_symbol |
representation of a named real constant More... | |
class | mlc::real_type |
entry for the 'real' type (singleton) More... | |
class | mlc::record_type |
entry for a record type More... | |
class | mlc::str_const_symbol |
representation of a named string constant More... | |
class | mlc::str_type |
entry for the 'string' type (singleton) More... | |
class | mlc::subprogram_symbol |
common base of procedure and function entries More... | |
class | mlc::symbol_entry |
class | mlc::symbol_tables |
all symbol tables together More... | |
class | mlc::type_entry |
class | mlc::type_symbol |
representation of a named type More... | |
class | mlc::typed_symbol |
common base of all symbol entries that have a type More... | |
class | mlc::variable_symbol |
common base of all variable representations More... | |
Namespaces | |
namespace | mlc |
Typedefs | |
typedef mlaskal::dumb_pointer < array_type > | mlc::array_type_pointer |
pointer to an array_type entry | |
typedef mlaskal::dumb_pointer < bool_const_symbol > | mlc::bool_const_symbol_pointer |
pointer to a representation of a named boolean constant | |
typedef mlaskal::dumb_pointer < bool_type > | mlc::bool_type_pointer |
pointer to an bool_type entry | |
typedef mlaskal::dumb_pointer < const_symbol > | mlc::const_symbol_reference |
pointer to const_symbol entry | |
typedef mlaskal::dumb_pointer < const field_entry > | mlc::field_pointer |
pointer to an field_entry | |
typedef std::vector< field_entry > | mlc::field_vector |
typedef mlaskal::dumb_pointer < function_symbol > | mlc::function_symbol_pointer |
pointer to function_symbol entry | |
typedef mlaskal::dumb_pointer < global_variable_symbol > | mlc::global_variable_symbol_pointer |
pointer to global_variable_symbol entry | |
typedef mlaskal::abstract_functions::iterator | mlc::ic_function_pointer |
intermediate code label | |
typedef mlaskal::labeled_icblock::label_type | mlc::ic_label |
intermediate code label | |
typedef mlaskal::labeled_icblock * | mlc::icblock_pointer |
intermediate code block | |
typedef mlaskal::dumb_pointer < int_const_symbol > | mlc::int_const_symbol_pointer |
pointer to a representation of a named integer constant | |
typedef mlaskal::dumb_pointer < int_type > | mlc::int_type_pointer |
pointer to an int_type entry | |
typedef std::map< ls_int_index, label_entry, ls_index_comparator< int > > | mlc::label_map |
typedef mlaskal::dumb_pointer < label_symbol > | mlc::label_symbol_pointer |
pointer to a label entry | |
typedef mlaskal::dumb_pointer < local_variable_symbol > | mlc::local_variable_symbol_pointer |
pointer to local_variable_symbol entry | |
typedef ls_id_type::const_iterator | mlc::ls_id_index |
identifier index | |
typedef mlaskal::lit_storage < std::string > | mlc::ls_id_type |
identifier storage type | |
typedef ls_int_type::const_iterator | mlc::ls_int_index |
integer literal index | |
typedef mlaskal::lit_storage< int > | mlc::ls_int_type |
integer literal storage type | |
typedef ls_real_type::const_iterator | mlc::ls_real_index |
real literal index | |
typedef mlaskal::lit_storage < double > | mlc::ls_real_type |
real literal storage type | |
typedef ls_str_type::const_iterator | mlc::ls_str_index |
string literal index | |
typedef mlaskal::lit_storage < std::string > | mlc::ls_str_type |
string literal storage type | |
typedef mlaskal::dumb_pointer < parameter_by_reference_symbol > | mlc::parameter_by_reference_symbol_pointer |
pointer to parameter_by_reference_symbol entry | |
typedef std::vector < parameter_entry > | mlc::parameter_vector |
typedef mlaskal::dumb_pointer < procedure_symbol > | mlc::procedure_symbol_pointer |
pointer to procedure_symbol entry | |
typedef mlaskal::dumb_pointer < range_type > | mlc::range_type_pointer |
pointer to an range_type entry | |
typedef mlaskal::dumb_pointer < real_const_symbol > | mlc::real_const_symbol_pointer |
pointer to a representation of a named real constant | |
typedef mlaskal::dumb_pointer < real_type > | mlc::real_type_pointer |
pointer to an real_type entry | |
typedef std::map< ls_id_index, const field_entry *, ls_index_comparator < std::string > > | mlc::record_cache_type |
typedef mlaskal::dumb_pointer < record_type > | mlc::record_type_pointer |
pointer to a record_type entry | |
typedef mlaskal::ICRELNUM | mlc::stack_address |
stack offset type | |
typedef mlaskal::dumb_pointer < str_const_symbol > | mlc::str_const_symbol_pointer |
pointer to a representation of a named string constant | |
typedef mlaskal::dumb_pointer < str_type > | mlc::str_type_pointer |
pointer to an str_type entry | |
typedef mlaskal::dumb_pointer < subprogram_symbol > | mlc::subprogram_symbol_pointer |
pointer to subprogram_symbol entry | |
typedef std::map< ls_id_index, symbol_entry, ls_index_comparator < std::string > > | mlc::symbol_map |
typedef mlaskal::dumb_pointer < abstract_symbol > | mlc::symbol_pointer |
pointer to abstract symbol entry | |
typedef mlaskal::dumb_pointer < abstract_type > | mlc::type_pointer |
pointer to representation of a type | |
typedef mlaskal::dumb_pointer < type_symbol > | mlc::type_symbol_reference |
pointer to type_symbol entry | |
typedef std::list< type_entry > | mlc::type_vector |
typedef mlaskal::dumb_pointer < typed_symbol > | mlc::typed_symbol_pointer |
pointer to typed_symbol entry | |
typedef mlaskal::dumb_pointer < variable_symbol > | mlc::variable_symbol_pointer |
pointer to variable_symbol entry | |
Enumerations | |
enum | mlc::parameter_mode { mlc::PMODE_UNDEF, mlc::PMODE_BY_VALUE, mlc::PMODE_BY_REFERENCE } |
function or procedure parameter modes More... | |
enum | mlc::symbol_kind { mlc::SKIND_UNDEF, mlc::SKIND_PROCEDURE, mlc::SKIND_FUNCTION, mlc::SKIND_GLOBAL_VARIABLE, mlc::SKIND_LOCAL_VARIABLE, mlc::SKIND_PARAMETER_BY_REFERENCE, mlc::SKIND_TYPE, mlc::SKIND_CONST } |
symbol kind More... | |
enum | mlc::type_category { mlc::TCAT_UNDEF, mlc::TCAT_ARRAY, mlc::TCAT_RECORD, mlc::TCAT_BOOL, mlc::TCAT_RANGE, mlc::TCAT_INT, mlc::TCAT_REAL, mlc::TCAT_STR } |
category of a type More... | |
Functions | |
field_list * | mlc::create_field_list () |
creates an empty field list | |
parameter_list * | mlc::create_parameter_list () |
creates an empty parameter list | |
void | mlc::icblock_append_delete (icblock_pointer dicb, icblock_pointer sicb) |
merges two icblocks | |
icblock_pointer | mlc::icblock_create () |
creates empty icblock | |
bool | mlc::identical_type (type_pointer a, type_pointer b) |
compares two types | |
std::ostream & | mlc::operator<< (std::ostream &o, const parameter_list &e) |
std::ostream & | mlc::operator<< (std::ostream &o, const parameter_entry &e) |
std::ostream & | mlc::operator<< (std::ostream &o, const field_entry &e) |
std::ostream & | mlc::operator<< (std::ostream &o, const type_entry &e) |
std::ostream & | mlc::operator<< (std::ostream &os, type_category typecat) |