Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::spirit::repository::karma::subrule< ID_, T1, T2 > Struct Template Reference

#include <subrule.hpp>

Inheritance diagram for boost::spirit::repository::karma::subrule< ID_, T1, T2 >:
Collaboration diagram for boost::spirit::repository::karma::subrule< ID_, T1, T2 >:

Classes

struct  attribute
 
struct  def_type_helper
 
struct  group_type_helper
 

Public Types

typedef mpl::int_
< spirit::karma::generator_properties::all_properties
properties
 
typedef mpl::int_< ID_ > id_type
 
typedef subrule< ID_, T1, T2 > this_type
 
typedef
spirit::karma::reference
< this_type const > 
reference_
 
typedef proto::terminal
< reference_ >::type 
terminal
 
typedef proto::extends
< terminal, this_type
base_type
 
typedef mpl::vector< T1, T2 > template_params
 
typedef
spirit::detail::extract_locals
< template_params >::type 
locals_type
 
typedef
spirit::detail::extract_sig
< template_params >::type 
sig_type
 
typedef
spirit::detail::attr_from_sig
< sig_type >::type 
attr_type
 
typedef add_reference
< typename add_const
< attr_type >::type >::type 
attr_reference_type
 
typedef
spirit::detail::params_from_sig
< sig_type >::type 
parameter_types
 
typedef this_type parameterized_subject_type
 
typedef subrule< ID_, T1, T2 > derived_type
 
typedef karma::domain domain
 

Public Member Functions

 BOOST_STATIC_CONSTANT (int, ID=ID_)
 
 subrule (std::string const &name_="unnamed-subrule")
 
template<typename Expr >
group_type_helper< Expr, false >
::type 
operator= (Expr const &expr) const
 
std::string const & name () const
 
void name (std::string const &str)
 
template<typename OutputIterator , typename Group , typename Attributes , typename Locals , typename Delimiter , typename Attribute >
bool generate (OutputIterator &sink, subrule_context< Group, Attributes, Locals > &context, Delimiter const &delimiter, Attribute const &attr) const
 
template<typename OutputIterator , typename Context , typename Delimiter , typename Attribute >
bool generate (OutputIterator &, Context &, Delimiter const &, Attribute const &) const
 
template<typename OutputIterator , typename Group , typename Attributes , typename Locals , typename Delimiter , typename Attribute , typename Params >
bool generate (OutputIterator &sink, subrule_context< Group, Attributes, Locals > &context, Delimiter const &delimiter, Attribute const &attr, Params const &params) const
 
template<typename OutputIterator , typename Context , typename Delimiter , typename Attribute , typename Params >
bool generate (OutputIterator &, Context &, Delimiter const &, Attribute const &, Params const &) const
 
template<typename Context >
info what (Context &) const
 
this_type const & get_parameterized_subject () const
 
subrule< ID_, T1, T2 >const & derived () const
 

Public Attributes

std::string name_
 

Static Public Attributes

static size_t const params_size
 

Friends

template<typename Expr >
group_type_helper< Expr, true >
::type 
operator%= (subrule const &sr, Expr const &expr)
 
template<typename Expr >
group_type_helper< Expr, true >
::type 
operator%= (subrule const &sr, Expr &expr)
 
template<typename Expr >
group_type_helper< Expr, true >
::type 
operator%= (subrule &sr, Expr const &expr)
 
template<typename Expr >
group_type_helper< Expr, true >
::type 
operator%= (subrule &sr, Expr &expr)
 

Member Typedef Documentation

