Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/spirit/home/classic/debug.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 /*============================================================================= | |
2 Copyright (c) 2001-2003 Joel de Guzman | |
3 Copyright (c) 2002-2003 Hartmut Kaiser | |
4 http://spirit.sourceforge.net/ | |
5 | |
6 Distributed under the Boost Software License, Version 1.0. (See accompanying | |
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
8 =============================================================================*/ | |
9 #if !defined(BOOST_SPIRIT_DEBUG_MAIN_HPP) | |
10 #define BOOST_SPIRIT_DEBUG_MAIN_HPP | |
11 | |
12 /////////////////////////////////////////////////////////////////////////// | |
13 #if defined(BOOST_SPIRIT_DEBUG) | |
14 | |
15 #include <boost/spirit/home/classic/version.hpp> | |
16 | |
17 /////////////////////////////////////////////////////////////////////////////// | |
18 // | |
19 // Spirit.Debug includes and defines | |
20 // | |
21 /////////////////////////////////////////////////////////////////////////////// | |
22 | |
23 #include <iostream> | |
24 | |
25 /////////////////////////////////////////////////////////////////////////// | |
26 // | |
27 // The BOOST_SPIRIT_DEBUG_OUT defines the stream object, which should be used | |
28 // for debug diagnostics. This defaults to std::cout. | |
29 // | |
30 /////////////////////////////////////////////////////////////////////////// | |
31 #if !defined(BOOST_SPIRIT_DEBUG_OUT) | |
32 #define BOOST_SPIRIT_DEBUG_OUT std::cout | |
33 #endif | |
34 | |
35 /////////////////////////////////////////////////////////////////////////// | |
36 // | |
37 // The BOOST_SPIRIT_DEBUG_PRINT_SOME constant defines the number of characters | |
38 // from the stream to be printed for diagnosis. This defaults to the first | |
39 // 20 characters. | |
40 // | |
41 /////////////////////////////////////////////////////////////////////////// | |
42 #if !defined(BOOST_SPIRIT_DEBUG_PRINT_SOME) | |
43 #define BOOST_SPIRIT_DEBUG_PRINT_SOME 20 | |
44 #endif | |
45 | |
46 /////////////////////////////////////////////////////////////////////////// | |
47 // | |
48 // Additional BOOST_SPIRIT_DEBUG_FLAGS control the level of diagnostics printed | |
49 // Basic constants are defined in debug/minimal.hpp. | |
50 // | |
51 /////////////////////////////////////////////////////////////////////////// | |
52 #define BOOST_SPIRIT_DEBUG_FLAGS_NODES 0x0001 // node diagnostics | |
53 #define BOOST_SPIRIT_DEBUG_FLAGS_ESCAPE_CHAR 0x0002 // escape_char_parse diagnostics | |
54 #define BOOST_SPIRIT_DEBUG_FLAGS_TREES 0x0004 // parse tree/ast diagnostics | |
55 #define BOOST_SPIRIT_DEBUG_FLAGS_CLOSURES 0x0008 // closure diagnostics | |
56 #define BOOST_SPIRIT_DEBUG_FLAGS_SLEX 0x8000 // slex diagnostics | |
57 | |
58 #define BOOST_SPIRIT_DEBUG_FLAGS_MAX 0xFFFF // print maximal diagnostics | |
59 | |
60 #if !defined(BOOST_SPIRIT_DEBUG_FLAGS) | |
61 #define BOOST_SPIRIT_DEBUG_FLAGS BOOST_SPIRIT_DEBUG_FLAGS_MAX | |
62 #endif | |
63 | |
64 /////////////////////////////////////////////////////////////////////////// | |
65 // | |
66 // By default all nodes are traced (even those, not registered with | |
67 // BOOST_SPIRIT_DEBUG_RULE et.al. - see below). The following constant may be | |
68 // used to redefine this default. | |
69 // | |
70 /////////////////////////////////////////////////////////////////////////// | |
71 #if !defined(BOOST_SPIRIT_DEBUG_TRACENODE) | |
72 #define BOOST_SPIRIT_DEBUG_TRACENODE (true) | |
73 #endif // !defined(BOOST_SPIRIT_DEBUG_TRACENODE) | |
74 | |
75 /////////////////////////////////////////////////////////////////////////// | |
76 // | |
77 // Helper macros for giving rules and subrules a name accessible through | |
78 // parser_name() functions (see parser_names.hpp). | |
79 // | |
80 // Additionally, the macros BOOST_SPIRIT_DEBUG_RULE, SPIRIT_DEBUG_NODE and | |
81 // BOOST_SPIRIT_DEBUG_GRAMMAR enable/disable the tracing of the | |
82 // correspondingnode accordingly to the PP constant | |
83 // BOOST_SPIRIT_DEBUG_TRACENODE. | |
84 // | |
85 // The macros BOOST_SPIRIT_DEBUG_TRACE_RULE, BOOST_SPIRIT_DEBUG_TRACE_NODE | |
86 // and BOOST_SPIRIT_DEBUG_TRACE_GRAMMAR allow to specify a flag to define, | |
87 // whether the corresponding node is to be traced or not. | |
88 // | |
89 /////////////////////////////////////////////////////////////////////////// | |
90 #if !defined(BOOST_SPIRIT_DEBUG_RULE) | |
91 #define BOOST_SPIRIT_DEBUG_RULE(r) \ | |
92 ::BOOST_SPIRIT_CLASSIC_NS::impl::get_node_registry(). \ | |
93 register_node(&r, #r, BOOST_SPIRIT_DEBUG_TRACENODE) | |
94 #endif // !defined(BOOST_SPIRIT_DEBUG_RULE) | |
95 | |
96 #if !defined(BOOST_SPIRIT_DEBUG_NODE) | |
97 #define BOOST_SPIRIT_DEBUG_NODE(r) \ | |
98 ::BOOST_SPIRIT_CLASSIC_NS::impl::get_node_registry(). \ | |
99 register_node(&r, #r, BOOST_SPIRIT_DEBUG_TRACENODE) | |
100 #endif // !defined(BOOST_SPIRIT_DEBUG_NODE) | |
101 | |
102 #if !defined(BOOST_SPIRIT_DEBUG_GRAMMAR) | |
103 #define BOOST_SPIRIT_DEBUG_GRAMMAR(r) \ | |
104 ::BOOST_SPIRIT_CLASSIC_NS::impl::get_node_registry(). \ | |
105 register_node(&r, #r, BOOST_SPIRIT_DEBUG_TRACENODE) | |
106 #endif // !defined(BOOST_SPIRIT_DEBUG_GRAMMAR) | |
107 | |
108 #if !defined(BOOST_SPIRIT_DEBUG_TRACE_RULE) | |
109 #define BOOST_SPIRIT_DEBUG_TRACE_RULE(r, t) \ | |
110 ::BOOST_SPIRIT_CLASSIC_NS::impl::get_node_registry(). \ | |
111 register_node(&r, #r, (t)) | |
112 #endif // !defined(BOOST_SPIRIT_TRACE_RULE) | |
113 | |
114 #if !defined(BOOST_SPIRIT_DEBUG_TRACE_NODE) | |
115 #define BOOST_SPIRIT_DEBUG_TRACE_NODE(r, t) \ | |
116 ::BOOST_SPIRIT_CLASSIC_NS::impl::get_node_registry(). \ | |
117 register_node(&r, #r, (t)) | |
118 #endif // !defined(BOOST_SPIRIT_DEBUG_TRACE_NODE) | |
119 | |
120 #if !defined(BOOST_SPIRIT_DEBUG_TRACE_GRAMMAR) | |
121 #define BOOST_SPIRIT_DEBUG_TRACE_GRAMMAR(r, t) \ | |
122 ::BOOST_SPIRIT_CLASSIC_NS::impl::get_node_registry(). \ | |
123 register_node(&r, #r, (t)) | |
124 #endif // !defined(BOOST_SPIRIT_DEBUG_TRACE_GRAMMAR) | |
125 | |
126 #if !defined(BOOST_SPIRIT_DEBUG_TRACE_RULE_NAME) | |
127 #define BOOST_SPIRIT_DEBUG_TRACE_RULE_NAME(r, n, t) \ | |
128 ::BOOST_SPIRIT_CLASSIC_NS::impl::get_node_registry(). \ | |
129 register_node(&r, (n), (t)) | |
130 #endif // !defined(BOOST_SPIRIT_DEBUG_TRACE_RULE_NAME) | |
131 | |
132 #if !defined(BOOST_SPIRIT_DEBUG_TRACE_NODE_NAME) | |
133 #define BOOST_SPIRIT_DEBUG_TRACE_NODE_NAME(r, n, t) \ | |
134 ::BOOST_SPIRIT_CLASSIC_NS::impl::get_node_registry(). \ | |
135 register_node(&r, (n), (t)) | |
136 #endif // !defined(BOOST_SPIRIT_DEBUG_TRACE_NODE_NAME) | |
137 | |
138 #if !defined(BOOST_SPIRIT_DEBUG_TRACE_GRAMMAR_NAME) | |
139 #define BOOST_SPIRIT_DEBUG_TRACE_GRAMMAR_NAME(r, n, t) \ | |
140 ::BOOST_SPIRIT_CLASSIC_NS::impl::get_node_registry(). \ | |
141 register_node(&r, (n), (t)) | |
142 #endif // !defined(BOOST_SPIRIT_DEBUG_TRACE_GRAMMAR_NAME) | |
143 | |
144 ////////////////////////////////// | |
145 #include <boost/spirit/home/classic/debug/debug_node.hpp> | |
146 | |
147 #else | |
148 ////////////////////////////////// | |
149 #include <boost/spirit/home/classic/debug/minimal.hpp> | |
150 | |
151 #endif // BOOST_SPIRIT_DEBUG | |
152 | |
153 #endif | |
154 |