File indexing completed on 2025-01-19 09:47:37
0001
0002
0003
0004
0005
0006
0007 #ifndef BOOST_SPIRIT_KARMA_DIRECTIVE_UPPER_LOWER_CASE_HPP
0008 #define BOOST_SPIRIT_KARMA_DIRECTIVE_UPPER_LOWER_CASE_HPP
0009
0010 #if defined(_MSC_VER)
0011 #pragma once
0012 #endif
0013
0014 #include <boost/spirit/home/support/common_terminals.hpp>
0015 #include <boost/spirit/home/support/modify.hpp>
0016 #include <boost/spirit/home/karma/domain.hpp>
0017 #include <boost/spirit/home/karma/meta_compiler.hpp>
0018
0019 namespace boost { namespace spirit
0020 {
0021
0022
0023
0024 template <typename CharEncoding>
0025 struct use_directive<
0026 karma::domain, tag::char_code<tag::upper, CharEncoding> >
0027 : mpl::true_ {};
0028
0029 template <typename CharEncoding>
0030 struct use_directive<
0031 karma::domain, tag::char_code<tag::lower, CharEncoding> >
0032 : mpl::true_ {};
0033
0034
0035 template <typename CharEncoding>
0036 struct is_modifier_directive<karma::domain
0037 , tag::char_code<tag::upper, CharEncoding> >
0038 : mpl::true_ {};
0039
0040 template <typename CharEncoding>
0041 struct is_modifier_directive<karma::domain
0042 , tag::char_code<tag::lower, CharEncoding> >
0043 : mpl::true_ {};
0044
0045
0046
0047
0048 template <typename Current, typename CharEncoding>
0049 struct compound_modifier<
0050 Current
0051 , tag::char_code<tag::upper, CharEncoding>
0052 , typename enable_if<
0053 has_modifier<Current, tag::char_code<tag::lower, CharEncoding> >
0054 >::type
0055 >
0056 : Current
0057 {
0058 compound_modifier()
0059 : Current() {}
0060
0061 compound_modifier(Current const& current,
0062 tag::char_code<tag::upper, CharEncoding> const&)
0063 : Current(current) {}
0064 };
0065
0066 template <typename Current, typename CharEncoding>
0067 struct compound_modifier<
0068 Current
0069 , tag::char_code<tag::lower, CharEncoding>
0070 , typename enable_if<
0071 has_modifier<Current, tag::char_code<tag::upper, CharEncoding> >
0072 >::type
0073 >
0074 : Current
0075 {
0076 compound_modifier()
0077 : Current() {}
0078
0079 compound_modifier(Current const& current,
0080 tag::char_code<tag::lower, CharEncoding> const&)
0081 : Current(current) {}
0082 };
0083 }}
0084
0085 #endif