shortest_alternative_tests.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 59 行

CPP
59
字号
////  Copyright (c) 2004 Joao Abecasis////  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 <boost/spirit/include/classic_core.hpp>#include <boost/detail/lightweight_test.hpp>using namespace BOOST_SPIRIT_CLASSIC_NS;void shortest_alternative_parser_test(){    typedef        shortest_alternative<            shortest_alternative<                shortest_alternative<                    strlit<>,                    strlit<> >,                strlit<> >,            strlit<> >    parser_t;    parser_t short_rule =        shortest_d[            str_p("a")            | str_p("aa")            | str_p("aaa")            | str_p("aaaa")        ];    BOOST_TEST(parse("a", short_rule).full);    BOOST_TEST(parse("aa", short_rule).length == 1);    BOOST_TEST(parse("aaa", short_rule).length == 1);    BOOST_TEST(parse("aaaa", short_rule).length == 1);    short_rule =        shortest_d[            str_p("d")            | str_p("cd")            | str_p("bcd")            | str_p("abcd")        ];    BOOST_TEST(parse("d", short_rule).full);    BOOST_TEST(parse("cd", short_rule).full);    BOOST_TEST(parse("bcd", short_rule).full);    BOOST_TEST(parse("abcd", short_rule).full);}int main(){    shortest_alternative_parser_test();    return boost::report_errors();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?