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;
65 std::string needle = std::string(
"#line 1 ") + std::to_string(log_item.
cursor.
source);
68 if (file_start == -1) {
73 StringRef previous_sources(source_combined, file_start);
74 for (
const char c : previous_sources) {
93 return skip_severity(log_line, log_item,
"ERROR",
"WARNING",
"NOTE");
98 return skip_severity(log_line, log_item,
"error",
"warning",
"note");
constexpr int64_t find(char c, int64_t pos=0) const
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)
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
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