diff options
author | Alex March <alex.march.dev@gmail.com> | 2016-02-16 13:36:18 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2016-02-17 08:56:15 +0000 |
commit | 69d9e7d27d62d54c0625d4181c80478b0313384d (patch) | |
tree | e9d149ecc4c3eebaaffc69889ac787947b207fda /py | |
parent | dfc35afba14a29e00affabb6f496d453e005b8de (diff) | |
download | micropython-69d9e7d27d62d54c0625d4181c80478b0313384d.tar.gz micropython-69d9e7d27d62d54c0625d4181c80478b0313384d.zip |
py/repl: Check for an identifier char after the keyword.
- As described in the #1850.
- Add cmdline tests.
Diffstat (limited to 'py')
-rw-r--r-- | py/misc.h | 1 | ||||
-rw-r--r-- | py/repl.c | 2 | ||||
-rw-r--r-- | py/unicode.c | 6 |
3 files changed, 4 insertions, 5 deletions
@@ -123,6 +123,7 @@ bool unichar_isalpha(unichar c); bool unichar_isprint(unichar c); bool unichar_isdigit(unichar c); bool unichar_isxdigit(unichar c); +bool unichar_isident(unichar c); bool unichar_isupper(unichar c); bool unichar_islower(unichar c); unichar unichar_tolower(unichar c); @@ -38,7 +38,7 @@ STATIC bool str_startswith_word(const char *str, const char *head) { 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) { diff --git a/py/unicode.c b/py/unicode.c index ccf2b554e3..8be63f217a 100644 --- a/py/unicode.c +++ b/py/unicode.c @@ -145,11 +145,9 @@ bool unichar_isxdigit(unichar c) { return c < 128 && (attr[c] & FL_XDIGIT) != 0; } -/* -bool unichar_is_alpha_or_digit(unichar c) { - return c < 128 && (attr[c] & (FL_ALPHA | FL_DIGIT)) != 0; +bool unichar_isident(unichar c) { + return c < 128 && ((attr[c] & (FL_ALPHA | FL_DIGIT)) != 0 || c == '_'); } -*/ bool unichar_isupper(unichar c) { return c < 128 && (attr[c] & FL_UPPER) != 0; |