]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/command_lex.l
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / lib / command_lex.l
index 59d0d840a88a8325cd1b66aa6bb794d99b291544..f361db78e940d3ea0657b5dd1c4a103543109f48 100644 (file)
  * 02111-1307, USA.
  */
 
+%top{
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+}
 %{
-/* ignore harmless bug in old versions of flex */
+/* ignore flex generated code in static analyzer */
+#ifndef __clang_analyzer__
+
+/* ignore harmless bugs in old versions of flex */
 #pragma GCC diagnostic ignored "-Wsign-compare"
+#pragma GCC diagnostic ignored "-Wmissing-prototypes"
 
 #include "command_parse.h"
 
        } } while(0)
 %}
 
-WORD            (\-|\+)?[a-z0-9\*][-+_a-zA-Z0-9\*]*
 IPV4            A\.B\.C\.D
 IPV4_PREFIX     A\.B\.C\.D\/M
 IPV6            X:X::X:X
 IPV6_PREFIX     X:X::X:X\/M
-MAC             M:A:C
-MAC_PREFIX      M:A:C\/M
-VARIABLE        [A-Z][-_a-zA-Z:0-9]+
+MAC             X:X:X:X:X:X
+MAC_PREFIX      X:X:X:X:X:X\/M
+VARIABLE        [A-Z][-_A-Z:0-9]+
+WORD            (\-|\+)?[a-zA-Z0-9\*][-+_a-zA-Z0-9\*]*
 NUMBER          (\-|\+)?[0-9]{1,20}
 RANGE           \({NUMBER}[ ]?\-[ ]?{NUMBER}\)
 
@@ -64,7 +73,6 @@ RANGE           \({NUMBER}[ ]?\-[ ]?{NUMBER}\)
 %}
 
 [ \t]+          LOC_STEP /* ignore whitespace */;
-{WORD}          {yylval->string = XSTRDUP(MTYPE_LEX, yytext); return WORD;}
 {IPV4}          {yylval->string = XSTRDUP(MTYPE_LEX, yytext); return IPV4;}
 {IPV4_PREFIX}   {yylval->string = XSTRDUP(MTYPE_LEX, yytext); return IPV4_PREFIX;}
 {IPV6}          {yylval->string = XSTRDUP(MTYPE_LEX, yytext); return IPV6;}
@@ -72,6 +80,7 @@ RANGE           \({NUMBER}[ ]?\-[ ]?{NUMBER}\)
 {MAC}           {yylval->string = XSTRDUP(MTYPE_LEX, yytext); return MAC;}
 {MAC_PREFIX}    {yylval->string = XSTRDUP(MTYPE_LEX, yytext); return MAC_PREFIX;}
 {VARIABLE}      {yylval->string = XSTRDUP(MTYPE_LEX, yytext); return VARIABLE;}
+{WORD}          {yylval->string = XSTRDUP(MTYPE_LEX, yytext); return WORD;}
 {RANGE}         {yylval->string = XSTRDUP(MTYPE_LEX, yytext); return RANGE;}
 .               {return yytext[0];}
 %%
@@ -90,3 +99,5 @@ void cleanup_lexer (yyscan_t *scn)
   // yy_delete_buffer (buffer, *scn);
   yylex_destroy(*scn);
 }
+
+#endif /* __clang_analyzer__ */