mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-29 21:18:02 +00:00
[master] Merged trac4203 (no exit())
This commit is contained in:
commit
d6eb96ba57
@ -50,3 +50,9 @@ EvalContext::error (const std::string& what)
|
||||
{
|
||||
isc_throw(EvalParseError, what);
|
||||
}
|
||||
|
||||
void
|
||||
EvalContext::fatal (const std::string& what)
|
||||
{
|
||||
isc_throw(Unexpected, what);
|
||||
}
|
||||
|
@ -81,6 +81,11 @@ public:
|
||||
/// cases when the EvalParser is not able to handle the packet.
|
||||
void error(const std::string& what);
|
||||
|
||||
/// @brief Fatal error handler
|
||||
///
|
||||
/// This is for should not happen but fatal errors
|
||||
static void fatal(const std::string& what);
|
||||
|
||||
private:
|
||||
/// @brief Flag determining scanner debugging.
|
||||
bool trace_scanning_;
|
||||
|
@ -31,6 +31,9 @@
|
||||
// The location of the current token. The lexer will keep updating it. This
|
||||
// variable will be useful for logging errors.
|
||||
static isc::eval::location loc;
|
||||
|
||||
// To avoid the call to exit... oops!
|
||||
#define YY_FATAL_ERROR(msg) isc::eval::EvalContext::fatal(msg)
|
||||
%}
|
||||
|
||||
/* noyywrap disables automatic rewinding for the next file to parse. Since we
|
||||
@ -147,8 +150,8 @@ EvalContext::scanStringBegin()
|
||||
YY_BUFFER_STATE buffer;
|
||||
buffer = yy_scan_bytes(string_.c_str(), string_.size());
|
||||
if (!buffer) {
|
||||
error("cannot scan string");
|
||||
exit(EXIT_FAILURE);
|
||||
fatal("cannot scan string");
|
||||
// fatal() throws an exception so this can't be reached
|
||||
}
|
||||
}
|
||||
|
||||
@ -157,3 +160,10 @@ EvalContext::scanStringEnd()
|
||||
{
|
||||
yy_delete_buffer(YY_CURRENT_BUFFER);
|
||||
}
|
||||
|
||||
namespace {
|
||||
/// To avoid unused function error
|
||||
class Dummy {
|
||||
void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user