200 Commits

Author SHA1 Message Date
Andrea Marco Sartori
78a041a56a Remove custom sources registration 2022-12-03 21:03:39 +10:00
Andrea Marco Sartori
cc1d3f18e7 Access reference tokens instead of the pointer 2022-12-03 20:51:23 +10:00
Andrea Marco Sartori
ed1def1572 Rename codes 2022-12-03 20:41:54 +10:00
Andrea Marco Sartori
b92193cda9 Rename decoder 2022-12-03 20:32:57 +10:00
Andrea Marco Sartori
54b19eb70b Iterate through the original tree 2022-12-03 20:29:47 +10:00
Andrea Marco Sartori
ab8c10c05d Centralize state mutation logic 2022-12-03 20:27:45 +10:00
Andrea Marco Sartori
a758cf570b Rename decoder 2022-12-03 19:04:21 +10:00
Andrea Marco Sartori
5e2ee11d5a Simplify parser by delegating extra responsibilities 2022-12-03 18:11:22 +10:00
Andrea Marco Sartori
ce66f8cef2 Move logic to handle decoding errors 2022-12-03 16:37:09 +10:00
Andrea Marco Sartori
cc9f4a1725 Rename source 2022-12-03 16:24:40 +10:00
Andrea Marco Sartori
419ced2621 Add being in root to conditions to buffer a token 2022-12-03 13:51:04 +10:00
Andrea Marco Sartori
690fb2c0bc Move logic to traverse a key to the string token 2022-12-03 13:49:55 +10:00
Andrea Marco Sartori
72c61d55cb Simplify logic to check whether to buffer a token 2022-12-03 13:36:47 +10:00
Andrea Marco Sartori
1d7d65b051 Improve expectations 2022-12-03 13:34:13 +10:00
Andrea Marco Sartori
d4b8b5037b Traverse key before buffering token 2022-12-02 22:27:49 +10:00
Andrea Marco Sartori
fa4e71f111 Move logic to traverse a key to the string token 2022-12-02 21:05:55 +10:00
Andrea Marco Sartori
262713b9c3 No need for methods chaining 2022-11-30 01:12:31 +10:00
Andrea Marco Sartori
cfaf87e554 Move logic to flag that the tree did not change 2022-11-30 00:52:07 +10:00
Andrea Marco Sartori
27d1e3f9af Method chaining not needed 2022-11-30 00:50:04 +10:00
Andrea Marco Sartori
36f8325604 Rename method 2022-11-30 00:38:07 +10:00
Andrea Marco Sartori
e81f3594fa Extend logic to mutate the state when needed 2022-11-29 21:06:49 +10:00
Andrea Marco Sartori
f36a3fb443 Add more use cases 2022-11-28 20:56:30 +10:00
Andrea Marco Sartori
da5df48779 Improve reference tokens transformation 2022-11-28 20:55:25 +10:00
Andrea Marco Sartori
979fdae4ae Replace null pointer 2022-11-28 20:54:43 +10:00
Andrea Marco Sartori
c57a4782c4 Add escaping logic 2022-11-28 20:52:36 +10:00
Andrea Marco Sartori
2d9292a039 Throw exception on invalid pointer 2022-11-21 00:36:08 +10:00
Andrea Marco Sartori
dea8a49af5 Introduce exception codes 2022-11-21 00:35:13 +10:00
Andrea Marco Sartori
76aa756453 Create test for pointers 2022-11-17 23:54:18 +10:00
Andrea Marco Sartori
bb3baca8f5 Update parsing expectation 2022-11-17 23:53:54 +10:00
Andrea Marco Sartori
da7b20e489 Add dataset for single pointers 2022-11-17 23:52:34 +10:00
Andrea Marco Sartori
3e9da676ce Fix logic to check if a token should be buffered 2022-11-17 23:51:49 +10:00
Andrea Marco Sartori
bf1ef5cad7 Define logic to mutate the state inside tokens 2022-11-17 23:49:26 +10:00
Andrea Marco Sartori
acde9f4572 Reduce number of token instances 2022-11-14 18:44:48 +10:00
Andrea Marco Sartori
91d89c7209 Rename fixtures 2022-11-14 18:43:01 +10:00
Andrea Marco Sartori
8197d9b77b Rename node to key 2022-11-13 17:10:31 +10:00
Andrea Marco Sartori
183c8ba982 Move JSON fixtures 2022-11-13 17:08:57 +10:00
Andrea Marco Sartori
1852148343 Remove implicit requirement 2022-11-11 17:03:29 +10:00
Andrea Marco Sartori
ab11f4e416 Add factory method to parser 2022-11-10 21:45:56 +10:00
Andrea Marco Sartori
a5146b2ef6 Add checks for unicode characters 2022-11-08 22:09:06 +10:00
Andrea Marco Sartori
1d85f387d7 Update description 2022-11-08 22:03:45 +10:00
Andrea Marco Sartori
255b5633c8 Rename method 2022-11-08 00:17:17 +10:00
Andrea Marco Sartori
78c8531879 Create tests 2022-11-07 23:45:07 +10:00
Andrea Marco Sartori
61522f9561 Fix parsing issues 2022-11-07 23:44:57 +10:00
Andrea Marco Sartori
58a77ffb85 Move yielding logic to main method to read array keys properly 2022-11-06 01:08:25 +10:00
Andrea Marco Sartori
f08fff6f54 Handle unset keys 2022-11-06 01:06:49 +10:00
Andrea Marco Sartori
c32080c344 Add method to check whether JSON root is traversed 2022-11-06 01:06:25 +10:00
Andrea Marco Sartori
870e83cd39 Define method to register sources statically 2022-11-06 01:05:00 +10:00
Andrea Marco Sartori
2de167e29b Fix token type 2022-11-06 01:03:21 +10:00
Andrea Marco Sartori
87a99785b3 Add support for custom sources 2022-11-06 01:03:03 +10:00
Andrea Marco Sartori
2472101670 Extract tokenization logic 2022-11-06 01:02:09 +10:00