lex: change dumb mode to a positive character set

This commit is contained in:
Matthias Schiffer 2015-04-12 00:05:38 +02:00
parent 1a79d217af
commit 4665e5643f

View file

@ -279,6 +279,21 @@ int lex_t::lex(parse_token_value_t *value) {
loc.first_line = loc.last_line; loc.first_line = loc.last_line;
loc.first_column = loc.last_column+1; 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()) { switch (current()) {
case ' ': case ' ':
case '\n': case '\n':
@ -286,17 +301,9 @@ int lex_t::lex(parse_token_value_t *value) {
case '\r': case '\r':
next(true); next(true);
consume(false); consume(false);
dumb_mode = false;
continue; continue;
} }
if (dumb_mode) {
token = current();
next(true);
consume(false);
return token;
}
switch (current()) { switch (current()) {
case ';': case ';':
case ':': case ':':