// SPDX-License-Identifier: GPL-3.0-or-later // The private header has no stable include-root-relative guard name. // NOLINTNEXTLINE(llvm-header-guard) #ifndef RCC_TARGET_DESCRIPTION_TARGETDESCRIPTIONGENERATOR_H #define RCC_TARGET_DESCRIPTION_TARGETDESCRIPTIONGENERATOR_H #include "rcc/Support/TextDiagnostic.h" #include #include #include #include namespace rcc::targetgen { struct GeneratedDescription final { std::string RegisterHeader; std::string InstructionHeader; std::string TargetTables; }; struct DescriptionGenerationResult final { std::optional Output; std::vector Diagnostics; [[nodiscard]] bool succeeded() const noexcept { return Output.has_value() && Diagnostics.empty(); } }; [[nodiscard]] DescriptionGenerationResult generateDescription(const std::string &SourceName, std::string SourceText); } // namespace rcc::targetgen #endif // RCC_TARGET_DESCRIPTION_TARGETDESCRIPTIONGENERATOR_H