A shortcut function to build error messages.

This commit is contained in:
Ferdinand Majerech 2014-07-25 18:26:08 +02:00
parent 6403b2da63
commit 93a99ad7ca

View file

@ -188,29 +188,6 @@ final class Scanner
reader_ = null;
}
/// If error_ is true, throws a ScannerException constructed from errorData_ and
/// sets error_ to false.
void throwIfError() @safe pure
{
if(!error_) { return; }
error_ = false;
throw new ScannerException(errorData_);
}
/// Called by internal nothrow/@nogc methods to set an error to be thrown by
/// their callers.
///
/// See_Also: dyaml.exception.MarkedYamlException
void setError(string context, const Mark contextMark, string problem,
const Mark problemMark) @safe pure nothrow @nogc
{
assert(error_ == false,
"Setting an error when there already is a not yet thrown error");
error_ = true;
errorData_ =
MarkedYAMLExceptionData(context, contextMark, problem, problemMark);
}
/**
* Check if the next token is one of specified types.
*
@ -270,6 +247,34 @@ final class Scanner
}
private:
/// Build an error message in msgBuffer_ and return it as a string.
string buildMsg(S ...)(S args) @trusted pure nothrow @nogc
{
return cast(string)msgBuffer_.printNoGC(args);
}
/// If error_ is true, throws a ScannerException constructed from errorData_ and
/// sets error_ to false.
void throwIfError() @safe pure
{
if(!error_) { return; }
error_ = false;
throw new ScannerException(errorData_);
}
/// Called by internal nothrow/@nogc methods to set an error to be thrown by
/// their callers.
///
/// See_Also: dyaml.exception.MarkedYamlException
void setError(string context, const Mark contextMark, string problem,
const Mark problemMark) @safe pure nothrow @nogc
{
assert(error_ == false,
"Setting an error when there already is a not yet thrown error");
error_ = true;
errorData_ = MarkedYAMLExceptionData(context, contextMark, problem, problemMark);
}
///Determine whether or not we need to fetch more tokens before peeking/getting a token.
bool needMoreTokens() @safe pure
{