1 | /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 |
---|
2 | // xml_grammar.cpp: |
---|
3 | |
---|
4 | // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . |
---|
5 | // Use, modification and distribution is subject to the Boost Software |
---|
6 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at |
---|
7 | // http://www.boost.org/LICENSE_1_0.txt) |
---|
8 | |
---|
9 | // See http://www.boost.org for updates, documentation, and revision history. |
---|
10 | |
---|
11 | #if (defined _MSC_VER) && (_MSC_VER == 1200) |
---|
12 | # pragma warning (disable : 4786) // too long name, harmless warning |
---|
13 | #endif |
---|
14 | |
---|
15 | #define BOOST_ARCHIVE_SOURCE |
---|
16 | #include <boost/archive/impl/basic_xml_grammar.hpp> |
---|
17 | |
---|
18 | using namespace boost::spirit; |
---|
19 | |
---|
20 | #include <boost/config.hpp> |
---|
21 | |
---|
22 | // fixup for borland |
---|
23 | // The following code will be put into Boost.Config in a later revision |
---|
24 | #if ! defined(__SGI_STL_PORT) \ |
---|
25 | && defined(BOOST_RWSTD_VER) && BOOST_RWSTD_VER<=0x020101 |
---|
26 | #include <string> |
---|
27 | namespace std { |
---|
28 | template<> |
---|
29 | inline string & |
---|
30 | string::replace ( |
---|
31 | char * first1, |
---|
32 | char * last1, |
---|
33 | const char * first2, |
---|
34 | const char * last2 |
---|
35 | ){ |
---|
36 | replace(first1-begin(),last1-first1,first2,last2-first2,0,last2-first2); |
---|
37 | return *this; |
---|
38 | } |
---|
39 | } // namespace std |
---|
40 | #endif |
---|
41 | |
---|
42 | namespace boost { |
---|
43 | namespace archive { |
---|
44 | |
---|
45 | typedef basic_xml_grammar<char> xml_grammar; |
---|
46 | |
---|
47 | /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 |
---|
48 | // specific definitions for char based XML |
---|
49 | |
---|
50 | template<> |
---|
51 | void xml_grammar::init_chset(){ |
---|
52 | Char = chset_t("\x9\xA\xD\x20-\xFF"); |
---|
53 | Letter = chset_t("\x41-\x5A\x61-\x7A\xC0-\xD6\xD8-\xF6\xF8-\xFF"); |
---|
54 | Digit = chset_t("0-9"); |
---|
55 | Extender = chset_t('\xB7'); |
---|
56 | Sch = chset_t("\x20\x9\xD\xA"); |
---|
57 | NameChar = Letter | Digit | chset_p("._:-") | Extender ; |
---|
58 | } |
---|
59 | |
---|
60 | } // namespace archive |
---|
61 | } // namespace boost |
---|
62 | |
---|
63 | #include "basic_xml_grammar.ipp" |
---|
64 | |
---|
65 | namespace boost { |
---|
66 | namespace archive { |
---|
67 | |
---|
68 | // explicit instantiation of xml for 8 bit characters |
---|
69 | template class basic_xml_grammar<char>; |
---|
70 | |
---|
71 | } // namespace archive |
---|
72 | } // namespace boost |
---|
73 | |
---|