identifier parser now supports '.' [#CONV-7967]

This commit is contained in:
Vyacheslav Alipov 2013-07-16 15:10:37 +00:00
parent ac42eb45a4
commit 277759146d

View File

@ -136,12 +136,23 @@ bool ParserIdentifier::parseImpl(Pos & pos, Pos end, ASTPtr & node, String & exp
} }
else else
{ {
while (pos != end while (pos != end)
&& ((*pos >= 'a' && *pos <= 'z') {
|| (*pos >= 'A' && *pos <= 'Z') while (pos != end
|| (*pos == '_') && ((*pos >= 'a' && *pos <= 'z')
|| (pos != begin && *pos >= '0' && *pos <= '9'))) || (*pos >= 'A' && *pos <= 'Z')
++pos; || (*pos == '_')
|| (pos != begin && *pos >= '0' && *pos <= '9')))
++pos;
/// Если следующий символ - точка '.' и за ней следует, не цифра,
/// то продолжаем парсинг имени идентификатора
if (pos != begin && pos + 1 < end && *pos == '.' &&
!(*(pos + 1) >= '0' && *(pos + 1) <= '9'))
++pos;
else
break;
}
if (pos != begin) if (pos != begin)
{ {