Skip to content

Commit 452bf51

Browse files
committed
Essential changes for print function changes.
Lib will be changed in a separate run.
1 parent 21298cf commit 452bf51

9 files changed

Lines changed: 1019 additions & 1156 deletions

File tree

Grammar/Grammar

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,13 @@ vfplist: vfpdef (',' vfpdef)* [',']
3838

3939
stmt: simple_stmt | compound_stmt
4040
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
41-
small_stmt: (expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt |
41+
small_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
4242
import_stmt | global_stmt | assert_stmt)
4343
expr_stmt: testlist (augassign (yield_expr|testlist) |
4444
('=' (yield_expr|testlist))*)
4545
augassign: ('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' |
4646
'<<=' | '>>=' | '**=' | '//=')
4747
# For normal assignments, additional restrictions enforced by the interpreter
48-
print_stmt: 'print' ( [ test (',' test)* [','] ] |
49-
'>>' test [ (',' test)+ [','] ] )
5048
del_stmt: 'del' exprlist
5149
pass_stmt: 'pass'
5250
flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt

Include/graminit.h

Lines changed: 67 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -18,71 +18,70 @@
1818
#define small_stmt 273
1919
#define expr_stmt 274
2020
#define augassign 275
21-
#define print_stmt 276
22-
#define del_stmt 277
23-
#define pass_stmt 278
24-
#define flow_stmt 279
25-
#define break_stmt 280
26-
#define continue_stmt 281
27-
#define return_stmt 282
28-
#define yield_stmt 283
29-
#define raise_stmt 284
30-
#define import_stmt 285
31-
#define import_name 286
32-
#define import_from 287
33-
#define import_as_name 288
34-
#define dotted_as_name 289
35-
#define import_as_names 290
36-
#define dotted_as_names 291
37-
#define dotted_name 292
38-
#define global_stmt 293
39-
#define assert_stmt 294
40-
#define compound_stmt 295
41-
#define if_stmt 296
42-
#define while_stmt 297
43-
#define for_stmt 298
44-
#define try_stmt 299
45-
#define with_stmt 300
46-
#define with_var 301
47-
#define except_clause 302
48-
#define suite 303
49-
#define testlist_safe 304
50-
#define old_test 305
51-
#define old_lambdef 306
52-
#define test 307
53-
#define or_test 308
54-
#define and_test 309
55-
#define not_test 310
56-
#define comparison 311
57-
#define comp_op 312
58-
#define expr 313
59-
#define xor_expr 314
60-
#define and_expr 315
61-
#define shift_expr 316
62-
#define arith_expr 317
63-
#define term 318
64-
#define factor 319
65-
#define power 320
66-
#define atom 321
67-
#define listmaker 322
68-
#define testlist_gexp 323
69-
#define lambdef 324
70-
#define trailer 325
71-
#define subscriptlist 326
72-
#define subscript 327
73-
#define sliceop 328
74-
#define exprlist 329
75-
#define testlist 330
76-
#define dictsetmaker 331
77-
#define classdef 332
78-
#define arglist 333
79-
#define argument 334
80-
#define list_iter 335
81-
#define list_for 336
82-
#define list_if 337
83-
#define gen_iter 338
84-
#define gen_for 339
85-
#define gen_if 340
86-
#define testlist1 341
87-
#define encoding_decl 342
88-
#define yield_expr 343
21+
#define del_stmt 276
22+
#define pass_stmt 277
23+
#define flow_stmt 278
24+
#define break_stmt 279
25+
#define continue_stmt 280
26+
#define return_stmt 281
27+
#define yield_stmt 282
28+
#define raise_stmt 283
29+
#define import_stmt 284
30+
#define import_name 285
31+
#define import_from 286
32+
#define import_as_name 287
33+
#define dotted_as_name 288
34+
#define import_as_names 289
35+
#define dotted_as_names 290
36+
#define dotted_name 291
37+
#define global_stmt 292
38+
#define assert_stmt 293
39+
#define compound_stmt 294
40+
#define if_stmt 295
41+
#define while_stmt 296
42+
#define for_stmt 297
43+
#define try_stmt 298
44+
#define with_stmt 299
45+
#define with_var 300
46+
#define except_clause 301
47+
#define suite 302
48+
#define testlist_safe 303
49+
#define old_test 304
50+
#define old_lambdef 305
51+
#define test 306
52+
#define or_test 307
53+
#define and_test 308
54+
#define not_test 309
55+
#define comparison 310
56+
#define comp_op 311
57+
#define expr 312
58+
#define xor_expr 313
59+
#define and_expr 314
60+
#define shift_expr 315
61+
#define arith_expr 316
62+
#define term 317
63+
#define factor 318
64+
#define power 319
65+
#define atom 320
66+
#define listmaker 321
67+
#define testlist_gexp 322
68+
#define lambdef 323
69+
#define trailer 324
70+
#define subscriptlist 325
71+
#define subscript 326
72+
#define sliceop 327
73+
#define exprlist 328
74+
#define testlist 329
75+
#define dictsetmaker 330
76+
#define classdef 331
77+
#define arglist 332
78+
#define argument 333
79+
#define list_iter 334
80+
#define list_for 335
81+
#define list_if 336
82+
#define gen_iter 337
83+
#define gen_for 338
84+
#define gen_if 339
85+
#define testlist1 340
86+
#define encoding_decl 341
87+
#define yield_expr 342

