lex: change dumb mode to a positive character set
This commit is contained in:
parent
1a79d217af
commit
4665e5643f
1 changed files with 15 additions and 8 deletions
23
src/lex.cpp
23
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 ':':
|
||||
|
|
Reference in a new issue