Coverage Report

Created: 2017-10-03 07:32

/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