⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grammar.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
/*=============================================================================    Copyright (c) 2001-2003 Joel de Guzman    Copyright (c) 2002-2003 Martin Wille    Copyright (c) 2003 Hartmut Kaiser    http://spirit.sourceforge.net/  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)=============================================================================*/#if !defined(BOOST_SPIRIT_GRAMMAR_HPP)#define BOOST_SPIRIT_GRAMMAR_HPP///////////////////////////////////////////////////////////////////////////////#if defined(BOOST_SPIRIT_THREADSAFE) && defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)#undef BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE#endif#include <boost/spirit/home/classic/namespace.hpp>#include <boost/spirit/home/classic/core/parser.hpp>#include <boost/spirit/home/classic/core/non_terminal/parser_context.hpp>#include <boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp>///////////////////////////////////////////////////////////////////////////////namespace boost { namespace spirit {BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN///////////////////////////////////////////////////////////////////////////////////  grammar class/////////////////////////////////////////////////////////////////////////////////template <typename DerivedT, typename ContextT = parser_context<> >struct grammar    : public parser<DerivedT>    , public ContextT::base_t    , public context_aux<ContextT, DerivedT>    BOOST_SPIRIT_GRAMMAR_ID{    typedef grammar<DerivedT, ContextT>         self_t;    typedef DerivedT const&                     embed_t;    typedef typename ContextT::context_linker_t context_t;    typedef typename context_t::attr_t          attr_t;    template <typename ScannerT>    struct result    {        typedef typename match_result<ScannerT, attr_t>::type type;    };    grammar() {}    ~grammar() { impl::grammar_destruct(this); }    template <typename ScannerT>    typename parser_result<self_t, ScannerT>::type    parse_main(ScannerT const& scan) const    { return impl::grammar_parser_parse<0>(this, scan); }    template <typename ScannerT>    typename parser_result<self_t, ScannerT>::type    parse(ScannerT const& scan) const    {        typedef typename parser_result<self_t, ScannerT>::type result_t;        typedef parser_scanner_linker<ScannerT> scanner_t;        BOOST_SPIRIT_CONTEXT_PARSE(scan, *this, scanner_t, context_t, result_t)    }    template <int N>    impl::entry_grammar<DerivedT, N, ContextT>    use_parser() const    { return impl::entry_grammar<DerivedT, N, ContextT>( this->derived()); }    BOOST_SPIRIT_GRAMMAR_STATE};///////////////////////////////////////////////////////////////////////////////BOOST_SPIRIT_CLASSIC_NAMESPACE_END}} // namespace BOOST_SPIRIT_CLASSIC_NS#undef BOOST_SPIRIT_GRAMMAR_ID#undef BOOST_SPIRIT_GRAMMAR_ACCESS#undef BOOST_SPIRIT_GRAMMAR_STATE#endif

⌨️ 快捷键说明

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