usql updates, lexer changes
This commit is contained in:
@@ -12,16 +12,20 @@ std::vector<std::pair<std::string, std::string>> Settings::m_settings =
|
||||
std::make_pair("DOUBLE_FORMAT", "%.2f") };
|
||||
|
||||
|
||||
long Settings::string_to_date(const std::string &datestr) {
|
||||
return ::string_to_date(datestr, get_setting("DATE_FORMAT"));
|
||||
|
||||
long Settings::string_to_int(const std::string &intstr) {
|
||||
return std::stoi(intstr);
|
||||
}
|
||||
|
||||
std::string Settings::int_to_string(long intval) {
|
||||
return std::to_string(intval);
|
||||
}
|
||||
|
||||
|
||||
std::string Settings::date_to_string(long date) {
|
||||
return ::date_to_string(date, get_setting("DATE_FORMAT"));
|
||||
double Settings::string_to_double(const std::string &doublestr) {
|
||||
return std::stod(doublestr); // TODO use fast parsing
|
||||
}
|
||||
|
||||
|
||||
|
||||
std::string Settings::double_to_string(double d) {
|
||||
char buffer[32];
|
||||
int r, buf_size = 32;
|
||||
@@ -29,9 +33,37 @@ std::string Settings::double_to_string(double d) {
|
||||
r = snprintf(buffer, buf_size, get_setting("DOUBLE_FORMAT").c_str(), d);
|
||||
if (r > 0 && r < buf_size) return std::string(buffer);
|
||||
|
||||
// ?? return std::to_string(d);
|
||||
return "ERROR";
|
||||
}
|
||||
|
||||
|
||||
long Settings::string_to_date(const std::string &datestr) {
|
||||
return ::string_to_date(datestr, get_setting("DATE_FORMAT"));
|
||||
}
|
||||
|
||||
std::string Settings::date_to_string(long date) {
|
||||
return ::date_to_string(date, get_setting("DATE_FORMAT"));
|
||||
}
|
||||
|
||||
|
||||
bool Settings::string_to_bool(const std::string &boolstr) {
|
||||
if (boolstr=="true" || boolstr == get_setting("BOOL_TRUE_LITERAL"))
|
||||
return true;
|
||||
|
||||
if (boolstr=="false" || boolstr == get_setting("BOOL_FALSE_LITERAL"))
|
||||
return false;
|
||||
|
||||
throw Exception("string_to_bool, unrecognized value: " + boolstr);
|
||||
}
|
||||
|
||||
std::string Settings::bool_to_string(bool boolval) {
|
||||
return boolval ? "true" : "false";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
std::string Settings::get_setting(const std::string &name) {
|
||||
for(const auto& pair : m_settings) {
|
||||
if (pair.first == name) return pair.second;
|
||||
|
||||
Reference in New Issue
Block a user