109 Commits

Author SHA1 Message Date
Andrea Marco Sartori
c37c2db5c2 Make configuration optional 2023-01-19 19:52:34 +10:00
Andrea Marco Sartori
61f2102302 Refine decoders 2023-01-19 19:16:02 +10:00
Andrea Marco Sartori
47b2e4cfaf Implement the simdjson decoder 2023-01-19 00:01:20 +10:00
Andrea Marco Sartori
5308163097 Pass JSON Parser instance to the traverse callback 2023-01-16 17:00:21 +10:00
Andrea Marco Sartori
bdb20ff836 Traverse the parser via method chaining 2023-01-14 13:12:49 +10:00
Andrea Marco Sartori
3bc9eab5b0 Improve static analysis 2023-01-14 10:31:18 +10:00
Andrea Marco Sartori
45ed8e9650 Refine callable pointers 2023-01-13 23:57:12 +10:00
Andrea Marco Sartori
6b0ea331fc Add PSR-7 requests to supported sources 2023-01-12 21:13:00 +10:00
Andrea Marco Sartori
114514291e Keep conditions on one line 2023-01-12 21:11:12 +10:00
Andrea Marco Sartori
1ec714ab62 Check callable pointer by Closure 2023-01-11 15:58:01 +10:00
Andrea Marco Sartori
bda12c1f89 Introduce callable pointers 2023-01-11 15:35:58 +10:00
Andrea Marco Sartori
3a3618a13f Turn Tokenizer into singleton 2022-12-29 23:50:07 +10:00
Andrea Marco Sartori
8b39422123 Turn abstract exception into an interface 2022-12-29 23:34:23 +10:00
Andrea Marco Sartori
4df6056671 Update code to reach PHPStan max level 2022-12-29 22:07:08 +10:00
Andrea Marco Sartori
20a20ca2dd Define generics for class-string 2022-12-24 12:23:23 +10:00
Andrea Marco Sartori
81199371c8 Move logic to pointer 2022-12-24 12:03:55 +10:00
Andrea Marco Sartori
e8d5099602 Anticipate faster condition 2022-12-24 11:26:38 +10:00
Andrea Marco Sartori
e1450733d1 Match pointer before buffering the token 2022-12-21 19:29:54 +10:00
Andrea Marco Sartori
e2a28ba93d Leverage strict comparison 2022-12-21 19:28:54 +10:00
Andrea Marco Sartori
1f34de5e2b Mark pointer as found 2022-12-21 19:28:38 +10:00
Andrea Marco Sartori
b914eb7cc1 Configure empty-string pointer as default pointer 2022-12-08 22:00:22 +10:00
Andrea Marco Sartori
66229aeea4 Allow setting an empty-string pointer 2022-12-08 21:52:28 +10:00
Andrea Marco Sartori
00c0bf4a0b Rename decoder 2022-12-03 21:23:51 +10:00
Andrea Marco Sartori
77408fec20 Improve types in docblocks 2022-12-03 21:21:44 +10:00
Andrea Marco Sartori
1eb1a56164 Remove obsolete methods 2022-12-03 21:21:14 +10:00
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
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
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