diff options
Diffstat (limited to 'src/turtle_common.h')
-rw-r--r-- | src/turtle_common.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/src/turtle_common.h b/src/turtle_common.h new file mode 100644 index 0000000..b869eba --- /dev/null +++ b/src/turtle_common.h @@ -0,0 +1,98 @@ +/* -*- Mode: c; c-basic-offset: 2 -*- + * + * turtle_common.h - Turtle lexer/parser shared internals + * + * Copyright (C) 2003-2008, David Beckett http://www.dajobe.org/ + * Copyright (C) 2003-2004, University of Bristol, UK http://www.bristol.ac.uk/ + * + * This package is Free Software and part of Redland http://librdf.org/ + * + * It is licensed under the following three licenses as alternatives: + * 1. GNU Lesser General Public License (LGPL) V2.1 or any newer version + * 2. GNU General Public License (GPL) V2 or any newer version + * 3. Apache License, V2.0 or any newer version + * + * You may not use this file except in compliance with at least one of + * the above three licenses. + * + * See LICENSE.html or LICENSE.txt at the top of this package for the + * complete terms and further detail along with the license texts for + * the licenses in COPYING.LIB, COPYING and LICENSE-2.0.txt respectively. + * + * + */ + +#ifndef TURTLE_COMMON_H +#define TURTLE_COMMON_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/* turtle_parser.y */ +RAPTOR_INTERNAL_API int turtle_syntax_error(raptor_parser *rdf_parser, const char *message, ...) RAPTOR_PRINTF_FORMAT(2, 3); +RAPTOR_INTERNAL_API raptor_uri* turtle_qname_to_uri(raptor_parser *rdf_parser, unsigned char *name, size_t name_len); +RAPTOR_INTERNAL_API size_t raptor_turtle_expand_qname_escapes(unsigned char *name, size_t len, raptor_simple_message_handler error_handler, void *error_data); + +/* turtle_lexer.l */ +extern void turtle_token_free(raptor_world* world, int token, TURTLE_PARSER_STYPE *lval); + + +/* + * Turtle parser object + */ +struct raptor_turtle_parser_s { + /* buffer */ + char *buffer; + + /* buffer length */ + size_t buffer_length; + + raptor_namespace_stack namespaces; /* static */ + + /* for lexer to store result in */ + TURTLE_PARSER_STYPE lval; + + /* STATIC lexer */ + yyscan_t scanner; + + int scanner_set; + + int lineno; + int lineno_last_good; + + /* for the chunk parser, how much of the input has been consumed */ + size_t consumed; + /* likewise, how much of the input has been successfully processed */ + size_t processed; + /* indicates what can be processed at most */ + size_t consumable; + /* real end-of-buffer indicator, as we kill the last line */ + size_t end_of_buffer; + + /* a sequence holding deferred statements */ + raptor_sequence *deferred; + + /* for creating long literals */ + raptor_stringbuffer* sb; + + /* count of errors in current parse */ + int error_count; + + /* TRIG graph name */ + raptor_term* graph_name; + + /* Allow TRIG extensions */ + int trig; + + /* Last run of many */ + int is_end; +}; + + +#ifdef __cplusplus +} +#endif + +#endif |