From a34919b413d5f588935e8572820e8d46c29a6a86 Mon Sep 17 00:00:00 2001 From: Dave Beckett Date: Mon, 7 Sep 2020 23:16:41 -0700 Subject: 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 --- scripts/fix-flex.pl | 4 ++-- src/Makefile.am | 6 ++++-- src/turtle_parser.y | 4 ++-- 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(); -- cgit v1.2.1