Refactor: macro constants -> config.h

This commit is contained in:
olemorud
2023-04-25 00:22:43 +02:00
parent 2eeaa2171f
commit e0857626d6
5 changed files with 43 additions and 9 deletions

39
include/config.h Normal file
View File

@@ -0,0 +1,39 @@
#ifndef _CONFIG_H
#define _CONFIG_H
/*
Number of elements in a hashmap
Hashmaps are implemented as an array
of linked lists. This specifies the
length of the initial array.
*/
#define OBJ_SIZE 32
/*
Length of surrounding context to print
on parser errors.
Upon parser errors (e.g. syntax errors
in the JSON file), the program outputs
the surrounding context of the error.
E.g:
| Expected ':' at index 123
| context:
| \n\t\t{ "foo" "bar" },\n\t
| ^
In the above example, ERROR_CONTEXT_LEN
is set to 20.
*/
#define ERROR_CONTEXT_LEN 60
/*
Error codes
EARLY_EOF - End of file unexpectedly reached
UNEXPECTED_CHAR - Unexpected character encountered
*/
#define EARLY_EOF 202
#define UNEXPECTED_CHAR 200
#endif

View File

@@ -2,10 +2,9 @@
#ifndef _JSON_VALUE_H
#define _JSON_VALUE_H
#include "config.h"
#include <stdbool.h> // bool
#define OBJ_SIZE 32
typedef struct obj_entry {
char const* key;
struct json_value* val;

View File

@@ -18,7 +18,7 @@ int main(int argc, char* argv[])
struct json_value x = parse_json_value(fp);
// print_json(x, 1);
print_json(x, 1);
json_value_delete(x);

View File

@@ -1,6 +1,7 @@
#include "parse.h"
#include "config.h"
#include "json_value.h"
#include "util.h"
@@ -10,10 +11,6 @@
#include <stdlib.h> // exit, EXIT_SUCCESS, EXIT_FAILURE
#include <string.h> // strcmp
#define EARLY_EOF 202
#define MALLOC_DIE 201
#define UNEXPECTED_CHAR 200
char* read_string(FILE* fp);
obj_t* read_object(FILE* fp);
void discard_whitespace(FILE* fp);

View File

@@ -1,5 +1,6 @@
#include "util.h"
#include "config.h"
#include <err.h> // err
#include <errno.h> // errno
@@ -8,8 +9,6 @@
#include <stdio.h> // fprintf
#include <stdlib.h> // malloc, realloc, calloc
#define ERROR_CONTEXT_LEN 80
void* malloc_or_die(size_t size)
{
void* result = malloc(size);