From 233dc12e44eea2ebd967b5fc9fbfe8f1b153adf6 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 10 Mar 2019 12:16:54 +0100 Subject: Support reading lone lists in lax mode This allows parsing documents like "(42) ." --- src/n3.c | 2 +- test/extra/lax/manifest.ttl | 7 +++++++ test/extra/lax/test-lone-list.nt | 2 ++ test/extra/lax/test-lone-list.ttl | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 test/extra/lax/test-lone-list.nt create mode 100644 test/extra/lax/test-lone-list.ttl diff --git a/src/n3.c b/src/n3.c index dab83b12..006d28ba 100644 --- a/src/n3.c +++ b/src/n3.c @@ -1649,7 +1649,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_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 ; mf:name "test-bad-utf8" ; mf:result . + +<#test-lone-list> + a rdft:TestTurtleNegativeSyntax ; + mf:name "test-lone-list" ; + mf:action ; + mf:result . 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 "42"^^ . +_:b1 . 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) . -- cgit v1.2.1