/* * 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 #include "support/colors.h" inline std::ostream& doIndent(std::ostream& o, unsigned indent) { for (unsigned i = 0; i < indent; i++) { o << " "; } return o; } 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, bool major = false) { prepareMajorColor(o); o << str; restoreNormalColor(o); return o; } inline std::ostream& printMedium(std::ostream& o, const char* str, bool major = false) { 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