Move json_value and obj_t to same file
 - Rename json_obj.* -> json_value.*
 - Move `print_json_value(...)` to json_value.*

Move `err_ctx(...)` to util.*

parse.h now only exposes `parse_json_value(...)`
This commit is contained in:
olemorud
2023-04-23 22:34:24 +02:00
parent 4b91c62750
commit 9a88d1cbdc
9 changed files with 313 additions and 302 deletions

41
include/json_value.h Normal file
View File

@@ -0,0 +1,41 @@
#ifndef _JSON_VALUE_H
#define _JSON_VALUE_H
#include <stdbool.h> // bool
#define OBJ_SIZE 64
typedef struct obj_entry {
char const* key;
struct json_value* val;
struct obj_entry* next;
} * __p_obj_entry;
typedef __p_obj_entry obj_t[OBJ_SIZE];
enum json_type { object,
array,
string,
number,
boolean,
null };
struct json_value {
enum json_type type;
union {
obj_t* object;
struct json_value** array;
char* string;
bool boolean;
double number;
};
};
void* obj_at(obj_t m, char* const key);
bool obj_insert(obj_t m, char* const key, struct json_value* value);
void obj_delete(obj_t m);
void print_json(struct json_value val, int indent);
#endif