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::qi::keywords< Elements, Modifiers > Struct Template Reference

#include <keywords.hpp>

Inheritance diagram for boost::spirit::repository::qi::keywords< Elements, Modifiers >:
Collaboration diagram for boost::spirit::repository::qi::keywords< Elements, Modifiers >:

Classes

struct  attribute
 
struct  build_parser_tags
 
struct  is_complex_kwd_parser_filter
 
struct  is_kwd_parser_filter
 

Public Types

typedef mpl::count_if
< Elements, mpl::not_
< mpl::or_< is_kwd_parser
< mpl::_1 >
, is_complex_kwd_parser
< mpl::_1 > > > > 
non_kwd_subject_count
 Make sure that all subjects are of the kwd type. More...
 
typedef build_parser_tags
< Elements >::type 
parser_index_vector
 
typedef mpl::filter_view
< Elements, is_kwd_parser
< mpl::_ > >::type 
string_keywords
 
typedef mpl::filter_view
< parser_index_vector,
is_kwd_parser_filter< mpl::_ >
>::type 
string_keyword_indexes
 
typedef mpl::filter_view
< parser_index_vector,
is_complex_kwd_parser_filter
< mpl::_ > >::type 
complex_keywords_indexes
 
typedef mpl::if_< typename
mpl::empty
< complex_keywords_indexes >
::type,
detail::empty_keywords_list,
detail::complex_keywords
< complex_keywords_indexes >
>::type 
complex_keywords_type
 
typedef boost::array< bool,
fusion::result_of::size
< Elements >::value > 
flags_type
 
typedef boost::array< int,
fusion::result_of::size
< Elements >::value > 
counters_type
 
typedef mpl::if_< typename
mpl::empty
< string_keyword_indexes >
::type,
detail::empty_keywords_list,
detail::string_keywords
< Elements, string_keywords,
string_keyword_indexes,
flags_type, Modifiers >
>::type 
string_keywords_type
 
typedef keywords< Elements,
Modifiers > 
derived_type
 
typedef qi::domain domain
 

Public Member Functions

 BOOST_MPL_ASSERT_RELATION (non_kwd_subject_count::value,==, 0)
 If the assertion fails here then you probably forgot to wrap a subject of the / operator in a kwd directive. More...
 
 keywords (Elements const &elements_)
 
template<typename Iterator , typename Context , typename Skipper , typename Attribute >
bool parse (Iterator &first, Iterator const &last, Context &context, Skipper const &skipper, Attribute &attr_) const
 
template<typename Iterator , typename Context , typename Skipper , typename Attribute >
bool parse_impl (Iterator &first, Iterator const &last, Context &context, Skipper const &skipper, Attribute &attr_, mpl::true_) const
 
template<typename Iterator , typename Context , typename Skipper , typename Attribute >
bool parse_impl (Iterator &first, Iterator const &last, Context &context, Skipper const &skipper, Attribute &attr_, mpl::false_) const
 
template<typename Context >
info what (Context &context) const
 
keywords< Elements, Modifiers >
const & 
derived () const
 

Public Attributes

flags_type flags_init
 
Elements elements
 
string_keywords_type string_keywords_inst
 
complex_keywords_type complex_keywords_inst
 

Member Typedef Documentation

