Commit Graph

47 Commits

Author SHA1 Message Date
beder
affc32df9d Added some exceptions for directives. 2008-07-08 06:06:24 +00:00
beder
cf0b3834b8 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
28a0a3bb3c Added a (recursive) ordering, so we have a canonical output that we can compare. 2008-07-06 00:06:36 +00:00
beder
99049801cf 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
74e6e2dd7d 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
c1f3a541c5 2008-07-04 22:57:52 +00:00
beder
73cb5818b4 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
d902e94ae5 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
1ea0c1b14b Added some parser exceptions. 2008-07-02 05:00:32 +00:00
beder
7c6d2aa0cd Overloaded the iterator's -> operator. 2008-07-02 01:32:19 +00:00
beder
cf0d67872f Added an iterator class that can iterate through both sequence and map nodes. 2008-07-02 01:22:39 +00:00
beder
aad4c081fe Fixed opening newline bug for block scalars. 2008-07-01 06:34:55 +00:00
beder
b07b1a9f25 Tags, anchors, and aliases are all parsed now. 2008-07-01 06:28:10 +00:00
beder
dc64419e45 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
cfa85e0878 Finished parsing of basic data types (scalar, sequence, map). 2008-06-30 23:57:58 +00:00
beder
31e25df6cf Renamed the stream member functions get() and eat(). 2008-06-30 22:34:10 +00:00
beder
7f712a651b 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
1c9b8bb159 Started the parser. 2008-06-30 06:51:22 +00:00
beder
d2ed35b47a Added a peek token command (for the parser to use). 2008-06-30 06:21:12 +00:00
beder
bb25e87f57 Added directives and tags. 2008-06-30 04:22:41 +00:00
beder
46ab9103a6 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
88e6bc7718 Mostly finished refactoring the scalar scanning. 2008-06-30 01:31:23 +00:00
beder
8ffdbb026d 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
7478308488 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
88ee96d432 Refactored common scalar scanning code (from plain, quoted, and block) to one function. 2008-06-29 05:45:41 +00:00
beder
abcea93589 Moved the scalar-related functions to their own file. 2008-06-29 03:11:25 +00:00
beder
0adbe3aa5b 2008-06-29 00:33:34 +00:00
beder
854d89e1e4 Small refactoring. 2008-06-28 22:05:51 +00:00
beder
44c8283aea 2008-06-28 20:09:49 +00:00
beder
10e13764c5 Added folded and literal scalars. 2008-06-28 20:08:21 +00:00
beder
d6f8f4fe24 Fixed complex keys. 2008-06-28 17:32:10 +00:00
beder
82f240313b Moved the simple key validation to before each token scan (plus at newlines of scalars). 2008-06-28 16:46:37 +00:00
beder
a351d05efa 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
c9f81d3ff8 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
4a70e77492 Small plain scalar scanning fixes. 2008-06-27 20:54:43 +00:00
beder
dce43a305f 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
5657241e4c 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
b20e47cdd9 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
076779d325 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
643b0de4fa More simple scalar scanning. 2008-06-26 22:00:39 +00:00
beder
fb149fc15a 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
beder
a03a8f10f1 Started the scanner. 2008-06-26 09:05:28 +00:00
beder
92ebd0ba82 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
beder
b5ad2cdb94 Preliminary setup - basic data structures are there. 2008-06-25 23:00:18 +00:00
beder
984230b96e 2008-06-25 22:46:18 +00:00
beder
ced580ef6d 2008-06-25 22:45:08 +00:00
beder
28d5532c06 2008-06-25 22:44:44 +00:00