annotate DEPENDENCIES/generic/include/boost/spirit/home/karma/directive/strict_relaxed.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 // Copyright (c) 2001-2011 Hartmut Kaiser
Chris@16 2 //
Chris@16 3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 5
Chris@16 6 #if !defined(SPIRIT_STRICT_RELAXED_APR_22_2010_0959AM)
Chris@16 7 #define SPIRIT_STRICT_RELAXED_APR_22_2010_0959AM
Chris@16 8
Chris@16 9 #if defined(_MSC_VER)
Chris@16 10 #pragma once
Chris@16 11 #endif
Chris@16 12
Chris@16 13 #include <boost/spirit/home/support/common_terminals.hpp>
Chris@16 14 #include <boost/spirit/home/support/modify.hpp>
Chris@16 15 #include <boost/spirit/home/karma/domain.hpp>
Chris@16 16 #include <boost/spirit/home/karma/meta_compiler.hpp>
Chris@16 17
Chris@16 18 namespace boost { namespace spirit
Chris@16 19 {
Chris@16 20 ///////////////////////////////////////////////////////////////////////////
Chris@16 21 // Enablers
Chris@16 22 ///////////////////////////////////////////////////////////////////////////
Chris@16 23 template <>
Chris@16 24 struct use_directive<karma::domain, tag::strict> // enables strict[]
Chris@16 25 : mpl::true_ {};
Chris@16 26
Chris@16 27 template <>
Chris@16 28 struct use_directive<karma::domain, tag::relaxed> // enables relaxed[]
Chris@16 29 : mpl::true_ {};
Chris@16 30
Chris@16 31 ///////////////////////////////////////////////////////////////////////////
Chris@16 32 template <>
Chris@16 33 struct is_modifier_directive<karma::domain, tag::strict>
Chris@16 34 : mpl::true_ {};
Chris@16 35
Chris@16 36 template <>
Chris@16 37 struct is_modifier_directive<karma::domain, tag::relaxed>
Chris@16 38 : mpl::true_ {};
Chris@16 39
Chris@16 40 ///////////////////////////////////////////////////////////////////////////
Chris@16 41 // Don't add tag::strict or tag::relaxed if there is already one of those
Chris@16 42 // in the modifier list
Chris@16 43 template <typename Current>
Chris@16 44 struct compound_modifier<Current, tag::strict
Chris@16 45 , typename enable_if<has_modifier<Current, tag::relaxed> >::type>
Chris@16 46 : Current
Chris@16 47 {
Chris@16 48 compound_modifier()
Chris@16 49 : Current() {}
Chris@16 50
Chris@16 51 compound_modifier(Current const& current, tag::strict const&)
Chris@16 52 : Current(current) {}
Chris@16 53 };
Chris@16 54
Chris@16 55 template <typename Current>
Chris@16 56 struct compound_modifier<Current, tag::relaxed
Chris@16 57 , typename enable_if<has_modifier<Current, tag::strict> >::type>
Chris@16 58 : Current
Chris@16 59 {
Chris@16 60 compound_modifier()
Chris@16 61 : Current() {}
Chris@16 62
Chris@16 63 compound_modifier(Current const& current, tag::relaxed const&)
Chris@16 64 : Current(current) {}
Chris@16 65 };
Chris@16 66
Chris@16 67 namespace karma
Chris@16 68 {
Chris@16 69 #ifndef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
Chris@16 70 using boost::spirit::strict;
Chris@16 71 using boost::spirit::relaxed;
Chris@16 72 #endif
Chris@16 73 using boost::spirit::strict_type;
Chris@16 74 using boost::spirit::relaxed_type;
Chris@16 75 }
Chris@16 76 }}
Chris@16 77
Chris@16 78 #endif