Exteor/include/xtr/cclDescriptor.h
2024-06-07 20:30:06 +03:00

72 lines
2.6 KiB
C++

#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<ccl::rslang::ExpressionValue>& 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<ccl::SetOfEntities>& loops);
}// namespace xtr::info