From 4665e5643fe69c24a3bd778a06b40b8d9d33156e Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 12 Apr 2015 00:05:38 +0200 Subject: lex: change dumb mode to a positive character set --- src/lex.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/lex.cpp b/src/lex.cpp index 2d56fef..3c86f25 100644 --- a/src/lex.cpp +++ b/src/lex.cpp @@ -279,6 +279,21 @@ int lex_t::lex(parse_token_value_t *value) { loc.first_line = loc.last_line; loc.first_column = loc.last_column+1; + if (dumb_mode) { + switch (current()) { + case 'a' ... 'z': + case 'A' ... 'Z': + case '0' ... '9': + case '_': + token = current(); + next(true); + consume(false); + return token; + } + } + + dumb_mode = false; + switch (current()) { case ' ': case '\n': @@ -286,17 +301,9 @@ int lex_t::lex(parse_token_value_t *value) { case '\r': next(true); consume(false); - dumb_mode = false; continue; } - if (dumb_mode) { - token = current(); - next(true); - consume(false); - return token; - } - switch (current()) { case ';': case ':': -- cgit v1.2.3