@@ -542,6 +542,15 @@ PyRun_InteractiveOne(FILE *fp, char *filename)
542542 return PyRun_InteractiveOneFlags (fp , filename , NULL );
543543}
544544
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+
545554int
546555PyRun_InteractiveOneFlags (FILE * fp , char * filename , PyCompilerFlags * flags )
547556{
@@ -568,9 +577,7 @@ PyRun_InteractiveOneFlags(FILE *fp, char *filename, PyCompilerFlags *flags)
568577 }
569578 n = PyParser_ParseFileFlags (fp , filename , & _PyParser_Grammar ,
570579 Py_single_input , ps1 , ps2 , & err ,
571- (flags &&
572- flags -> cf_flags & CO_GENERATOR_ALLOWED ) ?
573- PyPARSE_YIELD_IS_KEYWORD : 0 );
580+ PARSER_FLAGS (flags ));
574581 Py_XDECREF (v );
575582 Py_XDECREF (w );
576583 if (n == NULL ) {
@@ -1031,9 +1038,7 @@ PyRun_StringFlags(char *str, int start, PyObject *globals, PyObject *locals,
10311038 PyCompilerFlags * flags )
10321039{
10331040 return run_err_node (PyParser_SimpleParseStringFlags (
1034- str , start ,
1035- (flags && flags -> cf_flags & CO_GENERATOR_ALLOWED ) ?
1036- PyPARSE_YIELD_IS_KEYWORD : 0 ),
1041+ str , start , PARSER_FLAGS (flags )),
10371042 "<string>" , globals , locals , flags );
10381043}
10391044
@@ -1050,8 +1055,7 @@ PyRun_FileExFlags(FILE *fp, char *filename, int start, PyObject *globals,
10501055 PyObject * locals , int closeit , PyCompilerFlags * flags )
10511056{
10521057 node * n = PyParser_SimpleParseFileFlags (fp , filename , start ,
1053- (flags && flags -> cf_flags & CO_GENERATOR_ALLOWED ) ?
1054- PyPARSE_YIELD_IS_KEYWORD : 0 );
1058+ PARSER_FLAGS (flags ));
10551059 if (closeit )
10561060 fclose (fp );
10571061 return run_err_node (n , filename , globals , locals , flags );
@@ -1125,9 +1129,7 @@ Py_CompileStringFlags(char *str, char *filename, int start,
11251129{
11261130 node * n ;
11271131 PyCodeObject * co ;
1128- n = PyParser_SimpleParseStringFlags (str , start ,
1129- (flags && flags -> cf_flags & CO_GENERATOR_ALLOWED ) ?
1130- PyPARSE_YIELD_IS_KEYWORD : 0 );
1132+ n = PyParser_SimpleParseStringFlags (str , start , PARSER_FLAGS (flags ));
11311133 if (n == NULL )
11321134 return NULL ;
11331135 co = PyNode_CompileFlags (n , filename , flags );
0 commit comments