summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Beckett <dave@dajobe.org>2014-11-01 21:30:42 -0700
committerDave Beckett <dave@dajobe.org>2014-11-01 21:30:42 -0700
commit892cf6192dc7b44249f005a61ff840471ff8019b (patch)
treeaaf34ba09923cc9c470c33f8150dda0c317a2179
parent9c751a94647a871311d535972acd0c3a33a6f973 (diff)
downloadraptor-892cf6192dc7b44249f005a61ff840471ff8019b.tar.gz
(main): Fix turtle_lexer_test to pass in string, not use yyinput
-rw-r--r--src/turtle_lexer.l22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/turtle_lexer.l b/src/turtle_lexer.l
index fb5bb665..1bdabd43 100644
--- a/src/turtle_lexer.l
+++ b/src/turtle_lexer.l
@@ -988,18 +988,23 @@ turtle_token_free(raptor_world* world, int token, YYSTYPE *lval)
#ifdef STANDALONE
+#define FILE_READ_BUF_SIZE 4096
+
int
main(int argc, char *argv[])
{
+ char *turtle_string = NULL;
raptor_parser rdf_parser;
raptor_turtle_parser turtle_parser;
yyscan_t scanner;
int token = EOF;
- FILE *fh;
YYSTYPE lval;
const unsigned char *uri_string;
const char *filename = NULL;
+ char *buf = NULL;
+ size_t len;
raptor_world* world;
+ FILE *fh;
world = raptor_new_world();
@@ -1016,6 +1021,10 @@ main(int argc, char *argv[])
fh = (FILE*)stdin;
}
+ turtle_string = RAPTOR_CALLOC(char*, FILE_READ_BUF_SIZE, 1);
+ fread(turtle_string, FILE_READ_BUF_SIZE, 1, fh);
+ fclose(fh);
+
memset(&rdf_parser, 0, sizeof(rdf_parser));
memset(&turtle_parser, 0, sizeof(turtle_parser));
@@ -1028,7 +1037,14 @@ main(int argc, char *argv[])
yylex_init(&turtle_parser.scanner);
scanner = turtle_parser.scanner;
- turtle_lexer_set_in(fh, scanner);
+
+ len = strlen(RAPTOR_GOOD_CAST(const char*, turtle_string));
+ buf = RAPTOR_MALLOC(char*, len + 3);
+ memcpy(buf, turtle_string, len);
+ buf[len] = ' ';
+ buf[len + 1] = buf[len + 2] = '\0'; /* YY_END_OF_BUFFER_CHAR; */
+ (void)turtle_lexer__scan_buffer(buf, len + 3, scanner);
+
turtle_lexer_set_extra(&rdf_parser, scanner);
/* Initialise enough of the parser and locator to get error messages */
@@ -1062,6 +1078,8 @@ main(int argc, char *argv[])
raptor_free_uri(rdf_parser.base_uri);
+ RAPTOR_FREE(char*, turtle_string);
+
raptor_free_world(world);