1 //===-- SyntaxHighlighting.h ------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_LIB_DEBUGINFO_SYNTAXHIGHLIGHTING_H
11 #define LLVM_LIB_DEBUGINFO_SYNTAXHIGHLIGHTING_H
13 #include "llvm/Support/raw_ostream.h"
19 // Symbolic names for various syntax elements.
20 enum HighlightColor { Address, String, Tag, Attribute, Enumerator, Macro };
22 /// An RAII object that temporarily switches an output stream to a
25 llvm::raw_ostream &OS;
28 /// To be used like this: WithColor(OS, syntax::String) << "text";
29 WithColor(llvm::raw_ostream &OS, enum HighlightColor Type);
32 llvm::raw_ostream& get() { return OS; }
33 operator llvm::raw_ostream& () { return OS; }