KJB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
semantics::Semantic_data< T, Traits > Class Template Reference

Concrete semantic data class for storing hash codes about nodes. More...

#include <Semantic_elaboration.h>

Inheritance diagram for semantics::Semantic_data< T, Traits >:
semantics::Semantic_data_base

Public Types

typedef Semantic_data< T, Traits > Self_type
 
typedef boost::shared_ptr
< Semantic_data< T, Traits > > 
Self_ptr
 
typedef boost::array< Val_type,
Traits::n_args > 
Arg_list
 
typedef boost::array< Key_type,
Traits::n_args > 
Arg_list_s
 
typedef boost::array
< Token_map *, Traits::n_args > 
Arg_map_list
 
- Public Types inherited from semantics::Semantic_data_base
typedef Semantic_db::Val_type Val_type
 
typedef Semantic_db::Key_type Key_type
 
typedef boost::shared_ptr
< Semantic_data_base
Base_ptr
 
typedef boost::tuple< size_t,
size_t > 
Hash_pair
 
typedef std::map< size_t,
std::string > 
Map
 
typedef std::pair< size_t,
std::string > 
Map_entry
 

Public Member Functions

 Semantic_data (const Val_type &head, const Arg_list &args)
 standard constructor More...
 
 Semantic_data (const Key_type &head, const Arg_list_s &args)
 constructor from labels rather than codes More...
 
 Semantic_data (const Val_type &head)
 construct an argless node from a code More...
 
 Semantic_data (const Key_type &head)
 construct an argless node from a key More...
 
const Arg_listargs () const
 return the actual arg tuple More...
 
const Val_typehead () const
 return the actual head value More...
 
const Key_typehead_s () const
 return the actual head value More...
 
const size_t & head_code () const
 return hash code for head More...
 
const size_t & args_code () const
 return hash code for arg list More...
 
const Hash_pairhash_pair () const
 return hash pair for head and args More...
 
- Public Member Functions inherited from semantics::Semantic_data_base
virtual ~Semantic_data_base ()
 

Static Public Member Functions

static Semantic_dbhead_map ()
 
static Arg_map_listarg_map_list ()
 
- Static Public Member Functions inherited from semantics::Semantic_data_base
static Mapglobal_head_map ()
 
static Mapglobal_arg_map ()
 

Friends

class Nonterminal_elaboration< T, Traits >
 
std::ostream & operator (std::ostream &os, Self_type d)
 display head and args readably More...
 

Detailed Description

template<class T, class Traits = Semantic_traits<T>>
class semantics::Semantic_data< T, Traits >

Concrete semantic data class for storing hash codes about nodes.

template parameter T is the type of elaboration (Color_primitive, Size_primitive, Binary_relation, etc.)

Member Typedef Documentation

template<class T , class Traits = Semantic_traits<T>>
typedef boost::array<Val_type, Traits::n_args> semantics::Semantic_data< T, Traits >::Arg_list
template<class T , class Traits = Semantic_traits<T>>
typedef boost::array<Key_type, Traits::n_args> semantics::Semantic_data< T, Traits >::Arg_list_s
template<class T , class Traits = Semantic_traits<T>>
typedef boost::array<Token_map*, Traits::n_args> semantics::Semantic_data< T, Traits >::Arg_map_list
template<class T , class Traits = Semantic_traits<T>>
typedef boost::shared_ptr<Semantic_data<T, Traits> > semantics::Semantic_data< T, Traits >::Self_ptr
template<class T , class Traits = Semantic_traits<T>>
typedef Semantic_data<T, Traits> semantics::Semantic_data< T, Traits >::Self_type

Constructor & Destructor Documentation

template<class T , class Traits >
semantics::Semantic_data< T, Traits >::Semantic_data ( const Val_type head,
const Arg_list args 
)

standard constructor

template<class T , class Traits >
semantics::Semantic_data< T, Traits >::Semantic_data ( const Key_type head,
const Arg_list_s args 
)

constructor from labels rather than codes

template<class T , class Traits >
semantics::Semantic_data< T, Traits >::Semantic_data ( const Val_type head)

construct an argless node from a code

template<class T , class Traits >
semantics::Semantic_data< T, Traits >::Semantic_data ( const Key_type head)

construct an argless node from a key

Member Function Documentation

template<class T , class Traits = Semantic_traits<T>>
static Arg_map_list& semantics::Semantic_data< T, Traits >::arg_map_list ( )
inlinestatic
template<class T , class Traits = Semantic_traits<T>>
const Arg_list& semantics::Semantic_data< T, Traits >::args ( ) const
inline

return the actual arg tuple

template<class T , class Traits = Semantic_traits<T>>
const size_t& semantics::Semantic_data< T, Traits >::args_code ( ) const
inlinevirtual

return hash code for arg list

Implements semantics::Semantic_data_base.

template<class T , class Traits = Semantic_traits<T>>
const Hash_pair& semantics::Semantic_data< T, Traits >::hash_pair ( ) const
inlinevirtual

return hash pair for head and args

Implements semantics::Semantic_data_base.

template<class T , class Traits = Semantic_traits<T>>
const Val_type& semantics::Semantic_data< T, Traits >::head ( ) const
inlinevirtual

return the actual head value

Implements semantics::Semantic_data_base.

template<class T , class Traits = Semantic_traits<T>>
const size_t& semantics::Semantic_data< T, Traits >::head_code ( ) const
inlinevirtual

return hash code for head

Implements semantics::Semantic_data_base.

template<class T , class Traits = Semantic_traits<T>>
static Semantic_db& semantics::Semantic_data< T, Traits >::head_map ( )
inlinestatic
template<class T , class Traits = Semantic_traits<T>>
const Key_type& semantics::Semantic_data< T, Traits >::head_s ( ) const
inline

return the actual head value

Friends And Related Function Documentation

template<class T , class Traits = Semantic_traits<T>>
friend class Nonterminal_elaboration< T, Traits >
friend
template<class T , class Traits = Semantic_traits<T>>
std::ostream& operator ( std::ostream &  os,
Self_type  d 
)
friend

display head and args readably


The documentation for this class was generated from the following file: