/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.h
Line | Count | Source |
1 | | //===- SyntaxHighlighting.h -------------------------------------*- C++ -*-===// |
2 | | // |
3 | | // The LLVM Compiler Infrastructure |
4 | | // |
5 | | // This file is distributed under the University of Illinois Open Source |
6 | | // License. See LICENSE.TXT for details. |
7 | | // |
8 | | //===----------------------------------------------------------------------===// |
9 | | |
10 | | #ifndef LLVM_LIB_DEBUGINFO_SYNTAXHIGHLIGHTING_H |
11 | | #define LLVM_LIB_DEBUGINFO_SYNTAXHIGHLIGHTING_H |
12 | | |
13 | | namespace llvm { |
14 | | |
15 | | class raw_ostream; |
16 | | |
17 | | namespace dwarf { |
18 | | namespace syntax { |
19 | | |
20 | | // Symbolic names for various syntax elements. |
21 | | enum HighlightColor { Address, String, Tag, Attribute, Enumerator, Macro }; |
22 | | |
23 | | /// An RAII object that temporarily switches an output stream to a |
24 | | /// specific color. |
25 | | class WithColor { |
26 | | raw_ostream &OS; |
27 | | |
28 | | public: |
29 | | /// To be used like this: WithColor(OS, syntax::String) << "text"; |
30 | | WithColor(raw_ostream &OS, enum HighlightColor Type); |
31 | | ~WithColor(); |
32 | | |
33 | 13.8k | raw_ostream& get() { return OS; } |
34 | 31.8k | operator raw_ostream& () { return OS; } |
35 | | }; |
36 | | |
37 | | } // end namespace syntax |
38 | | } // end namespace dwarf |
39 | | |
40 | | } // end namespace llvm |
41 | | |
42 | | #endif // LLVM_LIB_DEBUGINFO_SYNTAXHIGHLIGHTING_H |