123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*=============================================================================
- Copyright (c) 2001-2011 Joel de Guzman
- Copyright (c) 2011 Bryce Lelbach
- Distributed under 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)
- =============================================================================*/
- #include "uint.hpp"
- int
- main()
- {
- using spirit_test::test;
- using spirit_test::test_attr;
- ///////////////////////////////////////////////////////////////////////////
- // unsigned integer literal tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::lit;
- unsigned i = 123456;
- BOOST_TEST( test("123456", lit(123456U)));
- BOOST_TEST(!test("123456", lit(0U)));
- BOOST_TEST( test("123456", lit(i)));
- BOOST_TEST(!test("123456", lit(unsigned(i - 1))));
- }
- ///////////////////////////////////////////////////////////////////////////
- // unsigned long long literal tests
- ///////////////////////////////////////////////////////////////////////////
- #ifdef BOOST_HAS_LONG_LONG
- {
- using boost::spirit::lit;
- using boost::ulong_long_type;
- ulong_long_type ll = 1234567890123456789ULL;
- BOOST_TEST( test("1234567890123456789", lit(1234567890123456789ULL)));
- BOOST_TEST(!test("1234567890123456789", lit(0ULL)));
- BOOST_TEST( test("1234567890123456789", lit(ll)));
- BOOST_TEST(!test("1234567890123456789", lit(ulong_long_type(ll - 1))));
- }
- #endif
- ///////////////////////////////////////////////////////////////////////////
- // ushort_ and ulong_ literal tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::spirit::lit;
- unsigned short s = 12345;
- unsigned long l = 1234567890L;
- BOOST_TEST( test("12345", lit(s)));
- BOOST_TEST(!test("12345", lit(s - 1)));
- BOOST_TEST( test("1234567890", lit(1234567890UL)));
- BOOST_TEST(!test("1234567890", lit(98765321UL)));
- BOOST_TEST( test("1234567890", lit(l)));
- BOOST_TEST(!test("1234567890", lit(l - 1)));
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // literal lazy tests
- ///////////////////////////////////////////////////////////////////////////
- {
- using boost::phoenix::ref;
- using boost::spirit::qi::lit;
- unsigned n = 123, m = 321;
- BOOST_TEST(test("123", lit(ref(n))));
- BOOST_TEST(!test("123", lit(ref(m))));
- }
- return boost::report_errors();
- }
|