Skip to content
Snippets Groups Projects
Commit 69d9e7d2 authored by Alex March's avatar Alex March Committed by Damien George
Browse files

py/repl: Check for an identifier char after the keyword.

- As described in the #1850.
- Add cmdline tests.
parent dfc35afb
Branches
No related tags found
No related merge requests found
...@@ -123,6 +123,7 @@ bool unichar_isalpha(unichar c); ...@@ -123,6 +123,7 @@ bool unichar_isalpha(unichar c);
bool unichar_isprint(unichar c); bool unichar_isprint(unichar c);
bool unichar_isdigit(unichar c); bool unichar_isdigit(unichar c);
bool unichar_isxdigit(unichar c); bool unichar_isxdigit(unichar c);
bool unichar_isident(unichar c);
bool unichar_isupper(unichar c); bool unichar_isupper(unichar c);
bool unichar_islower(unichar c); bool unichar_islower(unichar c);
unichar unichar_tolower(unichar c); unichar unichar_tolower(unichar c);
......
...@@ -38,7 +38,7 @@ STATIC bool str_startswith_word(const char *str, const char *head) { ...@@ -38,7 +38,7 @@ STATIC bool str_startswith_word(const char *str, const char *head) {
return false; return false;
} }
} }
return head[i] == '\0' && (str[i] == '\0' || !unichar_isalpha(str[i])); return head[i] == '\0' && (str[i] == '\0' || !unichar_isident(str[i]));
} }
bool mp_repl_continue_with_input(const char *input) { bool mp_repl_continue_with_input(const char *input) {
......
...@@ -145,11 +145,9 @@ bool unichar_isxdigit(unichar c) { ...@@ -145,11 +145,9 @@ bool unichar_isxdigit(unichar c) {
return c < 128 && (attr[c] & FL_XDIGIT) != 0; return c < 128 && (attr[c] & FL_XDIGIT) != 0;
} }
/* bool unichar_isident(unichar c) {
bool unichar_is_alpha_or_digit(unichar c) { return c < 128 && ((attr[c] & (FL_ALPHA | FL_DIGIT)) != 0 || c == '_');
return c < 128 && (attr[c] & (FL_ALPHA | FL_DIGIT)) != 0;
} }
*/
bool unichar_isupper(unichar c) { bool unichar_isupper(unichar c) {
return c < 128 && (attr[c] & FL_UPPER) != 0; return c < 128 && (attr[c] & FL_UPPER) != 0;
......
...@@ -29,3 +29,6 @@ def f(x): ...@@ -29,3 +29,6 @@ def f(x):
print(x) print(x)
 
f(3) f(3)
if1=1
if1 = 2
print(if1)
...@@ -50,4 +50,8 @@ two ...@@ -50,4 +50,8 @@ two
...  ... 
>>> f(3) >>> f(3)
3 3
>>> if1=1
>>> if1 = 2
>>> print(if1)
2
>>> >>>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment