Commit Graph

243 Commits

Author SHA1 Message Date
beder
6d521ac74f Renamed ostream -> ostream_wrapper 2012-05-25 17:28:35 -05:00
beder
a1a4d28391 Merged emitter refactor from core 2012-05-23 15:30:03 -05:00
beder
7c235ea619 Removed key/value error checks (since we don't require asking them) 2012-05-22 16:57:30 -05:00
beder
401e19508d Added flow map, simple key/value 2012-05-22 16:36:07 -05:00
beder
e971c4f549 Split block map simple/long key for both key/value 2012-05-22 14:20:50 -05:00
beder
a11f1ce810 Added writing float/double 2012-05-22 13:59:31 -05:00
beder
d3be76c8fb Added writing integral types 2012-05-22 13:57:44 -05:00
beder
f830dc3fce Split the block map prepare into key/value 2012-05-22 12:56:40 -05:00
beder
b28d0ec08b Tweaked spacing for comments 2012-05-22 12:54:54 -05:00
beder
1b66ba7493 Fixed when we emit the doc start (only if there already is a document in the stream, and we're about to emit a new node) 2012-05-22 12:37:00 -05:00
beder
2555296de3 Added comments, not entirely correct 2012-05-22 12:29:36 -05:00
beder
72e57aeac2 Structured emitter node handling better 2012-05-21 21:57:25 -05:00
beder
e533e8801b Started prepare node 2012-05-21 17:06:12 -05:00
beder
8d10fa4efd Implemented begin/end doc 2012-05-21 16:54:45 -05:00
beder
db8d4a45f9 Removed old emitter state machine 2012-05-21 16:31:07 -05:00
beder
ff8a262c20 Updated from core 2012-05-19 15:40:30 -05:00
beder
97ebe38666 Removed stl node, which was from the old-api but never deleted 2012-05-19 15:37:39 -05:00
beder
5571029726 Copied all files from new-api branch of old repo 2012-05-19 15:34:02 -05:00
beder
c858643174 Removed old api exceptions 2012-05-19 01:32:10 -05:00
beder
58de8b9ae5 Removed traces of old-api Node 2012-05-19 01:19:03 -05:00
beder
c1e890df85 Removed old-api tests, added (empty) core spec tests 2012-05-19 01:16:54 -05:00
beder
a54fe9cea9 First pass at spearating out a 'core' library from the old api (default) branch 2012-05-19 01:04:43 -05:00
beder
83638d8891 Fixed warning about binary's shadowing members functions 2012-01-25 17:40:16 -06:00
beder
2eb3815ff5 Added operator >> overload for Binary 2012-01-21 02:01:37 -06:00
beder
ce08203cd7 Renamed the base64 methods, and switched the EncodeBase64 one to return a string (to make it easy to use elsewhere) 2012-01-21 01:33:49 -06:00
beder
c193d053a2 Refactored the base64 binary to its own space with a unified class that (will) be used for parsing (in addition to emitting) 2012-01-21 01:18:37 -06:00
beder
d63b213aef Added back yaml.h (since it used to be generated) 2012-01-21 00:08:35 -06:00
beder
005ea5fc68 Put all the old-api stuff back in the main folder, for simplicity 2012-01-20 23:55:39 -06:00
beder
45962234a1 Removed the new API from the default branch 2012-01-20 23:50:39 -06:00
beder
454afa64dd Fixed double -> int conversion (now throws) for old API 2012-01-12 23:52:51 -06:00
beder
9bb3cf4915 Updated new API conversion to handle nan/inf and to throw when the conversion didn't use the entire string (e.g., parsing 1.2 as an integer) 2012-01-12 23:49:05 -06:00
beder
f468101ebb Added default parameters for the as<> function (new API) 2012-01-12 01:03:31 -06:00
beder
414f28518b Added LoadFile and LoadAllFromFile (new API) 2012-01-11 21:31:01 -06:00
beder
4abe207421 Fixed signed/unsigned mismatch with the new precision code 2012-01-11 16:50:06 -06:00
beder
64b2491a79 Added float/double precision setters 2012-01-11 14:34:04 -06:00
beder
8d087aa148 Added explicit conversion from an iterator value to a Node. This conversion was always allowed (since the iterator value is derived from Node, but since Node has a templated constructor, that would take precedence over the derived-to-base conversion. This didn't seem to be a problem in gcc or clang, but MSVC seems to have trouble. (new API) 2012-01-11 13:58:18 -06:00
beder
63ef6c42d1 Fixed compiler error in iterator_base friend forward declaration in node on clang (and I hope MSVC), plus warnings on clang 2012-01-07 01:42:21 -06:00
beder
12ed4698bf Fixed assignment with an empty node (new API) - a segfault that only showed up in debuggable 2011-12-20 22:19:54 -06:00
beder
65855fa149 Added overload for emitting unsigned char 2011-11-14 17:00:28 -06:00
beder
0d12b0ac1f Added single character emitting 2011-11-14 16:23:14 -06:00
beder
5f942b9f6b Added (unspecified-type) bool conversions for Node (new API) 2011-11-13 16:05:42 -06:00
beder
368c70554f Set the default operator >> to not compile unless there is a scalar conversion, so it doesn't interfere with user-defined types 2011-11-01 17:19:03 -05:00
beder
7e96c0d948 Fixed broken includes when using the old api 2011-10-18 15:13:10 -05:00
beder
8fd4bc3d99 Fixed the #ifdefs for the api stuff 2011-10-18 14:47:35 -05:00
beder
c725f0b953 Couldn't get the copy command to work for yaml.h, so switched to configure_file 2011-10-18 14:43:48 -05:00
beder
8b6818d1de Split the yaml.h file into new/old API, which we'll then copy to yaml.h at build time (so the right one gets installed) 2011-10-18 00:16:51 -05:00
beder
c8d4f3237b Added bool conversions 2011-09-14 01:48:36 -05:00
beder
cabe5fdef8 Added Dump() 2011-09-13 14:49:00 -05:00
beder
fbf4233e4d Switched YAML::Parse to YAML::Load, and added LoadAll 2011-09-13 14:24:47 -05:00
beder
03ba10e880 Added IsNull, IsScalar, IsSequence, IsMap functions, so you don't have to query Type() 2011-09-13 14:10:27 -05:00
beder
912113ed68 Added tags to Node 2011-09-13 14:00:47 -05:00
beder
4e5d49910b Added a convert<> specialization for YAML::_Null (so you can say node[YAML::Null]) 2011-09-13 02:03:56 -05:00
beder
ad9f7d6782 Switched Node::operator=(const Node&) to *not* force itself to create its node first (since we're just assigning them) 2011-09-12 22:05:43 -05:00
beder
d293cfd992 Switched the node_ref to *always* create its data (since now the Node itself doesn't always create itself) 2011-09-12 22:03:11 -05:00
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