blob: 4f2c37c6d94751057b63c8bd570cc84432c9e049 [file] [log] [blame]
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// xml_grammar.cpp:
// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
// 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)
// See http://www.boost.org for updates, documentation, and revision history.
#if (defined _MSC_VER) && (_MSC_VER == 1200)
# pragma warning (disable : 4786) // too long name, harmless warning
#endif
#define BOOST_ARCHIVE_SOURCE
#include <boost/archive/impl/basic_xml_grammar.hpp>
using namespace boost::spirit;
#include <boost/config.hpp>
// fixup for borland
// The following code will be put into Boost.Config in a later revision
#if ! defined(__SGI_STL_PORT) \
&& defined(BOOST_RWSTD_VER) && BOOST_RWSTD_VER<=0x020101
#include <string>
namespace std {
template<>
inline string &
string::replace (
char * first1,
char * last1,
const char * first2,
const char * last2
){
replace(first1-begin(),last1-first1,first2,last2-first2,0,last2-first2);
return *this;
}
} // namespace std
#endif
namespace boost {
namespace archive {
typedef basic_xml_grammar<char> xml_grammar;
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// specific definitions for char based XML
template<>
void xml_grammar::init_chset(){
Char = chset_t("\x9\xA\xD\x20-\x7f\x80\x81-\xFF");
Letter = chset_t("\x41-\x5A\x61-\x7A\xC0-\xD6\xD8-\xF6\xF8-\xFF");
Digit = chset_t("0-9");
Extender = chset_t('\xB7');
Sch = chset_t("\x20\x9\xD\xA");
NameChar = Letter | Digit | chset_p("._:-") | Extender ;
}
} // namespace archive
} // namespace boost
#include "basic_xml_grammar.ipp"
namespace boost {
namespace archive {
// explicit instantiation of xml for 8 bit characters
template class basic_xml_grammar<char>;
} // namespace archive
} // namespace boost