LMMS
Loading...
Searching...
No Matches
reader.c File Reference
#include "serd_internal.h"
#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Classes

struct  Cursor
struct  ReadContext
struct  SerdReaderImpl

Macros

#define NS_XSD   "http://www.w3.org/2001/XMLSchema#"
#define NS_RDF   "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
#define TRY_THROW(exp)
#define TRY_RET(exp)
#define SERD_STACK_ASSERT_TOP(reader, ref)
#define XSD_DECIMAL   NS_XSD "decimal"
#define XSD_DOUBLE   NS_XSD "double"
#define XSD_INTEGER   NS_XSD "integer"

Typedefs

typedef uint32_t uchar

Functions

static int r_err (SerdReader *reader, SerdStatus st, const char *fmt,...)
static SerdStatus page (SerdReader *reader)
static uint8_t peek_byte (SerdReader *reader)
static uint8_t eat_byte_safe (SerdReader *reader, const uint8_t byte)
static uint8_t eat_byte_check (SerdReader *reader, const uint8_t byte)
static void eat_string (SerdReader *reader, const char *str, unsigned n)
static Ref push_node_padded (SerdReader *reader, size_t maxlen, SerdType type, const char *str, size_t n_bytes)
static Ref push_node (SerdReader *reader, SerdType type, const char *str, size_t n_bytes)
static SerdNodederef (SerdReader *reader, const Ref ref)
static void push_byte (SerdReader *reader, Ref ref, const uint8_t c)
static void push_replacement (SerdReader *reader, Ref dest)
static Ref pop_node (SerdReader *reader, Ref ref)
static bool emit_statement (SerdReader *reader, ReadContext ctx, Ref o, Ref d, Ref l)
static bool read_collection (SerdReader *reader, ReadContext ctx, Ref *dest)
static bool read_predicateObjectList (SerdReader *reader, ReadContext ctx, bool *ate_dot)
static uint8_t read_HEX (SerdReader *reader)
static bool read_UCHAR (SerdReader *reader, Ref dest, uint32_t *char_code)
static bool read_ECHAR (SerdReader *reader, Ref dest, SerdNodeFlags *flags)
static SerdStatus bad_char (SerdReader *reader, Ref dest, const char *fmt, uint8_t c)
static SerdStatus read_utf8_character (SerdReader *reader, Ref dest, uint8_t c)
static SerdStatus read_character (SerdReader *reader, Ref dest, SerdNodeFlags *flags, uint8_t c)
static void read_comment (SerdReader *reader)
static bool read_ws (SerdReader *reader)
static bool read_ws_star (SerdReader *reader)
static bool read_ws_plus (SerdReader *reader)
static bool peek_delim (SerdReader *reader, const char delim)
static bool eat_delim (SerdReader *reader, const char delim)
static Ref read_STRING_LITERAL_LONG (SerdReader *reader, SerdNodeFlags *flags, uint8_t q)
static Ref read_STRING_LITERAL (SerdReader *reader, SerdNodeFlags *flags, uint8_t q)
static Ref read_String (SerdReader *reader, SerdNodeFlags *flags)
static bool read_PN_CHARS_BASE (SerdReader *reader, Ref dest)
static bool read_PN_CHARS (SerdReader *reader, Ref dest)
static bool read_PERCENT (SerdReader *reader, Ref dest)
static SerdStatus read_PLX (SerdReader *reader, Ref dest)
static SerdStatus read_PN_LOCAL (SerdReader *reader, Ref dest, bool *ate_dot)
static SerdStatus read_PN_PREFIX_tail (SerdReader *reader, Ref dest)
static SerdStatus read_PN_PREFIX (SerdReader *reader, Ref dest)
static Ref read_LANGTAG (SerdReader *reader)
static Ref read_IRIREF (SerdReader *reader)
static bool read_PrefixedName (SerdReader *reader, Ref dest, bool read_prefix, bool *ate_dot)
static bool read_0_9 (SerdReader *reader, Ref str, bool at_least_one)
static bool read_number (SerdReader *reader, Ref *dest, Ref *datatype, bool *ate_dot)
static bool read_iri (SerdReader *reader, Ref *dest, bool *ate_dot)
static bool read_literal (SerdReader *reader, Ref *dest, Ref *datatype, Ref *lang, SerdNodeFlags *flags, bool *ate_dot)
static bool is_token_end (uint8_t c)
static bool read_verb (SerdReader *reader, Ref *dest)
static Ref read_BLANK_NODE_LABEL (SerdReader *reader, bool *ate_dot)
static void set_blank_id (SerdReader *reader, Ref ref, size_t buf_size)
static size_t genid_size (SerdReader *reader)
static Ref blank_id (SerdReader *reader)
static Ref read_blankName (SerdReader *reader)
static bool read_anon (SerdReader *reader, ReadContext ctx, bool subject, Ref *dest)
static bool read_object (SerdReader *reader, ReadContext ctx, bool *ate_dot)
static bool read_objectList (SerdReader *reader, ReadContext ctx, bool *ate_dot)
static bool end_collection (SerdReader *reader, ReadContext ctx, Ref n1, Ref n2, bool ret)
static Ref read_subject (SerdReader *reader, ReadContext ctx, bool *nested)
static bool read_triples (SerdReader *reader, ReadContext ctx, bool *ate_dot)
static bool read_base (SerdReader *reader)
static bool read_prefixID (SerdReader *reader)
static bool read_directive (SerdReader *reader)
static bool read_statement (SerdReader *reader)
static bool read_turtleDoc (SerdReader *reader)
SERD_API SerdReaderserd_reader_new (SerdSyntax syntax, void *handle, void(*free_handle)(void *), SerdBaseSink base_sink, SerdPrefixSink prefix_sink, SerdStatementSink statement_sink, SerdEndSink end_sink)
SERD_API void serd_reader_set_strict (SerdReader *reader, bool strict)
SERD_API void serd_reader_set_error_sink (SerdReader *reader, SerdErrorSink error_sink, void *error_handle)
SERD_API void serd_reader_free (SerdReader *reader)
SERD_API voidserd_reader_get_handle (const SerdReader *reader)
SERD_API void serd_reader_add_blank_prefix (SerdReader *reader, const uint8_t *prefix)
SERD_API void serd_reader_set_default_graph (SerdReader *reader, const SerdNode *graph)
SERD_API SerdStatus serd_reader_read_file (SerdReader *reader, const uint8_t *uri)
static void skip_bom (SerdReader *me)
SERD_API SerdStatus serd_reader_start_stream (SerdReader *me, FILE *file, const uint8_t *name, bool bulk)
SERD_API SerdStatus serd_reader_read_chunk (SerdReader *me)
SERD_API SerdStatus serd_reader_end_stream (SerdReader *me)
SERD_API SerdStatus serd_reader_read_file_handle (SerdReader *me, FILE *file, const uint8_t *name)
SERD_API SerdStatus serd_reader_read_string (SerdReader *me, const uint8_t *utf8)

