atlas  0.6
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
axis-types.h File Reference
#include <memory>
#include "sl_list.h"
#include <iostream>
#include <vector>
#include <cassert>
#include <iterator>
#include <stdexcept>
#include <csignal>
Include dependency graph for axis-types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  atlas::interpreter::type_expr
 
struct  atlas::interpreter::func_type
 
struct  atlas::interpreter::value_base
 
struct  atlas::interpreter::row_value
 
struct  atlas::interpreter::tuple_value
 
class  atlas::interpreter::evaluation_context
 
struct  atlas::interpreter::expression_base
 
struct  atlas::interpreter::conversion_info
 
class  atlas::interpreter::conversion
 
struct  atlas::interpreter::conversion_record
 
class  atlas::interpreter::voiding
 
struct  atlas::interpreter::error_base
 
struct  atlas::interpreter::logic_error
 
struct  atlas::interpreter::program_error
 
struct  atlas::interpreter::runtime_error
 
struct  atlas::interpreter::expr_error
 
struct  atlas::interpreter::type_error
 
struct  atlas::interpreter::balance_error
 
struct  atlas::interpreter::loop_break
 
struct  atlas::interpreter::function_return
 
struct  atlas::interpreter::user_interrupt
 

Namespaces

 atlas
 
 atlas::interpreter
 

Macros

#define AXIS_TYPES_H   /*3:*/
 

Typedefs

typedef type_expr * atlas::interpreter::type_p
 
typedef const type_expr * atlas::interpreter::const_type_p
 
typedef std::unique_ptr< type_expr > atlas::interpreter::type_ptr
 
typedef containers::simple_list< type_expr > atlas::interpreter::type_list
 
typedef atlas::containers::sl_node< type_expr > * atlas::interpreter::raw_type_list
 
typedef containers::sl_list< type_expr > atlas::interpreter::dressed_type_list
 
typedef containers::weak_sl_list_const_iterator< type_expr > atlas::interpreter::wtl_const_iterator
 
typedef containers::weak_sl_list_iterator< type_expr > atlas::interpreter::wtl_iterator
 
typedef func_type * atlas::interpreter::func_type_p
 
typedef std::unique_ptr< func_type > atlas::interpreter::func_type_ptr
 
typedef value_base * atlas::interpreter::value
 
typedef std::shared_ptr< const value_base > atlas::interpreter::shared_value
 
typedef std::shared_ptr< value_base > atlas::interpreter::own_value
 
typedef std::shared_ptr< const row_value > atlas::interpreter::shared_row
 
typedef std::shared_ptr< row_value > atlas::interpreter::own_row
 
typedef std::unique_ptr< tuple_value > atlas::interpreter::tuple_ptr
 
typedef std::shared_ptr< const tuple_value > atlas::interpreter::shared_tuple
 
typedef std::shared_ptr< tuple_value > atlas::interpreter::own_tuple
 
typedef std::shared_ptr< class evaluation_context > atlas::interpreter::shared_context
 
typedef expression_base * atlas::interpreter::expression
 
typedef std::unique_ptr< expression_base > atlas::interpreter::expression_ptr
 
typedef std::shared_ptr< expression_base > atlas::interpreter::shared_expression
 

Enumerations

enum  atlas::interpreter::type_tag {
  atlas::interpreter::undetermined_type, atlas::interpreter::primitive_type, atlas::interpreter::row_type, atlas::interpreter::tuple_type,
  atlas::interpreter::function_type
}
 
enum  atlas::interpreter::primitive_tag {
  atlas::interpreter::integral_type, atlas::interpreter::rational_type, atlas::interpreter::string_type, atlas::interpreter::boolean_type,
  atlas::interpreter::vector_type, atlas::interpreter::matrix_type, atlas::interpreter::rational_vector_type, atlas::interpreter::complex_lie_type_type,
  atlas::interpreter::root_datum_type, atlas::interpreter::inner_class_type, atlas::interpreter::real_form_type, atlas::interpreter::Cartan_class_type,
  atlas::interpreter::KGB_element_type, atlas::interpreter::block_type, atlas::interpreter::module_parameter_type, atlas::interpreter::split_integer_type,
  atlas::interpreter::virtual_module_type, atlas::interpreter::nr_of_primitive_types
}
 

