Commit Graph

112 Commits

Author SHA1 Message Date
Felix Krause 5ec086081c Implemented serialization of OrderedMap 2016-03-25 22:22:42 +01:00
Felix Krause 06faf4966d Object fields get the tag !nim:field. Fixes #12. 2016-03-25 21:38:28 +01:00
Felix Krause 42ddfbe5c5 Fixes #13.
* Separated into representObject and in representChild and
   representObject. Makes it possible for multiple types to
   use the same representObject proc.
2016-03-25 21:27:41 +01:00
Felix Krause c18fd47511 Some litte performance increases 2016-03-25 18:22:25 +01:00
Felix Krause 28ccdcc5a6 Handle block scalars line-per-line. Fixes #10 2016-03-25 18:17:37 +01:00
Felix Krause 93ce0b26ba Some performance optimization with shallowCopy 2016-03-25 10:13:55 +01:00
Felix Krause 57b4518564 Fixed presenter bug
* Fixed TagIds for Nim's system types
 * Output JSON integers for Nim's integer types
 * Output JSON floats for Nim's float types
2016-03-20 19:55:23 +01:00
Felix Krause a9b565c35c Eliminated dead code, fixed serialization
* fpBlockContinueScalar wasn't used anymore and has been removed
 * Do not mark scalarContent in events as shallow because it breaks
   peeking in YamlStreams
2016-03-20 14:19:46 +01:00
Felix Krause a1f914eee4 Got rid of fpBlockLineStart, fixes #9 2016-03-20 13:50:00 +01:00
Felix Krause b6d363107a Performance optimizations in parser 2016-03-20 12:09:04 +01:00
Felix Krause eef247b2e8 Fixed parser bug, added option to output YAML 1.1
* Fixed a parser bug that got confused when looking for an implicit
   map key in a plain scalar that contains &, * or !
 * Added OutputYamlVersion to PresentationOptions
2016-03-20 10:31:40 +01:00
Felix Krause 5688499650 Fixed bugs with presenting block scalars
* Folded block scalars were presented with "|" instead of ">"
 * It has not been properly detected that a scalar cannot be outputted as
   literal block scalar
2016-03-20 09:21:52 +01:00
Felix Krause 4d4e3c94e1 Added fplDocument, fixes #11
* Do not use -1 for unknown indentation, because the document level is -1.
 * Use const UnknownIndentation in code instead of magic number
 * Added fplDocument level which is used as root of the ancestry
 * Added debugFail() template to better locate internal errors
2016-03-19 22:45:24 +01:00
Felix Krause e45eb7b514 Fixed some bugs
* Ensure that no event is yielded twice at explicit document end
 * Properly handle indentation when comment occurs in a line before the
   start of the node
 * Allow multiline implicit map keys in flow map
2016-03-19 15:54:19 +01:00
Felix Krause 0fc30241b9 Fixes for block scalars and doc end markers
* Properly (now really) handle block scalars at doc root
 * Properly handle multiple document end markers
2016-03-19 15:03:09 +01:00
Felix Krause 22b8de876d Root block scalars may have indentation of 0 2016-03-19 12:57:25 +01:00
Felix Krause 1399d3ba22 Refactoring: added yieldEmptyScalar() 2016-03-19 11:16:24 +01:00
Felix Krause cb6f73eb01 Fixed a bug with comments in block mode 2016-03-19 11:11:38 +01:00
Felix Krause ae933d90a1 Fixes to block scalars and yamlTestSuite
* Properly handle empty block scalars and trailing lines
 * Fixed a bug in yamlTestSuite that led to lots of open file handles
2016-03-18 22:29:35 +01:00
Felix Krause b9eb4b62f6 Fixes for flow style
* Allow # in flow scalar if not preceded by whitespace
 * Fixed various issue with parsing single key-value pairs
   in flow maps
2016-03-17 22:50:41 +01:00
Felix Krause 91cc16cde7 Properly handle multiline scalars
* single-quoted scalars: proper line folding
 * plain scalars: allow tabs before continuation lines
