LLVM  3.7.0
SyntaxHighlighting.h
Go to the documentation of this file.
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 
14 
15 namespace llvm {
16 namespace dwarf {
17 namespace syntax {
18 
19 // Symbolic names for various syntax elements.
21 
22 /// An RAII object that temporarily switches an output stream to a
23 /// specific color.
24 class WithColor {
26 
27 public:
28  /// To be used like this: WithColor(OS, syntax::String) << "text";
30  ~WithColor();
31 
32  llvm::raw_ostream& get() { return OS; }
33  operator llvm::raw_ostream& () { return OS; }
34 };
35 }
36 }
37 }
38 
39 #endif
The instances of the Type class are immutable: once they are created, they are never changed...
Definition: Type.h:45
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:38
WithColor(llvm::raw_ostream &OS, enum HighlightColor Type)
To be used like this: WithColor(OS, syntax::String) << "text";.
An RAII object that temporarily switches an output stream to a specific color.