183 Commits

Author SHA1 Message Date
Felix Krause
f60725fc93 Made loading work at compile time
* dumping doesn't work at CT
 * timestamps don't work at CT
 * aliases don't work at CT
 * renamed tserialization -> tnative to mirror rename of native.nim file
 * added comptime tests to tnative, currently only execute when doing
   nim nativeTests, because of compiler bug
 * Fixes #70, #91
2023-08-30 21:14:31 +02:00
Felix Krause
d5aed71d38 Added raises annotations. Fixes #130 2023-08-30 19:56:04 +02:00
Felix Krause
940675a52e Reworked loading API
* moved load procs to yaml/loading.nim
 * moved input YamlStream into ConstructionContext
 * made ConstructionContext a non-ref object
 * harmonized code style & comments
 * renamed yaml/serialization.nim to yaml/native.nim
2023-08-29 23:23:15 +02:00
Felix Krause
18fc8ba3f5 Reworked dumping API
* removed default value objects,
   use Nim2 default vaules for fields instead.
 * moved dump procs to yaml/dumping and introduced Dumper
 * modified serialization procs to use ctx as first argument,
   so that prefix calls can be used
 * changed defaults for presentation to be more like other
   YAML implementations, e.g. no directives by default.
 * Removed deprecated procs in DOM API
 * Removed PresentationStyle – use the setXStyle procs of Dumper
   instead.
 * Fixed some warnings emerging from transitioning to Nim2
2023-08-29 20:46:26 +02:00
Felix Krause
189844a72b Rewrote large parts of presenter
* PresentationOptions has gained more fine-tuning options:
   * directivesEnd: specifies when `---` is written. ref #135
   * containers: specifies whether containers use block or flow style
   * suppressAddrs: if set, suppresses output of attributes
   * quoting: specifies how strings should be quoted
   * condenseFlow: specifies whether flow sequences should be on a
     single line
   * explicitKeys: specifies whether mapping keys should always have '?'
 * PresentationStyle is now a list of presets that set
   multiple options in PresentationOptions.
 * Does not output trailing spaces anymore. ref #135
 * Writes compact notation, i.e. a mapping in a sequence starts on the
   line with the sequence's `-`, unless attributes are written
 * Added tests for the presenter
 * Existing code might change behavior because of whitespace, `---` and
   compact notation. The API has been extended so that existing code is
   affected as little as possible.
