Commit Graph

88 Commits

Author SHA1 Message Date
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
Felix Krause b13d8fa201 Presenter: Output block scalars if feasible 2016-02-25 21:04:44 +01:00
Felix Krause 27670f63c9 Implemented and documented DOM 2016-02-22 21:56:30 +01:00
Felix Krause 33a7f93480 Code cleanup; reduced compiler hints 2016-02-19 18:25:01 +01:00
Felix Krause f2f340c0b6 Fixes #2 2016-02-19 17:31:57 +01:00
Felix Krause 43e10f496a Fixes #3 2016-02-18 22:32:25 +01:00
Felix Krause bc9229d0c5 Fixes #1 2016-02-18 22:14:24 +01:00
Felix Krause 9be97ff386 Added constructChild for better serialization.
- Handle tag and anchor checks and ref types in constructChild
 - Added tests for using custom representObject and constructObject
   procs
 - Code cleanup
2016-02-16 19:24:55 +01:00
Felix Krause 0a7f87a539 Improved docs. Fixed serialization problem.
* Added serialization.txt to doc
 * Fixed rendering problem in api.txt
 * Use explicit tag when ref type renders to a scalar that can be
   parsed to !!null
 * Added test cases for this ref type fix
2016-02-15 22:54:05 +01:00
Felix Krause 02e505959a Added setTagUriForType. Used it. Improved docs. 2016-02-15 19:46:21 +01:00
Felix Krause 325e3ec18f Made serialization part of yaml. Improved doc. 2016-02-12 20:44:38 +01:00
Felix Krause c6c13eb044 Better doc index. YamlStream now an object.
* Also various fixes to serialization and presentation
2016-02-12 19:53:25 +01:00
Felix Krause 96f01385ef Implemented serializing ref objects. 2016-01-28 21:59:26 +01:00
Felix Krause cec66cd0a2 Presenter: Properly forward exceptions 2016-01-27 15:18:01 +01:00
Felix Krause 5162c310ce Serialization: Better proc names
* renamed serialize to serializeObject and construct to constructObject
 * added new serialize() and construct() procs that handle document
   start & end
 * re-raise AssertionError instead of swallowing it
2016-01-26 20:51:21 +01:00
Felix Krause 24f44b5022 Fixed wrapped exception handling 2016-01-24 21:38:29 +01:00
Felix Krause f2c81f1fc5 Small improvements 2016-01-24 21:21:37 +01:00
Felix Krause 36872370d5 Fixed bugs in presenter, serialization, README
* Made presenter output numbers without double quotes in
   JSON style again
 * Fixed broken serialization.load
 * Updated examples in README
2016-01-24 20:53:51 +01:00
Felix Krause b7828884bd Documentation fixes.
* Some typo fixes in code
 * nim documentation now generates API doc with source links
 * presenter now uses "" if a string starts with @ or `
 * Removed some outdated stuff
2016-01-24 19:15:50 +01:00
Felix Krause a08f4c1e4e Sanitized exceptions and raises pragmas
* Added raises pragma to every proc in yaml.nim
 * Properly encapsulate exceptions from YamlStreams
 * Discovered a Nim compiler bug and added a workaround
 * Added possibility to query line, column and line content from
   YamlParser
 * Updated rst documentation
 * Actually call callback in fastparse if available
 * Fixed parsing YAML version
2016-01-24 18:24:09 +01:00
Felix Krause fdcc699768 Removed old lexer/parser impl in favor of new one
* fastparse now used for everything
 * private/[lexer|parser].nim gone
 * Made fastparse use YamlParser object
 * Got all tests working with fastparse
 * Some more smaller changes to API
2016-01-24 11:44:10 +01:00
Felix Krause 971218314e fastparse: made it pass the parsing tests
* Scan for implicit map key as soon as a property is encountered
 * Proper handling of node properties throughout parser
 * Fixed an issue where plain scalars sometimes contained garbage
   when yielded
 * Catch reserved chars @ and `
 * Fixed some test cases
 * Made parser test cases use fastparse
2016-01-23 17:44:50 +01:00
Felix Krause 7f8afef3d4 Handle line folding in double quoted strings 2016-01-23 15:29:45 +01:00
Felix Krause 954aeafd15 Implemented block scalar, improved comments 2016-01-23 14:09:52 +01:00
Felix Krause 573d4788c7 Properly parse flow sequences 2016-01-22 23:53:42 +01:00