Commit Graph

197 Commits

Author SHA1 Message Date
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