no_rule2.cpp

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

CPP
58
字号
/*=============================================================================    Copyright (c) 2002-2003 Joel de Guzman    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)=============================================================================*/// *** See the section "Look Ma' No Rules" in// *** chapter "Techniques" of the Spirit documentation// *** for information regarding this snippet#include <iostream>#include <boost/spirit/include/classic_core.hpp>using namespace BOOST_SPIRIT_CLASSIC_NS;struct skip_grammar : grammar<skip_grammar>{    template <typename ScannerT>    struct definition    {        definition(skip_grammar const& /*self*/)        : skip            (       space_p                |   "//" >> *(anychar_p - '\n') >> '\n'                |   "/*" >> *(anychar_p - "*/") >> "*/"            )        {        }        typedef           alternative<alternative<space_parser, sequence<sequence<           strlit<const char*>, kleene_star<difference<anychar_parser,           chlit<char> > > >, chlit<char> > >, sequence<sequence<           strlit<const char*>, kleene_star<difference<anychar_parser,           strlit<const char*> > > >, strlit<const char*> > >        skip_t;        skip_t skip;        skip_t const&        start() const { return skip; }    };};intmain(){    skip_grammar g;    bool success = parse(        "/*this is a comment*/\n//this is a c++ comment\n\n",        *g).full;    assert(success);    std::cout << "SUCCESS!!!\n";    return 0;}

⌨️ 快捷键说明

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