#include <cpp_iterator.hpp>
Public Types | |
typedef ContextT::token_type | result_type |
Public Member Functions | |
template<typename IteratorT > | |
pp_iterator_functor (ContextT &ctx_, IteratorT const &first_, IteratorT const &last_, typename ContextT::position_type const &pos_) | |
result_type const & | operator() () |
result_type const & | current_token () const |
Static Public Attributes | |
static result_type const | eof |
Protected Member Functions | |
bool | on_include_helper (char const *t, char const *s, bool is_system, bool include_next) |
result_type const & | get_next_token () |
result_type const & | pp_token () |
template<typename IteratorT > | |
bool | extract_identifier (IteratorT &it) |
template<typename IteratorT > | |
bool | ensure_is_last_on_line (IteratorT &it, bool call_hook=true) |
template<typename IteratorT > | |
bool | skip_to_eol_with_check (IteratorT &it, bool call_hook=true) |
bool | pp_directive () |
template<typename IteratorT > | |
bool | handle_pp_directive (IteratorT &it) |
bool | dispatch_directive (tree_parse_info_type const &hit, result_type const &found_directive, token_sequence_type const &found_eoltokens) |
void | replace_undefined_identifiers (token_sequence_type &expanded) |
void | on_include (string_type const &s, bool is_system, bool include_next) |
void | on_include (typename parse_tree_type::const_iterator const &begin, typename parse_tree_type::const_iterator const &end, bool include_next) |
void | on_define (parse_node_type const &node) |
void | on_undefine (lexer_type const &it) |
void | on_ifdef (result_type const &found_directive, lexer_type const &it) |
void | on_ifndef (result_type const &found_directive, lexer_type const &it) |
void | on_else () |
void | on_endif () |
void | on_illformed (typename result_type::string_type s) |
void | on_line (typename parse_tree_type::const_iterator const &begin, typename parse_tree_type::const_iterator const &end) |
void | on_if (result_type const &found_directive, typename parse_tree_type::const_iterator const &begin, typename parse_tree_type::const_iterator const &end) |
void | on_elif (result_type const &found_directive, typename parse_tree_type::const_iterator const &begin, typename parse_tree_type::const_iterator const &end) |
void | on_error (typename parse_tree_type::const_iterator const &begin, typename parse_tree_type::const_iterator const &end) |
bool | on_pragma (typename parse_tree_type::const_iterator const &begin, typename parse_tree_type::const_iterator const &end) |
bool | emit_line_directive () |
bool | returned_from_include () |
bool | interpret_pragma (token_sequence_type const &pragma_body, token_sequence_type &result) |
Friends | |
class | pp_iterator< ContextT > |
typedef ContextT::token_type boost::wave::impl::pp_iterator_functor< ContextT >::result_type |
|
inline |
|
inline |
|
inlineprotected |
References boost::wave::impl::impl::call_found_directive_hook(), boost::filesystem::detail::copy(), boost::spirit::x3::eol, boost::spirit::get_first_leaf(), boost::geometry::index::inserter(), boost::wave::impl::make_ref_transform_iterator(), boost::spirit::qi::on_error(), boost::units::root(), boost::wave::impl::impl::skip_to_eol(), boost::wave::T_MSEXT_PP_ENDREGION, boost::wave::T_MSEXT_PP_REGION, boost::wave::T_PP_DEFINE, boost::wave::T_PP_ELIF, boost::wave::T_PP_ERROR, boost::wave::T_PP_IF, boost::wave::T_PP_INCLUDE, boost::wave::T_PP_INCLUDE_NEXT, boost::wave::T_PP_LINE, boost::wave::T_PP_PRAGMA, boost::wave::T_PP_WARNING, and boost::program_options::value().
|
inlineprotected |
References boost::buffer(), boost::numeric::ublas::column(), boost::wave::util::create_path(), boost::wave::util::impl::escape_lit(), boost::wave::util::native_file_string(), boost::wave::T_GENERATEDNEWLINE, boost::wave::T_INTLIT, boost::wave::T_NEWLINE, boost::wave::T_PP_LINE, boost::wave::T_SPACE, and boost::wave::T_STRINGLIT.
|
inlineprotected |
|
inlineprotected |
References boost::wave::AltExtTokenType, boost::wave::BoolLiteralTokenType, IS_CATEGORY, IS_EXTCATEGORY, boost::it, boost::wave::KeywordTokenType, boost::wave::OperatorTokenType, boost::wave::impl::impl::pp_is_last_on_line(), boost::serialization::save(), boost::wave::impl::impl::skip_to_eol(), boost::wave::util::impl::skip_whitespace(), boost::str(), and boost::wave::T_IDENTIFIER.
|
inlineprotected |
|
inlineprotected |
References BOOST_WAVE_THROW_CTX, boost::wave::impl::impl::call_found_directive_hook(), boost::wave::util::impl::call_skipped_token_hook(), IS_EXTCATEGORY, boost::it, boost::wave::PPConditionalTokenType, boost::wave::T_PP_ELIF, boost::wave::T_PP_ELSE, boost::wave::T_PP_ENDIF, boost::wave::T_PP_HHEADER, boost::wave::T_PP_HHEADER_NEXT, boost::wave::T_PP_IF, boost::wave::T_PP_IFDEF, boost::wave::T_PP_IFNDEF, boost::wave::T_PP_QHEADER, boost::wave::T_PP_QHEADER_NEXT, and boost::wave::T_PP_UNDEF.
|
inlineprotected |
|
inlineprotected |
References BOOST_ASSERT, BOOST_WAVE_MACRO_DEFINITION_ID, BOOST_WAVE_MACRO_PARAMETERS_ID, BOOST_WAVE_PLAIN_DEFINE_ID, BOOST_WAVE_THROW_CTX, boost::end, boost::wave::need_variadics(), boost::wave::util::retrieve_macrodefinition(), boost::wave::util::retrieve_macroname(), boost::wave::T_ELLIPSIS, and boost::wave::T_IDENTIFIER.
|
inlineprotected |
References boost::wave::util::impl::as_string(), boost::numeric::ublas::begin2(), BOOST_WAVE_THROW_CTX, boost::filesystem::detail::copy(), boost::wave::grammars::error_noerror, boost::wave::grammars::expression_grammar_gen< TokenT >::evaluate(), boost::geometry::index::inserter(), boost::wave::impl::make_ref_transform_iterator(), boost::wave::impl::impl::remove_leading_whitespace(), boost::wave::impl::impl::skip_to_eol(), and boost::filesystem::detail::status().
|
inlineprotected |
References BOOST_WAVE_THROW_CTX.
|
inlineprotected |
References BOOST_WAVE_THROW_CTX.
|
inlineprotected |
|
inlineprotected |
References boost::wave::util::impl::as_string(), boost::numeric::ublas::begin2(), boost::filesystem::detail::copy(), boost::wave::grammars::error_noerror, boost::wave::grammars::expression_grammar_gen< TokenT >::evaluate(), boost::geometry::index::inserter(), boost::wave::impl::make_ref_transform_iterator(), boost::wave::impl::impl::remove_leading_whitespace(), and boost::filesystem::detail::status().
|
inlineprotected |
References boost::it.
|
inlineprotected |
References boost::it.
|
inlineprotected |
References BOOST_ASSERT, BOOST_WAVE_THROW_CTX, and boost::multiprecision::backends::p.
|
inlineprotected |
References BOOST_ASSERT, and BOOST_WAVE_THROW_CTX.
|
inlineprotected |
References boost::wave::util::impl::as_string(), boost::numeric::ublas::begin2(), BOOST_ASSERT, BOOST_WAVE_THROW_CTX, boost::filesystem::detail::copy(), boost::geometry::index::inserter(), boost::wave::impl::make_ref_transform_iterator(), boost::asio::s, and boost::wave::impl::impl::trim_whitespace().
|
inlineprotected |
|
inlineprotected |
References boost::wave::util::impl::as_string(), boost::numeric::ublas::begin2(), BOOST_ASSERT, BOOST_WAVE_THROW_VAR_CTX, boost::filesystem::detail::copy(), boost::sinks::event_log::error, boost::xpressive::first, boost::geometry::index::inserter(), boost::last, boost::locale::boundary::line, boost::wave::impl::make_ref_transform_iterator(), boost::wave::preprocess_exception::no_error, boost::wave::impl::impl::retrieve_line_info(), and boost::wave::util::impl::unescape_lit().
|
inlineprotected |
References BOOST_ASSERT, boost::filesystem::detail::copy(), boost::geometry::index::inserter(), boost::wave::util::interpret_pragma(), IS_CATEGORY, boost::last, boost::wave::impl::make_ref_transform_iterator(), boost::wave::need_c99(), boost::wave::T_IDENTIFIER, boost::wave::T_NEWLINE, boost::wave::T_PP_PRAGMA, boost::wave::T_SPACE, and boost::wave::WhiteSpaceTokenType.
|
inlineprotected |
References BOOST_ASSERT.
|
inline |
References boost::wave::context_policies::util::ccomment_count_newlines(), boost::wave::context_policies::util::ccomment_has_newline(), boost::wave::impl::impl::consider_emitting_line_directive(), boost::wave::EOLTokenType, IS_CATEGORY, boost::it, boost::wave::need_emit_line_directives(), boost::wave::need_preserve_comments(), boost::wave::T_CCOMMENT, boost::wave::T_CPPCOMMENT, boost::wave::T_EOF, boost::wave::T_GENERATEDNEWLINE, boost::wave::T_IDENTIFIER, boost::wave::T_NEWLINE, boost::wave::T_NONREPLACABLE_IDENTIFIER, boost::wave::T_PP_NUMBER, boost::wave::T_RAWSTRINGLIT, boost::wave::T_SPACE, boost::wave::T_UNKNOWN, and boost::wave::WhiteSpaceTokenType.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
friend |
|
static |