beder
557f81e622
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
beder
f4e522490f
Moved the testing source to the yaml-reader folder.
2008-07-14 05:18:25 +00:00
beder
2ffc7dc6ac
Set the yaml-reader project to link to the yamlcpp library.
2008-07-14 05:08:46 +00:00
beder
11eb40e636
Added a static library project 'yamlcpp' to the solution.
2008-07-14 05:03:38 +00:00
beder
ef8e9415f8
Renamed the solution yamlcpp.
2008-07-14 04:51:47 +00:00
beder
4c1c0977ab
2008-07-14 04:37:58 +00:00
beder
516637fcdc
Moved all code to src/ and include/ directories.
2008-07-14 04:33:30 +00:00
beder
e6aeb45d09
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
beder
0b2e0dd32b
Centralized the error messages to one location.
2008-07-08 20:31:48 +00:00
beder
84bcdda342
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
beder
5d5651861d
Added some exceptions for directives.
2008-07-08 06:06:24 +00:00
beder
2f5c19fa00
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
beder
1acc0e4982
Added a (recursive) ordering, so we have a canonical output that we can compare.
2008-07-06 00:06:36 +00:00
beder
3cad5a2ed0
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
beder
ba97c9f719
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
beder
5feaef3748
2008-07-04 22:57:52 +00:00
beder
c4c873733b
Removed the document class (since it's really just a root node, and that's it).
2008-07-04 22:56:43 +00:00
beder
99a9aaa591
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
beder
620c322df5
Added some parser exceptions.
2008-07-02 05:00:32 +00:00
beder
807045bc14
Overloaded the iterator's -> operator.
2008-07-02 01:32:19 +00:00
beder
b4b287c4e9
Added an iterator class that can iterate through both sequence and map nodes.
2008-07-02 01:22:39 +00:00
beder
81ff4946ae
Fixed opening newline bug for block scalars.
2008-07-01 06:34:55 +00:00
beder
8eb50fe9d0
Tags, anchors, and aliases are all parsed now.
2008-07-01 06:28:10 +00:00
beder
104da5c244
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
beder
d41503da5a
Finished parsing of basic data types (scalar, sequence, map).
2008-06-30 23:57:58 +00:00
beder
146122f455
Renamed the stream member functions get() and eat().
2008-06-30 22:34:10 +00:00
beder
17533e22da
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
beder
2a7e20a315
Started the parser.
2008-06-30 06:51:22 +00:00
beder
795df7224b
Added a peek token command (for the parser to use).
2008-06-30 06:21:12 +00:00
beder
a93584b065
Added directives and tags.
2008-06-30 04:22:41 +00:00
beder
b58c0c94e4
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
beder
67250833b8
Mostly finished refactoring the scalar scanning.
2008-06-30 01:31:23 +00:00
beder
4de9cb48a5
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
beder
6efc5614ec
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
beder
8dfb5c0ea8
Refactored common scalar scanning code (from plain, quoted, and block) to one function.
2008-06-29 05:45:41 +00:00
beder
3c56fd49eb
Moved the scalar-related functions to their own file.
2008-06-29 03:11:25 +00:00
beder
45dfc719e1
2008-06-29 00:33:34 +00:00
beder
ab27b9781e
Small refactoring.
2008-06-28 22:05:51 +00:00
beder
34cd7177cd
2008-06-28 20:09:49 +00:00
beder
566916ba19
Added folded and literal scalars.
2008-06-28 20:08:21 +00:00
beder
1a96548fa5
Fixed complex keys.
2008-06-28 17:32:10 +00:00
beder
b1c60706d7
Moved the simple key validation to before each token scan (plus at newlines of scalars).
2008-06-28 16:46:37 +00:00
beder
70afd130ad
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
beder
fb9176a054
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
beder
ba132b01bc
Small plain scalar scanning fixes.
2008-06-27 20:54:43 +00:00
beder
10c4a2687f
Split off the specific regular expressions, and the specialized token-scanning functions, into their own files.
2008-06-27 19:13:03 +00:00
beder
aad36b8c47
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
beder
bb4bc8c4ae
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
beder
20dba9cd75
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
beder
c7274ff2e8
More simple scalar scanning.
2008-06-26 22:00:39 +00:00