template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef add_reference< typename add_const<attr_type>::type>::type boost::spirit::repository::karma::subrule< ID_, T1, T2 >::attr_reference_type
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef spirit::detail::attr_from_sig<sig_type>::type boost::spirit::repository::karma::subrule< ID_, T1, T2 >::attr_type
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef proto::extends<terminal, this_type> boost::spirit::repository::karma::subrule< ID_, T1, T2 >::base_type
typedef subrule< ID_, T1, T2 > boost::spirit::karma::generator< subrule< ID_, T1, T2 > >::derived_type
inherited
typedef karma::domain boost::spirit::karma::generator< subrule< ID_, T1, T2 > >::domain
inherited
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef mpl::int_<ID_> boost::spirit::repository::karma::subrule< ID_, T1, T2 >::id_type
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef spirit::detail::extract_locals<template_params>::type boost::spirit::repository::karma::subrule< ID_, T1, T2 >::locals_type
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef spirit::detail::params_from_sig<sig_type>::type boost::spirit::repository::karma::subrule< ID_, T1, T2 >::parameter_types
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef this_type boost::spirit::repository::karma::subrule< ID_, T1, T2 >::parameterized_subject_type
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef mpl::int_< spirit::karma::generator_properties::all_properties> boost::spirit::repository::karma::subrule< ID_, T1, T2 >::properties
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef spirit::karma::reference<this_type const> boost::spirit::repository::karma::subrule< ID_, T1, T2 >::reference_
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef spirit::detail::extract_sig<template_params>::type boost::spirit::repository::karma::subrule< ID_, T1, T2 >::sig_type
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef mpl::vector<T1, T2> boost::spirit::repository::karma::subrule< ID_, T1, T2 >::template_params
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef proto::terminal<reference_>::type boost::spirit::repository::karma::subrule< ID_, T1, T2 >::terminal
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
typedef subrule<ID_, T1, T2> boost::spirit::repository::karma::subrule< ID_, T1, T2 >::this_type

Constructor & Destructor Documentation

template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
boost::spirit::repository::karma::subrule< ID_, T1, T2 >::subrule ( std::string const &  name_ = "unnamed-subrule< ID_, T1, T2 >")
inlineexplicit

Member Function Documentation

template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
boost::spirit::repository::karma::subrule< ID_, T1, T2 >::BOOST_STATIC_CONSTANT ( int  ,
ID  = ID_ 
)
subrule< ID_, T1, T2 > const& boost::spirit::karma::generator< subrule< ID_, T1, T2 > >::derived ( ) const
inlineinherited
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename OutputIterator , typename Group , typename Attributes , typename Locals , typename Delimiter , typename Attribute >
bool boost::spirit::repository::karma::subrule< ID_, T1, T2 >::generate ( OutputIterator &  sink,
subrule_context< Group, Attributes, Locals > &  context,
Delimiter const &  delimiter,
Attribute const &  attr 
) const
inline
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename OutputIterator , typename Context , typename Delimiter , typename Attribute >
bool boost::spirit::repository::karma::subrule< ID_, T1, T2 >::generate ( OutputIterator &  ,
Context &  ,
Delimiter const &  ,
Attribute const &   
) const
inline
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename OutputIterator , typename Group , typename Attributes , typename Locals , typename Delimiter , typename Attribute , typename Params >
bool boost::spirit::repository::karma::subrule< ID_, T1, T2 >::generate ( OutputIterator &  sink,
subrule_context< Group, Attributes, Locals > &  context,
Delimiter const &  delimiter,
Attribute const &  attr,
Params const &  params 
) const
inline
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename OutputIterator , typename Context , typename Delimiter , typename Attribute , typename Params >
bool boost::spirit::repository::karma::subrule< ID_, T1, T2 >::generate ( OutputIterator &  ,
Context &  ,
Delimiter const &  ,
Attribute const &  ,
Params const &   
) const
inline
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
this_type const& boost::spirit::repository::karma::subrule< ID_, T1, T2 >::get_parameterized_subject ( ) const
inline
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
std::string const& boost::spirit::repository::karma::subrule< ID_, T1, T2 >::name ( ) const
inline
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
void boost::spirit::repository::karma::subrule< ID_, T1, T2 >::name ( std::string const &  str)
inline
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename Expr >
group_type_helper<Expr, false>::type boost::spirit::repository::karma::subrule< ID_, T1, T2 >::operator= ( Expr const &  expr) const
inline
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename Context >
info boost::spirit::repository::karma::subrule< ID_, T1, T2 >::what ( Context &  ) const
inline

Friends And Related Function Documentation

template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename Expr >
group_type_helper<Expr, true>::type operator%= ( subrule< ID_, T1, T2 > const &  sr,
Expr const &  expr 
)
friend
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename Expr >
group_type_helper<Expr, true>::type operator%= ( subrule< ID_, T1, T2 > const &  sr,
Expr &  expr 
)
friend
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename Expr >
group_type_helper<Expr, true>::type operator%= ( subrule< ID_, T1, T2 > &  sr,
Expr const &  expr 
)
friend
template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
template<typename Expr >
group_type_helper<Expr, true>::type operator%= ( subrule< ID_, T1, T2 > &  sr,
Expr &  expr 
)
friend

Member Data Documentation

template<int ID_, typename T1 = unused_type, typename T2 = unused_type>
size_t const boost::spirit::repository::karma::subrule< ID_, T1, T2 >::params_size
static

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