Makes ranges where both endpoints are negative
somewhat more readable. Also validate ranges.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
IPV6_PREFIX X:X::X:X\/M
VARIABLE [A-Z][-_a-zA-Z:0-9]+
NUMBER [-|+]?[0-9]{1,20}
-RANGE \({NUMBER}\-{NUMBER}\)
+RANGE \({NUMBER}[ ]?\-[ ]?{NUMBER}\)
/* yytext shall be a pointer */
%pointer
// get the numbers out
$$->min = strtoimax( yylval.string+1, &yylval.string, 10 );
- $$->max = strtoimax( yylval.string+1, &yylval.string, 10 );
+ strsep (&yylval.string, "-");
+ $$->max = strtoimax( yylval.string, &yylval.string, 10 );
+
+ // validate range
+ if ($$->min >= $$->max) yyerror("Invalid range.");
free ($1);
}