From daf4a7574d1977567c3da3d7fa561710139eb052 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 29 Jun 2021 18:16:44 -0400 Subject: Factor out NQuads reader --- src/n3.c | 100 +-------------------------------------------------------------- 1 file changed, 1 insertion(+), 99 deletions(-) (limited to 'src/n3.c') diff --git a/src/n3.c b/src/n3.c index 777c83d3..c2ed8f72 100644 --- a/src/n3.c +++ b/src/n3.c @@ -32,12 +32,6 @@ #include #include -static bool -fancy_syntax(const SerdReader* const reader) -{ - return reader->syntax == SERD_TURTLE || reader->syntax == SERD_TRIG; -} - static SerdStatus read_collection(SerdReader* reader, ReadContext ctx, SerdNode** dest); @@ -156,11 +150,6 @@ read_String(SerdReader* const reader, SerdNode* const node) return SERD_SUCCESS; } - if (!fancy_syntax(reader)) { - return r_err( - reader, SERD_ERR_BAD_SYNTAX, "syntax does not support long literals"); - } - eat_byte_safe(reader, q3); return read_STRING_LITERAL_LONG(reader, node, (uint8_t)q1); } @@ -386,10 +375,6 @@ resolve_IRIREF(SerdReader* const reader, static SerdStatus read_IRIREF(SerdReader* const reader, SerdNode** const dest) { - if (!fancy_syntax(reader)) { - return read_IRI(reader, dest); - } - SerdStatus st = SERD_SUCCESS; if ((st = eat_byte_check(reader, '<'))) { return st; @@ -707,20 +692,6 @@ read_object(SerdReader* const reader, bool simple = (ctx->subject != 0); SerdNode* o = 0; const int c = peek_byte(reader); - if (!fancy_syntax(reader)) { - switch (c) { - case '"': - case ':': - case '<': - case '_': - break; - case '$': - case '?': - break; - default: - return r_err(reader, SERD_ERR_BAD_SYNTAX, "expected: ':', '<', or '_'"); - } - } switch (c) { case EOF: @@ -800,11 +771,9 @@ read_object(SerdReader* const reader, } } + ctx->object = o; if (!ret && emit && simple && o) { ret = emit_statement(reader, *ctx, o); - } else if (!ret && !emit) { - ctx->object = o; - return SERD_SUCCESS; } serd_stack_pop_to(&reader->stack, orig_stack_size); @@ -1279,70 +1248,3 @@ read_turtleTrigDoc(SerdReader* const reader) return SERD_SUCCESS; } - -SerdStatus -read_nquadsDoc(SerdReader* const reader) -{ - SerdStatus st = SERD_SUCCESS; - while (!st && !reader->source->eof) { - const size_t orig_stack_size = reader->stack.size; - - SerdStatementFlags flags = 0; - ReadContext ctx = {0, 0, 0, 0, &flags}; - bool ate_dot = false; - int s_type = 0; - read_ws_star(reader); - if (peek_byte(reader) == EOF) { - break; - } - - if (peek_byte(reader) == '@') { - r_err(reader, SERD_ERR_BAD_SYNTAX, "syntax does not support directives"); - return SERD_ERR_BAD_SYNTAX; - } - - if ((st = read_subject(reader, ctx, &ctx.subject, &s_type)) || - !read_ws_star(reader)) { - return st; - } - - switch (peek_byte(reader)) { - case '$': - case '?': - st = read_Var(reader, &ctx.predicate); - break; - case '<': - st = read_IRIREF(reader, &ctx.predicate); - break; - } - - if (st || !read_ws_star(reader) || - (st = read_object(reader, &ctx, false, &ate_dot))) { - return st; - } - - if (!ate_dot) { // graphLabel? - read_ws_star(reader); - switch (peek_byte(reader)) { - case '.': - break; - case '?': - TRY(st, read_Var(reader, &ctx.graph)); - break; - case '_': - TRY(st, read_BLANK_NODE_LABEL(reader, &ctx.graph, &ate_dot)); - break; - default: - TRY(st, read_IRIREF(reader, &ctx.graph)); - } - - // Terminating '.' - read_ws_star(reader); - TRY(st, eat_byte_check(reader, '.')); - } - - st = emit_statement(reader, ctx, ctx.object); - serd_stack_pop_to(&reader->stack, orig_stack_size); - } - return st; -} -- cgit v1.2.1