Commit Graph

43 Commits

Author SHA1 Message Date
Abdelrahman Said 9cba0172b9 Update is_valid_hex_char 2023-07-12 22:33:58 +01:00
Abdelrahman Said ba813ea5bf Switch to using dstring as a submodule 2023-07-12 22:15:18 +01:00
abdelrahman 621e50ee24 Convert free_json to an iterative function to avoid stack overflow on
large files
2023-07-12 00:37:45 +01:00
abdelrahman 25e9c2db04 Add todo 2023-07-09 22:30:14 +01:00
abdelrahman f1519cf0ea Read the file into a dynamic array to avoid stack overflow 2023-07-02 20:50:24 +01:00
abdelrahman dde80250ed Cleanup unused includes 2023-07-01 16:48:47 +01:00
abdelrahman f9e9f0ebd8 Add function to traverse json tree and free all memory allocations 2023-07-01 16:45:31 +01:00
abdelrahman 135a6da54c Ensure negative numbers are handled properly 2023-07-01 15:12:21 +01:00
abdelrahman e818135aef Move the logic for loading a json file into the load_json function 2023-07-01 15:05:53 +01:00
abdelrahman 10597c0ed7 Remove validate_json 2023-07-01 15:05:41 +01:00
abdelrahman ff110ea6e2 Move the json entities specific functions to json_entities 2023-07-01 15:04:59 +01:00
abdelrahman 99f5c5bfe5 Refactored parse_token function 2023-07-01 04:43:52 +01:00
abdelrahman 7e4d82888a Updated print_token function 2023-07-01 04:43:29 +01:00
abdelrahman 2a4d573118 Add print_json function to traverse json tree and print all elements 2023-07-01 04:42:40 +01:00
Abdelrahman Said e2c4e56fcd Updated the parser implementation 2023-06-30 01:16:33 +01:00
abdelrahman 96e9df0434 Parser test implementation 2023-06-28 23:36:52 +01:00
abdelrahman b6d4a1f218 Ensure the functions declared in lexer.c are static 2023-06-28 21:44:04 +01:00
abdelrahman 740d9b6566 Combine TK_TRUE and TK_FALSE into TK_BOOL 2023-06-28 21:43:35 +01:00
Abdelrahman Said 6d08b38058 Start exploring the parser 2023-06-28 20:50:54 +01:00
abdelrahman 1e510411dc get_next_token returns result which includes possible error and token 2023-06-27 22:23:16 +01:00
Abdelrahman Said a6b45834fc Start working on json_entities 2023-06-26 18:32:53 +01:00
Abdelrahman Said 55ca87c425 Ensure token's line and column number are printed properly on macOS and
Linux
2023-06-26 07:32:42 +01:00
Abdelrahman Said 9963527db0 Ensure token's integer value is printed properly on macOS and Linux 2023-06-26 07:31:19 +01:00
abdelrahman 3ded1d2708 Testing building json objects in C 2023-06-25 23:52:45 +01:00
abdelrahman 84533ad643 Ensure lexer returns correct token for numerical values 2023-06-24 03:41:22 +01:00
abdelrahman 7a326421b8 Add dstr_find function 2023-06-24 03:40:04 +01:00
abdelrahman fd525e26a6 Update print format specifier 2023-06-22 00:37:59 +01:00
Abdelrahman Said efe07a3c60 Add the get_next_token function 2023-06-22 00:13:05 +01:00
abdelrahman 2ef4e2f056 Cleanup 2023-06-20 23:38:46 +01:00
abdelrahman 1b56aaa185 Started implementing the get_next_token function 2023-06-20 23:37:56 +01:00
abdelrahman e4d161d79d Plan work for get_next_token function 2023-06-20 21:56:59 +01:00
abdelrahman 0d289df26f Fix bug in dstr_to_cstr 2023-06-20 21:56:33 +01:00
Abdelrahman Said 76620b593a Add dstr_resize and rename the dstring functions 2023-06-19 08:33:02 +01:00
abdelrahman 31e19a50fc Save string and number values for tokenisation 2023-06-18 22:57:08 +01:00
abdelrahman f0043a691c Rename lexer string functions 2023-06-18 22:08:47 +01:00
abdelrahman 57fe5ab1b7 Add dstr_t type 2023-06-18 21:40:36 +01:00
abdelrahman 0095d8fe61 Rename lexer_states to lexer 2023-06-18 21:39:50 +01:00
abdelrahman 909bcf3056 Add test files for unicode sequences 2023-06-18 00:23:40 +01:00
abdelrahman 386dfe72db Added string type that works for both keywords and unicode sequences 2023-06-18 00:03:31 +01:00
abdelrahman ed9b5fb638 Add keyword support 2023-06-17 22:10:48 +01:00
abdelrahman b0e527ee76 Added handling numerical states 2023-06-17 18:44:30 +01:00
abdelrahman 43630526dc Handle objects, arrays and strings 2023-06-17 15:27:16 +01:00
abdelrahman cad6b938b3 Started implementing the lexer 2023-06-17 00:45:00 +01:00