Commit Graph

57 Commits

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