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
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
4e7aac7273
Fixed hex and oct emitting (it now adds the 0x or 0 prefix)
2012-01-13 00:00:11 -06:00
beder
414f28518b
Added LoadFile and LoadAllFromFile (new API)
2012-01-11 21:31:01 -06:00
beder
080121ec62
Fixed bug in parsing escaped newline (it was being clipped like a regular newline)
2012-01-11 17:55:27 -06:00
beder
4abe207421
Fixed signed/unsigned mismatch with the new precision code
2012-01-11 16:50:06 -06:00
beder
fa39efd6ac
Disallowed a plain scalar with just a dash
2012-01-11 16:39:24 -06:00
beder
64b2491a79
Added float/double precision setters
2012-01-11 14:34:04 -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
0d12b0ac1f
Added single character emitting
2011-11-14 16:23:14 -06:00
beder
06cba07048
Fixed emitter bug with colon at the end of a scalar in a flow collection
2011-10-31 19:16:17 -05:00
beder
21de6ba56c
Switched the utf bom checking to putback in the stream (instead of keeping a secondary buffer), which fixes a bug when there's only one ascii character
2011-10-20 22:29:41 -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
e863456384
Moved conversion.cpp to the old api, where it belongs
2011-09-14 01:49:06 -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
8f1c75e081
Added tags to Node emitter output
2011-09-13 14:47:33 -05:00
beder
fbf4233e4d
Switched YAML::Parse to YAML::Load, and added LoadAll
2011-09-13 14:24:47 -05:00
beder
b74bb2a32a
Copied 2.x tests with tags
2011-09-13 14:07:22 -05:00
beder
912113ed68
Added tags to Node
2011-09-13 14:00:47 -05:00
beder
0e17c63e6a
Fixed NodeBuilder bug when an alias was in a map - we weren't pushing that guy as a key
2011-09-12 14:24:27 -05:00
beder
1d632439cc
Fixed new API node key/value insertion in NodeBuilder (it was using the wrong condition on when it had added a key already)
2011-09-12 13:25:41 -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
c0a9e9b6cb
Added a few simple node tests, and the sequence one doesn't pass (let's work now)
2011-09-10 23:31:12 -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
b23ce06c6e
Implemented value events emitter
2011-09-10 16:23:18 -05:00
beder
dd2099cacf
Fixed node iterator
2011-09-10 14:36:10 -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
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
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
804cdb9364
Added append()
2011-09-09 02:51:35 -05:00
beder
06dd91dba9
Switched operator[] access to node reference equality, not node equality
2011-09-09 02:39:36 -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
783eea07ee
Added streamable conversions
2011-09-08 00:48:40 -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
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
2e59a9d721
Switched YAML::Binary interface to use unsigned chars, not chars
2011-09-06 00:39:31 -05:00
beder
239aaa97b5
Fixed empty string emitter bug (it now with auto-quote it
2011-09-06 00:24:10 -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
9768086bd8
Forced a newline after any comments
2011-08-04 21:47:57 +00:00
jbeder
b8561dd559
Included <cstddef> for NULL
2011-08-04 18:47:37 +00:00
jbeder
19a27d2c1a
Added include <cstdlib> for using 'NULL' (apparently gcc 4.6 is more strict)
2011-05-03 21:55:49 +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
5eb044d949
Added newline at the end
2011-03-10 00:23:15 +00:00
jbeder
e1245353c4
Fixed folding bug (detecting indentation, example 8.2), and clipping/stripping empty strings (example 8.6)
2011-03-04 02:26:59 +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
8d2c708d69
Removed the default --- at the start of all emitter output
2011-03-03 08:57:00 +00:00
jbeder
31d3fbb931
Switched the scanner list of owned indent markers to a ptr_vector
2011-03-03 08:34:30 +00:00
jbeder
6ec947f6aa
Switched the emitter state's stack of groups to a ptr_stack
2011-03-03 08:11:14 +00:00
jbeder
724a834256
Compressed the sequence-of-maps emitting (got rid of the unnecessary newline) - issue 61
2011-03-03 03:37:54 +00:00
jbeder
1f3cf8639a
Merged r444:449 from the node refactoring branch to the trunk
2011-03-03 00:19:26 +00:00
jbeder
ae3d8bff39
Prettied up the bool formatting code
2011-03-02 20:59:39 +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
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
b1eb2f53a8
Small changes to eliminate compiler warnings for 'nite' in issue 83
2011-03-02 05:29:46 +00:00
jbeder
d2ceb0ad77
Moved the local structs from Emitter::Write(bool) to an anonymous namespace in the hopes that Visual Studio <= 2003 will be happy
2011-03-02 05:21:25 +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
c9b65a49b7
Included cstddef to stream.h
2011-02-05 22:28:08 +00:00
jbeder
581e92f63e
Added Anchor() regex (so that we're not just using Alphanumeric to match anchors), but it's still not 100% right (it shouldn't allow non-printable characters, e.g.). Also fixed a test that was broken along these lines (if a colon immediately follows an anchor, it's part of the anchor)
2011-01-31 17:47:20 +00:00
jbeder
7e3c476ba8
Fixed emitting colon at end of scalar bug
2010-12-03 21:52:04 +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
fc35ace2d6
Refactored emitter so that it emits the : for an implicit key right away
2010-10-22 04:19:01 +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
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
d0bc2d3cb4
Fixed missing header
2010-05-01 20:05:15 +00:00
jbeder
d7528a2f65
Added missing include
2009-12-02 05:59:18 +00:00
jbeder
7e8541001e
Fixed leak when adding duplicate keys (and actually changed the behavior - now we take the first instance, not the last)
2009-12-02 01:01:45 +00:00
jbeder
52a1a2f32f
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
jbeder
835bddea56
Small bug from switching static initialized regexes to lazy ones
2009-11-12 05:45:47 +00:00
jbeder
4f71ae3c72
Overloaded more integral types for emitting
2009-11-06 03:24:12 +00:00
jbeder
135c4c42ed
Switched the Exp:: regexes to functions that lazily evaluate their regexes
2009-11-04 22:56:59 +00:00
jbeder
b276dd6d51
Fixed silly bug in node cloning
2009-10-30 20:29:14 +00:00
jbeder
00225fc1c7
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
jbeder
586b2c52a3
Fixed the whitespace tracking when we escape a newline in a double-quoted string
2009-10-29 22:55:50 +00:00
jbeder
ce69328c5f
Refactored the compact map notation, which made it easy to implement explicit keys for compact maps
2009-10-29 22:09:50 +00:00
jbeder
deb3835475
Added case for parsing a compact key: value pair in a flow sequence with a null key
2009-10-29 22:01:01 +00:00
jbeder
b2c5328e6a
Implemented adjacent key:value pairs when the key is JSON-like
2009-10-29 21:05:48 +00:00
jbeder
404506658c
Added ability to read compact maps in a flow sequence
2009-10-29 19:41:46 +00:00
jbeder
b8a2c396a3
Merged r295:305 from the tags branch to the trunk
2009-10-29 15:48:06 +00:00
jbeder
189e7e1a93
Removed crt stuff (we can do memory leak checking in Linux easier)
2009-10-27 14:55:01 +00:00
jbeder
e1b56b9ad0
Small refactoring
2009-10-22 21:51:32 +00:00
jbeder
8b2ca3c376
Switch to flow map when emitting an empty block map
2009-10-22 14:21:12 +00:00
jbeder
dcd95d607c
Switch to flow sequence when emitting an empty sequence
2009-10-22 14:17:12 +00:00
jbeder
4f73c96cff
Fixed bug in plain scalar folding
2009-10-20 14:47:16 +00:00
jbeder
7f0427a8b2
Merged r270:HEAD of the emitting-unicode branch
2009-10-19 23:31:11 +00:00
jbeder
6358dc0b71
Fixed little bug in parser commit
2009-10-19 22:42:30 +00:00
jbeder
1a3afd2438
Added default constructor to Parser, and cleaned it up a bit
2009-10-19 22:40:46 +00:00
jbeder
6e5f7a79a0
Refactored the UTF-8 emitting
2009-10-08 21:05:56 +00:00
jbeder
781bec01b3
Fixed the emitter unicode output
2009-10-07 06:46:05 +00:00
jbeder
3f0cbb563d
Updated signature of Parser::GetNextDocument (issue 45)
2009-09-29 18:25:11 +00:00
jbeder
eb8d78f3a3
Fixed flow folding, and made the separation slightly cleaner (but the whole scanscalar thing could use a major refactoring)
2009-09-08 05:24:06 +00:00
jbeder
740bf19023
(Actually) fixed the folding newline bug, but it's a bit messy, and we don't accurately make the distinction between block folding and flow folding
2009-09-07 23:29:04 +00:00
jbeder
5547f4ef6c
Fixed newlines in folded scalars bug
2009-09-07 22:48:32 +00:00
jbeder
074283dc4b
Fixed bugs with tab as non-content whitespace
2009-09-07 17:12:45 +00:00
jbeder
7a80506a91
Fixed bugs in escape characters (both parsing and emitting)
2009-09-07 16:31:23 +00:00
jbeder
e1d3109bd7
Fixed last newline of folded scalar bug
2009-09-07 06:54:38 +00:00
jbeder
df1d440804
Fixed bug in trailing newlines of plain scalars
2009-09-07 06:42:03 +00:00
jbeder
223177db90
Fixed bug with complex keys (and simplified the parsing for flow maps)
2009-09-06 21:52:56 +00:00
jbeder
a258030d6d
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
jbeder
6b70894903
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
jbeder
529a01f3eb
Allowed solo entries in a flow map to be read as keys with null value
2009-09-05 22:42:01 +00:00
jbeder
960a2234ec
Finished refactoring of simple keys so that they can refer to multiple tokens at a single level
2009-09-05 03:49:38 +00:00
jbeder
98fc0e2586
Refactored simple keys so that validating doesn't require popping indents, and so popping indents (and adding the end map) is independent of when we validate the simple key
2009-09-05 02:51:09 +00:00
jbeder
ababdbe25d
Moved token enums into Token scope
2009-09-05 02:28:11 +00:00
jbeder
42124aeee6
Fixed bug with omitted keys/values in a flow map
2009-09-02 21:39:57 +00:00
jbeder
66da4789db
Fixed bug with explicit doc start introduced in last commit
2009-08-26 16:15:27 +00:00
jbeder
10cc043662
Removed the implicit sequence code (since it's not used any more)
2009-08-24 22:58:47 +00:00
jbeder
990686d3d2
Fixed bug in anchors with no content. This involved refactoring the 'implicit sequence' concept (where a map and a sequence start on the same indent, but we read the sequence as more indented since the '-' is visually an indent).
2009-08-24 22:56:54 +00:00
jbeder
7118305ecd
Added Node::Clone function
2009-08-24 20:10:42 +00:00
jbeder
8cc5826a55
Removed the std::wstring conversion
2009-08-22 00:25:37 +00:00
jbeder
903b2d6d5a
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
jbeder
6f8dc5ce91
Fixed out-of-bounds memory access
2009-07-31 18:26:42 +00:00
jbeder
fa57f215c0
Added IsNull function
2009-07-31 05:07:21 +00:00
jbeder
49b1921be1
Fixed null key/value bug, added tests
2009-07-30 06:49:09 +00:00
jbeder
992a8544d6
Fixed empty scalar in sequence bug
2009-07-30 05:54:40 +00:00
jbeder
f521c89bee
Added support for emitting and represeting null
2009-07-30 04:42:27 +00:00
jbeder
543d9f9730
Added header file inclusion guards
2009-07-29 22:27:20 +00:00
jbeder
f69bd13b0f
Collected pos, line, and column into a Mark struct
2009-07-27 02:56:18 +00:00
jbeder
d5d0abfc6b
Fixed hex output in emitter (should be always two hex chars)
2009-07-26 07:57:22 +00:00
jbeder
d44c7f2d94
Fixed bug in emitting null nodes
2009-07-26 07:42:50 +00:00
jbeder
c5aeef5ab8
Fixed bug with simple keys that are quoted scalars
2009-07-25 18:58:41 +00:00
jbeder
829a3465ba
Updated visual studio project, and fixed a VS warning
2009-07-20 20:18:59 +00:00
jbeder
f4cdc68a38
Patched to read into std::wstring
2009-07-15 20:47:51 +00:00
jbeder
520240527f
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