mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 13:06:59 -04:00
improved error reporting for the keyword editor
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@260 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -8,6 +8,8 @@
|
||||
|
||||
#include <util/error.hpp>
|
||||
|
||||
DECLARE_TYPEOF_COLLECTION(ScriptParseError);
|
||||
|
||||
// ----------------------------------------------------------------------------- : Error types
|
||||
|
||||
Error::Error(const String& message)
|
||||
@@ -20,6 +22,32 @@ String Error::what() const {
|
||||
return message;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------- : Parse errors
|
||||
|
||||
ScriptParseError::ScriptParseError(size_t pos, const String& error)
|
||||
: start(pos), end(pos)
|
||||
, ParseError(error)
|
||||
{}
|
||||
ScriptParseError::ScriptParseError(size_t pos, const String& exp, const String& found)
|
||||
: start(pos), end(pos + found.size())
|
||||
, ParseError(_("Expected '") + exp + _("' instead of '") + found + _("'"))
|
||||
{}
|
||||
String ScriptParseError::what() const {
|
||||
return String(_("(")) << (int)start << _("): ") << Error::what();
|
||||
}
|
||||
|
||||
String concat(const vector<ScriptParseError>& errors) {
|
||||
String total;
|
||||
FOR_EACH_CONST(e, errors) {
|
||||
if (!total.empty()) total += _("\n");
|
||||
total += e.what();
|
||||
}
|
||||
return total;
|
||||
}
|
||||
ScriptParseErrors::ScriptParseErrors(const vector<ScriptParseError>& errors)
|
||||
: ParseError(concat(errors))
|
||||
{}
|
||||
|
||||
// ----------------------------------------------------------------------------- : Error handling
|
||||
|
||||
// Errors for which a message box was already shown
|
||||
|
||||
Reference in New Issue
Block a user