From be79e9c3467b324216688047c81315f0d3e51d24 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Sat, 1 Dec 2018 12:06:46 +0100 Subject: src: introduce simple hints on incorrect identifier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # cat test.nft define test = "1.2.3.4" table ip x { chain y { ip saddr $text } } # nft -f test.nft test.nft:5:13-16: Error: unknown identifier 'text'; did you mean identifier ‘test’? ip saddr $text ^^^^ Signed-off-by: Pablo Neira Ayuso --- src/parser_bison.y | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/parser_bison.y') diff --git a/src/parser_bison.y b/src/parser_bison.y index dfe30683..e73e1ecd 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -3078,8 +3078,16 @@ variable_expr : '$' identifier sym = symbol_get(scope, $2); if (!sym) { - erec_queue(error(&@2, "unknown identifier '%s'", $2), - state->msgs); + sym = symbol_lookup_fuzzy(scope, $2); + if (sym) { + erec_queue(error(&@2, "unknown identifier '%s'; " + "did you mean identifier ‘%s’?", + $2, sym->identifier), + state->msgs); + } else { + erec_queue(error(&@2, "unknown identifier '%s'", $2), + state->msgs); + } xfree($2); YYERROR; } -- cgit v1.2.3