Macro Definition Documentation

◆ NS_RDF

#define NS_RDF   "http://www.w3.org/1999/02/22-rdf-syntax-ns#"

◆ NS_XSD

#define NS_XSD   "http://www.w3.org/2001/XMLSchema#"

◆ SERD_STACK_ASSERT_TOP

#define SERD_STACK_ASSERT_TOP ( reader,
ref )

◆ TRY_RET

#define TRY_RET ( exp)
Value:
if (!(exp)) return 0;

◆ TRY_THROW

#define TRY_THROW ( exp)
Value:
if (!(exp)) goto except;

◆ XSD_DECIMAL

#define XSD_DECIMAL   NS_XSD "decimal"

◆ XSD_DOUBLE

#define XSD_DOUBLE   NS_XSD "double"

◆ XSD_INTEGER

#define XSD_INTEGER   NS_XSD "integer"

Typedef Documentation

◆ uchar

typedef uint32_t uchar

Function Documentation

◆ bad_char()

SerdStatus bad_char ( SerdReader * reader,
Ref dest,
const char * fmt,
uint8_t c )
inlinestatic

◆ blank_id()

Ref blank_id ( SerdReader * reader)
static

◆ deref()

SerdNode * deref ( SerdReader * reader,
const Ref ref )
inlinestatic

◆ eat_byte_check()

uint8_t eat_byte_check ( SerdReader * reader,
const uint8_t byte )
inlinestatic

◆ eat_byte_safe()

uint8_t eat_byte_safe ( SerdReader * reader,
const uint8_t byte )
inlinestatic

◆ eat_delim()

bool eat_delim ( SerdReader * reader,
const char delim )
inlinestatic

◆ eat_string()

void eat_string ( SerdReader * reader,
const char * str,
unsigned n )
inlinestatic

◆ emit_statement()

bool emit_statement ( SerdReader * reader,
ReadContext ctx,
Ref o,
Ref d,
Ref l )
inlinestatic

◆ end_collection()

bool end_collection ( SerdReader * reader,
ReadContext ctx,
Ref n1,
Ref n2,
bool ret )
static

◆ genid_size()

size_t genid_size ( SerdReader * reader)
static

◆ is_token_end()

bool is_token_end ( uint8_t c)
inlinestatic

◆ page()

SerdStatus page ( SerdReader * reader)
inlinestatic

◆ peek_byte()

uint8_t peek_byte ( SerdReader * reader)
inlinestatic

◆ peek_delim()

bool peek_delim ( SerdReader * reader,
const char delim )
inlinestatic

◆ pop_node()

Ref pop_node ( SerdReader * reader,
Ref ref )
static

◆ push_byte()

void push_byte ( SerdReader * reader,
Ref ref,
const uint8_t c )
inlinestatic

◆ push_node()

Ref push_node ( SerdReader * reader,
SerdType type,
const char * str,
size_t n_bytes )
static

◆ push_node_padded()

Ref push_node_padded ( SerdReader * reader,
size_t maxlen,
SerdType type,
const char * str,
size_t n_bytes )
static

◆ push_replacement()

void push_replacement ( SerdReader * reader,
Ref dest )
inlinestatic

◆ r_err()

int r_err ( SerdReader * reader,
SerdStatus st,
const char * fmt,
... )
static

