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