Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 > Struct Template Reference

#include <rule.hpp>

Inheritance diagram for boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >:
Collaboration diagram for boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >:

Classes

struct  attribute
 

Public Types

typedef Iterator iterator_type
 
typedef rule< Iterator, T1, T2,
T3, T4 > 
this_type
 
typedef reference< this_type
const > 
reference_
 
typedef proto::terminal
< reference_ >::type 
terminal
 
typedef proto::extends
< terminal, this_type
base_type
 
typedef mpl::vector< T1, T2,
T3, T4 > 
template_params
 
typedef
spirit::detail::extract_locals
< template_params >::type 
locals_type
 
typedef
spirit::detail::extract_component
< qi::domain, template_params >
::type 
skipper_type
 
typedef
spirit::detail::extract_sig
< template_params >::type 
sig_type
 
typedef
spirit::detail::extract_encoding
< template_params >::type 
encoding_type
 
typedef
spirit::detail::attr_from_sig
< sig_type >::type 
attr_type
 
typedef add_reference
< attr_type >::type 
attr_reference_type
 
typedef
spirit::detail::params_from_sig
< sig_type >::type 
parameter_types
 
typedef context< fusion::cons
< attr_reference_type,
parameter_types >, locals_type
context_type
 
typedef function< bool(Iterator
&first, Iterator const &last,
context_type &context,
skipper_type const &skipper)> 
function_type
 
typedef mpl::if_< is_same
< encoding_type, unused_type >
, unused_type, tag::char_code
< tag::encoding, encoding_type >
>::type 
encoding_modifier_type
 
typedef rule parameterized_subject_type
 
typedef rule< Iterator, T1, T2,
T3, T4 > 
derived_type
 
typedef qi::domain domain
 

Public Member Functions

 rule (std::string const &name="unnamed-rule")
 
 rule (rule const &rhs)
 
template<typename Expr >
 rule (Expr const &expr, std::string const &name="unnamed-rule")
 
ruleoperator= (rule const &rhs)
 
std::string const & name () const
 
void name (std::string const &str)
 
template<typename Expr >
ruleoperator= (Expr const &expr)
 
template<typename Context , typename Skipper , typename Attribute >
bool parse (Iterator &first, Iterator const &last, Context &, Skipper const &skipper, Attribute &attr_param) const
 
template<typename Context , typename Skipper , typename Attribute , typename Params >
bool parse (Iterator &first, Iterator const &last, Context &caller_context, Skipper const &skipper, Attribute &attr_param, Params const &params) const
 
template<typename Context >
info what (Context &) const
 
reference_ alias () const
 
proto::terminal< this_type >::type copy () const
 
rule const & get_parameterized_subject () const
 
rule< Iterator, T1, T2, T3, T4 >
const & 
derived () const
 

Static Public Member Functions

template<typename Auto , typename Expr >
static void define (rule &, Expr const &, mpl::false_)
 
template<typename Auto , typename Expr >
static void define (rule &lhs, Expr const &expr, mpl::true_)
 

Public Attributes

std::string name_
 
function_type f
 

Static Public Attributes

static size_t const params_size
 

Friends

template<typename Expr >
ruleoperator%= (rule &r, Expr const &expr)
 
template<typename Expr >
ruleoperator%= (rule &r, Expr &&expr)
 

Member Typedef Documentation

template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef add_reference<attr_type>::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::attr_reference_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::attr_from_sig<sig_type>::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::attr_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef proto::extends<terminal, this_type> boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::base_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef context< fusion::cons<attr_reference_type, parameter_types> , locals_type> boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::context_type
typedef rule< Iterator, T1, T2, T3, T4 > boost::spirit::qi::parser< rule< Iterator, T1, T2, T3, T4 > >::derived_type
inherited
typedef qi::domain boost::spirit::qi::parser< rule< Iterator, T1, T2, T3, T4 > >::domain
inherited
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef mpl::if_< is_same<encoding_type, unused_type> , unused_type , tag::char_code<tag::encoding, encoding_type> >::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::encoding_modifier_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::extract_encoding<template_params>::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::encoding_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef function< bool(Iterator& first, Iterator const& last , context_type& context , skipper_type const& skipper )> boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::function_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef Iterator boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::iterator_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::extract_locals<template_params>::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::locals_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::params_from_sig<sig_type>::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::parameter_types
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef rule boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::parameterized_subject_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef reference<this_type const> boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::reference_
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::extract_sig<template_params>::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::sig_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::extract_component< qi::domain, template_params>::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::skipper_type
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef mpl::vector<T1, T2, T3, T4> boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::template_params
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef proto::terminal<reference_>::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::terminal
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
typedef rule<Iterator, T1, T2, T3, T4> boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::this_type

Constructor & Destructor Documentation

template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::rule ( std::string const &  name = "unnamed-rule< Iterator, T1, T2, T3, T4 >")
inlineexplicit
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::rule ( rule< Iterator, T1, T2, T3, T4 > const &  rhs)
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
template<typename Expr >
boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::rule ( Expr const &  expr,
std::string const &  name = "unnamed-rule< Iterator, T1, T2, T3, T4 >" 
)
inline

Member Function Documentation

template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
reference_ boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::alias ( ) const
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
proto::terminal<this_type>::type boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::copy ( ) const
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
template<typename Auto , typename Expr >
static void boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::define ( rule< Iterator, T1, T2, T3, T4 > &  ,
Expr const &  ,
mpl::false_   
)
inlinestatic
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
template<typename Auto , typename Expr >
static void boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::define ( rule< Iterator, T1, T2, T3, T4 > &  lhs,
Expr const &  expr,
mpl::true_   
)
inlinestatic
rule< Iterator, T1, T2, T3, T4 > const& boost::spirit::qi::parser< rule< Iterator, T1, T2, T3, T4 > >::derived ( ) const
inlineinherited
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
rule const& boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::get_parameterized_subject ( ) const
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
std::string const& boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::name ( ) const
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
void boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::name ( std::string const &  str)
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
rule& boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::operator= ( rule< Iterator, T1, T2, T3, T4 > const &  rhs)
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
template<typename Expr >
rule& boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::operator= ( Expr const &  expr)
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
template<typename Context , typename Skipper , typename Attribute >
bool boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::parse ( Iterator &  first,
Iterator const &  last,
Context &  ,
Skipper const &  skipper,
Attribute &  attr_param 
) const
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
template<typename Context , typename Skipper , typename Attribute , typename Params >
bool boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::parse ( Iterator &  first,
Iterator const &  last,
Context &  caller_context,
Skipper const &  skipper,
Attribute &  attr_param,
Params const &  params 
) const
inline
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
template<typename Context >
info boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::what ( Context &  ) const
inline

Friends And Related Function Documentation

template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
template<typename Expr >
rule& operator%= ( rule< Iterator, T1, T2, T3, T4 > &  r,
Expr const &  expr 
)
friend
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
template<typename Expr >
rule& operator%= ( rule< Iterator, T1, T2, T3, T4 > &  r,
Expr &&  expr 
)
friend

Member Data Documentation

template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
std::string boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::name_
template<typename Iterator, typename T1, typename T2, typename T3, typename T4>
size_t const boost::spirit::qi::rule< Iterator, T1, T2, T3, T4 >::params_size
static

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