diff -r 000000000000 -r bde4ae8d615e os/ossrv/ossrv_pub/boost_apis/boost/spirit/meta/fundamental.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/spirit/meta/fundamental.hpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,52 @@ +/*============================================================================= + Copyright (c) 2002-2003 Hartmut Kaiser + http://spirit.sourceforge.net/ + + Use, modification and distribution is subject to the Boost Software + License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +=============================================================================*/ +#if !defined(BOOST_SPIRIT_FUNDAMENTAL_HPP) +#define BOOST_SPIRIT_FUNDAMENTAL_HPP + +#include + +namespace boost { namespace spirit +{ + /////////////////////////////////////////////////////////////////////////// + // + // Helper template for counting the number of nodes contained in a + // given parser type. + // All parser_category type parsers are counted as nodes. + // + /////////////////////////////////////////////////////////////////////////// + template + struct node_count { + + typedef typename ParserT::parser_category_t parser_category_t; + typedef typename impl::nodes + ::template count > count_t; + + BOOST_STATIC_CONSTANT(int, value = count_t::value); + }; + + /////////////////////////////////////////////////////////////////////////// + // + // Helper template for counting the number of leaf nodes contained in a + // given parser type. + // Only plain_parser_category type parsers are counted as leaf nodes. + // + /////////////////////////////////////////////////////////////////////////// + template + struct leaf_count { + + typedef typename ParserT::parser_category_t parser_category_t; + typedef typename impl::leafs + ::template count > count_t; + + BOOST_STATIC_CONSTANT(int, value = count_t::value); + }; + +}} // namespace boost::spirit + +#endif // !defined(BOOST_SPIRIT_FUNDAMENTAL_HPP)