1 /*=============================================================================
2     Copyright (c) 2001-2011 Joel de Guzman
3     http://spirit.sourceforge.net/
4 
5     Distributed under the Boost Software License, Version 1.0. (See accompanying
6     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 =============================================================================*/
8 
9 // this file intentionally contains non-ascii characters
10 // boostinspect:noascii
11 
12 #include <boost/detail/lightweight_test.hpp>
13 #include <boost/spirit/include/qi_char.hpp>
14 #include <boost/spirit/include/qi_string.hpp>
15 #include <boost/spirit/include/qi_directive.hpp>
16 #include <boost/spirit/include/qi_action.hpp>
17 #include <boost/spirit/include/phoenix_core.hpp>
18 #include <boost/spirit/include/phoenix_operator.hpp>
19 
20 #include <iostream>
21 #include "test.hpp"
22 
23 int
main()24 main()
25 {
26     using spirit_test::test;
27     using spirit_test::test_attr;
28     using boost::spirit::qi::lit;
29     using boost::spirit::qi::no_case;
30     using boost::spirit::qi::char_;
31     using boost::spirit::qi::encoding;
32     namespace char_encoding = boost::spirit::char_encoding;
33 
34     encoding<char_encoding::iso8859_1> iso8859_1;
35 
36 // needed for VC7.1 only
37 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
38 #pragma setlocale("french")
39 #endif
40 
41     {
42         BOOST_TEST(test("�", iso8859_1[no_case['�']]));
43         BOOST_TEST(test("�", iso8859_1[no_case[char_('�')]]));
44     }
45 
46     {
47         BOOST_TEST(test("�", iso8859_1[no_case[char_("�-�")]]));
48         BOOST_TEST(!test("�", iso8859_1[no_case[char_("�-�")]]));
49     }
50 
51     {
52         BOOST_TEST(test("��", iso8859_1[no_case["��"]]));
53         BOOST_TEST(test("��", iso8859_1[no_case[lit("��")]]));
54     }
55 
56 
57 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
58 #pragma setlocale("")
59 #endif
60 
61     return boost::report_errors();
62 }
63