E:/Vyuka/Prekladace/svn-private/public-ro/mlc/h/dutables.h File Reference

#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)

Generated on Wed Nov 25 10:18:00 2009 for DU4 support classes by  doxygen 1.6.1