Jesse Beder
e145488547
Added back yaml.h (since it used to be generated)
2012-01-21 00:08:35 -06:00
Jesse Beder
b688c93050
Put all the old-api stuff back in the main folder, for simplicity
2012-01-20 23:55:39 -06:00
Jesse Beder
1723523c43
Removed the new API from the default branch
2012-01-20 23:50:39 -06:00
Jesse Beder
fb0802097c
Fixed double -> int conversion (now throws) for old API
2012-01-12 23:52:51 -06:00
Jesse Beder
643ea61a98
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
Jesse Beder
d1e4c2640c
Added default parameters for the as<> function (new API)
2012-01-12 01:03:31 -06:00
Jesse Beder
ddc578dbd7
Added LoadFile and LoadAllFromFile (new API)
2012-01-11 21:31:01 -06:00
Jesse Beder
7ace0e93d2
Fixed signed/unsigned mismatch with the new precision code
2012-01-11 16:50:06 -06:00
Jesse Beder
5024caa69c
Added float/double precision setters
2012-01-11 14:34:04 -06:00
Jesse Beder
21ed2b5817
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
Jesse Beder
5b32d89222
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
Jesse Beder
812a2dc684
Fixed assignment with an empty node (new API) - a segfault that only showed up in debuggable
2011-12-20 22:19:54 -06:00
Jesse Beder
add460947b
Added overload for emitting unsigned char
2011-11-14 17:00:28 -06:00
Jesse Beder
3099d51ba4
Added single character emitting
2011-11-14 16:23:14 -06:00
Jesse Beder
5abfbf5aac
Added (unspecified-type) bool conversions for Node (new API)
2011-11-13 16:05:42 -06:00
Jesse Beder
d78d16532a
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
Jesse Beder
c953ce0b07
Fixed broken includes when using the old api
2011-10-18 15:13:10 -05:00
Jesse Beder
70e1eb3f9c
Fixed the #ifdefs for the api stuff
2011-10-18 14:47:35 -05:00
Jesse Beder
77cc54585f
Couldn't get the copy command to work for yaml.h, so switched to configure_file
2011-10-18 14:43:48 -05:00
Jesse Beder
e69f51ee16
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
Jesse Beder
f64f619c29
Added bool conversions
2011-09-14 01:48:36 -05:00
Jesse Beder
e5d0366797
Added Dump()
2011-09-13 14:49:00 -05:00
Jesse Beder
e3d5ec189d
Switched YAML::Parse to YAML::Load, and added LoadAll
2011-09-13 14:24:47 -05:00
Jesse Beder
3a88c4b4a1
Added IsNull, IsScalar, IsSequence, IsMap functions, so you don't have to query Type()
2011-09-13 14:10:27 -05:00
Jesse Beder
0987b234c3
Added tags to Node
2011-09-13 14:00:47 -05:00
Jesse Beder
2dfccbb945
Added a convert<> specialization for YAML::_Null (so you can say node[YAML::Null])
2011-09-13 02:03:56 -05:00
Jesse Beder
a8f82af604
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
Jesse Beder
0c321a6dc6
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
Jesse Beder
08b3ddfd3e
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
Jesse Beder
5397a93702
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
Jesse Beder
b9583dde76
Added reading/writing std::list
2011-09-11 23:18:19 -05:00
Jesse Beder
f22f38f7f2
Added reading/writing std::vector
2011-09-11 23:14:52 -05:00
Jesse Beder
9e62bf8349
Removed the (unimplemented) operator <, and added operator == (in place of is()) for nodes
2011-09-11 22:56:04 -05:00
Jesse Beder
f9d826c22a
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
Jesse Beder
4770ec798c
Implemented operator[] specialization, but only const (should the sequence be mutable?)
2011-09-11 21:51:04 -05:00
Jesse Beder
4568dd0b19
Started specialization for operator[] for integers
2011-09-11 21:32:47 -05:00
Jesse Beder
a308b73e8a
Set the map iterator to filter over undefined items
2011-09-11 19:44:27 -05:00
Jesse Beder
a03af5dd73
Implemented the map size computation
2011-09-11 17:16:26 -05:00
Jesse Beder
b50264e74d
Switched the implementation of maps from list<pair> to map (but just pointer comparison)
2011-09-11 16:56:38 -05:00
Jesse Beder
ecdd9cc66d
Added computing and caching the sequence size
2011-09-11 16:21:36 -05:00
Jesse Beder
2d81e46655
Added dependency management (to cause nodes to become defined if their children do)
2011-09-11 15:59:53 -05:00
Jesse Beder
2d06df474b
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
Jesse Beder
80cf3c98db
Fixed minor things that used the old API, compiles/links/runs\!
2011-09-10 22:59:27 -05:00
Jesse Beder
0d1b5224c8
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
Jesse Beder
ac81d7c883
Start of moving Value -> Node and Node -> old API Node (with a #define toggle)
2011-09-10 17:18:15 -05:00
Jesse Beder
78b7a1b8a9
Added helper emitter functions, but we have a problem: YAML::Value is already a manipulator
2011-09-10 16:50:44 -05:00
Jesse Beder
5012063143
Fixed node iterator
2011-09-10 14:36:10 -05:00
Jesse Beder
c3b0ba9d61
New iterators work\!
2011-09-10 14:16:50 -05:00
Jesse Beder
4fdbb748ec
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
Jesse Beder
b1730ea3da
Finished the main iterator stuff, now have to hook it to the nodes/values
2011-09-10 14:06:49 -05:00
Jesse Beder
3865d37bc7
Halfway towards factoring out a node_iterator, and then building iterator on top of it
2011-09-10 13:20:22 -05:00
Jesse Beder
f5a9d4c8e3
Started emitting events for Values
2011-09-10 12:42:42 -05:00
Jesse Beder
09beb5c47a
Implemented sugar Parse() functions
2011-09-09 23:40:19 -05:00
Jesse Beder
6e03bebeb0
Implemented (untested) the value builder
2011-09-09 23:28:21 -05:00
Jesse Beder
cf198080d0
Sequence iterator works\!
2011-09-09 19:22:17 -05:00
Jesse Beder
190a556756
Switched iterators to typedef's, with a bit of finagling so we can forward-declare them
2011-09-09 19:07:37 -05:00
Jesse Beder
9aa3eb56f2
Base iterator stuff compiles :)
2011-09-09 18:46:37 -05:00
Jesse Beder
ff1a8fc59a
Started writing new iterators
2011-09-09 16:17:59 -05:00
Jesse Beder
7bbf712c36
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
Jesse Beder
9b985c5ce2
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
Jesse Beder
d3bbd08273
Added append()
2011-09-09 02:51:35 -05:00
Jesse Beder
ec95e61c04
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
Jesse Beder
6ffc9ac788
Added half of the std::map conversion (we don't have reading from Values yet)
2011-09-08 02:10:04 -05:00
Jesse Beder
0e197b8723
Added back the streamable conversions
2011-09-08 02:05:03 -05:00
Jesse Beder
3d84f57008
Switched convert to a templated struct that can be specialized (so we can partially specialize it)
2011-09-08 02:02:15 -05:00
Jesse Beder
a95baeafd6
Implemented conversion for std::string, including a bypass-accessor to the scalar value
2011-09-07 15:49:01 -05:00
Jesse Beder
1ab16bac62
Set the 'memory' to only store node_refs, not nodes
2011-09-07 14:56:04 -05:00
Jesse Beder
4aa61944fe
Implemented is()
2011-09-07 14:46:25 -05:00
Jesse Beder
e225509210
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
Jesse Beder
d1eca90216
Implemented map get(), and it would work (I think) if we implemented convert() for strings
2011-09-07 03:36:50 -05:00
Jesse Beder
020cd97915
Set up map searching by templated key
2011-09-07 03:21:24 -05:00
Jesse Beder
f0174ca08b
Reorganized so that we don't have cyclic include problems
2011-09-07 02:59:58 -05:00
Jesse Beder
fed95c5da4
Implemented map access by already-existing node
2011-09-07 02:39:59 -05:00
Jesse Beder
a530630f1c
Started implementing node_data
2011-09-07 00:45:28 -05:00
Jesse Beder
00e4a56d15
Compiles/links assignment to string
2011-09-07 00:20:23 -05:00
Jesse Beder
1e6877043e
Value stuff compiles/links with lots of placeholder functions
2011-09-07 00:12:24 -05:00
Jesse Beder
248b18a2d0
Sketched more of the implementation
2011-09-06 23:11:38 -05:00
Jesse Beder
7e79edc058
Moved the value header to its own subfolder
2011-09-06 16:06:46 -05:00
Jesse Beder
8b97dfe77e
Sketched out interface for YAML::Value
2011-09-06 01:43:15 -05:00
Jesse Beder
dd1eb715c4
Switched YAML::Binary interface to use unsigned chars, not chars
2011-09-06 00:39:31 -05:00
Jesse Beder
fadca5a89d
Added overload for operator [] for char * (non-const version)
2011-09-06 00:32:53 -05:00
Jesse Beder
3e94c0a037
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
Jesse Beder
b690648308
Removed ATOMIC_TYPE, an old enum that wasn't used any more
2011-08-22 21:37:51 +00:00
Jesse Beder
835b86d9f7
Fixed negative infinity parsing
2011-07-10 18:29:44 +00:00
Jesse Beder
94dc63af04
Added parsing .inf and .nan (and friend)
2011-07-10 16:27:40 +00:00
Jesse Beder
4c3926a5c7
Added emitting std::set (and refactored the stl emitters a bit)
2011-05-18 21:07:25 +00:00
Jesse Beder
dc5bd4afce
Fixed mixed line endings
2011-03-17 02:04:34 +00:00
Jesse Beder
c67b41c966
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
Jesse Beder
ebdfeb0349
Removed comparison/implicit conversion operators for Node, and renamed Node::Read<T>() to Node::to<T>()
2011-03-15 05:49:56 +00:00
Jesse Beder
cb632b3968
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
Jesse Beder
9128d841f5
Set the precision of emitting float/double to 15
2011-03-03 02:38:35 +00:00
Jesse Beder
ca5992b971
Merged r444:449 from the node refactoring branch to the trunk
2011-03-03 00:19:26 +00:00
Jesse Beder
39c396ab01
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
Jesse Beder
1e0c36c5cc
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
Jesse Beder
f34d60ca65
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
Jesse Beder
75a2fbe564
Fixed 'long long' error in VS 2002, issue 90
2011-03-02 05:15:36 +00:00
Jesse Beder
802cc6bcd6
Merged contrib folders from the graphbuilder-api branch, including the recursive search in CMakeLists.txt
2011-03-02 04:48:04 +00:00
Jesse Beder
c65a7dfc7c
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
Jesse Beder
99089bf218
Added long long types to the emitter
2010-11-15 01:46:33 +00:00
Jesse Beder
a6afaabcb0
Refactored tags so we can emit secondary tags (and named local tags)
2010-10-28 23:06:16 +00:00
Jesse Beder
d508203ed8
Implemented binary emitting without the binary tag
2010-10-28 21:53:54 +00:00
Jesse Beder
6b7cb45ac8
Added more tests for the newline, and disallowed newlines after implicit block keys
2010-10-22 03:53:33 +00:00
Jesse Beder
1e4210401f
Added YAML::Newline manipulator for the emitter
2010-10-21 22:02:29 +00:00
Jesse Beder
51c84f1c02
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
Jesse Beder
a19336fd98
Made emitter noncopyable, which should fix any auto_ptr warnings
2010-10-18 07:24:42 +00:00
Jesse Beder
9ad3a1b905
Fixed the rest of the includes to explicitly state yaml-cpp/
2010-10-18 07:22:53 +00:00
Jesse Beder
5b8ca9ce01
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
Jesse Beder
a71c03a18b
Merged r366:387 from the jbeder-event-api branch
2010-10-18 06:45:03 +00:00
Jesse Beder
326899815f
Added overloads for parsing stl maps and vectors
2010-03-15 04:25:17 +00:00
Jesse Beder
083a97b171
Set alias nodes to return the tag of their anchor
2010-03-15 04:10:36 +00:00
Jesse Beder
bca7737463
Updated to remove most of the warnings in Visual Studio. (There's still the one about all control paths returning a value left.) Fixed one warning (when an istream converts to void * to then convert to bool), and disabled three.
2010-03-03 05:30:06 +00:00
Jesse Beder
03df73a7b0
Refactored emitter operator << overloads to not template them, so it's easier to overload for pointer types
2009-11-17 20:21:22 +00:00
Jesse Beder
3307f0941c
Refactored the traits a bit, and added displaying the key to string and numeric key not found errors
2009-11-12 17:00:12 +00:00
Jesse Beder
32491166ac
Replaced conversion macros with SFINAE
2009-11-10 21:23:52 +00:00
Jesse Beder
6f94f954bb
Overloaded more integral types for emitting
2009-11-06 03:24:12 +00:00
Jesse Beder
90fd24d149
Fixed the return value of the integral conversion functions, and also unset the dec flag so it reads other bases (just a temporary fix, since we're officially supposed to read binary too)
2009-11-06 03:13:54 +00:00
Jesse Beder
e04be7890a
Fixed bug with block maps with null value (the next key was being read as the value)
2009-10-30 01:06:19 +00:00
Jesse Beder
a372bfdc60
Merged r295:305 from the tags branch to the trunk
2009-10-29 15:48:06 +00:00
Jesse Beder
fe57829aca
Removed crt stuff (we can do memory leak checking in Linux easier)
2009-10-27 14:55:01 +00:00
Jesse Beder
fa0af88dfe
Merged r270:HEAD of the emitting-unicode branch
2009-10-19 23:31:11 +00:00
Jesse Beder
ed570b9f7c
Added default constructor to Parser, and cleaned it up a bit
2009-10-19 22:40:46 +00:00
Jesse Beder
7db39e66b8
Updated signature of Parser::GetNextDocument (issue 45)
2009-09-29 18:25:11 +00:00
Jesse Beder
94eb7f1dbd
Modified old gcc version patch so it still uses the new Node::Read in Visual Studio. Also broke up the \uNNNN characters in the spec tests into \xNN-type strings.
2009-09-16 05:31:28 +00:00
Jesse Beder
5733b77b84
Patched for gcc version <= 3.3 (just fall back to original version of Node::Read)
2009-09-16 04:01:40 +00:00
Jesse Beder
7c4cc9bf5f
Cleaned up the read template overloads (per litb's update); it seems the old version didn't compile in VS2008. Also updated the VS project files.
2009-09-08 20:57:18 +00:00
Jesse Beder
e7ac6b3bf1
Refactored the operator >> and Node::Read default functions, as well as the conversion functions, to more easily read new types as keys (this uncovered an error, in example 2.11 of the spec)
2009-09-06 20:52:45 +00:00
Jesse Beder
07443495c8
Added templated casting to nodes, as well as operator == and != (for quick checks, especially to help in testing). Implemented size() on a map node to return the number of key/value pairs (as in std::map)
2009-09-06 15:54:11 +00:00
Jesse Beder
abe0af76c5
Added Node::Clone function
2009-08-24 20:10:42 +00:00
Jesse Beder
8e636436f8
Cleaned up
2009-08-24 18:23:20 +00:00
Jesse Beder
8c33523b15
Removed the std::wstring conversion
2009-08-22 00:25:37 +00:00
Jesse Beder
81c2e6b6ca
Converted indexing to std::size_t, and fixed the Node templated overloads to properly index any index type (determining what is an index type is a bit of a hack - it should be is_convertible<T, std::size_t> (I think), but I just explicitly wrote down a list)
2009-08-19 20:58:07 +00:00
Jesse Beder
ba11f5ae15
Added 'yaml-cpp: ' to the exception messages
2009-08-19 05:09:12 +00:00
Jesse Beder
d92ca21bcc
Added templated Read() function that creates the output variable itself (so you don't need to have a temp variable)
2009-08-19 03:37:19 +00:00
Jesse Beder
d506dae914
Added IsNull function
2009-07-31 05:07:21 +00:00
Jesse Beder
7a89920441
Fixed null key/value bug, added tests
2009-07-30 06:49:09 +00:00
Jesse Beder
ae41e58ca3
Added support for emitting and represeting null
2009-07-30 04:42:27 +00:00
Jesse Beder
72919adf55
Added header file inclusion guards
2009-07-29 22:27:20 +00:00
Jesse Beder
1507fcd36d
Forgot to add mark.h
2009-07-27 04:14:19 +00:00
Jesse Beder
b1ce042535
Collected pos, line, and column into a Mark struct
2009-07-27 02:56:18 +00:00
Jesse Beder
555fb5c3a0
Fixed the Exception::what() function
2009-07-26 01:37:21 +00:00
Jesse Beder
670a3e952a
Patched to read into std::wstring
2009-07-15 20:47:51 +00:00
Jesse Beder
a84c1af98a
Added FindValue to more easily read optional keys in a map
2009-07-12 02:59:23 +00:00
Jesse Beder
3e0179fd6e
Added emitting for a YAML::Node (instead of the ad-hoc std::ostream overload) so it'll actually emit valid YAML always
2009-07-10 23:39:14 +00:00
Jesse Beder
11f98f1cc6
(Finally) overrode Exception::what()\n
2009-07-10 04:17:30 +00:00
Jesse Beder
781fb4d093
Fixed warnings to compile on gcc with -Wall -pedantic -Wextra
2009-07-10 03:30:04 +00:00
Jesse Beder
441a230509
Set eol-style to native on all of the new files
2009-05-30 02:29:47 +00:00
Jesse Beder
e76521c0e9
Changed the way we read different types of scalars.
...
It's better organized now, I think - nodes only offer a single main way of getting the fundamental scalar (as a string), and now we can specialize a single template to read specific types.
2009-05-23 23:51:01 +00:00
Jesse Beder
5139ebf7ba
Added emitter headers to yaml.h
2009-05-22 22:23:57 +00:00
Jesse Beder
b51a32ae14
Replaced direct emitter writing with an accessor to a C-string
2009-05-22 22:21:01 +00:00
Jesse Beder
9245f9253a
Merged emitter branch into trunk, changes r105:r151
2009-05-22 21:52:31 +00:00