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 + -
显示快捷键?