// SPDX-License-Identifier: GPL-3.0-or-later #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(std::string SourceName, std::string SourceText); } // namespace rcc::targetgen #endif // RCC_TARGET_DESCRIPTION_TARGETDESCRIPTIONGENERATOR_H