Commit Graph

139 Commits

Author SHA1 Message Date
beder
d5d13ba327 Set the pimpl node in Node to be optional, so we don't create unnecessary guys every time you call Node tmp = foo[value]; 2011-09-12 21:59:47 -05:00
beder
f0ad35ccaf Implemented std::map decode (and fixed bug in the Node iterator - the reference_type should be just a plain value, since it's created on-the-fly) 2011-09-12 00:29:39 -05:00
beder
6f34e8972b Added reading/writing std::list 2011-09-11 23:18:19 -05:00
beder
3c6530f4f5 Added reading/writing std::vector 2011-09-11 23:14:52 -05:00
beder
0d8abd563a Removed the (unimplemented) operator <, and added operator == (in place of is()) for nodes 2011-09-11 22:56:04 -05:00
beder
d22c547d7e Added mutable operator[] for integral types (you can only grow the sequence if you specify the *next* element) 2011-09-11 22:51:49 -05:00
beder
1b8535c52e Implemented operator[] specialization, but only const (should the sequence be mutable?) 2011-09-11 21:51:04 -05:00
beder
e3491a5ad8 Started specialization for operator[] for integers 2011-09-11 21:32:47 -05:00
beder
02d73a8d40 Set the map iterator to filter over undefined items 2011-09-11 19:44:27 -05:00
beder
01f3c7342c Implemented the map size computation 2011-09-11 17:16:26 -05:00
beder
3f0796bef1 Switched the implementation of maps from list<pair> to map (but just pointer comparison) 2011-09-11 16:56:38 -05:00
beder
8efde57f3f Added computing and caching the sequence size 2011-09-11 16:21:36 -05:00
beder
40c6e63ec3 Added dependency management (to cause nodes to become defined if their children do) 2011-09-11 15:59:53 -05:00
beder
8bc95ce0ce Fixed up the old API stuff, and removed the util/value (since it's no longer needed) 2011-09-10 23:11:28 -05:00
beder
ad817d94fd Fixed minor things that used the old API, compiles/links/runs\! 2011-09-10 22:59:27 -05:00
beder
9388bbd098 Major switch from Value -> Node. The library compiles with the new API, but tests are still oldies, and don't compile 2011-09-10 17:57:23 -05:00
beder
f806a4ec98 Start of moving Value -> Node and Node -> old API Node (with a #define toggle) 2011-09-10 17:18:15 -05:00
beder
2adb8e2b59 Added helper emitter functions, but we have a problem: YAML::Value is already a manipulator 2011-09-10 16:50:44 -05:00
beder
dd2099cacf Fixed node iterator 2011-09-10 14:36:10 -05:00
beder
48f73def9e New iterators work\! 2011-09-10 14:16:50 -05:00
beder
9bd46b6cd0 Updated the node/value classes with the new iterators, they compile until we try to instantiate anything 2011-09-10 14:11:42 -05:00
beder
6fd3ee75b0 Finished the main iterator stuff, now have to hook it to the nodes/values 2011-09-10 14:06:49 -05:00
beder
c2f37961d3 Halfway towards factoring out a node_iterator, and then building iterator on top of it 2011-09-10 13:20:22 -05:00
beder
dc52117083 Started emitting events for Values 2011-09-10 12:42:42 -05:00
beder
ca58193832 Implemented sugar Parse() functions 2011-09-09 23:40:19 -05:00
beder
20c6bd516d Implemented (untested) the value builder 2011-09-09 23:28:21 -05:00
beder
91701f31a6 Sequence iterator works\! 2011-09-09 19:22:17 -05:00
beder
1aa7125ba1 Switched iterators to typedef's, with a bit of finagling so we can forward-declare them 2011-09-09 19:07:37 -05:00
beder
74b6de85b8 Base iterator stuff compiles :) 2011-09-09 18:46:37 -05:00
beder
df6a7eb91d Started writing new iterators 2011-09-09 16:17:59 -05:00
beder
56ee6e370a Made the 'data' member optional in node_ref - it's only created on-demand, so we don't waste extra memory every time we do Value tmp = v; 2011-09-09 14:26:55 -05:00
beder
effbfd26b8 Switched value = otherValue to assign the actual nodes after setting the reference (so that tmp = foo['bar']; tmp = other; is the same as foo['bar'] = other;) 2011-09-09 14:02:18 -05:00
beder
804cdb9364 Added append() 2011-09-09 02:51:35 -05:00
beder
27616e65cd Switched memory to using shared nodes, and node_data to keep only naked node pointers, not shared nodes (to break the cycle, and we don't need weak pointers because their memory is guaranteed to exist, via 'memory') 2011-09-09 02:29:17 -05:00
beder
570f97d303 Added half of the std::map conversion (we don't have reading from Values yet) 2011-09-08 02:10:04 -05:00
beder
5e58d778db Added back the streamable conversions 2011-09-08 02:05:03 -05:00
beder
43058e86a4 Switched convert to a templated struct that can be specialized (so we can partially specialize it) 2011-09-08 02:02:15 -05:00
beder
b9ad65a739 Implemented conversion for std::string, including a bypass-accessor to the scalar value 2011-09-07 15:49:01 -05:00
beder
5349dfa31c Set the 'memory' to only store node_refs, not nodes 2011-09-07 14:56:04 -05:00
beder
907868b67d Implemented is() 2011-09-07 14:46:25 -05:00
beder
81097ebbc0 Added (another) layer - now 'node_ref' is between node and node_data, and it decrees whether nodes are identical 2011-09-07 14:44:18 -05:00
beder
9add3a5947 Implemented map get(), and it would work (I think) if we implemented convert() for strings 2011-09-07 03:36:50 -05:00
beder
9ac003cb61 Set up map searching by templated key 2011-09-07 03:21:24 -05:00
beder
563b789cfb Reorganized so that we don't have cyclic include problems 2011-09-07 02:59:58 -05:00
beder
e6ca3f3e69 Implemented map access by already-existing node 2011-09-07 02:39:59 -05:00
beder
327ad93dc6 Started implementing node_data 2011-09-07 00:45:28 -05:00
beder
5ec459c31d Compiles/links assignment to string 2011-09-07 00:20:23 -05:00
beder
33a1d25c73 Value stuff compiles/links with lots of placeholder functions 2011-09-07 00:12:24 -05:00
beder
659e8207a0 Sketched more of the implementation 2011-09-06 23:11:38 -05:00
beder
f027c5a0ba Moved the value header to its own subfolder 2011-09-06 16:06:46 -05:00