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