#ifndef ARABICA_XPATHIC_XPATH_AST_HPP #define ARABICA_XPATHIC_XPATH_AST_HPP #include #if BOOST_VERSION >= 103800 #define BOOST_SPIRIT_USE_OLD_NAMESPACE 1 #include #include #else #include #include #endif #include "xpath_ast_ids.hpp" namespace Arabica { namespace XPath { namespace impl { template class types { public: typedef typename string_adaptor::const_iterator str_iter_t; typedef boost::spirit::tree_match tree_match_t; typedef typename tree_match_t::tree_iterator node_iter_t; typedef boost::spirit::tree_parse_info tree_info_t; }; // types template long getNodeId(typename types::node_iter_t const& node) { return static_cast(node->value.id().to_long()); } // getNodeId template typename types::node_iter_t& skipWhitespace(typename types::node_iter_t& node) { while(getNodeId(node) == impl::S_id) ++node; return node; } // skipWhitespace } // namespace impl } // namespace XPath } // namespace Arabica #endif