Eric Fischer
e82edb90a3
Most of the way toward serializing the drawing operations
2014-09-16 13:51:22 -07:00
Eric Fischer
33747bdfd8
Project to web mercator and calculate bounding box
2014-09-16 11:16:51 -07:00
Eric Fischer
ff5b632cf5
MultiPoints are all movetos, no linetos
2014-09-15 17:57:16 -07:00
Eric Fischer
1dcfca9d51
Get closer to vector format
2014-09-15 17:33:54 -07:00
Eric Fischer
f54af30a40
Parse nested geometry
2014-09-15 16:32:06 -07:00
Eric Fischer
3d43c5afbd
Flatten out error-handling so it isn't nested so deeply
2014-09-15 15:47:06 -07:00
Eric Fischer
efa3995d94
Clean up meta naming a little
2014-09-15 15:30:03 -07:00
Eric Fischer
0ee8d877ca
Add stub main() for testing
2014-09-15 15:27:35 -07:00
Eric Fischer
567d57b864
Remove unneeded datamaps stuff
2014-09-15 15:18:08 -07:00
Eric Fischer
e61898b46e
Start of GeoJSON from datamaps v2
2014-09-15 15:02:33 -07:00
Eric Fischer
73cf86acdb
Preserve the original string representation of numbers too.
...
Not always useful, but sometimes it will be.
2014-02-26 17:01:30 -08:00
Eric Fischer
0509a860fb
Make it an actual library
2014-02-21 16:55:36 -08:00
Eric Fischer
18e90522cb
Remember return value from main()
2014-02-19 17:11:56 -08:00
Eric Fischer
ad4016635c
Document the test program
2014-02-08 10:45:25 -08:00
Eric Fischer
bb33b45ece
Clarify about reading trees
2014-02-08 10:35:48 -08:00
Eric Fischer
559eb8831d
Add license
2014-02-08 10:33:57 -08:00
Eric Fischer
3bd062516d
Remove debug #include
2014-02-08 10:32:04 -08:00
Eric Fischer
b09634f4f8
More cleanup after errors. Command line options for the reader styles.
2014-02-08 10:28:52 -08:00
Eric Fischer
a2fd84c0a3
Fix more memory leaks
2014-02-08 10:21:53 -08:00
Eric Fischer
b6f079fea8
Additional rationale
2014-02-08 10:10:55 -08:00
Eric Fischer
c6077f7e54
Fix memory leaks from errors while reading strings or numbers
2014-02-08 10:04:23 -08:00
Eric Fischer
391db023e0
Talk about error cleanup in README
2014-02-08 09:57:55 -08:00
Eric Fischer
5a01013642
Make sure the root pointer is null for errors at the top level
2014-02-08 09:41:49 -08:00
Eric Fischer
b72bb6f1f4
Clean up after errors and fix related bugs:
...
It was freeing the wrong object when there was an error
attaching an object to its parent!
Don't crash when printing null (partially read) hash values.
2014-02-08 09:31:49 -08:00
Eric Fischer
5e6fa6f8dc
Remember to deallocate the parser
2014-02-08 00:42:28 -08:00
Eric Fischer
54f637a9a8
More documentation of object internals
2014-02-07 18:11:36 -08:00
Eric Fischer
9d31e8a05e
Slightly less wordy name for reading JSON with separators
2014-02-07 18:01:18 -08:00
Eric Fischer
39f9ff3f04
Make streaming formatting consistent
2014-02-07 17:14:39 -08:00
Eric Fischer
9979c70b1f
Add the whole-tree reader
2014-02-07 17:02:33 -08:00
Eric Fischer
0fd66048c8
Get rid of root node to simplify. Walk the tree if you need it.
2014-02-07 16:56:38 -08:00
Eric Fischer
e99c037be3
Add header dependency
2014-02-07 16:53:02 -08:00
Eric Fischer
1cbf8a813e
Match documented function names
2014-02-07 16:49:52 -08:00
Eric Fischer
45049fb874
More documentation
2014-02-07 16:48:06 -08:00
Eric Fischer
8278580336
Begin README
2014-02-07 16:25:54 -08:00
Eric Fischer
a7e26262ea
Expose interface for arbitrary reader functions
2014-02-07 16:23:03 -08:00
Eric Fischer
4a14e09457
Clarify what types are used where
2014-02-07 16:09:05 -08:00
Eric Fischer
fee27e1353
Add a callback interface for non-closing punctuation
2014-02-07 15:51:46 -08:00
Eric Fischer
f67e97cd08
Work out more details of how json_free() needs to work.
...
The idea is that you can free any element once you are
done with it, even if it is part of an array or hash that
isn't completely read yet.
Removing array elements is reasonably well defined because
nothing else depends on them. Removing a hash key or value
causes it to be replaced by a null unless the other side of
the component has already been nulled out, in which case
the whole pair is removed.
2014-02-06 22:45:40 -08:00
Eric Fischer
f0f73c6dd1
Keep track of the root of the parse tree for the caller
2014-02-06 21:06:27 -08:00
Eric Fischer
415193ad8e
Remove old state resetting
2014-02-06 21:05:46 -08:00
Eric Fischer
69a5ca0bb9
Include filename in error output
2014-02-06 20:51:15 -08:00
Eric Fischer
9d4ee102b4
Forgot to initialize the error to NULL
2014-02-06 20:49:48 -08:00
Eric Fischer
a74444af28
Track line number for error reports
2014-02-06 20:44:39 -08:00
Eric Fischer
46120e84c4
Remember to check for missing commas
2014-02-06 20:31:31 -08:00
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