diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-04-12 00:05:38 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-04-12 00:05:38 +0200 |
commit | 4665e5643fe69c24a3bd778a06b40b8d9d33156e (patch) | |
tree | 09f921398cde8f3548614575ba8710d7593edc3b | |
parent | 1a79d217af4b7403b6567c269bf115bb1fad9495 (diff) | |
download | solar-4665e5643fe69c24a3bd778a06b40b8d9d33156e.tar solar-4665e5643fe69c24a3bd778a06b40b8d9d33156e.zip |
lex: change dumb mode to a positive character set
-rw-r--r-- | src/lex.cpp | 23 |
1 files 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 ':': |