2023-07-31 19:16:24 +02:00
theamarin
ee7dc11a90
Adapt type hinting to Yaml 1.2.2 (#132)
Updated type hinting for YAML 1.2.

 * previously outdated regexes from YAML 1.1 were used.
 * removed special cases for leading zeros that are not part of YAML 1.2.
 * updated literal regexes for infinity, NaN and boolean values.
 * added tests for type hinting

Co-authored-by: theamarin <theamarin@thecreation.de>
2023-04-10 17:17:03 +02:00
Felix Krause
4bd8216bb1 Dump fields of parent types. ref #131 2023-04-04 20:07:12 +02:00
Felix Krause
576cf11d81 Can load fields of parent types. ref #131
* dumping fields of parent types not working yet
2023-04-04 19:29:20 +02:00
Felix Krause
8e1b07975b Fixed a bug with objects with no fields
* can now be loaded properly
 * ref #130
2023-03-18 14:50:38 +01:00
Felix Krause
39444f6536 Consolidated exceptions 2023-03-18 13:54:45 +01:00
Felix Krause
034b9b8453 Reworked some exceptions and compiler warnings
* LexerError is properly rewritten as YamlParserError in parser
 * updated some code to remove warnings and hints that got emitted
 * Fixes #129
2023-03-13 22:06:07 +01:00
Felix Krause
300dbce72a Updated test suite, fixed lexer issues 2023-03-10 22:21:18 +01:00
Felix Krause
f692a47820 Skip ignored nested collections. Fixes #127 2023-03-10 19:57:21 +01:00
xflywind
7dd8e88639 make nimyaml works with stricteffects 2022-10-14 21:41:51 +02:00
Felix Krause
3e2f92c753 Fixed a bug in float deserialization.
* fixes #124
2022-09-07 16:54:11 +02:00
Felix Krause
7942e0a650 Fixed a bug in uint deserialization.
* fixes #123
2022-09-07 16:50:45 +02:00
Felix Krause
4ca3239e14 Fixed error handling for previous feature
* ref #117
2022-09-07 16:38:11 +02:00
Felix Krause
7bd562e37e Fixes and improvements to DOM API.
* added loadFlattened. Fixes #117
 * fixed an error where recursive nodes were not loaded
   properly into YamlNodes.
 * made dump with asNone raise an error when a cycle is
   encountered, instead of running into an endless loop.
2022-09-07 16:23:50 +02:00
Felix Krause
5f7677d914 Improved presenter.
* added maxLineLength to PresentationOptions. Fixes #119
 * write a newline to the end of the document.
   required for the output files to be POSIX-compliant text files.
   also improves QoL when dumping to stdout.
2022-09-07 15:15:55 +02:00
xflywind
a5552a1a18 replace shallowCopy for ARC/ORC 2022-08-29 16:30:26 +02:00
metagn
c7d8aa6467 Change deprecated type pragma syntax
Sorry that this messes with the style here, but it would be nice to have this syntax removed given how long it's been deprecated (https://github.com/nim-lang/Nim/pull/20199).
2022-08-11 09:14:42 +02:00
Felix Krause
947207dd02 added marks and styles to YamlNode 2022-08-02 19:46:58 +02:00
quantimnot
5a3aab9389
Change logic to prevent early doc end state (#115)
fixes #114

Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
2022-07-10 18:14:07 +02:00
Felix Krause
741fd18047 Deprecated DOM API, YamlNode now supported by serialization API
* implements #48
 * also fixes #108
 * updated docs
2022-06-05 12:27:19 +02:00
Felix Krause
8993f928d4 properly handle comment after block scalars. fixes #106 2022-06-04 23:14:28 +02:00
flyx
89e18cebfa
fix #105
fixed an off-by-one error when presenting folded scalars
2022-01-22 01:18:11 +01:00
Felix Krause
e33c448783 up Readme, +funding, v0.16.0 2021-10-22 18:36:29 +02:00
quantimnot
75ed8e5be4
Change serialization to omit none(T) fields of sparse objects (#100)
* Change serialization to omit `none(T)` fields of sparse objects

Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
2021-10-22 17:54:40 +02:00
Felix Krause
d704a8c6d7 fixed compiler warnings 2021-10-22 17:46:05 +02:00
Felix Krause
c681498701 updated tests, fixed problems 2021-10-22 17:42:48 +02:00
Felix Krause
c1cc0be3f3 fixed lexer errors discovered by new parser tests 2021-10-22 17:22:43 +02:00
Felix Krause
10cc4d3026 repaired raise annotations in serialization. Fixes #99 2021-09-06 12:37:19 +02:00
Felix Krause
d20707c4e4 disable DOM API when using ARC (ref #85) 2021-05-18 00:42:58 +02:00
Felix Krause
1346467b42 fixes #93 2021-05-18 00:31:47 +02:00
Felix Krause
a72966374f fixes #90 2021-05-18 00:28:24 +02:00
Felix Krause
f123924d32 fix for --gc:orc; some memory improvements 2021-05-17 23:51:35 +02:00
Felix Krause
2b0e20abd0 fixed server to compile with current Nim 2021-05-17 19:50:10 +02:00
Felix Krause
329e18e44c removed obsolete TagLibrary type. control tag directives when dumping. fixes #95 2021-03-23 18:51:05 +01:00
flyx
03ecab0075
fix bool serialization
output `true` or `false` instead of `y` and `n` to comply with the YAML 1.2 spec.
2021-03-23 13:20:48 +01:00
Timothee Cour
fcae534148 support -d:yamlDebug at CT 2020-11-14 21:58:31 +01:00
Felix Krause
45321cad13 fixes #39 2020-11-10 22:12:09 +01:00
Felix Krause
f79774e766 updated raises annotations 2020-11-10 21:28:56 +01:00
Felix Krause
e3e810fce0 all tests green again 2020-11-10 19:07:46 +01:00
Felix Krause
9d92e8a2c5 all serialization tests green again 2020-11-10 15:40:01 +01:00
Felix Krause
4305bccbf0 made anchor resolution during deserialization safer 2020-11-10 14:48:19 +01:00
Felix Krause
aa65c066d5 changed TagId to Tag. removed JS stuff that wasn't working anyway. 2020-11-10 13:55:22 +01:00
Felix Krause
6238104622 started making serializationTests green again 2020-11-06 21:39:50 +01:00
Felix Krause
48d601d959 parser tests working, other tests compiling 2020-11-06 16:21:58 +01:00
Felix Krause
e2f8e6419e lots of fixes for parser, started updating serialization 2020-11-05 20:23:42 +01:00
Felix Krause
ae4c097a25 fixed parser test framework; started making parser tests green 2020-11-04 22:47:52 +01:00