2016-03-17 21:25:30 +01:00
Felix Krause 961a8dba81 Support implicit maps in flow sequences 2016-03-17 20:28:00 +01:00
Felix Krause 7edb682844 Handle ',' as flow indicator after tag shorthand 2016-03-17 19:45:01 +01:00
Felix Krause 4eb9685a57 code style: use compact blocks where possible 2016-03-17 19:30:40 +01:00
Felix Krause 06322505d1 Properly handle ':' after empty key in flow style 2016-03-17 18:57:14 +01:00
Felix Krause eda85be0b9 Support % escape sequences in tag URIs 2016-03-17 18:44:35 +01:00
Felix Krause d1c8c171a1 Properly handle comments in flow mode 2016-03-16 19:30:51 +01:00
Felix Krause 1c61486739 Fixed small bugs
* allow '!' at beginning of tag URI in %TAG directive
 * recognise \t as start of more indented line in block flow scalar
 * Made testEventParser more robust
2016-03-16 19:20:18 +01:00
Felix Krause c3f5188e5e Removed unnecessary import 2016-03-14 18:18:41 +01:00
Felix Krause 16d1a1bceb Various code style and naming fixes
* Renamed some symbols for consistency, fixes #6:
   - yamlStartSequence -> yamlStartSeq
   - yamlEndSequence   -> yamlEndSeq
   - yamlStartDocument -> yamlStartDoc
   - yamlEndDocument   -> yamlEndDoc
   - yTagMap           -> yTagMapping
 * Improved code formatting at some places
 * Fixed code documentation at some places
 * Added generic objects to TODO list
 * Removed obsolete parsing tests, these are superseeded
   by yaml-dev-kit test suite integration
2016-03-14 18:10:34 +01:00
Felix Krause 2e8d7b39ab Fixed a bug with setting ! in %TAG directive 2016-03-11 18:32:17 +01:00
Felix Krause e1cee73b27 Fixed a bug with indentation after block scalar 2016-03-11 18:09:34 +01:00
Felix Krause 5444572543 Fixed bugs with handling scalars
* Fixed a problem with ':' followed by a plain-safe char
   after space within a plain scalar
 * Fixed block scalar handling in indented block context
2016-03-11 17:56:42 +01:00
Felix Krause 3a8781ba6e Handle more indented lines in folded block scalars 2016-03-10 21:20:14 +01:00
Felix Krause 491c5f5e3a Fixed a problem with implicit keys and properties 2016-03-10 19:59:56 +01:00
Felix Krause 99ece33b8b Parser: Use sets instead of arrays where feasible 2016-03-09 20:29:18 +01:00
Felix Krause a6ce61d3c4 Fixed bug related to block sequence indentation 2016-03-09 20:26:16 +01:00
Felix Krause a6fff2d7af Parser: Fixed bugs in multiline and block scalar 2016-03-04 21:51:37 +01:00
Felix Krause 778799e4ff Added option to validate against YAML test suite 2016-03-04 19:10:48 +01:00
Felix Krause 54703ae577 Fixed a problem with comment after plain scalar 2016-03-04 19:07:12 +01:00
Felix Krause a720abdc44 Parser: fixed problems with block scalars
* Block scalar as root node no longer leads to an error
 * Block scalar does not get a ! tag by default
2016-03-04 17:45:47 +01:00
Felix Krause 00e10ff9ce Fixed problem with JSON handling.
* use `[]=` instead of add() to add JSON nodes to an object.
   add() seems to have problems with expanding.
 * renamed bench/json.nim to bench/jsonBench.nim to avoid confusion
   with Nim's stdlib json.nim
2016-02-27 14:33:13 +01:00
Felix Krause 5933605591 Added copyright notices to files where missing 2016-02-27 13:09:50 +01:00
Felix Krause 46913867e2 Presenter: Let user decide about newline style
* Added PresentationOptions object; merged PresentationStyle,
   indentationStep and NewLineStyle in it
 * Updated signatures of relevant procs
 * Implemented user-defined newline style in presenter
2016-02-26 21:55:59 +01:00
Felix Krause 349cb19912 Refactoring of serialization code
* Made some procs/templates private that have been public without need
 * Improved documentation of procs
2016-02-26 21:13:40 +01:00
Felix Krause eddcc02e16 Merge branch 'master' of github.com:flyx/NimYAML 2016-02-26 19:28:50 +01:00
Felix Krause 6b46cffbbb Replaced \x0A with \l in strings 2016-02-26 19:28:28 +01:00
Felix Krause a5169230a3 Fixed JSON module to compile against new Nim API 2016-02-25 22:52:52 +01:00
Felix Krause 2d6e44188f Vastly improved quoted string output. Fixes #4 2016-02-25 22:32:50 +01:00
Felix Krause c9dae4430c Fixes #5 2016-02-25 21:16:03 +01:00