123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // Hannibal: partial C++ grammar to parse C++ type information
- // Copyright (c) 2005-2006 Danny Havenith
- //
- // Boost.Wave: A Standard compliant C++ preprocessor
- // Copyright (c) 2001-2009 Hartmut Kaiser
- //
- // http://www.boost.org/
- //
- // 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(HANNIBAL_TRANSLATION_UNIT_SKIPPER_H_INCLUDED)
- #define HANNIBAL_TRANSLATION_UNIT_SKIPPER_H_INCLUDED
- #include <boost/spirit/include/classic_core.hpp>
- #include <boost/spirit/include/classic_confix.hpp>
- #include <boost/wave/wave_config.hpp>
- #include <boost/wave/token_ids.hpp>
- #include <boost/wave/util/pattern_parser.hpp>
- ///////////////////////////////////////////////////////////////////////////////
- struct translation_unit_skipper
- : public boost::spirit::classic::grammar<translation_unit_skipper>
- {
- template <typename ScannerT>
- struct definition
- {
- definition(translation_unit_skipper const& /*self*/)
- {
- using namespace boost::spirit::classic;
- using namespace boost::wave;
- using boost::wave::util::pattern_p;
-
- skip
- = pattern_p(WhiteSpaceTokenType, TokenTypeMask)
- | pattern_p(EOLTokenType, TokenTypeMask)
- | pattern_p(EOFTokenType, TokenTypeMask)
- | comment_p(pattern_p(PPTokenType, TokenTypeMask),
- pattern_p(EOLTokenType, TokenTypeMask))
- ;
- }
- boost::spirit::classic::rule<ScannerT> skip;
- boost::spirit::classic::rule<ScannerT> const&
- start() const { return skip; }
- };
- };
- #endif // HANNIBAL_TRANSLATION_UNIT_SKIPPER_H_INCLUDED
|