File indexing completed on 2025-01-31 10:02:08
0001
0002
0003
0004
0005
0006
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
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 }}
0050
0051 #endif
0052