Chris@16: /*============================================================================= Chris@16: Boost.Wave: A Standard compliant C++ preprocessor library Chris@16: Chris@16: http://www.boost.org/ Chris@16: Chris@16: Copyright (c) 2001 Daniel C. Nuffer. Chris@16: Copyright (c) 2001-2012 Hartmut Kaiser. Chris@16: Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@16: file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: =============================================================================*/ Chris@16: Chris@16: #if !defined(AQ_HPP_A21D9145_B643_44C0_81E7_DB346DD67EE1_INCLUDED) Chris@16: #define AQ_HPP_A21D9145_B643_44C0_81E7_DB346DD67EE1_INCLUDED Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: // this must occur after all of the includes and before any code appears Chris@16: #ifdef BOOST_HAS_ABI_HEADERS Chris@16: #include BOOST_ABI_PREFIX Chris@16: #endif Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: namespace boost { Chris@16: namespace wave { Chris@16: namespace cpplexer { Chris@16: namespace re2clex { Chris@16: Chris@16: typedef std::size_t aq_stdelement; Chris@16: Chris@16: typedef struct tag_aq_queuetype Chris@16: { Chris@16: std::size_t head; Chris@16: std::size_t tail; Chris@16: std::size_t size; Chris@16: std::size_t max_size; Chris@16: aq_stdelement* queue; Chris@16: } aq_queuetype; Chris@16: Chris@16: typedef aq_queuetype* aq_queue; Chris@16: Chris@16: int aq_enqueue(aq_queue q, aq_stdelement e); Chris@16: int aq_enqueue_front(aq_queue q, aq_stdelement e); Chris@16: int aq_serve(aq_queue q, aq_stdelement *e); Chris@16: int aq_pop(aq_queue q); Chris@16: #define AQ_EMPTY(q) (q->size == 0) Chris@16: #define AQ_FULL(q) (q->size == q->max_size) Chris@16: int aq_grow(aq_queue q); Chris@16: Chris@16: BOOST_WAVE_DECL aq_queue aq_create(void); Chris@16: BOOST_WAVE_DECL void aq_terminate(aq_queue q); Chris@16: Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: } // namespace re2clex Chris@16: } // namespace cpplexer Chris@16: } // namespace wave Chris@16: } // namespace boost Chris@16: Chris@16: // the suffix header occurs after all of the code Chris@16: #ifdef BOOST_HAS_ABI_HEADERS Chris@16: #include BOOST_ABI_SUFFIX Chris@16: #endif Chris@16: Chris@16: #endif // !defined(AQ_HPP_A21D9145_B643_44C0_81E7_DB346DD67EE1_INCLUDED)