Commit Graph

207 Commits

Author SHA1 Message Date
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
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
beder
33b630dc71 Sketched out interface for YAML::Value 2011-09-06 01:43:15 -05:00
beder
2e59a9d721 Switched YAML::Binary interface to use unsigned chars, not chars 2011-09-06 00:39:31 -05:00
beder
ed4431d584 Added overload for operator [] for char * (non-const version) 2011-09-06 00:32:53 -05:00
beder
bf3d1f00c8 Switched the 'pragma once' to only happen on MSVC, or gcc >= 3.4 (it was causing trouble on the sun compiler) 2011-09-06 00:16:03 -05:00
jbeder
d7a8e41338 Removed ATOMIC_TYPE, an old enum that wasn't used any more 2011-08-22 21:37:51 +00:00
jbeder
bd60bdb227 Fixed negative infinity parsing 2011-07-10 18:29:44 +00:00
jbeder
207b719966 Added parsing .inf and .nan (and friend) 2011-07-10 16:27:40 +00:00
jbeder
4b522aaf4c Added emitting std::set (and refactored the stl emitters a bit) 2011-05-18 21:07:25 +00:00
jbeder
ad63662bd9 Fixed mixed line endings 2011-03-17 02:04:34 +00:00
jbeder
88b9ea7067 Marked Parser, Emitter, Node, Iterator, Mark, and Null for exporting to a DLL. It appears to work properly, although VS gives me lots of warning C4251 since I didn't export all data members of each of the above classes.
It seems that it's not necessary to export those members (as long as you can't access them), and most of them are STL instances, which apparently cause lots of problems for DLLs. (For example, you simply can't export instances of std::map; see http://support.microsoft.com/kb/168958.)
2011-03-16 02:31:30 +00:00
jbeder
afa6cf2b68 Removed comparison/implicit conversion operators for Node, and renamed Node::Read<T>() to Node::to<T>() 2011-03-15 05:49:56 +00:00
jbeder
a19be21c60 Added explicit doc start/end tokens for the emitter, and set it so that if you try to write after you've already written a full doc, it writes a doc start and continues 2011-03-03 09:26:12 +00:00
jbeder
8186058a7f Set the precision of emitting float/double to 15 2011-03-03 02:38:35 +00:00
jbeder
1f3cf8639a Merged r444:449 from the node refactoring branch to the trunk 2011-03-03 00:19:26 +00:00
jbeder
067bd9866f Refactored bool emitting to make it 1) correct for the short bool form and 2) not barf on early versions of VS 2011-03-02 20:55:05 +00:00
jbeder
cd80b759c8 Included 'mark.h' in the graphbuilder so that its method for removing the unused param warning (casting to void) compiles on VS 2011-03-02 20:30:54 +00:00
jbeder
e227456982 Flipped the include guard and the pragma, and don't use the pragma for early versions of gcc (< 3.4) 2011-03-02 06:11:41 +00:00
jbeder
3fc93080f3 Fixed 'long long' error in VS 2002, issue 90 2011-03-02 05:15:36 +00:00
jbeder
faeb0425d8 Merged contrib folders from the graphbuilder-api branch, including the recursive search in CMakeLists.txt 2011-03-02 04:48:04 +00:00
jbeder
9a1ffcad7c Switched exception constants to const char * const (from const std::string) so we don't have to construct them all in every translation unit, and switched the exception class to derive from std::runtime_error (so it handles what() for us) 2011-03-02 04:12:57 +00:00
jbeder
d2e6c81a78 Added long long types to the emitter 2010-11-15 01:46:33 +00:00
jbeder
2410cc6e9e Refactored tags so we can emit secondary tags (and named local tags) 2010-10-28 23:06:16 +00:00
jbeder
b44e529d75 Implemented binary emitting without the binary tag 2010-10-28 21:53:54 +00:00
jbeder
48e70e464a Added more tests for the newline, and disallowed newlines after implicit block keys 2010-10-22 03:53:33 +00:00
jbeder
467eb4931b Added YAML::Newline manipulator for the emitter 2010-10-21 22:02:29 +00:00
jbeder
2a46b5d0eb Merged the other-tags branch into the trunk (this wasn't an rX:Y merge, since the branch wasn't branched directly from the head of the trunk) 2010-10-19 06:46:55 +00:00
jbeder
f78892ee4d Made emitter noncopyable, which should fix any auto_ptr warnings 2010-10-18 07:24:42 +00:00
jbeder
1b5dda963a Fixed the rest of the includes to explicitly state yaml-cpp/ 2010-10-18 07:22:53 +00:00
jbeder
3aafbdac96 Moved all the includes to a subfolder yaml-cpp so they don't interfere with other libraries' includes 2010-10-18 07:05:53 +00:00
jbeder
3ffcfb3a83 Merged r366:387 from the jbeder-event-api branch 2010-10-18 06:45:03 +00:00
jbeder
264c0c67c3 Added overloads for parsing stl maps and vectors 2010-03-15 04:25:17 +00:00
jbeder
514d0a90e9 Set alias nodes to return the tag of their anchor 2010-03-15 04:10:36 +00:00