blob: f693c4d51c32ad0d73360a7699326f3ce1a52cea [file] [log] [blame]
/*
* Copyright 2015 WebAssembly Community Group participants
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//
// Pretty printing helpers
//
#ifndef wasm_pretty_printing_h
#define wasm_pretty_printing_h
#include <ostream>
#include "support/colors.h"
inline std::ostream& doIndent(std::ostream& o, unsigned indent) {
return o << std::string(indent, ' ');
}
inline std::ostream& prepareMajorColor(std::ostream& o) {
Colors::red(o);
Colors::bold(o);
return o;
}
inline std::ostream& prepareColor(std::ostream& o) {
Colors::magenta(o);
Colors::bold(o);
return o;
}
inline std::ostream& prepareMinorColor(std::ostream& o) {
Colors::orange(o);
return o;
}
inline std::ostream& restoreNormalColor(std::ostream& o) {
Colors::normal(o);
return o;
}
inline std::ostream& printText(std::ostream& o, const char* str) {
o << '"';
Colors::green(o);
o << str;
Colors::normal(o);
return o << '"';
}
inline std::ostream& printMajor(std::ostream& o, const char* str) {
prepareMajorColor(o);
o << str;
restoreNormalColor(o);
return o;
}
inline std::ostream& printMedium(std::ostream& o, const char* str) {
prepareColor(o);
o << str;
restoreNormalColor(o);
return o;
}
inline std::ostream& printMinor(std::ostream& o, const char* str) {
prepareMinorColor(o);
o << str;
restoreNormalColor(o);
return o;
}
#endif // wasm_pretty_printing_h