32 lines
476 B
C++
32 lines
476 B
C++
#pragma once
|
|
|
|
#include <optional>
|
|
#include <string>
|
|
|
|
#include <fesa/core/source_location.hpp>
|
|
|
|
namespace fesa {
|
|
|
|
enum class DiagnosticStage {
|
|
io,
|
|
syntax,
|
|
semantic,
|
|
model,
|
|
equation,
|
|
solver,
|
|
results,
|
|
validation
|
|
};
|
|
|
|
enum class Severity { warning, error };
|
|
|
|
struct Diagnostic final {
|
|
DiagnosticStage stage;
|
|
Severity severity;
|
|
std::string code;
|
|
std::string message;
|
|
std::optional<SourceLocation> source;
|
|
};
|
|
|
|
} // namespace fesa
|