Chris@16
|
1 /*=============================================================================
|
Chris@16
|
2 Boost.Wave: A Standard compliant C++ preprocessor library
|
Chris@16
|
3
|
Chris@16
|
4 http://www.boost.org/
|
Chris@16
|
5
|
Chris@16
|
6 Copyright (c) 2001 Daniel C. Nuffer.
|
Chris@16
|
7 Copyright (c) 2001-2012 Hartmut Kaiser.
|
Chris@16
|
8 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
9 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
10 =============================================================================*/
|
Chris@16
|
11
|
Chris@16
|
12 #if !defined(AQ_HPP_A21D9145_B643_44C0_81E7_DB346DD67EE1_INCLUDED)
|
Chris@16
|
13 #define AQ_HPP_A21D9145_B643_44C0_81E7_DB346DD67EE1_INCLUDED
|
Chris@16
|
14
|
Chris@16
|
15 #include <boost/wave/wave_config.hpp>
|
Chris@16
|
16 #include <cstdlib>
|
Chris@16
|
17
|
Chris@16
|
18 // this must occur after all of the includes and before any code appears
|
Chris@16
|
19 #ifdef BOOST_HAS_ABI_HEADERS
|
Chris@16
|
20 #include BOOST_ABI_PREFIX
|
Chris@16
|
21 #endif
|
Chris@16
|
22
|
Chris@16
|
23 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
24 namespace boost {
|
Chris@16
|
25 namespace wave {
|
Chris@16
|
26 namespace cpplexer {
|
Chris@16
|
27 namespace re2clex {
|
Chris@16
|
28
|
Chris@16
|
29 typedef std::size_t aq_stdelement;
|
Chris@16
|
30
|
Chris@16
|
31 typedef struct tag_aq_queuetype
|
Chris@16
|
32 {
|
Chris@16
|
33 std::size_t head;
|
Chris@16
|
34 std::size_t tail;
|
Chris@16
|
35 std::size_t size;
|
Chris@16
|
36 std::size_t max_size;
|
Chris@16
|
37 aq_stdelement* queue;
|
Chris@16
|
38 } aq_queuetype;
|
Chris@16
|
39
|
Chris@16
|
40 typedef aq_queuetype* aq_queue;
|
Chris@16
|
41
|
Chris@16
|
42 int aq_enqueue(aq_queue q, aq_stdelement e);
|
Chris@16
|
43 int aq_enqueue_front(aq_queue q, aq_stdelement e);
|
Chris@16
|
44 int aq_serve(aq_queue q, aq_stdelement *e);
|
Chris@16
|
45 int aq_pop(aq_queue q);
|
Chris@16
|
46 #define AQ_EMPTY(q) (q->size == 0)
|
Chris@16
|
47 #define AQ_FULL(q) (q->size == q->max_size)
|
Chris@16
|
48 int aq_grow(aq_queue q);
|
Chris@16
|
49
|
Chris@16
|
50 BOOST_WAVE_DECL aq_queue aq_create(void);
|
Chris@16
|
51 BOOST_WAVE_DECL void aq_terminate(aq_queue q);
|
Chris@16
|
52
|
Chris@16
|
53 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
54 } // namespace re2clex
|
Chris@16
|
55 } // namespace cpplexer
|
Chris@16
|
56 } // namespace wave
|
Chris@16
|
57 } // namespace boost
|
Chris@16
|
58
|
Chris@16
|
59 // the suffix header occurs after all of the code
|
Chris@16
|
60 #ifdef BOOST_HAS_ABI_HEADERS
|
Chris@16
|
61 #include BOOST_ABI_SUFFIX
|
Chris@16
|
62 #endif
|
Chris@16
|
63
|
Chris@16
|
64 #endif // !defined(AQ_HPP_A21D9145_B643_44C0_81E7_DB346DD67EE1_INCLUDED)
|