Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-31 10:02:08

0001 /*=============================================================================
0002     Copyright (c) 2006 Tobias Schwinger
0003     http://spirit.sourceforge.net/
0004 
0005   Distributed under the Boost Software License, Version 1.0. (See accompanying
0006   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0007 =============================================================================*/
0008 #if !defined(BOOST_SPIRIT_GRAMMAR_DEF_FWD_HPP)
0009 #define BOOST_SPIRIT_GRAMMAR_DEF_FWD_HPP
0010 
0011 #include <boost/spirit/home/classic/namespace.hpp>
0012 #include <boost/spirit/home/classic/phoenix/tuples.hpp>
0013 
0014 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
0015 #include <boost/preprocessor/facilities/intercept.hpp>
0016 
0017 #if !defined(BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT)
0018 #define BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT PHOENIX_LIMIT
0019 #endif
0020 
0021 //  Calculate an integer rounded up to the nearest integer dividable by 3
0022 #if BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT > 12
0023 #define BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT_A     15
0024 #elif BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT > 9
0025 #define BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT_A     12
0026 #elif BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT > 6
0027 #define BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT_A     9
0028 #elif BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT > 3
0029 #define BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT_A     6
0030 #else
0031 #define BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT_A     3
0032 #endif
0033 
0034 namespace boost { namespace spirit {
0035 
0036 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
0037 
0038     template <
0039         typename T,
0040         BOOST_PP_ENUM_BINARY_PARAMS(
0041             BOOST_PP_DEC(BOOST_SPIRIT_GRAMMAR_STARTRULE_TYPE_LIMIT_A),
0042             typename T, = ::phoenix::nil_t BOOST_PP_INTERCEPT
0043         )
0044     >
0045     class grammar_def;
0046 
0047 BOOST_SPIRIT_CLASSIC_NAMESPACE_END
0048 
0049 }} // namespace BOOST_SPIRIT_CLASSIC_NS
0050 
0051 #endif
0052