Functions

type_ptr atlas::interpreter::acquire (const type_expr *t)
 
type_list atlas::interpreter::empty_tuple ()
 
type_list & atlas::interpreter::prefix (type_expr &&t, type_list &dst)
 
dressed_type_list & atlas::interpreter::prefix (type_expr &&t, dressed_type_list &dst)
 
std::ostream & atlas::interpreter::operator<< (std::ostream &out, const type_expr &t)
 
std::ostream & atlas::interpreter::operator<< (std::ostream &out, const func_type &f)
 
bool atlas::interpreter::operator== (const type_expr &x, const type_expr &y)
 
bool atlas::interpreter::operator!= (const type_expr &x, const type_expr &y)
 
type_ptr atlas::interpreter::mk_prim_type (primitive_tag p)
 
type_ptr atlas::interpreter::mk_row_type (type_ptr &&c)
 
type_ptr atlas::interpreter::mk_tuple_type (type_list &&l)
 
type_ptr atlas::interpreter::mk_function_type (type_expr &&a, type_expr &&r)
 
type_p atlas::interpreter::make_prim_type (unsigned int p)
 
type_p atlas::interpreter::make_row_type (type_p c)
 
type_p atlas::interpreter::make_tuple_type (raw_type_list l)
 
type_p atlas::interpreter::make_function_type (type_p a, type_p r)
 
raw_type_list atlas::interpreter::make_type_singleton (type_p t)
 
raw_type_list atlas::interpreter::make_type_list (raw_type_list l, type_p t)
 
type_ptr atlas::interpreter::mk_type (const char *s)
 
type_expr atlas::interpreter::mk_type_expr (const char *s)
 
type_expr atlas::interpreter::unknown_tuple (size_t n)
 
std::ostream & atlas::interpreter::operator<< (std::ostream &out, const value_base &v)
 
void atlas::interpreter::push_tuple_components ()
 
void atlas::interpreter::wrap_tuple (size_t n)
 
std::ostream & atlas::interpreter::operator<< (std::ostream &out, const expression_base &e)
 
void atlas::interpreter::push_expanded (expression_base::level l, const shared_value &v)
 
bool atlas::interpreter::coerce (const type_expr &from_type, const type_expr &to_type, expression_ptr &e)
 
expression_ptr atlas::interpreter::conform_types (const type_expr &found, type_expr &required, expression_ptr &&d, const expr &e)
 
const conversion_record * atlas::interpreter::row_coercion (const type_expr &final_type, type_expr &component_type)
 
void atlas::interpreter::coercion (const type_expr &from, const type_expr &to, const char *s, conversion_info::conv_f f)
 
unsigned int atlas::interpreter::is_close (const type_expr &x, const type_expr &y)
 
bool atlas::interpreter::broader_eq (const type_expr &a, const type_expr &b)
 
template<typename T >
T & atlas::interpreter::as_lvalue (T &&rvalue)
 
void atlas::interpreter::push_value (const shared_value &v)
 
void atlas::interpreter::push_value (shared_value &&v)
 
shared_value atlas::interpreter::pop_value ()
 
template<typename D >
std::shared_ptr< const D > atlas::interpreter::get () throw (logic_error)
 
template<typename D >
std::shared_ptr< D > atlas::interpreter::non_const_get () throw (logic_error)
 
template<typename D >
D * atlas::interpreter::force (value v) throw (logic_error)
 
template<typename D >
const D * atlas::interpreter::force (const value_base *v) throw (logic_error)
 
template<typename D >
std::shared_ptr< D > atlas::interpreter::get_own () throw (logic_error)
 
value atlas::interpreter::uniquify (shared_value &v)
 
template<unsigned int>
void atlas::interpreter::wrap_tuple ()
 
template<unsigned int>
void atlas::interpreter::do_wrap (std::vector< shared_value >::iterator it)
 
template<>
void atlas::interpreter::do_wrap< 0u > (std::vector< shared_value >::iterator it)
 

Macro Definition Documentation

#define AXIS_TYPES_H   /*3:*/