PorygonLang/src/Diagnostics/Diagnostics.hpp

40 lines
935 B
C++
Raw Normal View History

2019-05-21 11:56:08 +00:00
#ifndef PORYGONLANG_DIAGNOSTICS_HPP
#define PORYGONLANG_DIAGNOSTICS_HPP
#include <vector>
#include "DiagnosticSeverity.hpp"
#include "DiagnosticCode.hpp"
#include "Diagnostic.hpp"
using namespace std;
class Diagnostics {
bool _hasErrors;
vector<Diagnostic> _diagnostics;
public:
Diagnostics(){
_hasErrors = false;
}
~Diagnostics(){
_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);
2019-05-21 11:56:08 +00:00
bool HasErrors();
2019-05-21 11:56:08 +00:00
vector<Diagnostic> GetDiagnostics();
2019-05-21 11:56:08 +00:00
int DiagnosticsCount();
Diagnostic* GetDiagnosticAt(int position);
2019-05-21 11:56:08 +00:00
};
#endif //PORYGONLANG_DIAGNOSTICS_HPP