/*============================================================================= Copyright (c) 2003 Martin Wille http://spirit.sourceforge.net/ 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) =============================================================================*/ #include #include extern bool fun(); struct ftor { bool operator()() const; }; int main() { ////////////////////////////////// // compile time check wether as_parser<> works for while_p ::BOOST_SPIRIT_CLASSIC_NS::rule<> r; r = ::BOOST_SPIRIT_CLASSIC_NS::while_p('-')['-']; r = ::BOOST_SPIRIT_CLASSIC_NS::while_p("-")["-"]; r = ::BOOST_SPIRIT_CLASSIC_NS::while_p(&fun)["foo"]; r = ::BOOST_SPIRIT_CLASSIC_NS::while_p(ftor())["foo"]; r = ::BOOST_SPIRIT_CLASSIC_NS::while_p(r)[r]; r = ::BOOST_SPIRIT_CLASSIC_NS::do_p['-'].while_p('-'); r = ::BOOST_SPIRIT_CLASSIC_NS::do_p["-"].while_p("-"); r = ::BOOST_SPIRIT_CLASSIC_NS::do_p["foo"].while_p(&fun); r = ::BOOST_SPIRIT_CLASSIC_NS::do_p["foo"].while_p(ftor()); r = ::BOOST_SPIRIT_CLASSIC_NS::do_p[r].while_p(r); }