From: Pablo Neira Ayuso Date: Mon, 6 Jan 2025 23:00:50 +0000 (+0100) Subject: scanner: better error reporting for CRLF line terminators X-Git-Tag: v1.1.2~96 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8c35615297983227cac1437edbe0cdedf4c2227b;p=thirdparty%2Fnftables.git scanner: better error reporting for CRLF line terminators Provide a hint to users that file is coming with CRLF line terminators, maybe from a non-Linux OS. Extend scanner.l to provide hint on CRLF in files: # file test.nft test.nft: ASCII text, with CRLF, LF line terminators # nft -f test.nft test.nft:1:13-14: Error: syntax error, unexpected CRLF line terminators table ip x { ^^ Signed-off-by: Pablo Neira Ayuso --- diff --git a/src/parser_bison.y b/src/parser_bison.y index 31ccc5e2..c8714812 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -251,6 +251,7 @@ int nft_lex(void *, void *, void *); %token TOKEN_EOF 0 "end of file" %token JUNK "junk" +%token CRLF "CRLF line terminators" %token NEWLINE "newline" %token COLON "colon" diff --git a/src/scanner.l b/src/scanner.l index 9ccbc22d..4787cc12 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -121,6 +121,7 @@ extern void yyset_column(int, yyscan_t); space [ ] tab \t +newline_crlf \r\n newline \n digit [0-9] hexdigit [0-9a-fA-F] @@ -894,6 +895,8 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) return STRING; } +{newline_crlf} { return CRLF; } + \\{newline} { reset_pos(yyget_extra(yyscanner), yylloc); }