encoding.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*=============================================================================
  2. Copyright (c) 2001-2011 Joel de Guzman
  3. http://spirit.sourceforge.net/
  4. Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. =============================================================================*/
  7. #include <boost/detail/lightweight_test.hpp>
  8. #include <boost/spirit/include/qi_char.hpp>
  9. #include <boost/spirit/include/qi_string.hpp>
  10. #include <boost/spirit/include/qi_directive.hpp>
  11. #include <boost/spirit/include/qi_action.hpp>
  12. #include <boost/spirit/include/phoenix_core.hpp>
  13. #include <boost/spirit/include/phoenix_operator.hpp>
  14. #include <iostream>
  15. #include "test.hpp"
  16. int
  17. main()
  18. {
  19. using spirit_test::test;
  20. using spirit_test::test_attr;
  21. using boost::spirit::qi::lit;
  22. using boost::spirit::qi::no_case;
  23. using boost::spirit::qi::char_;
  24. using boost::spirit::qi::encoding;
  25. namespace char_encoding = boost::spirit::char_encoding;
  26. encoding<char_encoding::iso8859_1> iso8859_1;
  27. { // test extended ASCII characters
  28. BOOST_TEST(test("\xC1", iso8859_1[no_case['\xE1']]));
  29. BOOST_TEST(test("\xC1", iso8859_1[no_case[char_('\xE1')]]));
  30. BOOST_TEST(test("\xC9", iso8859_1[no_case[char_("\xE5-\xEF")]]));
  31. BOOST_TEST(!test("\xFF", iso8859_1[no_case[char_("\xE5-\xEF")]]));
  32. BOOST_TEST(test("\xC1\xE1", iso8859_1[no_case["\xE1\xC1"]]));
  33. BOOST_TEST(test("\xC1\xE1", iso8859_1[no_case[lit("\xE1\xC1")]]));
  34. }
  35. return boost::report_errors();
  36. }