Commit Graph

93 Commits

Author SHA1 Message Date
bf958056bd Add basic test suite to validate that the parser works 2023-07-30 12:43:08 +01:00
ec6df32839 Start implementing using the state transition table in the lexer 2023-07-30 11:47:26 +01:00
de57d9f14b Add enum value for newline 2023-07-30 00:37:39 +01:00
f1f90cf56b Specify the length of the strings tables explicitly 2023-07-29 22:10:28 +01:00
41d7cf2717 Reformat 2023-07-29 22:09:09 +01:00
002a8e7064 Get the input and state strings from tables instead of switch cases 2023-07-29 22:07:03 +01:00
fc80095d1f Remove clear_file and update write_table to accept a file pointer 2023-07-29 21:46:59 +01:00
642d000ebd Fix keyword handling so the final keyword states don't consume input 2023-07-29 21:42:20 +01:00
b4a4865870 Regenerate the state table 2023-07-27 00:54:53 +01:00
1b4d6a6156 Update column width and write row state as a comment 2023-07-27 00:53:39 +01:00
26fabd91b9 Ensure build scripts fail if attempting to run them from different
directory
2023-07-25 09:00:11 +01:00
adde1db0f4 Finalise generating the state table 2023-07-25 08:56:42 +01:00
7eec0e0730 Add generating the table to the main build script 2023-07-25 08:56:18 +01:00
6c454fbb8e Add char_type function to lexer.c but exclude it from build 2023-07-25 08:55:46 +01:00
fd8231b02d Pull states and inputs enums to a separate header 2023-07-23 22:49:23 +01:00
09f2315b66 Test generating a state transition table 2023-07-23 22:49:09 +01:00
91162654b3 Initial work on converting the state machine to a state table 2023-07-23 22:48:28 +01:00
6e93d3ecd1 Update .gitignore 2023-07-23 22:48:05 +01:00
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
621e50ee24 Convert free_json to an iterative function to avoid stack overflow on
large files
2023-07-12 00:37:45 +01:00
2bbf21f90b Remove compile_commands.json from source control 2023-07-09 23:50:06 +01:00
f5b1fae214 Update README 2023-07-09 23:46:25 +01:00
25e9c2db04 Add todo 2023-07-09 22:30:14 +01:00
f1519cf0ea Read the file into a dynamic array to avoid stack overflow 2023-07-02 20:50:24 +01:00
dde80250ed Cleanup unused includes 2023-07-01 16:48:47 +01:00
f9e9f0ebd8 Add function to traverse json tree and free all memory allocations 2023-07-01 16:45:31 +01:00
135a6da54c Ensure negative numbers are handled properly 2023-07-01 15:12:21 +01:00
e818135aef Move the logic for loading a json file into the load_json function 2023-07-01 15:05:53 +01:00
10597c0ed7 Remove validate_json 2023-07-01 15:05:41 +01:00
ff110ea6e2 Move the json entities specific functions to json_entities 2023-07-01 15:04:59 +01:00
99f5c5bfe5 Refactored parse_token function 2023-07-01 04:43:52 +01:00
7e4d82888a Updated print_token function 2023-07-01 04:43:29 +01:00
2a4d573118 Add print_json function to traverse json tree and print all elements 2023-07-01 04:42:40 +01:00
f8d69310be Update debug config 2023-07-01 04:42:00 +01:00
Abdelrahman Said
e2c4e56fcd Updated the parser implementation 2023-06-30 01:16:33 +01:00
Abdelrahman Said
9a8bdcea02 Added pointers to beginning and end of collection 2023-06-30 01:16:10 +01:00
Abdelrahman Said
93e17c0c54 Updated debug config 2023-06-30 01:15:57 +01:00
96e9df0434 Parser test implementation 2023-06-28 23:36:52 +01:00
ce38afc59f Update json entities 2023-06-28 23:36:37 +01:00
202dc51a18 Update debug config 2023-06-28 23:36:16 +01:00
9c0ababd93 Update test files 2023-06-28 23:35:57 +01:00
b6d4a1f218 Ensure the functions declared in lexer.c are static 2023-06-28 21:44:04 +01:00
740d9b6566 Combine TK_TRUE and TK_FALSE into TK_BOOL 2023-06-28 21:43:35 +01:00
75b18d96ee Add extra test file 2023-06-28 21:42:42 +01:00
Abdelrahman Said
6d08b38058 Start exploring the parser 2023-06-28 20:50:54 +01:00
Abdelrahman Said
0a7e2f7f0c Rename json entities 2023-06-28 20:50:37 +01:00
14ad503d4d Updated json_entities 2023-06-27 23:16:26 +01:00
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