YAMLOutputStyle.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //===- YAMLOutputStyle.h -------------------------------------- *- C++ --*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. #ifndef LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H
  9. #define LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H
  10. #include "OutputStyle.h"
  11. #include "PdbYaml.h"
  12. #include "llvm/Support/ScopedPrinter.h"
  13. #include "llvm/Support/YAMLTraits.h"
  14. namespace llvm {
  15. namespace pdb {
  16. class YAMLOutputStyle : public OutputStyle {
  17. public:
  18. YAMLOutputStyle(PDBFile &File);
  19. Error dump() override;
  20. private:
  21. Error dumpStringTable();
  22. Error dumpFileHeaders();
  23. Error dumpStreamMetadata();
  24. Error dumpStreamDirectory();
  25. Error dumpPDBStream();
  26. Error dumpDbiStream();
  27. Error dumpTpiStream();
  28. Error dumpIpiStream();
  29. Error dumpPublics();
  30. void flush();
  31. PDBFile &File;
  32. llvm::yaml::Output Out;
  33. yaml::PdbObject Obj;
  34. };
  35. } // namespace pdb
  36. } // namespace llvm
  37. #endif // LLVM_TOOLS_LLVMPDBDUMP_YAMLOUTPUTSTYLE_H