From bd24b8f6d558bafbbb16d9490ebe3478dbf130bd Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 9 Sep 2021 13:57:43 -0400 Subject: Use more human-readable status codes --- src/n3.c | 85 +++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 41 insertions(+), 44 deletions(-) (limited to 'src/n3.c') diff --git a/src/n3.c b/src/n3.c index 3b12dfec..0ded004d 100644 --- a/src/n3.c +++ b/src/n3.c @@ -107,7 +107,7 @@ read_STRING_LITERAL_LONG(SerdReader* const reader, return r_err(reader, st, "invalid escape `\\%c'", peek_byte(reader)); } } else if (c == EOF) { - st = r_err(reader, SERD_ERR_NO_DATA, "unexpected end of file"); + st = r_err(reader, SERD_NO_DATA, "unexpected end of file"); } else if (c == q) { eat_byte_safe(reader, q); const int q2 = eat_byte_safe(reader, peek_byte(reader)); @@ -136,7 +136,7 @@ read_String(SerdReader* const reader, SerdNode* const node) const int q2 = peek_byte(reader); if (q2 == EOF) { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "unexpected end of file"); + return r_err(reader, SERD_BAD_SYNTAX, "unexpected end of file"); } if (q2 != q1) { // Short string (not triple quoted) @@ -146,7 +146,7 @@ read_String(SerdReader* const reader, SerdNode* const node) eat_byte_safe(reader, q2); const int q3 = peek_byte(reader); if (q3 == EOF) { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "unexpected end of file"); + return r_err(reader, SERD_BAD_SYNTAX, "unexpected end of file"); } if (q3 != q1) { // Empty short string ("" or '') @@ -171,7 +171,7 @@ read_PERCENT(SerdReader* const reader, SerdNode* const dest) const uint8_t h1 = read_HEX(reader); const uint8_t h2 = read_HEX(reader); if (!h1 || !h2) { - return SERD_ERR_BAD_SYNTAX; + return SERD_BAD_SYNTAX; } if (!(st = push_byte(reader, dest, h1))) { @@ -188,9 +188,8 @@ read_PN_LOCAL_ESC(SerdReader* const reader, SerdNode* const dest) const int c = peek_byte(reader); - return is_PN_LOCAL_ESC(c) - ? push_byte(reader, dest, eat_byte_safe(reader, c)) - : r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid escape"); + return is_PN_LOCAL_ESC(c) ? push_byte(reader, dest, eat_byte_safe(reader, c)) + : r_err(reader, SERD_BAD_SYNTAX, "invalid escape"); } static SerdStatus @@ -277,7 +276,7 @@ read_PN_PREFIX_tail(SerdReader* const reader, SerdNode* const dest) serd_node_string(dest)[serd_node_length(dest) - 1] == '.') { if ((st = read_PN_CHARS(reader, dest))) { return r_err(reader, - st > SERD_FAILURE ? st : SERD_ERR_BAD_SYNTAX, + st > SERD_FAILURE ? st : SERD_BAD_SYNTAX, "prefix ends with `.'"); } } @@ -332,7 +331,7 @@ resolve_IRIREF(SerdReader* const reader, uri = serd_resolve_uri(uri, serd_env_base_uri_view(reader->env)); if (!uri.scheme.len) { return r_err(reader, - SERD_ERR_BAD_SYNTAX, + SERD_BAD_SYNTAX, "failed to resolve relative URI reference <%s>", serd_node_string(dest)); } @@ -340,7 +339,7 @@ resolve_IRIREF(SerdReader* const reader, // Push a new temporary node for constructing the resolved URI SerdNode* const temp = push_node(reader, SERD_URI, "", 0); if (!temp) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } // Write resolved URI to the temporary node @@ -364,7 +363,7 @@ read_IRIREF(SerdReader* const reader, SerdNode** const dest) } if (!(*dest = push_node(reader, SERD_URI, "", 0))) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } const size_t string_start_offset = reader->stack.size; @@ -438,7 +437,7 @@ read_0_9(SerdReader* const reader, SerdNode* const str, const bool at_least_one) } if (at_least_one && count == 0) { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "expected digit"); + return r_err(reader, SERD_BAD_SYNTAX, "expected digit"); } return st; @@ -459,7 +458,7 @@ read_number(SerdReader* const reader, int c = peek_byte(reader); bool has_decimal = false; if (!*dest) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } if (c == '-' || c == '+') { @@ -523,7 +522,7 @@ read_iri(SerdReader* const reader, SerdNode** const dest, bool* const ate_dot) } if (!(*dest = push_node(reader, SERD_LITERAL, "", 0))) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } return read_PrefixedName(reader, *dest, true, ate_dot, reader->stack.size); @@ -535,7 +534,7 @@ read_literal(SerdReader* const reader, bool* const ate_dot) { if (!(*dest = push_node(reader, SERD_LITERAL, "", 0))) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } SerdStatus st = read_String(reader, *dest); @@ -577,7 +576,7 @@ read_verb(SerdReader* reader, SerdNode** dest) "a", produce that instead. */ if (!(*dest = push_node(reader, SERD_URI, "", 0))) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } const size_t string_start_offset = reader->stack.size; @@ -594,7 +593,7 @@ read_verb(SerdReader* reader, SerdNode** dest) serd_stack_pop_to(&reader->stack, orig_stack_size); return ((*dest = push_node(reader, SERD_URI, NS_RDF "type", 47)) ? SERD_SUCCESS - : SERD_ERR_OVERFLOW); + : SERD_BAD_STACK); } if ((st = read_PrefixedName( @@ -602,7 +601,7 @@ read_verb(SerdReader* reader, SerdNode** dest) ate_dot) { *dest = NULL; return r_err( - reader, st > SERD_FAILURE ? st : SERD_ERR_BAD_SYNTAX, "expected verb"); + reader, st > SERD_FAILURE ? st : SERD_BAD_SYNTAX, "expected verb"); } return SERD_SUCCESS; @@ -627,7 +626,7 @@ read_anon(SerdReader* const reader, if (!*dest) { if (!(*dest = blank_id(reader))) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } } @@ -644,7 +643,7 @@ read_anon(SerdReader* const reader, TRY(st, read_predicateObjectList(reader, ctx, &ate_dot_in_list)); if (ate_dot_in_list) { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "`.' inside blank"); + return r_err(reader, SERD_BAD_SYNTAX, "`.' inside blank"); } read_ws_star(reader); @@ -683,7 +682,7 @@ read_named_object(SerdReader* const reader, out to actually be "true" or "false", switch it to a boolean literal. */ if (!(*dest = push_node(reader, SERD_URI, "", 0))) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } SerdNode* node = *dest; @@ -699,12 +698,12 @@ read_named_object(SerdReader* const reader, node->type = SERD_LITERAL; return push_node(reader, SERD_URI, XSD_BOOLEAN, XSD_BOOLEAN_LEN) ? SERD_SUCCESS - : SERD_ERR_OVERFLOW; + : SERD_BAD_STACK; } // Any other failure is a syntax error if (st) { - st = st > SERD_FAILURE ? st : SERD_ERR_BAD_SYNTAX; + st = st > SERD_FAILURE ? st : SERD_BAD_SYNTAX; return r_err(reader, st, "expected prefixed name or boolean"); } @@ -730,7 +729,7 @@ read_object(SerdReader* const reader, switch (c) { case EOF: case ')': - return r_err(reader, SERD_ERR_BAD_SYNTAX, "expected object"); + return r_err(reader, SERD_BAD_SYNTAX, "expected object"); case '$': case '?': st = read_Var(reader, &o); @@ -823,7 +822,7 @@ read_predicateObjectList(SerdReader* const reader, switch (c = peek_byte(reader)) { case EOF: serd_stack_pop_to(&reader->stack, orig_stack_size); - return r_err(reader, SERD_ERR_BAD_SYNTAX, "unexpected end of file"); + return r_err(reader, SERD_BAD_SYNTAX, "unexpected end of file"); case '.': case ']': case '}': @@ -837,7 +836,7 @@ read_predicateObjectList(SerdReader* const reader, if (!ate_semi) { serd_stack_pop_to(&reader->stack, orig_stack_size); - return r_err(reader, SERD_ERR_BAD_SYNTAX, "missing ';' or '.'"); + return r_err(reader, SERD_BAD_SYNTAX, "missing ';' or '.'"); } } @@ -863,7 +862,7 @@ read_collection(SerdReader* const reader, *dest = end ? reader->rdf_nil : blank_id(reader); if (!*dest) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } if (ctx.subject) { // Reading a collection object @@ -887,7 +886,7 @@ read_collection(SerdReader* const reader, SerdNode* rest = 0; if (!n1) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } ctx.subject = *dest; @@ -951,7 +950,7 @@ read_subject(SerdReader* const reader, } if (ate_dot) { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "subject ends with `.'"); + return r_err(reader, SERD_BAD_SYNTAX, "subject ends with `.'"); } return st; @@ -971,14 +970,14 @@ read_labelOrSubject(SerdReader* const reader, SerdNode** const dest) return st; } *dest = blank_id(reader); - return *dest ? SERD_SUCCESS : SERD_ERR_OVERFLOW; + return *dest ? SERD_SUCCESS : SERD_BAD_STACK; case '_': return read_BLANK_NODE_LABEL(reader, dest, &ate_dot); default: if (!read_iri(reader, dest, &ate_dot)) { return SERD_SUCCESS; } else { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "expected label or subject"); + return r_err(reader, SERD_BAD_SYNTAX, "expected label or subject"); } } } @@ -1017,7 +1016,7 @@ read_base(SerdReader* const reader, const bool sparql, const bool token) TRY(st, read_IRIREF(reader, &uri)); if (reader->stack.size + sizeof(SerdNode) > reader->stack.buf_size) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } serd_node_zero_pad(uri); @@ -1030,7 +1029,7 @@ read_base(SerdReader* const reader, const bool sparql, const bool token) } if (peek_byte(reader) == '.') { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "full stop after SPARQL BASE"); + return r_err(reader, SERD_BAD_SYNTAX, "full stop after SPARQL BASE"); } return SERD_SUCCESS; @@ -1047,7 +1046,7 @@ read_prefixID(SerdReader* const reader, const bool sparql, const bool token) read_ws_star(reader); SerdNode* name = push_node(reader, SERD_LITERAL, "", 0); if (!name) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } if ((st = read_PN_PREFIX(reader, name)) > SERD_FAILURE) { @@ -1063,7 +1062,7 @@ read_prefixID(SerdReader* const reader, const bool sparql, const bool token) TRY(st, read_IRIREF(reader, &uri)); if (reader->stack.size + sizeof(SerdNode) > reader->stack.buf_size) { - return SERD_ERR_OVERFLOW; + return SERD_BAD_STACK; } serd_node_zero_pad(name); @@ -1103,8 +1102,7 @@ read_wrappedGraph(SerdReader* const reader, ReadContext* const ctx) } if (read_triples(reader, *ctx, &ate_dot) && s_type != '[') { - return r_err( - reader, SERD_ERR_BAD_SYNTAX, "missing predicate object list"); + return r_err(reader, SERD_BAD_SYNTAX, "missing predicate object list"); } serd_stack_pop_to(&reader->stack, orig_stack_size); @@ -1118,7 +1116,7 @@ read_wrappedGraph(SerdReader* const reader, ReadContext* const ctx) eat_byte_safe(reader, '}'); read_ws_star(reader); if (peek_byte(reader) == '.') { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "graph followed by `.'"); + return r_err(reader, SERD_BAD_SYNTAX, "graph followed by `.'"); } return SERD_SUCCESS; @@ -1146,7 +1144,7 @@ read_turtle_directive(SerdReader* const reader) break; } - return r_err(reader, SERD_ERR_BAD_SYNTAX, "expected \"base\" or \"prefix\""); + return r_err(reader, SERD_BAD_SYNTAX, "expected \"base\" or \"prefix\""); } static SerdStatus @@ -1194,7 +1192,7 @@ read_block(SerdReader* const reader, ReadContext* const ctx) read_ws_star(reader); if (peek_byte(reader) == '{') { if (s_type == '(' || (s_type == '[' && !*ctx->flags)) { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid graph name"); + return r_err(reader, SERD_BAD_SYNTAX, "invalid graph name"); } ctx->graph = token; @@ -1203,7 +1201,7 @@ read_block(SerdReader* const reader, ReadContext* const ctx) } if (st) { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "expected directive or subject"); + return r_err(reader, SERD_BAD_SYNTAX, "expected directive or subject"); } // Our token is really a subject, read some triples @@ -1215,7 +1213,7 @@ read_block(SerdReader* const reader, ReadContext* const ctx) // "Failure" is only allowed for anonymous subjects like "[ ... ] ." if (st && s_type != '[') { - return r_err(reader, SERD_ERR_BAD_SYNTAX, "expected triples"); + return r_err(reader, SERD_BAD_SYNTAX, "expected triples"); } // Ensure that triples are properly terminated @@ -1244,8 +1242,7 @@ read_n3_statement(SerdReader* const reader) case '{': return (reader->syntax == SERD_TRIG) ? read_wrappedGraph(reader, &ctx) - : r_err( - reader, SERD_ERR_BAD_SYNTAX, "syntax does not support graphs"); + : r_err(reader, SERD_BAD_SYNTAX, "syntax does not support graphs"); default: break; -- cgit v1.2.1