25 const char *error_line_number_end;
28 if (
at_any(error_line_number_end,
"(:") &&
at_number(&error_line_number_end[1])) {
32 log_line = error_line_number_end;
39 log_line = error_line_number_end;
64 if (line_start_character != -1) {
66 size_t line_number =
source_line_get(source_combined, line_start_character);
68 std::to_string(line_number);
87 return skip_severity(log_line, log_item,
"ERROR",
"WARNING",
"NOTE");
92 return skip_severity(log_line, log_item,
"error",
"warning",
"note");
const char * parse_line(const char *source_combined, const char *log_line, GPULogItem &log_item) override
const char * skip_severity_prefix(const char *log_line, GPULogItem &log_item)
const char * skip_severity_keyword(const char *log_line, GPULogItem &log_item)
static size_t line_start_get(StringRefNull source_combined, size_t target_line)
static StringRef filename_get(StringRefNull source_combined, size_t pos)
int parse_number(const char *log_line, const char **r_new_position) const
const char * skip_separators(const char *log_line, const StringRef separators) const
bool at_number(const char *log_line) const
static size_t source_line_get(StringRefNull source_combined, size_t pos)
bool at_any(const char *log_line, const StringRef chars) const
const char * skip_severity(const char *log_line, GPULogItem &log_item, const char *error_msg, const char *warning_msg, const char *note_msg) const
std::string file_name_and_error_line