◆ read_0_9()

bool read_0_9 ( SerdReader * reader,
Ref str,
bool at_least_one )
static

◆ read_anon()

bool read_anon ( SerdReader * reader,
ReadContext ctx,
bool subject,
Ref * dest )
static

◆ read_base()

bool read_base ( SerdReader * reader)
static

◆ read_BLANK_NODE_LABEL()

Ref read_BLANK_NODE_LABEL ( SerdReader * reader,
bool * ate_dot )
static

◆ read_blankName()

Ref read_blankName ( SerdReader * reader)
static

◆ read_character()

SerdStatus read_character ( SerdReader * reader,
Ref dest,
SerdNodeFlags * flags,
uint8_t c )
inlinestatic

◆ read_collection()

bool read_collection ( SerdReader * reader,
ReadContext ctx,
Ref * dest )
static

◆ read_comment()

void read_comment ( SerdReader * reader)
static

◆ read_directive()

bool read_directive ( SerdReader * reader)
static

◆ read_ECHAR()

bool read_ECHAR ( SerdReader * reader,
Ref dest,
SerdNodeFlags * flags )
inlinestatic

◆ read_HEX()

uint8_t read_HEX ( SerdReader * reader)
inlinestatic

◆ read_iri()

bool read_iri ( SerdReader * reader,
Ref * dest,
bool * ate_dot )
static

◆ read_IRIREF()

Ref read_IRIREF ( SerdReader * reader)
static

◆ read_LANGTAG()

Ref read_LANGTAG ( SerdReader * reader)
static

◆ read_literal()

bool read_literal ( SerdReader * reader,
Ref * dest,
Ref * datatype,
Ref * lang,
SerdNodeFlags * flags,
bool * ate_dot )
static

◆ read_number()

bool read_number ( SerdReader * reader,
Ref * dest,
Ref * datatype,
bool * ate_dot )
static

◆ read_object()

bool read_object ( SerdReader * reader,
ReadContext ctx,
bool * ate_dot )
static

◆ read_objectList()

bool read_objectList ( SerdReader * reader,
ReadContext ctx,
bool * ate_dot )
static

◆ read_PERCENT()

bool read_PERCENT ( SerdReader * reader,
Ref dest )
static

◆ read_PLX()

SerdStatus read_PLX ( SerdReader * reader,
Ref dest )
static

◆ read_PN_CHARS()

bool read_PN_CHARS ( SerdReader * reader,
Ref dest )
static

◆ read_PN_CHARS_BASE()

bool read_PN_CHARS_BASE ( SerdReader * reader,
Ref dest )
static

◆ read_PN_LOCAL()

SerdStatus read_PN_LOCAL ( SerdReader * reader,
Ref dest,
bool * ate_dot )
static

◆ read_PN_PREFIX()

SerdStatus read_PN_PREFIX ( SerdReader * reader,
Ref dest )
static

◆ read_PN_PREFIX_tail()

SerdStatus read_PN_PREFIX_tail ( SerdReader * reader,
Ref dest )
static

◆ read_predicateObjectList()

bool read_predicateObjectList ( SerdReader * reader,
ReadContext ctx,
bool * ate_dot )
static

◆ read_PrefixedName()

bool read_PrefixedName ( SerdReader * reader,
Ref dest,
bool read_prefix,
bool * ate_dot )
static

◆ read_prefixID()

bool read_prefixID ( SerdReader * reader)
static

◆ read_statement()

bool read_statement ( SerdReader * reader)
static

◆ read_String()

Ref read_String ( SerdReader * reader,
SerdNodeFlags * flags )
static

◆ read_STRING_LITERAL()

Ref read_STRING_LITERAL ( SerdReader * reader,
SerdNodeFlags * flags,
uint8_t q )
static

◆ read_STRING_LITERAL_LONG()

Ref read_STRING_LITERAL_LONG ( SerdReader * reader,
SerdNodeFlags * flags,
uint8_t q )
static

◆ read_subject()

Ref read_subject ( SerdReader * reader,
ReadContext ctx,
bool * nested )
static

◆ read_triples()

bool read_triples ( SerdReader * reader,
ReadContext ctx,
bool * ate_dot )
static

◆ read_turtleDoc()

bool read_turtleDoc ( SerdReader * reader)
static

◆ read_UCHAR()

bool read_UCHAR ( SerdReader * reader,
Ref dest,
uint32_t * char_code )
inlinestatic

◆ read_utf8_character()

SerdStatus read_utf8_character ( SerdReader * reader,
Ref dest,
uint8_t c )
static

◆ read_verb()

bool read_verb ( SerdReader * reader,
Ref * dest )
static

◆ read_ws()

bool read_ws ( SerdReader * reader)
inlinestatic

◆ read_ws_plus()

bool read_ws_plus ( SerdReader * reader)
inlinestatic

◆ read_ws_star()

bool read_ws_star ( SerdReader * reader)
inlinestatic

◆ set_blank_id()

void set_blank_id ( SerdReader * reader,
Ref ref,
size_t buf_size )
static

◆ skip_bom()

void skip_bom ( SerdReader * me)
static