#ifndef _LOCFILE_H #define _LOCFILE_H #include "jq.h" typedef struct { int start, end; } location; static const location UNKNOWN_LOCATION = {-1, -1}; struct locfile { const char* data; int length; int* linemap; int nlines; char *error; jq_state *jq; int refct; }; struct locfile* locfile_init(jq_state *jq, const char* data, int length); struct locfile* locfile_retain(struct locfile* l); void locfile_free(struct locfile* l); void locfile_locate(struct locfile* l, location loc, const char* fmt, ...); #endif