summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Beckett <dave@dajobe.org>2020-09-07 23:16:41 -0700
committerDave Beckett <dave@dajobe.org>2020-09-07 23:48:06 -0700
commita34919b413d5f588935e8572820e8d46c29a6a86 (patch)
tree450b9be2e2da804dff681d7e9ac07af1a86e5fc3
parent89ae1735f0dc4e1e840065d9d6925e3459334a40 (diff)
downloadraptor-a34919b413d5f588935e8572820e8d46c29a6a86.tar.gz
Fix turtle_lexer__scan_bytes signatures for C++
- scripts/fix-flex.pl: Fix length type call for newer flex naming convention - Run flex output header file through fix-flex.pl
-rwxr-xr-xscripts/fix-flex.pl4
-rw-r--r--src/Makefile.am6
-rw-r--r--src/turtle_parser.y4
3 files changed, 8 insertions, 6 deletions
diff --git a/scripts/fix-flex.pl b/scripts/fix-flex.pl
index dcb38c27..785864e2 100755
--- a/scripts/fix-flex.pl
+++ b/scripts/fix-flex.pl
@@ -115,9 +115,9 @@ EOT
# Fix ${prefix}_scan_bytes to take a yy_size_t len arg, not int.
# declaration
- s/${prefix}_scan_bytes\s+\( const char \*bytes, int len , yyscan_t yyscanner \);/${prefix}_scan_bytes \( const char \*bytes, yy_size_t len , yyscan_t yyscanner \);/;
+ s/(${prefix}_scan_bytes|yy_scan_bytes)\s+\( const char \*bytes, int len , yyscan_t yyscanner \);/\1 \( const char \*bytes, yy_size_t len , yyscan_t yyscanner \);/;
# definition
- s/^YY_BUFFER_STATE ${prefix}_scan_bytes\s+\(const char \* yybytes, int _yybytes_len , yyscan_t yyscanner\)/YY_BUFFER_STATE ${prefix}_scan_bytes \(const char \* yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner\)/;
+ s/^YY_BUFFER_STATE (${prefix}_scan_bytes|yy_scan_bytes)\s+\(const char \* yybytes, int _yybytes_len , yyscan_t yyscanner\)/YY_BUFFER_STATE \1 \(const char \* yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner\)/;
if($cur_function eq $prefix."_switch_to_buffer" ||
$cur_function eq $prefix."restart" ||
diff --git a/src/Makefile.am b/src/Makefile.am
index 3378d104..da4cce95 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -210,8 +210,10 @@ raptor_parse.c: git-version.h
turtle_lexer.c: $(srcdir)/turtle_lexer.l turtle_parser.c $(top_srcdir)/scripts/fix-flex.pl
$(AM_V_GEN) \
$(LEX) -o$@ $(srcdir)/turtle_lexer.l; \
- $(PERL) $(top_srcdir)/scripts/fix-flex.pl $@ > turtle_lexer.t || rm -f $@; \
- mv -f turtle_lexer.t $@
+ for file in turtle_lexer.c turtle_lexer.h; do \
+ $(PERL) $(top_srcdir)/scripts/fix-flex.pl $$file > turtle_lexer.t || rm -f $$file; \
+ mv -f turtle_lexer.t $$file; \
+ done
turtle_lexer.h: turtle_lexer.c ; @exit 0
diff --git a/src/turtle_parser.y b/src/turtle_parser.y
index 1caf1d63..5339c08e 100644
--- a/src/turtle_parser.y
+++ b/src/turtle_parser.y
@@ -1419,7 +1419,7 @@ turtle_parse(raptor_parser *rdf_parser, const char *string, size_t length)
#endif
turtle_lexer_set_extra(rdf_parser, turtle_parser->scanner);
- (void)turtle_lexer__scan_bytes((char *)string, (int)length, turtle_parser->scanner);
+ (void)turtle_lexer__scan_bytes((char *)string, (yy_size_t)length, turtle_parser->scanner);
rc = turtle_parser_parse(rdf_parser, turtle_parser->scanner);
@@ -1459,7 +1459,7 @@ turtle_push_parse(raptor_parser *rdf_parser,
#endif
turtle_lexer_set_extra(rdf_parser, turtle_parser->scanner);
- buffer = turtle_lexer__scan_bytes(string, length, turtle_parser->scanner);
+ buffer = turtle_lexer__scan_bytes(string, (yy_size_t)length, turtle_parser->scanner);
/* returns a parser instance or 0 on out of memory */
ps = yypstate_new();