summaryrefslogtreecommitdiffstats
path: root/Parser/pegen.c
diff options
context:
space:
mode:
authorWeipeng Hong <hongweichen8888@sina.com>2021-12-10 23:44:26 (GMT)
committerGitHub <noreply@github.com>2021-12-10 23:44:26 (GMT)
commit28179aac796ed1debdce336c4b8ca18e8475d40d (patch)
tree52cf22ebe879402024dfda46be582969c06f3d29 /Parser/pegen.c
parent98e506ae8a7997658a08fbf77ac016d200588cb3 (diff)
downloadcpython-28179aac796ed1debdce336c4b8ca18e8475d40d.zip
cpython-28179aac796ed1debdce336c4b8ca18e8475d40d.tar.gz
cpython-28179aac796ed1debdce336c4b8ca18e8475d40d.tar.bz2
bpo-42918: Improve build-in function compile() in mode 'single' (GH-29934)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Diffstat (limited to 'Parser/pegen.c')
-rw-r--r--Parser/pegen.c20
1 files changed, 1 insertions, 19 deletions
diff --git a/Parser/pegen.c b/Parser/pegen.c
index ede281a..4158a81 100644
--- a/Parser/pegen.c
+++ b/Parser/pegen.c
@@ -675,31 +675,13 @@ _PyPegen_number_token(Parser *p)
t->end_col_offset, p->arena);
}
-static int // bool
-newline_in_string(Parser *p, const char *cur)
-{
- for (const char *c = cur; c >= p->tok->buf; c--) {
- if (*c == '\'' || *c == '"') {
- return 1;
- }
- }
- return 0;
-}
-
/* Check that the source for a single input statement really is a single
statement by looking at what is left in the buffer after parsing.
Trailing whitespace and comments are OK. */
static int // bool
bad_single_statement(Parser *p)
{
- const char *cur = strchr(p->tok->buf, '\n');
-
- /* Newlines are allowed if preceded by a line continuation character
- or if they appear inside a string. */
- if (!cur || (cur != p->tok->buf && *(cur - 1) == '\\')
- || newline_in_string(p, cur)) {
- return 0;
- }
+ char *cur = p->tok->cur;
char c = *cur;
for (;;) {