Something went wrong. Try again.
MIRROR: javascript for 🐜's, a tiny runtime with big ambitions ant.themackabu.dev
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#ifndef ANT_ERROR_RENDER_H#define ANT_ERROR_RENDER_H
#include "errors.h"
static constexpr ant_offset_t ERROR_CONTEXT_MAX_SOURCE_BYTES = 256 * 1024;
typedef struct { char *buf; size_t size; } errbuf_t;
typedef enum { ERROR_FRAME_PRETTY, ERROR_FRAME_RAW, ERROR_FRAME_PLAIN,} error_frame_style_t;
typedef struct { const char *src; ant_offset_t src_len; ant_offset_t src_pos; ant_offset_t src_span_len; int error_col; int error_span_cols; int line; int col; char error_line[256];} js_error_render_site_t;
bool errbuf_init(errbuf_t *eb, size_t size);ant_value_t errbuf_take_string(ant_t *js, errbuf_t *eb, size_t len);
__attribute__((format(printf, 3, 4)))size_t errbuf_appendf(errbuf_t *eb, size_t used, const char *fmt, ...);
void error_line_col(const char *code, ant_offset_t code_len, ant_offset_t pos, int *out_line, int *out_col);size_t error_render_value(errbuf_t *eb, ant_t *js, size_t used, ant_value_t value);
bool error_render_frame( errbuf_t *eb, size_t *n, const char *name, const char *file, int line, int col, error_frame_style_t style);
void error_render_site_init(const js_error_site_t *es, js_error_render_site_t *site);void error_render_site_finish(js_error_render_site_t *site);void error_render_site_prefix(errbuf_t *eb, size_t *n, const char *file, const js_error_render_site_t *site);const char *error_site_file(ant_t *js, const js_error_site_t *es);
#endif