LCOV - code coverage report
Current view: top level - usr/include/boost/spirit/home/classic/core/non_terminal - grammar.hpp (source / functions) Hit Total Coverage
Test: ROSE Lines: 0 6 0.0 %
Date: 2022-12-08 13:48:47 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*=============================================================================
       2             :     Copyright (c) 2001-2003 Joel de Guzman
       3             :     Copyright (c) 2002-2003 Martin Wille
       4             :     Copyright (c) 2003 Hartmut Kaiser
       5             :     http://spirit.sourceforge.net/
       6             : 
       7             :   Distributed under the Boost Software License, Version 1.0. (See accompanying
       8             :   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       9             : =============================================================================*/
      10             : #if !defined(BOOST_SPIRIT_GRAMMAR_HPP)
      11             : #define BOOST_SPIRIT_GRAMMAR_HPP
      12             : 
      13             : ///////////////////////////////////////////////////////////////////////////////
      14             : #if defined(BOOST_SPIRIT_THREADSAFE) && defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
      15             : #undef BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE
      16             : #endif
      17             : 
      18             : #include <boost/spirit/home/classic/namespace.hpp>
      19             : #include <boost/spirit/home/classic/core/parser.hpp>
      20             : #include <boost/spirit/home/classic/core/non_terminal/parser_context.hpp>
      21             : #include <boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp>
      22             : 
      23             : ///////////////////////////////////////////////////////////////////////////////
      24             : namespace boost { namespace spirit {
      25             : 
      26             : BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
      27             : 
      28             : ///////////////////////////////////////////////////////////////////////////////
      29             : //
      30             : //  grammar class
      31             : //
      32             : ///////////////////////////////////////////////////////////////////////////////
      33             : template <typename DerivedT, typename ContextT = parser_context<> >
      34             : struct grammar
      35             :     : public parser<DerivedT>
      36             :     , public ContextT::base_t
      37             :     , public context_aux<ContextT, DerivedT>
      38             :     BOOST_SPIRIT_GRAMMAR_ID
      39             : {
      40             :     typedef grammar<DerivedT, ContextT>         self_t;
      41             :     typedef DerivedT const&                     embed_t;
      42             :     typedef typename ContextT::context_linker_t context_t;
      43             :     typedef typename context_t::attr_t          attr_t;
      44             : 
      45             :     template <typename ScannerT>
      46             :     struct result
      47             :     {
      48             :         typedef typename match_result<ScannerT, attr_t>::type type;
      49             :     };
      50             : 
      51           0 :     grammar() {}
      52           0 :     ~grammar() { impl::grammar_destruct(this); }
      53             : 
      54             :     template <typename ScannerT>
      55             :     typename parser_result<self_t, ScannerT>::type
      56           0 :     parse_main(ScannerT const& scan) const
      57           0 :     { return impl::grammar_parser_parse<0>(this, scan); }
      58             : 
      59             :     template <typename ScannerT>
      60             :     typename parser_result<self_t, ScannerT>::type
      61           0 :     parse(ScannerT const& scan) const
      62             :     {
      63             :         typedef typename parser_result<self_t, ScannerT>::type result_t;
      64             :         typedef parser_scanner_linker<ScannerT> scanner_t;
      65           0 :         BOOST_SPIRIT_CONTEXT_PARSE(scan, *this, scanner_t, context_t, result_t)
      66             :     }
      67             : 
      68             :     template <int N>
      69             :     impl::entry_grammar<DerivedT, N, ContextT>
      70             :     use_parser() const
      71             :     { return impl::entry_grammar<DerivedT, N, ContextT>( this->derived()); }
      72             : 
      73             :     BOOST_SPIRIT_GRAMMAR_STATE
      74             : };
      75             : 
      76             : ///////////////////////////////////////////////////////////////////////////////
      77             : BOOST_SPIRIT_CLASSIC_NAMESPACE_END
      78             : 
      79             : }} // namespace BOOST_SPIRIT_CLASSIC_NS
      80             : 
      81             : #undef BOOST_SPIRIT_GRAMMAR_ID
      82             : #undef BOOST_SPIRIT_GRAMMAR_STATE
      83             : #endif
      84             : 

Generated by: LCOV version 1.14