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_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 ':':
|
||||||
|
|
Reference in a new issue