Files
cworker/clib/jparser.h

40 lines
736 B
C

#ifndef JPARSER_H_QWERTY
#define JPARSER_H_QWERTY
#include <stdbool.h>
#include <jlexer.h>
typedef struct {
int type;
char* key;
union {
char* str;
int64_t integ;
double numb;
bool flag;
};
} jkval_t;
typedef struct {
jkval_t* kvalarr;
int kvalcapa;
int kvalsize;
jlexer_t* lexer;
} jparser_t;
#define JVALTYPE_STR 0x01
#define JVALTYPE_INTEG 0x02
#define JVALTYPE_FLOAT 0x03
#define JVALTYPE_BOOL 0x04
#define JVALTYPE_BLK 0x05
void jparser_init(jparser_t* parser, jlexer_t* lexer);
int jparser_bind(jparser_t* parser, int type, char* key, void* ref);
int jparser_parse(jparser_t* parser);
void jparser_destroy(jparser_t * parser);
#endif