2 #include "command_parse.h"
4 extern void set_buffer_string(const char *);
7 WORD [-|+]?[a-z\*][-+_a-zA-Z0-9\*]*
9 IPV4_PREFIX A\.B\.C\.D\/M
11 IPV6_PREFIX X:X::X:X\/M
12 VARIABLE [A-Z][-_a-zA-Z:0-9]+
13 NUMBER [-|+]?[0-9]{1,20}
14 RANGE \({NUMBER}\-{NUMBER}\)
16 /* yytext shall be a pointer */
21 %option outfile="command_lex.c"
24 [ /t] /* ignore whitespace */;
25 {WORD} {yylval.string = XSTRDUP(MTYPE_TMP, yytext); return WORD;}
26 {IPV4} {yylval.string = XSTRDUP(MTYPE_TMP, yytext); return IPV4;}
27 {IPV4_PREFIX} {yylval.string = XSTRDUP(MTYPE_TMP, yytext); return IPV4_PREFIX;}
28 {IPV6} {yylval.string = XSTRDUP(MTYPE_TMP, yytext); return IPV6;}
29 {IPV6_PREFIX} {yylval.string = XSTRDUP(MTYPE_TMP, yytext); return IPV6_PREFIX;}
30 {VARIABLE} {yylval.string = XSTRDUP(MTYPE_TMP, yytext); return VARIABLE;}
33 yylval.integer = strtoimax(yytext, &endptr, 10);
36 {RANGE} {yylval.string = XSTRDUP(MTYPE_TMP, yytext); return RANGE;}
41 set_buffer_string(const char *string)
43 yy_scan_string(string);