brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 18a3c7b Raw
58 lines · c
1/*2 * Debug.h -- OMP debug3 */4 5//===----------------------------------------------------------------------===//6//7// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.8// See https://llvm.org/LICENSE.txt for license information.9// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception10//11//===----------------------------------------------------------------------===//12 13#include <iostream>14#include <ostream>15 16#ifndef GDB_DEBUG_H_17#define GDB_DEBUG_H_18 19namespace GdbColor {20enum Code {21  FG_RED = 31,22  FG_GREEN = 32,23  FG_BLUE = 34,24  FG_DEFAULT = 39,25  BG_RED = 41,26  BG_GREEN = 42,27  BG_BLUE = 44,28  BG_DEFAULT = 4929};30inline std::ostream &operator<<(std::ostream &os, Code code) {31  return os << "\033[" << static_cast<int>(code) << "m";32}33} // namespace GdbColor34 35class ColorOut {36private:37  std::ostream &out;38  GdbColor::Code color;39 40public:41  ColorOut(std::ostream &_out, GdbColor::Code _color)42      : out(_out), color(_color) {}43  template <typename T> const ColorOut &operator<<(const T &val) const {44    out << color << val << GdbColor::FG_DEFAULT;45    return *this;46  }47  const ColorOut &operator<<(std::ostream &(*pf)(std::ostream &)) const {48    out << color << pf << GdbColor::FG_DEFAULT;49    return *this;50  }51};52 53static ColorOut dout(std::cout, GdbColor::FG_RED);54static ColorOut sout(std::cout, GdbColor::FG_GREEN);55static ColorOut hout(std::cout, GdbColor::FG_BLUE);56 57#endif /*GDB_DEBUG_H_*/58