aboutsummaryrefslogtreecommitdiffstats
path: root/yarp/diagnostic.h
blob: bcbee5380ca98ec2669b89ea93693921c0e06357 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef YARP_DIAGNOSTIC_H
#define YARP_DIAGNOSTIC_H

#include "yarp/defines.h"
#include "yarp/util/yp_list.h"

#include <stdbool.h>
#include <stdlib.h>

// This struct represents a diagnostic found during parsing.
typedef struct {
    yp_list_node_t node;
    const char *start;
    const char *end;
    const char *message;
} yp_diagnostic_t;

// Append a diagnostic to the given list of diagnostics.
bool yp_diagnostic_list_append(yp_list_t *list, const char *start, const char *end, const char *message);

// Deallocate the internal state of the given diagnostic list.
void yp_diagnostic_list_free(yp_list_t *list);

#endif