Mercurial > cpython-lru_cache-weakref
comparison Python/pythonrun.c @ 22468:eebae4f60d05 legacy-trunk
Disable the parser hacks that enabled the "yield" keyword using a future
statement.
| author | Neil Schemenauer <nascheme@enme.ucalgary.ca> |
|---|---|
| date | Fri, 22 Mar 2002 23:53:36 +0000 |
| parents | d4406fbfcb4e |
| children | 253de588f2fb |
comparison
equal
deleted
inserted
replaced
| 22467:aaf5ee3b8f93 | 22468:eebae4f60d05 |
|---|---|
| 540 PyRun_InteractiveOne(FILE *fp, char *filename) | 540 PyRun_InteractiveOne(FILE *fp, char *filename) |
| 541 { | 541 { |
| 542 return PyRun_InteractiveOneFlags(fp, filename, NULL); | 542 return PyRun_InteractiveOneFlags(fp, filename, NULL); |
| 543 } | 543 } |
| 544 | 544 |
| 545 /* compute parser flags based on compiler flags */ | |
| 546 #if 0 /* future keyword */ | |
| 547 #define PARSER_FLAGS(flags) \ | |
| 548 (((flags) && (flags)->cf_flags & CO_GENERATOR_ALLOWED) ? \ | |
| 549 PyPARSE_YIELD_IS_KEYWORD : 0) | |
| 550 #else | |
| 551 #define PARSER_FLAGS(flags) 0 | |
| 552 #endif | |
| 553 | |
| 545 int | 554 int |
| 546 PyRun_InteractiveOneFlags(FILE *fp, char *filename, PyCompilerFlags *flags) | 555 PyRun_InteractiveOneFlags(FILE *fp, char *filename, PyCompilerFlags *flags) |
| 547 { | 556 { |
| 548 PyObject *m, *d, *v, *w; | 557 PyObject *m, *d, *v, *w; |
| 549 node *n; | 558 node *n; |
| 566 else if (PyString_Check(w)) | 575 else if (PyString_Check(w)) |
| 567 ps2 = PyString_AsString(w); | 576 ps2 = PyString_AsString(w); |
| 568 } | 577 } |
| 569 n = PyParser_ParseFileFlags(fp, filename, &_PyParser_Grammar, | 578 n = PyParser_ParseFileFlags(fp, filename, &_PyParser_Grammar, |
| 570 Py_single_input, ps1, ps2, &err, | 579 Py_single_input, ps1, ps2, &err, |
| 571 (flags && | 580 PARSER_FLAGS(flags)); |
| 572 flags->cf_flags & CO_GENERATOR_ALLOWED) ? | |
| 573 PyPARSE_YIELD_IS_KEYWORD : 0); | |
| 574 Py_XDECREF(v); | 581 Py_XDECREF(v); |
| 575 Py_XDECREF(w); | 582 Py_XDECREF(w); |
| 576 if (n == NULL) { | 583 if (n == NULL) { |
| 577 if (err.error == E_EOF) { | 584 if (err.error == E_EOF) { |
| 578 if (err.text) | 585 if (err.text) |
| 1029 PyObject * | 1036 PyObject * |
| 1030 PyRun_StringFlags(char *str, int start, PyObject *globals, PyObject *locals, | 1037 PyRun_StringFlags(char *str, int start, PyObject *globals, PyObject *locals, |
| 1031 PyCompilerFlags *flags) | 1038 PyCompilerFlags *flags) |
| 1032 { | 1039 { |
| 1033 return run_err_node(PyParser_SimpleParseStringFlags( | 1040 return run_err_node(PyParser_SimpleParseStringFlags( |
| 1034 str, start, | 1041 str, start, PARSER_FLAGS(flags)), |
| 1035 (flags && flags->cf_flags & CO_GENERATOR_ALLOWED) ? | |
| 1036 PyPARSE_YIELD_IS_KEYWORD : 0), | |
| 1037 "<string>", globals, locals, flags); | 1042 "<string>", globals, locals, flags); |
| 1038 } | 1043 } |
| 1039 | 1044 |
| 1040 PyObject * | 1045 PyObject * |
| 1041 PyRun_FileFlags(FILE *fp, char *filename, int start, PyObject *globals, | 1046 PyRun_FileFlags(FILE *fp, char *filename, int start, PyObject *globals, |
| 1048 PyObject * | 1053 PyObject * |
| 1049 PyRun_FileExFlags(FILE *fp, char *filename, int start, PyObject *globals, | 1054 PyRun_FileExFlags(FILE *fp, char *filename, int start, PyObject *globals, |
| 1050 PyObject *locals, int closeit, PyCompilerFlags *flags) | 1055 PyObject *locals, int closeit, PyCompilerFlags *flags) |
| 1051 { | 1056 { |
| 1052 node *n = PyParser_SimpleParseFileFlags(fp, filename, start, | 1057 node *n = PyParser_SimpleParseFileFlags(fp, filename, start, |
| 1053 (flags && flags->cf_flags & CO_GENERATOR_ALLOWED) ? | 1058 PARSER_FLAGS(flags)); |
| 1054 PyPARSE_YIELD_IS_KEYWORD : 0); | |
| 1055 if (closeit) | 1059 if (closeit) |
| 1056 fclose(fp); | 1060 fclose(fp); |
| 1057 return run_err_node(n, filename, globals, locals, flags); | 1061 return run_err_node(n, filename, globals, locals, flags); |
| 1058 } | 1062 } |
| 1059 | 1063 |
| 1123 Py_CompileStringFlags(char *str, char *filename, int start, | 1127 Py_CompileStringFlags(char *str, char *filename, int start, |
| 1124 PyCompilerFlags *flags) | 1128 PyCompilerFlags *flags) |
| 1125 { | 1129 { |
| 1126 node *n; | 1130 node *n; |
| 1127 PyCodeObject *co; | 1131 PyCodeObject *co; |
| 1128 n = PyParser_SimpleParseStringFlags(str, start, | 1132 n = PyParser_SimpleParseStringFlags(str, start, PARSER_FLAGS(flags)); |
| 1129 (flags && flags->cf_flags & CO_GENERATOR_ALLOWED) ? | |
| 1130 PyPARSE_YIELD_IS_KEYWORD : 0); | |
| 1131 if (n == NULL) | 1133 if (n == NULL) |
| 1132 return NULL; | 1134 return NULL; |
| 1133 co = PyNode_CompileFlags(n, filename, flags); | 1135 co = PyNode_CompileFlags(n, filename, flags); |
| 1134 PyNode_Free(n); | 1136 PyNode_Free(n); |
| 1135 return (PyObject *)co; | 1137 return (PyObject *)co; |
