mirror of
https://github.com/python/cpython.git
synced 2025-07-28 13:44:43 +00:00
set Print.values to NULL if there are no values
This commit is contained in:
parent
0805b28fd2
commit
5d1ff94b9e
1 changed files with 12 additions and 9 deletions
21
Python/ast.c
21
Python/ast.c
|
@ -2144,9 +2144,9 @@ ast_for_print_stmt(struct compiling *c, const node *n)
|
|||
| '>>' test [ (',' test)+ [','] ] )
|
||||
*/
|
||||
expr_ty dest = NULL, expression;
|
||||
asdl_seq *seq;
|
||||
asdl_seq *seq = NULL;
|
||||
bool nl;
|
||||
int i, j, start = 1;
|
||||
int i, j, values_count, start = 1;
|
||||
|
||||
REQ(n, print_stmt);
|
||||
if (NCH(n) >= 2 && TYPE(CHILD(n, 1)) == RIGHTSHIFT) {
|
||||
|
@ -2155,14 +2155,17 @@ ast_for_print_stmt(struct compiling *c, const node *n)
|
|||
return NULL;
|
||||
start = 4;
|
||||
}
|
||||
seq = asdl_seq_new((NCH(n) + 1 - start) / 2, c->c_arena);
|
||||
if (!seq)
|
||||
return NULL;
|
||||
for (i = start, j = 0; i < NCH(n); i += 2, ++j) {
|
||||
expression = ast_for_expr(c, CHILD(n, i));
|
||||
if (!expression)
|
||||
values_count = (NCH(n) + 1 - start) / 2;
|
||||
if (values_count) {
|
||||
seq = asdl_seq_new(values_count, c->c_arena);
|
||||
if (!seq)
|
||||
return NULL;
|
||||
asdl_seq_SET(seq, j, expression);
|
||||
for (i = start, j = 0; i < NCH(n); i += 2, ++j) {
|
||||
expression = ast_for_expr(c, CHILD(n, i));
|
||||
if (!expression)
|
||||
return NULL;
|
||||
asdl_seq_SET(seq, j, expression);
|
||||
}
|
||||
}
|
||||
nl = (TYPE(CHILD(n, NCH(n) - 1)) == COMMA) ? false : true;
|
||||
return Print(dest, seq, nl, LINENO(n), n->n_col_offset, c->c_arena);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue