From 2af470bb9045a16cc08d095b77d1e7bbf1fd2346 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 1 Mar 2015 22:08:19 -0500 Subject: [PATCH] Lexer - Lexer::Type::identifier now includes DOM references. --- src/Lexer.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Lexer.cpp b/src/Lexer.cpp index a098db942..b0e1ede13 100644 --- a/src/Lexer.cpp +++ b/src/Lexer.cpp @@ -951,17 +951,29 @@ bool Lexer::isOperator (std::string& token, Lexer::Type& type) //////////////////////////////////////////////////////////////////////////////// // Lexer::Type::identifier -// [ ]* +// [ + . ] [ ]* bool Lexer::isIdentifier (std::string& token, Lexer::Type& type) { std::size_t marker = _cursor; + if (isDigit (_text[marker])) + { + ++marker; + while (isDigit (_text[marker])) + ++marker; + + if (_text[marker] == '.') + ++marker; + else + return false; + } + if (isIdentifierStart (_text[marker])) { utf8_next_char (_text, marker); while (isIdentifierNext (_text[marker])) - utf8_next_char (_text, marker); + utf8_next_char (_text, marker); token = _text.substr (_cursor, marker - _cursor); type = Lexer::Type::identifier;