Esempio n. 1
0
static void
rdfdump_error_handler(void *data, raptor_locator *locator,
                      const char *message)
{
  if(!ignore_errors) {
    fprintf(stderr, "%s: Error - ", program);
    raptor_print_locator(stderr, locator);
    fprintf(stderr, " - %s\n", message);
    
    raptor_parse_abort((raptor_parser*)data);
  }

  error_count++;
}
Esempio n. 2
0
static
void handle_statements(void *user_data, const raptor_statement *statement)
{
    my_data* me=(my_data*)user_data;

    me->count++;
    if(me->count > me->max) {
        fprintf(me->stream, "Reached %d statements, stopping\n", me->max);
        raptor_parse_abort(me->parser);
        me->stopped=1;
        return;
    }

    fprintf(me->stream, "Saw statement %d\n", me->count);
}
Esempio n. 3
0
static int
raptor_guess_parse_chunk(raptor_parser* rdf_parser,
                         const unsigned char *buffer, size_t len,
                         int is_end)
{
    raptor_guess_parser_context* guess_parser=(raptor_guess_parser_context*)rdf_parser->context;

    if(guess_parser->do_guess) {
        const unsigned char *identifier=NULL;
        const char *name;

        guess_parser->do_guess=0;

        if(rdf_parser->base_uri)
            identifier=raptor_uri_as_string_v2(rdf_parser->world, rdf_parser->base_uri);

        name=raptor_guess_parser_name_v2(rdf_parser->world,
                                         NULL, guess_parser->content_type, buffer, len,
                                         identifier);
        if(!name) {
            raptor_parser_error(rdf_parser,
                                "Failed to guess parser from content type '%s'",
                                guess_parser->content_type ?
                                guess_parser->content_type : "(none)");
            raptor_parse_abort(rdf_parser);
            if(guess_parser->parser) {
                raptor_free_parser(guess_parser->parser);
                guess_parser->parser=NULL;
            }
            return 1;
        } else {

#if RAPTOR_DEBUG > 1
            RAPTOR_DEBUG2("Guessed parser name '%s'\n", name);
#endif

            /* If there is an existing guessed parser factory present and
             * it's different from the wanted parser, free it
             */
            if(guess_parser->parser) {
                raptor_parser_factory* factory=raptor_get_parser_factory(rdf_parser->world, name);

                if(guess_parser->parser->factory != factory) {
                    raptor_free_parser(guess_parser->parser);
                    guess_parser->parser=NULL;
                }
            }

            if(!guess_parser->parser) {
                guess_parser->parser=raptor_new_parser_v2(rdf_parser->world, name);
                if(!guess_parser->parser)
                    return 1;
            }

            /* copy any user data to the grddl parser */
            if(raptor_parser_copy_user_state(guess_parser->parser, rdf_parser))
                return 1;

            if(raptor_start_parse(guess_parser->parser, rdf_parser->base_uri))
                return 1;
        }
    }


    /* now we can pass on calls to internal guess_parser */
    return raptor_parse_chunk(guess_parser->parser, buffer, len, is_end);
}