#ifndef PORYGONLANG_DIAGNOSTICSHOLDER_HPP #define PORYGONLANG_DIAGNOSTICSHOLDER_HPP #include #include "DiagnosticSeverity.hpp" #include "DiagnosticCode.hpp" #include "Diagnostic.hpp" using namespace std; class DiagnosticsHolder { bool _hasErrors; vector _diagnostics; public: DiagnosticsHolder(){ _hasErrors = false; } ~DiagnosticsHolder(){ _diagnostics.clear(); } void Log(DiagnosticSeverity severity, DiagnosticCode code, unsigned int start, unsigned int length); void LogError(DiagnosticCode code, unsigned int start, unsigned int length); void LogWarning(DiagnosticCode code, unsigned int start, unsigned int length); void LogInfo(DiagnosticCode code, unsigned int start, unsigned int length); bool HasErrors(); vector GetDiagnostics(); int DiagnosticsCount(); Diagnostic* GetDiagnosticAt(int position); }; #endif //PORYGONLANG_DIAGNOSTICSHOLDER_HPP