Commit Graph
21 Commits
Author SHA1 Message Date
Eric Fischer e22b154ecc Add an input form that parses JSON from a string 2014-02-06 19:27:21 -08:00
Eric Fischer ed079e37a9 Add a reader abstraction 2014-02-06 19:22:37 -08:00
Eric Fischer 979b9243d8 A container object makes the state transitions more straightforward
And should make it possible to free an object that has just been read
and still know what the next state will be, importantly.
2014-02-06 18:56:22 -08:00
Eric Fischer 55510cac04 Start adding free logic 2014-02-06 17:58:23 -08:00
Eric Fischer e9d2c94f93 Pass along the string length instead of just null-terminating 2014-02-06 13:28:35 -08:00
Eric Fischer 1a7b4189bf Detect a lack of digits in the exponent for a number 2014-02-06 13:26:56 -08:00
Eric Fischer 55692cb27c Treat unclosed containers at EOF as an error after all 2014-02-06 13:20:56 -08:00
Eric Fischer 6449e817b6 Detect attempts to attach an element to a non-container parent.
Maybe there is a better name for this. The typical case is adjacent
tokens not separated by a comma.
2014-02-06 12:51:32 -08:00
Eric Fischer ad2843d65b Be consistent about EOF handling around whitespace 2014-02-06 12:31:12 -08:00
Eric Fischer f76bcab825 Detect misplaced comma within hash 2014-02-06 12:25:59 -08:00
Eric Fischer 948584126a Detect trailing commas and colons inside arrays and hashes. 2014-02-06 12:19:33 -08:00
Eric Fischer 42283ece0b More sensible way of passing errors back to caller 2014-02-06 12:13:23 -08:00
Eric Fischer f8465828e5 Maybe the right way to handle empty arrays?
The previous check for the array length being 0 didn't work
for the case of an array that contains only an empty array.

The tricky part is that the current node is the array when
the array has just begun or just after a comma, but also
when the completed array has been passed off to the caller.
2014-02-06 00:30:25 -08:00
Eric Fischer 68e0784cc3 At least don't talk about allocation sizes in the public API 2014-02-05 23:35:35 -08:00
Eric Fischer d630aa917e Put arrays in order by getting rid of the linked lists.
Resizing is ugly, but less ugly than backwards arrays.
2014-02-05 23:18:27 -08:00
Eric Fischer 9299ef2ecb Handle empty arrays and hashes. Detect non-string hash keys. 2014-02-05 22:13:03 -08:00
Eric Fischer 264abd48de Fix crash with comma or colon at the top level. 2014-02-05 21:52:39 -08:00
Eric Fischer e7184989ec Handle \u escapes in strings 2014-02-05 21:42:49 -08:00
Eric Fischer 4506a85e6b Add comments 2014-02-05 21:34:17 -08:00
Eric Fischer 95410dbf33 Fix logic error that broke top-level hashes 2014-02-05 21:29:40 -08:00
Eric Fischer 7983c66add Separate source and header files 2014-02-05 21:27:48 -08:00