summaryrefslogtreecommitdiffstats
path: root/src/turtle_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/turtle_common.h')
-rw-r--r--src/turtle_common.h98
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