Jesse Beder
bb463d8d8b
Fixed folding bug (detecting indentation, example 8.2), and clipping/stripping empty strings (example 8.6)
2011-03-04 02:26:59 +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
b9d4ccd254
Removed the default --- at the start of all emitter output
2011-03-03 08:57:00 +00:00
Jesse Beder
d6aeb16450
Switched the scanner list of owned indent markers to a ptr_vector
2011-03-03 08:34:30 +00:00
Jesse Beder
a518d87cfc
Switched the emitter state's stack of groups to a ptr_stack
2011-03-03 08:11:14 +00:00
Jesse Beder
1f9cc2d327
Compressed the sequence-of-maps emitting (got rid of the unnecessary newline) - issue 61
2011-03-03 03:37:54 +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
7998db8397
Prettied up the bool formatting code
2011-03-02 20:59:39 +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
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
4caedfda74
Small changes to eliminate compiler warnings for 'nite' in issue 83
2011-03-02 05:29:46 +00:00
Jesse Beder
2faeb76e2d
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
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
d1cb1aa74f
Included cstddef to stream.h
2011-02-05 22:28:08 +00:00
Jesse Beder
be1b14f369
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
Jesse Beder
337cb553d0
Fixed emitting colon at end of scalar bug
2010-12-03 21:52:04 +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
f1697dea15
Refactored emitter so that it emits the : for an implicit key right away
2010-10-22 04:19:01 +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
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
0a02403fb0
Fixed missing header
2010-05-01 20:05:15 +00:00
Jesse Beder
3a755de572
Added missing include
2009-12-02 05:59:18 +00:00
Jesse Beder
8723b8f358
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
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
54b68230ae
Small bug from switching static initialized regexes to lazy ones
2009-11-12 05:45:47 +00:00
Jesse Beder
6f94f954bb
Overloaded more integral types for emitting
2009-11-06 03:24:12 +00:00
Jesse Beder
9a21a3ec8d
Switched the Exp:: regexes to functions that lazily evaluate their regexes
2009-11-04 22:56:59 +00:00
Jesse Beder
3779e4255d
Fixed silly bug in node cloning
2009-10-30 20:29:14 +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
ecb30132e9
Fixed the whitespace tracking when we escape a newline in a double-quoted string
2009-10-29 22:55:50 +00:00
Jesse Beder
3405a6fe01
Refactored the compact map notation, which made it easy to implement explicit keys for compact maps
2009-10-29 22:09:50 +00:00
Jesse Beder
d372729b92
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
Jesse Beder
fadc2ad39f
Implemented adjacent key:value pairs when the key is JSON-like
2009-10-29 21:05:48 +00:00
Jesse Beder
8c9c9d90da
Added ability to read compact maps in a flow sequence
2009-10-29 19:41:46 +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
beb524489c
Small refactoring
2009-10-22 21:51:32 +00:00
Jesse Beder
4ffb93c12b
Switch to flow map when emitting an empty block map
2009-10-22 14:21:12 +00:00
Jesse Beder
ae06a40fe6
Switch to flow sequence when emitting an empty sequence
2009-10-22 14:17:12 +00:00
Jesse Beder
315b00065b
Fixed bug in plain scalar folding
2009-10-20 14:47:16 +00:00
Jesse Beder
fa0af88dfe
Merged r270:HEAD of the emitting-unicode branch
2009-10-19 23:31:11 +00:00
Jesse Beder
bce845bb1f
Fixed little bug in parser commit
2009-10-19 22:42:30 +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
3e1ba0f3b4
Refactored the UTF-8 emitting
2009-10-08 21:05:56 +00:00
Jesse Beder
d0b5bf4b7b
Fixed the emitter unicode output
2009-10-07 06:46:05 +00:00
Jesse Beder
7db39e66b8
Updated signature of Parser::GetNextDocument (issue 45)
2009-09-29 18:25:11 +00:00
Jesse Beder
da4614eb8b
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
Jesse Beder
7bdd31b34b
(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
Jesse Beder
a4b8521efe
Fixed newlines in folded scalars bug
2009-09-07 22:48:32 +00:00
Jesse Beder
f3ff6ffc55
Fixed bugs with tab as non-content whitespace
2009-09-07 17:12:45 +00:00
Jesse Beder
e3ff87ecde
Fixed bugs in escape characters (both parsing and emitting)
2009-09-07 16:31:23 +00:00
Jesse Beder
2aab5acab4
Fixed last newline of folded scalar bug
2009-09-07 06:54:38 +00:00
Jesse Beder
e9d760eea9
Fixed bug in trailing newlines of plain scalars
2009-09-07 06:42:03 +00:00
Jesse Beder
5217149ed4
Fixed bug with complex keys (and simplified the parsing for flow maps)
2009-09-06 21:52:56 +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
91163d2296
Allowed solo entries in a flow map to be read as keys with null value
2009-09-05 22:42:01 +00:00
Jesse Beder
75477ade65
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
Jesse Beder
0e1638d7b5
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
Jesse Beder
19673ff01a
Moved token enums into Token scope
2009-09-05 02:28:11 +00:00
Jesse Beder
873ad336f8
Fixed bug with omitted keys/values in a flow map
2009-09-02 21:39:57 +00:00
Jesse Beder
1b240d3576
Fixed bug with explicit doc start introduced in last commit
2009-08-26 16:15:27 +00:00
Jesse Beder
b789a1c5f9
Removed the implicit sequence code (since it's not used any more)
2009-08-24 22:58:47 +00:00
Jesse Beder
a1460169e6
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
Jesse Beder
abe0af76c5
Added Node::Clone function
2009-08-24 20:10:42 +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
487f381ae9
Fixed out-of-bounds memory access
2009-07-31 18:26:42 +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
382f1ba3c7
Fixed empty scalar in sequence bug
2009-07-30 05:54:40 +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
b1ce042535
Collected pos, line, and column into a Mark struct
2009-07-27 02:56:18 +00:00
Jesse Beder
9b78bd459b
Fixed hex output in emitter (should be always two hex chars)
2009-07-26 07:57:22 +00:00
Jesse Beder
c225a55344
Fixed bug in emitting null nodes
2009-07-26 07:42:50 +00:00
Jesse Beder
2160bb2bcc
Fixed bug with simple keys that are quoted scalars
2009-07-25 18:58:41 +00:00
Jesse Beder
980c4cb0ce
Updated visual studio project, and fixed a VS warning
2009-07-20 20:18:59 +00:00
Jesse Beder
670a3e952a
Patched to read into std::wstring
2009-07-15 20:47:51 +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
781fb4d093
Fixed warnings to compile on gcc with -Wall -pedantic -Wextra
2009-07-10 03:30:04 +00:00
Jesse Beder
b113c37819
Clarified some copy/assignment issues with the stream/streamcharsource.
2009-07-10 03:20:16 +00:00
Jesse Beder
b929eb94a0
Merged utf branch changes r178:187 into the trunk
2009-07-10 03:10:03 +00:00
Jesse Beder
a7b8879494
Fixed bug that didn't allow multiple docs in a stream (using only "---")
2009-06-25 03:05:09 +00:00
Jesse Beder
620c58abec
Updated the nested RegEx classes so they don't need to also take an std::string
2009-06-01 03:42:16 +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
9a1a3974c6
Patch for gcc -Wall (order of initialization)
2009-05-29 22:36:52 +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
b51a32ae14
Replaced direct emitter writing with an accessor to a C-string
2009-05-22 22:21:01 +00:00
Jesse Beder
69ef85526a
Restructured CMake file to include headers, and to be better organized
2009-05-22 22:11:21 +00:00
Jesse Beder
de1c6171ee
Removed excessive stderr logging
2009-05-22 21:56:45 +00:00
Jesse Beder
9245f9253a
Merged emitter branch into trunk, changes r105:r151
2009-05-22 21:52:31 +00:00
Jesse Beder
b3a5a519f2
Merged aliases branch into trunk, changes r100:150
2009-05-22 21:48:05 +00:00
Jesse Beder
9d0e0c6a48
Fixed several bugs from the new file i/o setup.
...
In particular:
1. Windows CR/LF weren't read properly (issue #11 )
2. Scanning wasn't reading EOF properly
3. Documents may be empty (this was old, I think)
Also fixed some VS2008 warnings on /W4.
2009-02-07 07:57:13 +00:00
Jesse Beder
f9c0725684
Switched to reading the entire file into a buffer at the start.\nThis speeds it up a TON (like 100x).
2009-02-01 20:48:43 +00:00
Jesse Beder
a6d5902ebf
Included <cstdio> for gcc-4.4 (issue 9)
2009-01-27 21:08:40 +00:00
Jesse Beder
5c54431b3b
Applied patch for gcc -Wall
2009-01-15 17:12:13 +00:00
Jesse Beder
5a2a317d62
Fixed tag output bug
2008-11-20 04:12:31 +00:00
Jesse Beder
f8d81fff8c
Replaced a pointer-centered try/catch block with std::auto_ptr
2008-11-20 03:41:40 +00:00
Jesse Beder
043bbddcf0
Added line/column data for nodes so they can give better invalid scalar exceptions.
2008-11-18 04:20:07 +00:00
Jesse Beder
14cdec770c
Added more natural ways to parse boolean values (based on the YAML spec).
...
(Thanks to Vadim Zeitlin)
2008-09-25 00:15:40 +00:00
Jesse Beder
6e4317e37c
Added Read() functions for Node that return true/false, so we can easily check if a read is successful without throwing.
...
But we still have operator >> that throws on failure.
2008-09-24 23:29:00 +00:00
Jesse Beder
907be0660c
Fixed infinite loop bug having to do with simple keys when we hit an unexpected EOF.
2008-09-24 22:45:04 +00:00
Jesse Beder
3ed09b89f8
Fixed a problem where you lose the exception type on rethrow.
2008-09-23 21:13:23 +00:00
Jesse Beder
45322566c7
Set the eol style to native for all files.
2008-09-03 22:20:39 +00:00
Jesse Beder
a45f083e00
Fixed some gcc warnings.
2008-09-03 22:19:27 +00:00
Jesse Beder
5c0db0d21b
Unified line endings.
2008-09-03 22:17:17 +00:00
Jesse Beder
b16f958660
Fixed struct vs. class disparity.
2008-08-07 03:37:16 +00:00
Jesse Beder
ec2ecad197
Added CMake scripts for other platforms\nFixed some bugs that gcc complained about\nFixed CR/LF vs LF bug
2008-08-07 03:30:56 +00:00
Jesse Beder
813817f1ab
2008-07-31 19:41:11 +00:00
Jesse Beder
d45bb667b6
Small changes in the iterator code.
...
Changed the public interface of Scanner to resemble an STL container.
2008-07-23 04:38:18 +00:00
Jesse Beder
cc87c83b01
Switched the Iterator implementation to a dedicated helper class (to hide the specific implementation, since it's pretty messy and may change).
2008-07-21 02:54:39 +00:00
Jesse Beder
09d7ab365f
Replaced the queue of Token pointers with values.
...
We were getting memory leaks (as told by the CRT detectors, which I also added), and there's really no reason (as long as we're careful) to use pointers there.
2008-07-20 05:02:01 +00:00
Jesse Beder
2eab1e025e
Moved the testing source to the yaml-reader folder.
2008-07-14 05:18:25 +00:00
Jesse Beder
2e2c489e29
Set the yaml-reader project to link to the yamlcpp library.
2008-07-14 05:08:46 +00:00
Jesse Beder
ef630abeee
2008-07-14 04:37:58 +00:00
Jesse Beder
cadc04ce47
Moved all code to src/ and include/ directories.
2008-07-14 04:33:30 +00:00