summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2014-03-17 22:02:34 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2014-03-17 22:02:34 +0100
commit5889f942b802a25e07b49b48bf968061c4c2ef97 (patch)
tree22b67d09d282c28ab2d68ab28b0aecf439d715ae
parent91569105085ac7d1d3a1f5fc0f1adec83c81413b (diff)
downloadgmrf-5889f942b802a25e07b49b48bf968061c4c2ef97.tar
gmrf-5889f942b802a25e07b49b48bf968061c4c2ef97.zip
lex: fix parsing of addresses not starting with a decimal digit
-rw-r--r--mmss/lex.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/mmss/lex.cpp b/mmss/lex.cpp
index 0ef205e..3eb6e24 100644
--- a/mmss/lex.cpp
+++ b/mmss/lex.cpp
@@ -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);