Commit Graph
94 Commits
Author SHA1 Message Date
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 b952bc594f Updated Visual Studio project for the emitter. 2009-05-23 22:58:05 +00:00
Jesse Beder 24b0663828 Changed output library directory to /lib (in the source directory) - this makes more sense 2009-05-23 17:11:19 +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 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 2768927782 Included <cstring> for strcmp 2009-01-27 20:16:30 +00:00
Jesse Beder 5c54431b3b Applied patch for gcc -Wall 2009-01-15 17:12:13 +00:00
Jesse Beder 7214ffc107 Re-added the throw() specification to ~Exception(), and also to ~TypedKeyNotFound(); I suppose this'll fix the gcc compiler error. 2009-01-01 23:59:37 +00:00
Jesse Beder d98f9d8713 Removed throw() specifier in Exception (I don't remember putting it in). This may solve a gcc error (I haven't tested it yet) or it may break it further. 2009-01-01 20:14:32 +00:00
Jesse Beder 27bd791ea0 Added a templated derived exception to KeyNotFound so that you can figure out *which* key wasn't found. 2009-01-01 02:40:18 +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 9969ff512e Added line/column data for nodes so they can give better invalid scalar exceptions. 2008-11-18 04:19:50 +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 1406b84016 Made Node non-copyable. 2008-09-19 02:44:49 +00:00
Jesse Beder c175be7d4c 2008-09-11 03:49:52 +00:00
Jesse Beder 9d403d08f0 2008-09-11 03:48:04 +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 80db86e771 Added the license.txt file describing the MIT license. 2008-09-03 04:37:06 +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 f3a2c8497a Added a static library project 'yamlcpp' to the solution. 2008-07-14 05:03:38 +00:00
Jesse Beder 771cc6fa25 Renamed the solution yamlcpp. 2008-07-14 04:51:47 +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
Jesse Beder 4cfa233888 Switched from moving the cursor forward (in Regex) to ignoring (this handles newlines properly).
Updated some of the character-in-scalar rules.
2008-07-10 00:23:25 +00:00
Jesse Beder 03e6b5b991 Centralized the error messages to one location. 2008-07-08 20:31:48 +00:00
Jesse Beder c0c55fe50b Removed the (unused) 'required' flag from simple keys (the parser should take care of this, not the scanner). 2008-07-08 18:34:26 +00:00
Jesse Beder a8a0fb41cb Added some exceptions for directives. 2008-07-08 06:06:24 +00:00
Jesse Beder 6c2946bf58 Combined the myriad ScannerExceptions and ParserExceptions to a single ParserException class that has a message and a line/column position in the file where the error occurred. 2008-07-08 05:48:38 +00:00
Jesse Beder 115cf601e9 Added a (recursive) ordering, so we have a canonical output that we can compare. 2008-07-06 00:06:36 +00:00
Jesse Beder 2a0ddc8cb2 Wrote some tests, but they don't work because it doesn't output maps in a canonical form. 2008-07-05 19:00:58 +00:00
Jesse Beder dacc631968 Rewrote the output so that it emits correct YAML.
Fixed a bug in the last newline of a block folded scalar.
2008-07-05 05:28:23 +00:00
Jesse Beder d98007b0be 2008-07-04 22:57:52 +00:00
Jesse Beder ed488e5197 Removed the document class (since it's really just a root node, and that's it). 2008-07-04 22:56:43 +00:00
Jesse Beder 2be40919de Specialized the overloaded [] operator for int/unsigned, and added a size() function, so that you can iterate through a sequence node like a vector. 2008-07-02 21:41:54 +00:00
Jesse Beder 2ccbfeff47 Added some parser exceptions. 2008-07-02 05:00:32 +00:00
Jesse Beder 901d16a96f Overloaded the iterator's -> operator. 2008-07-02 01:32:19 +00:00
Jesse Beder d56b54b34f Added an iterator class that can iterate through both sequence and map nodes. 2008-07-02 01:22:39 +00:00
Jesse Beder f7358701f2 Fixed opening newline bug for block scalars. 2008-07-01 06:34:55 +00:00
Jesse Beder 4c5a488f68 Tags, anchors, and aliases are all parsed now. 2008-07-01 06:28:10 +00:00
Jesse Beder 8180a85a3b Added parsing of anchors, aliases, and tags (still no semantics yet).
Fixed a silly bug in the simple key pushing (queues are FIFO!).
2008-07-01 01:17:10 +00:00
Jesse Beder 121c2e577f Finished parsing of basic data types (scalar, sequence, map). 2008-06-30 23:57:58 +00:00
Jesse Beder c1966ba3fc Renamed the stream member functions get() and eat(). 2008-06-30 22:34:10 +00:00
Jesse Beder 852e5b63e5 Instead of deriving different tokens from a base Token class, we now use an enumerated TOKEN_TYPE to distinguish types. This is so we don't have to cast all the time when parsing the resulting token stream.
Also, removed start/end stream tokens.
2008-06-30 21:47:21 +00:00
Jesse Beder b6a0ef207b Started the parser. 2008-06-30 06:51:22 +00:00
Jesse Beder ed6c294749 Added a peek token command (for the parser to use). 2008-06-30 06:21:12 +00:00
Jesse Beder 07d4cac48f Added directives and tags. 2008-06-30 04:22:41 +00:00
Jesse Beder 2b8628922f Moved the three scalar token scanning functions back to scantoken.cpp, so scanscalar.cpp now only has the main scalar scanning function.
Renamed ScanScalarInfo to ScanScalarParams.
2008-06-30 01:38:32 +00:00
Jesse Beder 0683cbf859 Mostly finished refactoring the scalar scanning. 2008-06-30 01:31:23 +00:00
Jesse Beder 5f8252ee6f Moved scalar scanning-related parameters to a struct.
Renamed the valid/possible tokens to a single variable status with enums valid, invalid, and unverified.
2008-06-29 17:39:33 +00:00
Jesse Beder ff99f85a6d Moved the input stream, together with line/column info, into its own class, which allowed some other stuff just to pass the stream, and not have to be a member of Scanner. 2008-06-29 06:32:13 +00:00
Jesse Beder 0d5a97bffe Refactored common scalar scanning code (from plain, quoted, and block) to one function. 2008-06-29 05:45:41 +00:00
Jesse Beder 6c193d6fbd Moved the scalar-related functions to their own file. 2008-06-29 03:11:25 +00:00
Jesse Beder d076252dff 2008-06-29 00:33:34 +00:00
Jesse Beder 2e27c5d9c3 Small refactoring. 2008-06-28 22:05:51 +00:00
Jesse Beder 72b443375c 2008-06-28 20:09:49 +00:00
Jesse Beder 43ea59a4ed Added folded and literal scalars. 2008-06-28 20:08:21 +00:00
Jesse Beder 01ef70a6f9 Fixed complex keys. 2008-06-28 17:32:10 +00:00
Jesse Beder c63ebbd878 Moved the simple key validation to before each token scan (plus at newlines of scalars). 2008-06-28 16:46:37 +00:00
Jesse Beder 11706abbb7 Added simple keys.
There's a bug (and question): should we test simple keys' validity BEFORE stuff or AFTER stuff?
2008-06-28 06:36:59 +00:00
Jesse Beder 49a75b2d78 Added quoted scalars (with escaping).
Refactored some common whitespace-parsing code in scanning both scalars.
Implemented the flow collection tokens.
2008-06-27 23:11:46 +00:00
Jesse Beder a224c7818b Small plain scalar scanning fixes. 2008-06-27 20:54:43 +00:00
Jesse Beder 8fca02fb2a Split off the specific regular expressions, and the specialized token-scanning functions, into their own files. 2008-06-27 19:13:03 +00:00
Jesse Beder de29068110 Added stream input to the regular expressions, greatly simplifying the usage (in particular, we no longer have to specify the number of characters to be checked). 2008-06-27 19:07:30 +00:00
Jesse Beder 4e435b1321 Wrote a simplified regular expression parser to make life easier (it only does single matches; i.e., no one-or-more matches, etc.).
Fixed some of the whitespace/line break matching.
2008-06-27 08:20:41 +00:00
Jesse Beder 873dbc2421 The plain scalar scanner is almost done (and it scans a simple list correctly).
Also messed around with multiple character peeking on the input, and got something working.
2008-06-27 00:18:52 +00:00
Jesse Beder 31f7db5a0d More simple scalar scanning. 2008-06-26 22:00:39 +00:00
Jesse Beder a3961d047f Continued working on scanner.
We're now using exceptions for errors, and scanning/pushing tokens is exception-safe (using a set of "limbo tokens").
2008-06-26 19:30:11 +00:00
Jesse Beder 8ae7b48188 Started the scanner. 2008-06-26 09:05:28 +00:00
Jesse Beder bcbca461de Beginning of first attempt to parse.
Will be completely wiped, I think, in favor of a Scanner (to tokens), then Parser mechanism.
2008-06-26 06:49:50 +00:00
Jesse Beder 4ed7f62431 Preliminary setup - basic data structures are there. 2008-06-25 23:00:18 +00:00
Jesse Beder e22eea26b1 2008-06-25 22:46:18 +00:00
Jesse Beder 110a7f06a8 2008-06-25 22:45:08 +00:00
Jesse Beder bb55b0ba91 2008-06-25 22:44:44 +00:00