#pragma once #include "ccl/Operation.hpp" #include "ccl/oss/Pict.hpp" //! Text descriptions of ccl entities for user namespace xtr::info { enum class ErrorType : uint32_t { UNKNOWN, LEXER, PARSER, SEMANTIC, VALUE, }; enum class CoreStatus : uint8_t { CORRECT, WARNING, INCORRECT }; enum class ModelStatus : uint8_t { CORRECT, WARNING, INCORRECT }; [[nodiscard]] CoreStatus StatusOf(const ccl::semantic::RSCore& core); [[nodiscard]] ModelStatus StatusOf(const ccl::semantic::RSModel& target); [[nodiscard]] CString ValueStatus(EntityUID target, const ccl::semantic::RSModel& model); [[nodiscard]] CString LabelBool(bool flag); [[nodiscard]] CString Label(ccl::ops::Type type); [[nodiscard]] CString Label(ccl::ops::Status status); [[nodiscard]] CString Label(CoreStatus status); [[nodiscard]] CString Label(ModelStatus status); [[nodiscard]] CString Label(ccl::src::SrcType type); [[nodiscard]] CString Label(ccl::lang::Grammem gram); [[nodiscard]] CString Label(const ccl::rslang::ExpressionType* type); [[nodiscard]] CString Label(ccl::rslang::ValueClass cls); [[nodiscard]] CString DrawableLabel(ccl::ops::Status status); [[nodiscard]] CString IndicatorFor(const ccl::semantic::RSCore& core); [[nodiscard]] CString BasicDescriptionOf(const ccl::semantic::RSCore& core); [[nodiscard]] CString DescriptionOf(const ccl::semantic::RSCore& core); [[nodiscard]] CString DescriptionOf(ccl::lang::Grammem gram); [[nodiscard]] CString IndicatorFor(const ccl::semantic::RSModel& model); [[nodiscard]] CString BasicDescriptionOf(const ccl::semantic::RSModel& model); [[nodiscard]] CString DescriptionOf(const ccl::semantic::RSModel& model); [[nodiscard]] CString BasicDescriptionOf(ccl::oss::PictID pict, ccl::oss::OSSchema& oss); [[nodiscard]] CString DescriptionOf(const ccl::rslang::Auditor& analytics, BOOL showAST); [[nodiscard]] CString DescriptionOf(const ccl::rslang::Interpreter& calculator, const std::optional& result, BOOL showAST); [[nodiscard]] CString DescriptionOf(const ccl::lang::Reference& ref); [[nodiscard]] CString DescriptionOf(ccl::oss::ossOperationsFacet& ops, ccl::oss::PictID pid); [[nodiscard]] CString DescriptionOf(const ccl::StrSubstitutes& substitutes); [[nodiscard]] CString DescriptionOf(const ccl::rslang::ErrorLogger& log); [[nodiscard]] CString DescriptionOf(const ccl::rslang::Error& error); [[nodiscard]] CString Label(ErrorType type); [[nodiscard]] CString GenerateLoopStr(const ccl::semantic::RSCore& schema, const std::vector& loops); }// namespace xtr::info