Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
d241c2a5
Commit
d241c2a5
authored
Jul 23, 2015
by
Damien George
Browse files
py/lexer: Raise SyntaxError when str hex escape sequence is malformed.
Addresses issue #1390.
parent
f17e6634
Changes
2
Hide whitespace changes
Inline
Side-by-side
py/lexer.c
View file @
d241c2a5
...
...
@@ -454,8 +454,8 @@ STATIC void mp_lexer_next_token_into(mp_lexer_t *lex, bool first_token) {
{
mp_uint_t
num
=
0
;
if
(
!
get_hex
(
lex
,
(
c
==
'x'
?
2
:
c
==
'u'
?
4
:
8
),
&
num
))
{
//
TODO err
or
m
es
sag
e
assert
(
0
)
;
//
not enough hex chars f
or es
cape sequenc
e
lex
->
tok_kind
=
MP_TOKEN_INVALID
;
}
c
=
num
;
break
;
...
...
tests/basics/lexer.py
View file @
d241c2a5
...
...
@@ -38,3 +38,21 @@ def a(x):
if
x
:
print
(
x
)
a
(
1
)
# badly formed hex escape sequences
try
:
exec
(
r
"'\x0'"
)
except
SyntaxError
:
print
(
"SyntaxError"
)
try
:
exec
(
r
"b'\x0'"
)
except
SyntaxError
:
print
(
"SyntaxError"
)
try
:
exec
(
r
"'\u000'"
)
except
SyntaxError
:
print
(
"SyntaxError"
)
try
:
exec
(
r
"'\U0000000'"
)
except
SyntaxError
:
print
(
"SyntaxError"
)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment