lex: fix parsing of addresses not starting with a decimal digit

This commit is contained in:
Matthias Schiffer 2014-03-17 22:02:34 +01:00
parent 9156910508
commit 5889f942b8

View file

@ -304,6 +304,9 @@ int lex_t::parse_keyword(YYSTYPE *yylval, YYLTYPE *yylloc) {
while (next(yylloc, false)) {
char cur = current();
if (cur == ':')
return parse_address(yylval, yylloc);
if (!((cur >= 'a' && cur <= 'z') || (cur >= '0' && cur <= '9') || cur == '-'))
break;
}
@ -382,6 +385,9 @@ int lex_t::lex(YYSTYPE *yylval, YYLTYPE *yylloc) {
case '0' ... '9':
return parse_number(yylval, yylloc);
case 'A' ... 'F':
return parse_address(yylval, yylloc);
case 'a' ... 'z':
return parse_keyword(yylval, yylloc);