Update comments and error code values
This commit is contained in:
@@ -5,9 +5,9 @@
|
|||||||
/*
|
/*
|
||||||
Number of elements in a hashmap
|
Number of elements in a hashmap
|
||||||
|
|
||||||
Hashmaps are implemented as an array
|
Hashmaps are implemented as an array
|
||||||
of linked lists. This specifies the
|
of linked lists. This specifies the
|
||||||
length of the initial array.
|
length of the initial array.
|
||||||
*/
|
*/
|
||||||
#define OBJ_SIZE 32
|
#define OBJ_SIZE 32
|
||||||
|
|
||||||
@@ -15,25 +15,26 @@
|
|||||||
Length of surrounding context to print
|
Length of surrounding context to print
|
||||||
on parser errors.
|
on parser errors.
|
||||||
|
|
||||||
Upon parser errors (e.g. syntax errors
|
Upon parser errors (e.g. syntax errors
|
||||||
in the JSON file), the program outputs
|
in the JSON file), the program outputs
|
||||||
the surrounding context of the error.
|
the surrounding context of the error.
|
||||||
E.g:
|
E.g:
|
||||||
| Expected ':' at index 123
|
| Expected ':' at index 123
|
||||||
| context:
|
| context:
|
||||||
| \n\t\t{ "foo" "bar" },\n\t
|
| \n\t\t{ "foo" "bar" },\n\t
|
||||||
| ^
|
| ^
|
||||||
In the above example, ERROR_CONTEXT_LEN
|
In the above example, ERROR_CONTEXT_LEN
|
||||||
is set to 20.
|
is set to 20.
|
||||||
*/
|
*/
|
||||||
#define ERROR_CONTEXT_LEN 60
|
#define ERROR_CONTEXT_LEN 60
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Error codes
|
Return codes on different errors:
|
||||||
EARLY_EOF - End of file unexpectedly reached
|
|
||||||
UNEXPECTED_CHAR - Unexpected character encountered
|
EARLY_EOF - End of file unexpectedly reached
|
||||||
|
UNEXPECTED_CHAR - Unexpected character encountered
|
||||||
*/
|
*/
|
||||||
#define EARLY_EOF 202
|
#define EARLY_EOF 200
|
||||||
#define UNEXPECTED_CHAR 200
|
#define UNEXPECTED_CHAR 201
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
#ifndef _UTIL_H
|
#ifndef _UTIL_H
|
||||||
#define _UTIL_H
|
#define _UTIL_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h> // size_t
|
||||||
#include <stdio.h>
|
#include <stdio.h> // FILE*
|
||||||
|
|
||||||
__attribute__((__noreturn__)) void err_ctx(int exit_code, FILE* fp, const char* format, ...);
|
__attribute__((__noreturn__)) void err_ctx(int exit_code, FILE* fp, const char* format, ...);
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ void print_object(obj_t obj, int cur_indent, int indent_amount);
|
|||||||
Returns a hash of the string `str`.
|
Returns a hash of the string `str`.
|
||||||
|
|
||||||
It seems to work well because 33 is coprime to
|
It seems to work well because 33 is coprime to
|
||||||
2^32 and 2^64 (any odd number except 1 is),
|
2^32 and 2^64 (any odd number except 1 is),
|
||||||
which probably improves the distribution (I'm
|
which probably improves the distribution (I'm
|
||||||
not a mathematician so I can't prove it this).
|
not a mathematician so I can't prove this).
|
||||||
Multiplying a number n by 33 is the same as
|
Multiplying a number n by 33 is the same as
|
||||||
bitshifting by 5 and adding n, which is faster
|
bitshifting by 5 and adding n, which is faster
|
||||||
than multiplying by, say, 37. Maybe any 2^x±1
|
than multiplying by, say, 37. Maybe any 2^x±1
|
||||||
@@ -112,6 +112,9 @@ bool obj_insert(obj_t m, char* const key, struct json_value* value)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Free memory allocated for json_value val
|
||||||
|
*/
|
||||||
void json_value_delete(struct json_value val)
|
void json_value_delete(struct json_value val)
|
||||||
{
|
{
|
||||||
switch (val.type) {
|
switch (val.type) {
|
||||||
@@ -140,7 +143,7 @@ void json_value_delete(struct json_value val)
|
|||||||
/*
|
/*
|
||||||
Free memory allocated for obj
|
Free memory allocated for obj
|
||||||
|
|
||||||
TODO: recurively delete children objects
|
Recursively deletes children objects
|
||||||
*/
|
*/
|
||||||
void obj_delete(obj_t* m)
|
void obj_delete(obj_t* m)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user