31 lines
671 B
C
31 lines
671 B
C
#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
|