37 lines
642 B
C
37 lines
642 B
C
|
|
#ifndef CLPARSER_H_QWERTY
|
|
#define CLPARSER_H_QWERTY
|
|
|
|
#include <stdbool.h>
|
|
#include <jlexer.h>
|
|
|
|
typedef struct {
|
|
int type;
|
|
char* key;
|
|
union {
|
|
char* str;
|
|
int64_t num;
|
|
bool flag;
|
|
};
|
|
} jkval_t;
|
|
|
|
|
|
typedef struct {
|
|
jkval_t* kvalarr;
|
|
int kvalcapa;
|
|
int kvalsize;
|
|
jlexer_t* lexer;
|
|
} jparser_t;
|
|
|
|
#define JVALTYPE_STR 1
|
|
#define JVALTYPE_NUM 2
|
|
#define JVALTYPE_BOOL 3
|
|
|
|
|
|
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
|