diff options
author | David Robillard <d@drobilla.net> | 2024-03-29 06:48:16 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2024-03-29 06:49:14 -0400 |
commit | dc3aeed6ce84736100d713cac8f40e46d16d1289 (patch) | |
tree | c266ecb76b16c5c9131469bc82a054f501e89010 | |
parent | 6aed064084c8c1af02adb46b0066aaee1f436edf (diff) | |
download | serd-dc3aeed6ce84736100d713cac8f40e46d16d1289.tar.gz serd-dc3aeed6ce84736100d713cac8f40e46d16d1289.tar.bz2 serd-dc3aeed6ce84736100d713cac8f40e46d16d1289.zip |
Support reading lone lists in lax mode
This allows parsing documents like "(42) ."
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | src/n3.c | 2 | ||||
-rw-r--r-- | test/extra/lax/manifest.ttl | 7 | ||||
-rw-r--r-- | test/extra/lax/test-lone-list.nt | 2 | ||||
-rw-r--r-- | test/extra/lax/test-lone-list.ttl | 1 |
5 files changed, 13 insertions, 2 deletions
@@ -2,8 +2,9 @@ serd (0.32.3) unstable; urgency=medium * Fix library current_version on MacOS * Fix parsing NQuads lines with no space before the final dot + * Support reading lone lists in lax mode - -- David Robillard <d@drobilla.net> Thu, 14 Mar 2024 16:43:17 +0000 + -- David Robillard <d@drobilla.net> Fri, 29 Mar 2024 10:48:45 +0000 serd (0.32.2) stable; urgency=medium @@ -1670,7 +1670,7 @@ read_n3_statement(SerdReader* const reader) return SERD_SUCCESS; } - if (ate_dot) { + if (ate_dot && (reader->strict || (s_type != '('))) { return r_err( reader, SERD_ERR_BAD_SYNTAX, "unexpected end of statement\n"); } diff --git a/test/extra/lax/manifest.ttl b/test/extra/lax/manifest.ttl index e2930a81..a04a74f6 100644 --- a/test/extra/lax/manifest.ttl +++ b/test/extra/lax/manifest.ttl @@ -9,6 +9,7 @@ <#test-bad-string> <#test-bad-uri> <#test-bad-utf8> + <#test-lone-list> ) . <#test-bad-string> @@ -28,3 +29,9 @@ mf:action <test-bad-utf8.ttl> ; mf:name "test-bad-utf8" ; mf:result <test-bad-utf8.nt> . + +<#test-lone-list> + a rdft:TestTurtleNegativeSyntax ; + mf:name "test-lone-list" ; + mf:action <test-lone-list.ttl> ; + mf:result <test-lone-list.nt> . diff --git a/test/extra/lax/test-lone-list.nt b/test/extra/lax/test-lone-list.nt new file mode 100644 index 00000000..400c2aba --- /dev/null +++ b/test/extra/lax/test-lone-list.nt @@ -0,0 +1,2 @@ +_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "42"^^<http://www.w3.org/2001/XMLSchema#integer> . +_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> . diff --git a/test/extra/lax/test-lone-list.ttl b/test/extra/lax/test-lone-list.ttl new file mode 100644 index 00000000..e9c593b8 --- /dev/null +++ b/test/extra/lax/test-lone-list.ttl @@ -0,0 +1 @@ +(42) . |