Skip to content

Commit 8313ec7

Browse files
authored
Support v2.0 of the NestedText spec (#13)
* Add support for parsing inline lists/objects * Fix various dumping issues * Move to a fork of the official tests, now with all representable cases passing * Treat empty nestedtext file as null * Minimise cases where multiline object keys are used * Error on root level indent on first content line
1 parent 895b710 commit 8313ec7

File tree

7 files changed

+494
-148
lines changed

7 files changed

+494
-148
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Create release
33
on:
44
push:
55
tags:
6-
- 'v[0-9]+.[0-9]+.[0-9]+'
6+
- 'v[0-9]+\.[0-9]+\.[0-9]+[ab]?'
77

88
jobs:
99
create_release:

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
url = https://github.com/Hejsil/zig-clap
44
[submodule "tests/official_tests"]
55
path = tests/official_tests
6-
url = git@github.com:KenKundert/nestedtext_tests.git
6+
url = git@github.com:LewisGaul/nestedtext_tests.git

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[![Gyro badge](https://img.shields.io/badge/gyro-nestedtext-blue)](https://astrolabe.pm/#/tag/nestedtext)
66

77

8-
A NestedText parser written in Zig 0.8 targeting [NestedText v1.3](https://nestedtext.org/en/v1.3/).
8+
A NestedText parser written in Zig 0.8 targeting [NestedText v2.0](https://nestedtext.org/en/v2.0/).
99

1010
See my [Zig NestedText Library blog post](https://www.lewisgaul.co.uk/blog/coding/2021/04/18/zig-nestedtext/).
1111

src/cli.zig

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,15 @@ fn mainWorker() WriteError!u8 {
172172
}
173173
return 1;
174174
};
175+
if (tree.root == null) {
176+
try stderr.print("An empty file is not valid NestedText\n", .{});
177+
return 1;
178+
}
175179
logger.debug("{d:6} Parsed NestedText", .{elapsed()});
176180

177181
switch (args.output_format) {
178182
.Json => {
179-
var json_tree = tree.root.toJson(allocator) catch {
183+
var json_tree = tree.root.?.toJson(allocator) catch {
180184
try stderr.writeAll("Failed to convert NestedText to JSON\n");
181185
return 1;
182186
};
@@ -185,7 +189,7 @@ fn mainWorker() WriteError!u8 {
185189
logger.debug("{d:6} Stringified JSON", .{elapsed()});
186190
},
187191
.NestedText => {
188-
try tree.root.stringify(.{}, out_stream);
192+
try tree.root.?.stringify(.{}, out_stream);
189193
logger.debug("{d:6} Stringified NestedText", .{elapsed()});
190194
},
191195
}
@@ -209,7 +213,7 @@ fn mainWorker() WriteError!u8 {
209213
return 1;
210214
};
211215
logger.debug("{d:6} Converted to NestedText", .{elapsed()});
212-
try nt_tree.root.stringify(.{}, out_stream);
216+
try nt_tree.root.?.stringify(.{}, out_stream);
213217
logger.debug("{d:6} Stringified NestedText", .{elapsed()});
214218
},
215219
}

0 commit comments

Comments
 (0)