Makefile.pre.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ $(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY)
341341
$(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
342342

343343
platform: $(BUILDPYTHON)
344-
$(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
344+
$(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print(get_platform()+"-"+sys.version[0:3])' >platform
345345

346346

347347
# Build the shared modules

Modules/parsermodule.c

Lines changed: 2 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -857,7 +857,7 @@ VALIDATER(testlist); VALIDATER(varargslist);
857857
VALIDATER(vfpdef); VALIDATER(vfplist);
858858
VALIDATER(stmt); VALIDATER(simple_stmt);
859859
VALIDATER(expr_stmt); VALIDATER(power);
860-
VALIDATER(print_stmt); VALIDATER(del_stmt);
860+
VALIDATER(del_stmt);
861861
VALIDATER(return_stmt); VALIDATER(list_iter);
862862
VALIDATER(raise_stmt); VALIDATER(import_stmt);
863863
VALIDATER(import_name); VALIDATER(import_from);
@@ -1545,7 +1545,6 @@ validate_small_stmt(node *tree)
15451545
int ntype = TYPE(CHILD(tree, 0));
15461546

15471547
if ( (ntype == expr_stmt)
1548-
|| (ntype == print_stmt)
15491548
|| (ntype == del_stmt)
15501549
|| (ntype == pass_stmt)
15511550
|| (ntype == flow_stmt)
@@ -1650,54 +1649,6 @@ validate_expr_stmt(node *tree)
16501649
}
16511650

16521651

1653-
/* print_stmt:
1654-
*
1655-
* 'print' ( [ test (',' test)* [','] ]
1656-
* | '>>' test [ (',' test)+ [','] ] )
1657-
*/
1658-
static int
1659-
validate_print_stmt(node *tree)
1660-
{
1661-
int nch = NCH(tree);
1662-
int res = (validate_ntype(tree, print_stmt)
1663-
&& (nch > 0)
1664-
&& validate_name(CHILD(tree, 0), "print"));
1665-
1666-
if (res && nch > 1) {
1667-
int sym = TYPE(CHILD(tree, 1));
1668-
int i = 1;
1669-
int allow_trailing_comma = 1;
1670-
1671-
if (sym == test)
1672-
res = validate_test(CHILD(tree, i++));
1673-
else {
1674-
if (nch < 3)
1675-
res = validate_numnodes(tree, 3, "print_stmt");
1676-
else {
1677-
res = (validate_ntype(CHILD(tree, i), RIGHTSHIFT)
1678-
&& validate_test(CHILD(tree, i+1)));
1679-
i += 2;
1680-
allow_trailing_comma = 0;
1681-
}
1682-
}
1683-
if (res) {
1684-
/* ... (',' test)* [','] */
1685-
while (res && i+2 <= nch) {
1686-
res = (validate_comma(CHILD(tree, i))
1687-
&& validate_test(CHILD(tree, i+1)));
1688-
allow_trailing_comma = 1;
1689-
i += 2;
1690-
}
1691-
if (res && !allow_trailing_comma)
1692-
res = validate_numnodes(tree, i, "print_stmt");
1693-
else if (res && i < nch)
1694-
res = validate_comma(CHILD(tree, i));
1695-
}
1696-
}
1697-
return (res);
1698-
}
1699-
1700-
17011652
static int
17021653
validate_del_stmt(node *tree)
17031654
{
@@ -2977,7 +2928,7 @@ validate_node(node *tree)
29772928
break;
29782929
case small_stmt:
29792930
/*
2980-
* expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt
2931+
* expr_stmt | del_stmt | pass_stmt | flow_stmt
29812932
* | import_stmt | global_stmt | assert_stmt
29822933
*/
29832934
res = validate_small_stmt(tree);
@@ -3012,9 +2963,6 @@ validate_node(node *tree)
30122963
case expr_stmt:
30132964
res = validate_expr_stmt(tree);
30142965
break;
3015-
case print_stmt:
3016-
res = validate_print_stmt(tree);
3017-
break;
30182966
case del_stmt:
30192967
res = validate_del_stmt(tree);
30202968
break;

Python/ast.c

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2218,37 +2218,6 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
22182218
}
22192219
}
22202220

2221-
static stmt_ty
2222-
ast_for_print_stmt(struct compiling *c, const node *n)
2223-
{
2224-
/* print_stmt: 'print' ( [ test (',' test)* [','] ]
2225-
| '>>' test [ (',' test)+ [','] ] )
2226-
*/
2227-
expr_ty dest = NULL, expression;
2228-
asdl_seq *seq;
2229-
bool nl;
2230-
int i, j, start = 1;
2231-
2232-
REQ(n, print_stmt);
2233-
if (NCH(n) >= 2 && TYPE(CHILD(n, 1)) == RIGHTSHIFT) {
2234-
dest = ast_for_expr(c, CHILD(n, 2));
2235-
if (!dest)
2236-
return NULL;
2237-
start = 4;
2238-
}
2239-
seq = asdl_seq_new((NCH(n) + 1 - start) / 2, c->c_arena);
2240-
if (!seq)
2241-
return NULL;
2242-
for (i = start, j = 0; i < NCH(n); i += 2, ++j) {
2243-
expression = ast_for_expr(c, CHILD(n, i));
2244-
if (!expression)
2245-
return NULL;
2246-
asdl_seq_SET(seq, j, expression);
2247-
}
2248-
nl = (TYPE(CHILD(n, NCH(n) - 1)) == COMMA) ? false : true;
2249-
return Print(dest, seq, nl, LINENO(n), n->n_col_offset, c->c_arena);
2250-
}
2251-
22522221
static asdl_seq *
22532222
ast_for_exprlist(struct compiling *c, const node *n, expr_context_ty context)
22542223
{
@@ -3089,14 +3058,12 @@ ast_for_stmt(struct compiling *c, const node *n)
30893058
if (TYPE(n) == small_stmt) {
30903059
REQ(n, small_stmt);
30913060
n = CHILD(n, 0);
3092-
/* small_stmt: expr_stmt | print_stmt | del_stmt | pass_stmt
3061+
/* small_stmt: expr_stmt | del_stmt | pass_stmt
30933062
| flow_stmt | import_stmt | global_stmt | assert_stmt
30943063
*/
30953064
switch (TYPE(n)) {
30963065
case expr_stmt:
30973066
return ast_for_expr_stmt(c, n);
3098-
case print_stmt:
3099-
return ast_for_print_stmt(c, n);
31003067
case del_stmt:
31013068
return ast_for_del_stmt(c, n);
31023069
case pass_stmt:

Python/bltinmodule.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1446,7 +1446,7 @@ builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
14461446
}
14471447

14481448
PyDoc_STRVAR(print_doc,
1449-
"Print(value, ..., file=None, sep=' ', end='\\n')\n\
1449+
"print(value, ..., file=None, sep=' ', end='\\n')\n\
14501450
\n\
14511451
Prints the values to a stream, or to sys.stdout by default.\n\
14521452
Optional keyword arguments:\n\
@@ -2056,7 +2056,7 @@ static PyMethodDef builtin_methods[] = {
20562056
{"open", (PyCFunction)builtin_open, METH_VARARGS | METH_KEYWORDS, open_doc},
20572057
{"ord", builtin_ord, METH_O, ord_doc},
20582058
{"pow", builtin_pow, METH_VARARGS, pow_doc},
2059-
{"Print", (PyCFunction)builtin_print, METH_VARARGS | METH_KEYWORDS, print_doc},
2059+
{"print", (PyCFunction)builtin_print, METH_VARARGS | METH_KEYWORDS, print_doc},
20602060
{"range", builtin_range, METH_VARARGS, range_doc},
20612061
{"reload", builtin_reload, METH_O, reload_doc},
20622062
{"repr", builtin_repr, METH_O, repr_doc},

0 commit comments

Comments
 (0)