2019-06-18 17:56:47 +00:00
|
|
|
#include <utility>
|
|
|
|
|
2019-05-21 11:56:08 +00:00
|
|
|
|
|
|
|
#ifndef PORYGONLANG_DIAGNOSTIC_HPP
|
|
|
|
#define PORYGONLANG_DIAGNOSTIC_HPP
|
|
|
|
|
2019-06-18 17:56:47 +00:00
|
|
|
#include <vector>
|
|
|
|
#include <string>
|
2019-05-21 11:56:08 +00:00
|
|
|
#include "DiagnosticSeverity.hpp"
|
|
|
|
#include "DiagnosticCode.hpp"
|
|
|
|
|
2019-06-18 14:39:36 +00:00
|
|
|
namespace Porygon::Diagnostics {
|
|
|
|
class Diagnostic {
|
|
|
|
DiagnosticSeverity _severity;
|
|
|
|
DiagnosticCode _code;
|
|
|
|
unsigned int _start;
|
|
|
|
unsigned int _length;
|
2019-06-18 17:56:47 +00:00
|
|
|
std::vector<std::string> _arguments;
|
2019-06-18 14:39:36 +00:00
|
|
|
public:
|
2019-06-18 17:56:47 +00:00
|
|
|
Diagnostic(DiagnosticSeverity severity, DiagnosticCode code, unsigned int start, unsigned int length, std::vector<std::string> arguments) {
|
2019-06-18 14:39:36 +00:00
|
|
|
_severity = severity;
|
|
|
|
_code = code;
|
|
|
|
_start = start;
|
|
|
|
_length = length;
|
2019-06-18 17:56:47 +00:00
|
|
|
_arguments = std::move(arguments);
|
2019-06-18 14:39:36 +00:00
|
|
|
}
|
2019-05-21 13:11:00 +00:00
|
|
|
|
2019-06-18 14:39:36 +00:00
|
|
|
DiagnosticSeverity GetSeverity() {
|
|
|
|
return _severity;
|
|
|
|
}
|
2019-05-21 13:11:00 +00:00
|
|
|
|
2019-06-18 14:39:36 +00:00
|
|
|
DiagnosticCode GetCode() {
|
|
|
|
return _code;
|
|
|
|
}
|
2019-05-21 13:11:00 +00:00
|
|
|
|
2019-06-18 14:39:36 +00:00
|
|
|
unsigned int GetStartPosition() {
|
|
|
|
return _start;
|
|
|
|
}
|
2019-05-21 11:56:08 +00:00
|
|
|
|
2019-06-18 14:39:36 +00:00
|
|
|
unsigned int GetLength() {
|
|
|
|
return _length;
|
|
|
|
}
|
2019-06-18 17:56:47 +00:00
|
|
|
|
|
|
|
std::vector<std::string> GetArguments(){
|
|
|
|
return _arguments;
|
|
|
|
}
|
2019-06-18 14:39:36 +00:00
|
|
|
};
|
|
|
|
}
|
2019-05-21 11:56:08 +00:00
|
|
|
#endif //PORYGONLANG_DIAGNOSTIC_HPP
|