]> git.proxmox.com Git - ceph.git/blame_incremental - ceph/src/boost/tools/quickbook/src/syntax_highlight.hpp
bump version to 18.2.4-pve3
[ceph.git] / ceph / src / boost / tools / quickbook / src / syntax_highlight.hpp
... / ...
CommitLineData
1/*=============================================================================
2 Copyright (c) 2011,2013 Daniel James
3
4 Use, modification and distribution is subject to the Boost Software
5 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
6 http://www.boost.org/LICENSE_1_0.txt)
7=============================================================================*/
8
9#if !defined(BOOST_QUICKBOOK_SYNTAX_HIGHLIGHT_HPP)
10#define BOOST_QUICKBOOK_SYNTAX_HIGHLIGHT_HPP
11
12#include <boost/swap.hpp>
13#include "fwd.hpp"
14#include "iterator.hpp"
15#include "phrase_tags.hpp"
16
17namespace quickbook
18{
19 //
20 // source_mode_info
21 //
22 // The source mode is stored in a few places, so the order needs to also be
23 // stored to work out which is the current source mode.
24
25 struct source_mode_info
26 {
27 source_mode_type source_mode;
28 unsigned order;
29
30 source_mode_info() : source_mode(source_mode_tags::cpp), order(0) {}
31
32 source_mode_info(source_mode_type source_mode_, unsigned order_)
33 : source_mode(source_mode_), order(order_)
34 {
35 }
36
37 void update(source_mode_info const& x)
38 {
39 if (x.order > order) {
40 source_mode = x.source_mode;
41 order = x.order;
42 }
43 }
44
45 void swap(source_mode_info& x)
46 {
47 boost::swap(source_mode, x.source_mode);
48 boost::swap(order, x.order);
49 }
50 };
51
52 inline void swap(source_mode_info& x, source_mode_info& y) { x.swap(y); }
53
54 void syntax_highlight(
55 parse_iterator first,
56 parse_iterator last,
57 quickbook::state& state,
58 source_mode_type source_mode,
59 bool is_block);
60}
61
62#endif