diff options
author | David Robillard <d@drobilla.net> | 2018-02-10 13:32:06 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-12-19 13:27:24 -0500 |
commit | ecaf0fc72f53a8d42909aa8d8d8be873500a0bc0 (patch) | |
tree | 2c6ef1df31d73142fb72550f0072fab22e0ac11c /src/n3.c | |
parent | a4296843ae313a8371d4464af3b7b59801f16438 (diff) | |
download | serd-ecaf0fc72f53a8d42909aa8d8d8be873500a0bc0.tar.gz serd-ecaf0fc72f53a8d42909aa8d8d8be873500a0bc0.tar.bz2 serd-ecaf0fc72f53a8d42909aa8d8d8be873500a0bc0.zip |
Simplify reader interface
Diffstat (limited to 'src/n3.c')
-rw-r--r-- | src/n3.c | 28 |
1 files changed, 16 insertions, 12 deletions
@@ -1444,22 +1444,22 @@ skip_until(SerdReader* reader, uint8_t byte) } } -bool +SerdStatus read_turtleTrigDoc(SerdReader* reader) { while (!reader->source.eof) { if (!read_n3_statement(reader)) { if (reader->strict) { - return 0; + return SERD_ERR_UNKNOWN; } skip_until(reader, '\n'); reader->status = SERD_SUCCESS; } } - return reader->status <= SERD_FAILURE; + return reader->status; } -bool +SerdStatus read_nquadsDoc(SerdReader* reader) { while (!reader->source.eof) { @@ -1471,8 +1471,9 @@ read_nquadsDoc(SerdReader* reader) if (peek_byte(reader) == EOF) { break; } else if (peek_byte(reader) == '@') { - return r_err(reader, SERD_ERR_BAD_SYNTAX, - "syntax does not support directives\n"); + r_err(reader, SERD_ERR_BAD_SYNTAX, + "syntax does not support directives\n"); + return SERD_ERR_BAD_SYNTAX; } // subject predicate object @@ -1481,11 +1482,11 @@ read_nquadsDoc(SerdReader* reader) !(ctx.predicate = read_IRIREF(reader)) || !read_ws_star(reader) || !read_object(reader, &ctx, false, &ate_dot)) { - return false; + return SERD_ERR_UNKNOWN; } if (!ate_dot) { // graphLabel? - TRY_RET(read_ws_star(reader)); + read_ws_star(reader); switch (peek_byte(reader)) { case '.': break; @@ -1494,20 +1495,23 @@ read_nquadsDoc(SerdReader* reader) break; default: if (!(ctx.graph = read_IRIREF(reader))) { - return false; + return SERD_ERR_UNKNOWN; } } // Terminating '.' - TRY_RET(read_ws_star(reader)); + read_ws_star(reader); eat_byte_check(reader, '.'); } - TRY_RET(emit_statement(reader, ctx, ctx.object, ctx.datatype, ctx.lang)); + if (!emit_statement(reader, ctx, ctx.object, ctx.datatype, ctx.lang)) { + break; + } + pop_node(reader, ctx.graph); pop_node(reader, ctx.lang); pop_node(reader, ctx.datatype); pop_node(reader, ctx.object); } - return reader->status <= SERD_FAILURE; + return reader->status; } |