template<typename Elements , typename Modifiers >
typedef mpl::filter_view< parser_index_vector , is_complex_kwd_parser_filter< mpl::_ > >::type boost::spirit::repository::qi::keywords< Elements, Modifiers >::complex_keywords_indexes
template<typename Elements , typename Modifiers >
typedef mpl::if_< typename mpl::empty<complex_keywords_indexes>::type, detail::empty_keywords_list, detail::complex_keywords< complex_keywords_indexes > >::type boost::spirit::repository::qi::keywords< Elements, Modifiers >::complex_keywords_type
template<typename Elements , typename Modifiers >
typedef boost::array<int, fusion::result_of::size<Elements>::value> boost::spirit::repository::qi::keywords< Elements, Modifiers >::counters_type
typedef keywords< Elements, Modifiers > boost::spirit::qi::parser< keywords< Elements, Modifiers > >::derived_type
inherited
typedef qi::domain boost::spirit::qi::parser< keywords< Elements, Modifiers > >::domain
inherited
template<typename Elements , typename Modifiers >
typedef boost::array<bool, fusion::result_of::size<Elements>::value> boost::spirit::repository::qi::keywords< Elements, Modifiers >::flags_type
template<typename Elements , typename Modifiers >
typedef mpl::count_if< Elements, mpl::not_< mpl::or_< is_kwd_parser< mpl::_1 > , is_complex_kwd_parser< mpl::_1 > > > > boost::spirit::repository::qi::keywords< Elements, Modifiers >::non_kwd_subject_count

Make sure that all subjects are of the kwd type.

template<typename Elements , typename Modifiers >
typedef build_parser_tags< Elements >::type boost::spirit::repository::qi::keywords< Elements, Modifiers >::parser_index_vector
template<typename Elements , typename Modifiers >
typedef mpl::filter_view< parser_index_vector , is_kwd_parser_filter< mpl::_ > >::type boost::spirit::repository::qi::keywords< Elements, Modifiers >::string_keyword_indexes
template<typename Elements , typename Modifiers >
typedef mpl::filter_view< Elements, is_kwd_parser<mpl::_> >::type boost::spirit::repository::qi::keywords< Elements, Modifiers >::string_keywords
template<typename Elements , typename Modifiers >
typedef mpl::if_< typename mpl::empty<string_keyword_indexes>::type, detail::empty_keywords_list, detail::string_keywords< Elements, string_keywords, string_keyword_indexes, flags_type, Modifiers> >::type boost::spirit::repository::qi::keywords< Elements, Modifiers >::string_keywords_type

Constructor & Destructor Documentation

template<typename Elements , typename Modifiers >
boost::spirit::repository::qi::keywords< Elements, Modifiers >::keywords ( Elements const &  elements_)
inline

Member Function Documentation

template<typename Elements , typename Modifiers >
boost::spirit::repository::qi::keywords< Elements, Modifiers >::BOOST_MPL_ASSERT_RELATION ( non_kwd_subject_count::value  ,
 
)

If the assertion fails here then you probably forgot to wrap a subject of the / operator in a kwd directive.

keywords< Elements, Modifiers > const& boost::spirit::qi::parser< keywords< Elements, Modifiers > >::derived ( ) const
inlineinherited
template<typename Elements , typename Modifiers >
template<typename Iterator , typename Context , typename Skipper , typename Attribute >
bool boost::spirit::repository::qi::keywords< Elements, Modifiers >::parse ( Iterator &  first,
Iterator const &  last,
Context &  context,
Skipper const &  skipper,
Attribute &  attr_ 
) const
inline
template<typename Elements , typename Modifiers >
template<typename Iterator , typename Context , typename Skipper , typename Attribute >
bool boost::spirit::repository::qi::keywords< Elements, Modifiers >::parse_impl ( Iterator &  first,
Iterator const &  last,
Context &  context,
Skipper const &  skipper,
Attribute &  attr_,
mpl::false_   
) const
inline
template<typename Elements , typename Modifiers >
template<typename Context >
info boost::spirit::repository::qi::keywords< Elements, Modifiers >::what ( Context &  context) const
inline

Member Data Documentation

template<typename Elements , typename Modifiers >
complex_keywords_type boost::spirit::repository::qi::keywords< Elements, Modifiers >::complex_keywords_inst
template<typename Elements , typename Modifiers >
flags_type boost::spirit::repository::qi::keywords< Elements, Modifiers >::flags_init
template<typename Elements , typename Modifiers >
string_keywords_type boost::spirit::repository::qi::keywords< Elements, Modifiers >::string_keywords_inst

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