Files
jq/jq.h
T

40 lines
1.2 KiB
C
Raw Normal View History

2013-06-16 08:25:12 -05:00
#ifndef _JQ_H_
#define _JQ_H_
2012-09-18 22:17:13 +01:00
2013-11-30 02:05:42 -06:00
#include <stdio.h>
2013-06-16 08:25:12 -05:00
#include <jv.h>
enum {JQ_DEBUG_TRACE = 1};
2013-06-16 08:25:12 -05:00
typedef struct jq_state jq_state;
2013-11-30 02:05:42 -06:00
typedef void (*jq_err_cb)(void *, jv);
2013-06-06 17:26:15 -05:00
jq_state *jq_init(void);
2013-11-30 02:05:42 -06:00
void jq_set_error_cb(jq_state *, jq_err_cb, void *);
void jq_get_error_cb(jq_state *, jq_err_cb *, void **);
2013-06-06 17:26:15 -05:00
void jq_set_nomem_handler(jq_state *, void (*)(void *), void *);
2014-08-11 17:25:09 -05:00
jv jq_format_error(jv msg);
void jq_report_error(jq_state *, jv);
2014-08-10 16:52:03 -05:00
int jq_compile(jq_state *, const char*);
int jq_compile_args(jq_state *, const char*, jv);
2013-06-16 08:25:12 -05:00
void jq_dump_disassembly(jq_state *, int);
2014-08-10 16:52:03 -05:00
void jq_start(jq_state *, jv value, int);
jv jq_next(jq_state *);
void jq_teardown(jq_state **);
2012-09-18 22:17:13 +01:00
2014-12-22 23:06:27 -06:00
typedef jv (*jq_input_cb)(jq_state *, void *);
void jq_set_input_cb(jq_state *, jq_input_cb, void *);
void jq_get_input_cb(jq_state *, jq_input_cb *, void **);
2014-12-27 17:15:56 -06:00
typedef void (*jq_debug_cb)(jq_state *, void *, jv);
void jq_set_debug_cb(jq_state *, jq_debug_cb, void *);
void jq_get_debug_cb(jq_state *, jq_debug_cb *, void **);
2014-08-10 16:52:03 -05:00
void jq_set_attrs(jq_state *, jv);
jv jq_get_attrs(jq_state *);
2014-11-24 17:58:34 -06:00
jv jq_get_jq_origin(jq_state *);
jv jq_get_prog_origin(jq_state *);
jv jq_get_lib_dirs(jq_state *);
2014-08-10 16:52:03 -05:00
void jq_set_attr(jq_state *, jv, jv);
jv jq_get_attr(jq_state *, jv);
2013-06-16 08:25:12 -05:00
#endif /* !_JQ_H_ */