#ifndef MRC_DIAGNOSTIC_H #define MRC_DIAGNOSTIC_H #include "mrc_ccontext.h" MRC_BEGIN_DECL typedef enum { MRC_PARSER_WARNING = 0, MRC_PARSER_ERROR = 1, MRC_GENERATOR_WARNING = 2, MRC_GENERATOR_ERROR = 3, } mrc_diagnostic_code; typedef struct mrc_diagnostic_list { mrc_diagnostic_code code; char *message; uint32_t line; uint32_t column; struct mrc_diagnostic_list *next; } mrc_diagnostic_list; struct mrc_ccontext; void mrc_diagnostic_list_append(struct mrc_ccontext *c, const uint8_t *location_start, const char *message, mrc_diagnostic_code code); void mrc_diagnostic_list_free(struct mrc_ccontext *c); MRC_END_DECL #endif // MRC_DIAGNOSTIC_H