mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	with and as are now keywords. There are some generated files I can't recreate.
This commit is contained in:
		
							parent
							
								
									98775dfebc
								
							
						
					
					
						commit
						ca460d9722
					
				
					 11 changed files with 35 additions and 35 deletions
				
			
		| 
						 | 
					@ -64,8 +64,8 @@ import_stmt: import_name | import_from
 | 
				
			||||||
import_name: 'import' dotted_as_names
 | 
					import_name: 'import' dotted_as_names
 | 
				
			||||||
import_from: ('from' ('.'* dotted_name | '.'+)
 | 
					import_from: ('from' ('.'* dotted_name | '.'+)
 | 
				
			||||||
              'import' ('*' | '(' import_as_names ')' | import_as_names))
 | 
					              'import' ('*' | '(' import_as_names ')' | import_as_names))
 | 
				
			||||||
import_as_name: NAME [('as' | NAME) NAME]
 | 
					import_as_name: NAME ['as' NAME]
 | 
				
			||||||
dotted_as_name: dotted_name [('as' | NAME) NAME]
 | 
					dotted_as_name: dotted_name ['as' NAME]
 | 
				
			||||||
import_as_names: import_as_name (',' import_as_name)* [',']
 | 
					import_as_names: import_as_name (',' import_as_name)* [',']
 | 
				
			||||||
dotted_as_names: dotted_as_name (',' dotted_as_name)*
 | 
					dotted_as_names: dotted_as_name (',' dotted_as_name)*
 | 
				
			||||||
dotted_name: NAME ('.' NAME)*
 | 
					dotted_name: NAME ('.' NAME)*
 | 
				
			||||||
| 
						 | 
					@ -83,7 +83,7 @@ try_stmt: ('try' ':' suite
 | 
				
			||||||
	    ['finally' ':' suite] |
 | 
						    ['finally' ':' suite] |
 | 
				
			||||||
	   'finally' ':' suite))
 | 
						   'finally' ':' suite))
 | 
				
			||||||
with_stmt: 'with' test [ with_var ] ':' suite
 | 
					with_stmt: 'with' test [ with_var ] ':' suite
 | 
				
			||||||
with_var: ('as' | NAME) expr
 | 
					with_var: 'as' expr
 | 
				
			||||||
# NB compile.c makes sure that the default except clause is last
 | 
					# NB compile.c makes sure that the default except clause is last
 | 
				
			||||||
except_clause: 'except' [test [',' test]]
 | 
					except_clause: 'except' [test [',' test]]
 | 
				
			||||||
suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
 | 
					suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,7 +52,9 @@ typedef struct {
 | 
				
			||||||
/* This should be defined if a future statement modifies the syntax.
 | 
					/* This should be defined if a future statement modifies the syntax.
 | 
				
			||||||
   For example, when a keyword is added.
 | 
					   For example, when a keyword is added.
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					#if 0
 | 
				
			||||||
#define PY_PARSER_REQUIRES_FUTURE_KEYWORD
 | 
					#define PY_PARSER_REQUIRES_FUTURE_KEYWORD
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define CO_MAXBLOCKS 20 /* Max static block nesting within a function */
 | 
					#define CO_MAXBLOCKS 20 /* Max static block nesting within a function */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,9 @@ typedef struct {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PyPARSE_DONT_IMPLY_DEDENT	0x0002
 | 
					#define PyPARSE_DONT_IMPLY_DEDENT	0x0002
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if 0
 | 
				
			||||||
#define PyPARSE_WITH_IS_KEYWORD		0x0003
 | 
					#define PyPARSE_WITH_IS_KEYWORD		0x0003
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PyAPI_FUNC(node *) PyParser_ParseString(const char *, grammar *, int,
 | 
					PyAPI_FUNC(node *) PyParser_ParseString(const char *, grammar *, int,
 | 
				
			||||||
                                              perrdetail *);
 | 
					                                              perrdetail *);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -233,7 +233,7 @@ def activate(self):
 | 
				
			||||||
        """Send 'activate' command"""
 | 
					        """Send 'activate' command"""
 | 
				
			||||||
        self.send('misc', 'actv')
 | 
					        self.send('misc', 'actv')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _get(self, _object, as=None, _attributes={}):
 | 
					    def _get(self, _object, asfile=None, _attributes={}):
 | 
				
			||||||
        """_get: get data from an object
 | 
					        """_get: get data from an object
 | 
				
			||||||
        Required argument: the object
 | 
					        Required argument: the object
 | 
				
			||||||
        Keyword argument _attributes: AppleEvent attribute dictionary
 | 
					        Keyword argument _attributes: AppleEvent attribute dictionary
 | 
				
			||||||
| 
						 | 
					@ -243,8 +243,8 @@ def _get(self, _object, as=None, _attributes={}):
 | 
				
			||||||
        _subcode = 'getd'
 | 
					        _subcode = 'getd'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        _arguments = {'----':_object}
 | 
					        _arguments = {'----':_object}
 | 
				
			||||||
        if as:
 | 
					        if asfile:
 | 
				
			||||||
            _arguments['rtyp'] = mktype(as)
 | 
					            _arguments['rtyp'] = mktype(asfile)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        _reply, _arguments, _attributes = self.send(_code, _subcode,
 | 
					        _reply, _arguments, _attributes = self.send(_code, _subcode,
 | 
				
			||||||
                _arguments, _attributes)
 | 
					                _arguments, _attributes)
 | 
				
			||||||
| 
						 | 
					@ -253,8 +253,8 @@ def _get(self, _object, as=None, _attributes={}):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if _arguments.has_key('----'):
 | 
					        if _arguments.has_key('----'):
 | 
				
			||||||
            return _arguments['----']
 | 
					            return _arguments['----']
 | 
				
			||||||
            if as:
 | 
					            if asfile:
 | 
				
			||||||
                item.__class__ = as
 | 
					                item.__class__ = asfile
 | 
				
			||||||
            return item
 | 
					            return item
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    get = _get
 | 
					    get = _get
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -300,7 +300,7 @@ def and_(self, _object, _attributes={}, **_arguments):
 | 
				
			||||||
        if _arguments.has_key('----'):
 | 
					        if _arguments.has_key('----'):
 | 
				
			||||||
            return _arguments['----']
 | 
					            return _arguments['----']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def as(self, _object, _attributes={}, **_arguments):
 | 
					    def as_(self, _object, _attributes={}, **_arguments):
 | 
				
			||||||
        """as: Coercion
 | 
					        """as: Coercion
 | 
				
			||||||
        Required argument: an AE object reference
 | 
					        Required argument: an AE object reference
 | 
				
			||||||
        Keyword argument _attributes: AppleEvent attribute dictionary
 | 
					        Keyword argument _attributes: AppleEvent attribute dictionary
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1550,7 +1550,7 @@ def seg_pages(seg): return \
 | 
				
			||||||
AS_PAGLCK = 0x80
 | 
					AS_PAGLCK = 0x80
 | 
				
			||||||
AS_CLAIMGAP = 0x40
 | 
					AS_CLAIMGAP = 0x40
 | 
				
			||||||
AS_UNMAPWAIT = 0x20
 | 
					AS_UNMAPWAIT = 0x20
 | 
				
			||||||
def AS_TYPE_64BIT(as): return \
 | 
					def AS_TYPE_64BIT(as_): return \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AS_LREP_LINKEDLIST = 0
 | 
					AS_LREP_LINKEDLIST = 0
 | 
				
			||||||
AS_LREP_SKIPLIST = 1
 | 
					AS_LREP_SKIPLIST = 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,6 +30,8 @@ Core and builtins
 | 
				
			||||||
  required changing the .pyc magic number.  This means that .pyc files
 | 
					  required changing the .pyc magic number.  This means that .pyc files
 | 
				
			||||||
  generated before 2.5c2 will be regenerated.
 | 
					  generated before 2.5c2 will be regenerated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- with and as are now keywords.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Library
 | 
					Library
 | 
				
			||||||
-------
 | 
					-------
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -89,9 +89,7 @@ PyParser_ParseFileFlags(FILE *fp, const char *filename, grammar *g, int start,
 | 
				
			||||||
	return parsetok(tok, g, start, err_ret, flags);
 | 
						return parsetok(tok, g, start, err_ret, flags);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Parse input coming from the given tokenizer structure.
 | 
					#if 0
 | 
				
			||||||
   Return error code. */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static char with_msg[] =
 | 
					static char with_msg[] =
 | 
				
			||||||
"%s:%d: Warning: 'with' will become a reserved keyword in Python 2.6\n";
 | 
					"%s:%d: Warning: 'with' will become a reserved keyword in Python 2.6\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -105,6 +103,10 @@ warn(const char *msg, const char *filename, int lineno)
 | 
				
			||||||
		filename = "<string>";
 | 
							filename = "<string>";
 | 
				
			||||||
	PySys_WriteStderr(msg, filename, lineno);
 | 
						PySys_WriteStderr(msg, filename, lineno);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Parse input coming from the given tokenizer structure.
 | 
				
			||||||
 | 
					   Return error code. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static node *
 | 
					static node *
 | 
				
			||||||
parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
 | 
					parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										12
									
								
								Python/ast.c
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								Python/ast.c
									
										
									
									
									
								
							| 
						 | 
					@ -2190,10 +2190,6 @@ alias_for_import_name(struct compiling *c, const node *n)
 | 
				
			||||||
        case import_as_name:
 | 
					        case import_as_name:
 | 
				
			||||||
            str = NULL;
 | 
					            str = NULL;
 | 
				
			||||||
            if (NCH(n) == 3) {
 | 
					            if (NCH(n) == 3) {
 | 
				
			||||||
                if (strcmp(STR(CHILD(n, 1)), "as") != 0) {
 | 
					 | 
				
			||||||
                    ast_error(n, "must use 'as' in import");
 | 
					 | 
				
			||||||
                    return NULL;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                str = NEW_IDENTIFIER(CHILD(n, 2));
 | 
					                str = NEW_IDENTIFIER(CHILD(n, 2));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            return alias(NEW_IDENTIFIER(CHILD(n, 0)), str, c->c_arena);
 | 
					            return alias(NEW_IDENTIFIER(CHILD(n, 0)), str, c->c_arena);
 | 
				
			||||||
| 
						 | 
					@ -2206,10 +2202,6 @@ alias_for_import_name(struct compiling *c, const node *n)
 | 
				
			||||||
                alias_ty a = alias_for_import_name(c, CHILD(n, 0));
 | 
					                alias_ty a = alias_for_import_name(c, CHILD(n, 0));
 | 
				
			||||||
                if (!a)
 | 
					                if (!a)
 | 
				
			||||||
                    return NULL;
 | 
					                    return NULL;
 | 
				
			||||||
                if (strcmp(STR(CHILD(n, 1)), "as") != 0) {
 | 
					 | 
				
			||||||
                    ast_error(n, "must use 'as' in import");
 | 
					 | 
				
			||||||
                    return NULL;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                assert(!a->asname);
 | 
					                assert(!a->asname);
 | 
				
			||||||
                a->asname = NEW_IDENTIFIER(CHILD(n, 2));
 | 
					                a->asname = NEW_IDENTIFIER(CHILD(n, 2));
 | 
				
			||||||
                return a;
 | 
					                return a;
 | 
				
			||||||
| 
						 | 
					@ -2848,10 +2840,6 @@ static expr_ty
 | 
				
			||||||
ast_for_with_var(struct compiling *c, const node *n)
 | 
					ast_for_with_var(struct compiling *c, const node *n)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    REQ(n, with_var);
 | 
					    REQ(n, with_var);
 | 
				
			||||||
    if (strcmp(STR(CHILD(n, 0)), "as") != 0) {
 | 
					 | 
				
			||||||
        ast_error(n, "expected \"with [expr] as [var]\"");
 | 
					 | 
				
			||||||
        return NULL;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return ast_for_expr(c, CHILD(n, 1));
 | 
					    return ast_for_expr(c, CHILD(n, 1));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -551,9 +551,8 @@ static state states_26[8] = {
 | 
				
			||||||
static arc arcs_27_0[1] = {
 | 
					static arc arcs_27_0[1] = {
 | 
				
			||||||
	{19, 1},
 | 
						{19, 1},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static arc arcs_27_1[3] = {
 | 
					static arc arcs_27_1[2] = {
 | 
				
			||||||
	{78, 2},
 | 
						{78, 2},
 | 
				
			||||||
	{19, 2},
 | 
					 | 
				
			||||||
	{0, 1},
 | 
						{0, 1},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static arc arcs_27_2[1] = {
 | 
					static arc arcs_27_2[1] = {
 | 
				
			||||||
| 
						 | 
					@ -564,16 +563,15 @@ static arc arcs_27_3[1] = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static state states_27[4] = {
 | 
					static state states_27[4] = {
 | 
				
			||||||
	{1, arcs_27_0},
 | 
						{1, arcs_27_0},
 | 
				
			||||||
	{3, arcs_27_1},
 | 
						{2, arcs_27_1},
 | 
				
			||||||
	{1, arcs_27_2},
 | 
						{1, arcs_27_2},
 | 
				
			||||||
	{1, arcs_27_3},
 | 
						{1, arcs_27_3},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static arc arcs_28_0[1] = {
 | 
					static arc arcs_28_0[1] = {
 | 
				
			||||||
	{12, 1},
 | 
						{12, 1},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static arc arcs_28_1[3] = {
 | 
					static arc arcs_28_1[2] = {
 | 
				
			||||||
	{78, 2},
 | 
						{78, 2},
 | 
				
			||||||
	{19, 2},
 | 
					 | 
				
			||||||
	{0, 1},
 | 
						{0, 1},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static arc arcs_28_2[1] = {
 | 
					static arc arcs_28_2[1] = {
 | 
				
			||||||
| 
						 | 
					@ -584,7 +582,7 @@ static arc arcs_28_3[1] = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static state states_28[4] = {
 | 
					static state states_28[4] = {
 | 
				
			||||||
	{1, arcs_28_0},
 | 
						{1, arcs_28_0},
 | 
				
			||||||
	{3, arcs_28_1},
 | 
						{2, arcs_28_1},
 | 
				
			||||||
	{1, arcs_28_2},
 | 
						{1, arcs_28_2},
 | 
				
			||||||
	{1, arcs_28_3},
 | 
						{1, arcs_28_3},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -912,9 +910,8 @@ static state states_40[6] = {
 | 
				
			||||||
	{1, arcs_40_4},
 | 
						{1, arcs_40_4},
 | 
				
			||||||
	{1, arcs_40_5},
 | 
						{1, arcs_40_5},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static arc arcs_41_0[2] = {
 | 
					static arc arcs_41_0[1] = {
 | 
				
			||||||
	{78, 1},
 | 
						{78, 1},
 | 
				
			||||||
	{19, 1},
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static arc arcs_41_1[1] = {
 | 
					static arc arcs_41_1[1] = {
 | 
				
			||||||
	{82, 2},
 | 
						{82, 2},
 | 
				
			||||||
| 
						 | 
					@ -923,7 +920,7 @@ static arc arcs_41_2[1] = {
 | 
				
			||||||
	{0, 2},
 | 
						{0, 2},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static state states_41[3] = {
 | 
					static state states_41[3] = {
 | 
				
			||||||
	{2, arcs_41_0},
 | 
						{1, arcs_41_0},
 | 
				
			||||||
	{1, arcs_41_1},
 | 
						{1, arcs_41_1},
 | 
				
			||||||
	{1, arcs_41_2},
 | 
						{1, arcs_41_2},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -1865,7 +1862,7 @@ static dfa dfas[84] = {
 | 
				
			||||||
	{296, "with_stmt", 0, 6, states_40,
 | 
						{296, "with_stmt", 0, 6, states_40,
 | 
				
			||||||
	 "\000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000"},
 | 
						 "\000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000"},
 | 
				
			||||||
	{297, "with_var", 0, 3, states_41,
 | 
						{297, "with_var", 0, 3, states_41,
 | 
				
			||||||
	 "\000\000\010\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"},
 | 
						 "\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"},
 | 
				
			||||||
	{298, "except_clause", 0, 5, states_42,
 | 
						{298, "except_clause", 0, 5, states_42,
 | 
				
			||||||
	 "\000\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"},
 | 
						 "\000\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"},
 | 
				
			||||||
	{299, "suite", 0, 5, states_43,
 | 
						{299, "suite", 0, 5, states_43,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -723,11 +723,18 @@ PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags *flag
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* compute parser flags based on compiler flags */
 | 
					/* compute parser flags based on compiler flags */
 | 
				
			||||||
 | 
					#define PARSER_FLAGS(flags) \
 | 
				
			||||||
 | 
						((flags) ? ((((flags)->cf_flags & PyCF_DONT_IMPLY_DEDENT) ? \
 | 
				
			||||||
 | 
							      PyPARSE_DONT_IMPLY_DEDENT : 0)) : 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if 0
 | 
				
			||||||
 | 
					/* Keep an example of flags with future keyword support. */
 | 
				
			||||||
#define PARSER_FLAGS(flags) \
 | 
					#define PARSER_FLAGS(flags) \
 | 
				
			||||||
	((flags) ? ((((flags)->cf_flags & PyCF_DONT_IMPLY_DEDENT) ? \
 | 
						((flags) ? ((((flags)->cf_flags & PyCF_DONT_IMPLY_DEDENT) ? \
 | 
				
			||||||
		      PyPARSE_DONT_IMPLY_DEDENT : 0) \
 | 
							      PyPARSE_DONT_IMPLY_DEDENT : 0) \
 | 
				
			||||||
		    | ((flags)->cf_flags & CO_FUTURE_WITH_STATEMENT ? \
 | 
							    | ((flags)->cf_flags & CO_FUTURE_WITH_STATEMENT ? \
 | 
				
			||||||
		       PyPARSE_WITH_IS_KEYWORD : 0)) : 0)
 | 
							       PyPARSE_WITH_IS_KEYWORD : 0)) : 0)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags)
 | 
					PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue