From: Michael Tremer Date: Sat, 9 Mar 2019 18:50:57 +0000 (+0000) Subject: libpakfire: parser: Show line number in error message X-Git-Tag: 0.9.28~1285^2~1103 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6ab14b9657ecd6fc919a25ae95b403a807f0d243;p=pakfire.git libpakfire: parser: Show line number in error message Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/parser/grammar.y b/src/libpakfire/parser/grammar.y index 07dcc8952..ef8e32b3d 100644 --- a/src/libpakfire/parser/grammar.y +++ b/src/libpakfire/parser/grammar.y @@ -34,6 +34,9 @@ extern void yy_delete_buffer(YY_BUFFER_STATE buffer); extern int yylex(); extern int yyparse(); void yyerror(const char* s); + +extern int num_lines; + %} %token APPEND @@ -55,6 +58,8 @@ top: NEWLINE int pakfire_parser_parse_metadata(Pakfire pakfire, const char* data, size_t len) { DEBUG(pakfire, "Parsing the following data:\n%s\n", data); + num_lines = 1; + YY_BUFFER_STATE buffer = yy_scan_bytes(data, len); int r = yyparse(); yy_delete_buffer(buffer); @@ -63,6 +68,5 @@ int pakfire_parser_parse_metadata(Pakfire pakfire, const char* data, size_t len) } void yyerror(const char* s) { - fprintf(stderr, "Parse error: %s\n", s); - abort(); + fprintf(stderr, "Error (line %d): %s\n", num_lines, s); } diff --git a/src/libpakfire/parser/scanner.l b/src/libpakfire/parser/scanner.l index 406c5c4c8..a3fad7cfe 100644 --- a/src/libpakfire/parser/scanner.l +++ b/src/libpakfire/parser/scanner.l @@ -23,6 +23,8 @@ %{ #define YY_DECL int yylex() +int num_lines; + #include "grammar.h" %}