lex: fix parsing of addresses not starting with a decimal digit
This commit is contained in:
parent
9156910508
commit
5889f942b8
1 changed files with 6 additions and 0 deletions
|
@ -304,6 +304,9 @@ int lex_t::parse_keyword(YYSTYPE *yylval, YYLTYPE *yylloc) {
|
||||||
while (next(yylloc, false)) {
|
while (next(yylloc, false)) {
|
||||||
char cur = current();
|
char cur = current();
|
||||||
|
|
||||||
|
if (cur == ':')
|
||||||
|
return parse_address(yylval, yylloc);
|
||||||
|
|
||||||
if (!((cur >= 'a' && cur <= 'z') || (cur >= '0' && cur <= '9') || cur == '-'))
|
if (!((cur >= 'a' && cur <= 'z') || (cur >= '0' && cur <= '9') || cur == '-'))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -382,6 +385,9 @@ int lex_t::lex(YYSTYPE *yylval, YYLTYPE *yylloc) {
|
||||||
case '0' ... '9':
|
case '0' ... '9':
|
||||||
return parse_number(yylval, yylloc);
|
return parse_number(yylval, yylloc);
|
||||||
|
|
||||||
|
case 'A' ... 'F':
|
||||||
|
return parse_address(yylval, yylloc);
|
||||||
|
|
||||||
case 'a' ... 'z':
|
case 'a' ... 'z':
|
||||||
return parse_keyword(yylval, yylloc);
|
return parse_keyword(yylval, yylloc);
|
||||||
|
|
||||||
|
|
Reference in a new issue