From ca460d9722c9542004c4cf34d9231641ac18e34b Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Wed, 6 Sep 2006 06:28:06 +0000 Subject: with and as are now keywords. There are some generated files I can't recreate. --- Grammar/Grammar | 6 +++--- Include/code.h | 2 ++ Include/parsetok.h | 2 ++ Lib/plat-mac/aetools.py | 10 +++++----- .../lib-scriptpackages/StdSuites/AppleScript_Suite.py | 2 +- Lib/plat-sunos5/STROPTS.py | 2 +- Misc/NEWS | 2 ++ Parser/parsetok.c | 8 +++++--- Python/ast.c | 12 ------------ Python/graminit.c | 17 +++++++---------- Python/pythonrun.c | 7 +++++++ 11 files changed, 35 insertions(+), 35 deletions(-) diff --git a/Grammar/Grammar b/Grammar/Grammar index c3709d2..83e5058 100644 --- a/Grammar/Grammar +++ b/Grammar/Grammar @@ -64,8 +64,8 @@ import_stmt: import_name | import_from import_name: 'import' dotted_as_names import_from: ('from' ('.'* dotted_name | '.'+) 'import' ('*' | '(' import_as_names ')' | import_as_names)) -import_as_name: NAME [('as' | NAME) NAME] -dotted_as_name: dotted_name [('as' | NAME) NAME] +import_as_name: NAME ['as' NAME] +dotted_as_name: dotted_name ['as' NAME] import_as_names: import_as_name (',' import_as_name)* [','] dotted_as_names: dotted_as_name (',' dotted_as_name)* dotted_name: NAME ('.' NAME)* @@ -83,7 +83,7 @@ try_stmt: ('try' ':' suite ['finally' ':' suite] | 'finally' ':' 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 except_clause: 'except' [test [',' test]] suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT diff --git a/Include/code.h b/Include/code.h index 6c0e706..744c1a6 100644 --- a/Include/code.h +++ b/Include/code.h @@ -52,7 +52,9 @@ typedef struct { /* This should be defined if a future statement modifies the syntax. For example, when a keyword is added. */ +#if 0 #define PY_PARSER_REQUIRES_FUTURE_KEYWORD +#endif #define CO_MAXBLOCKS 20 /* Max static block nesting within a function */ diff --git a/Include/parsetok.h b/Include/parsetok.h index 0f87e81..2b4ce1e 100644 --- a/Include/parsetok.h +++ b/Include/parsetok.h @@ -23,7 +23,9 @@ typedef struct { #define PyPARSE_DONT_IMPLY_DEDENT 0x0002 +#if 0 #define PyPARSE_WITH_IS_KEYWORD 0x0003 +#endif PyAPI_FUNC(node *) PyParser_ParseString(const char *, grammar *, int, perrdetail *); diff --git a/Lib/plat-mac/aetools.py b/Lib/plat-mac/aetools.py index 79f3978..c277b52 100644 --- a/Lib/plat-mac/aetools.py +++ b/Lib/plat-mac/aetools.py @@ -233,7 +233,7 @@ class TalkTo: """Send 'activate' command""" self.send('misc', 'actv') - def _get(self, _object, as=None, _attributes={}): + def _get(self, _object, asfile=None, _attributes={}): """_get: get data from an object Required argument: the object Keyword argument _attributes: AppleEvent attribute dictionary @@ -243,8 +243,8 @@ class TalkTo: _subcode = 'getd' _arguments = {'----':_object} - if as: - _arguments['rtyp'] = mktype(as) + if asfile: + _arguments['rtyp'] = mktype(asfile) _reply, _arguments, _attributes = self.send(_code, _subcode, _arguments, _attributes) @@ -253,8 +253,8 @@ class TalkTo: if _arguments.has_key('----'): return _arguments['----'] - if as: - item.__class__ = as + if asfile: + item.__class__ = asfile return item get = _get diff --git a/Lib/plat-mac/lib-scriptpackages/StdSuites/AppleScript_Suite.py b/Lib/plat-mac/lib-scriptpackages/StdSuites/AppleScript_Suite.py index 574043d..773d1d7 100644 --- a/Lib/plat-mac/lib-scriptpackages/StdSuites/AppleScript_Suite.py +++ b/Lib/plat-mac/lib-scriptpackages/StdSuites/AppleScript_Suite.py @@ -300,7 +300,7 @@ class AppleScript_Suite_Events: if _arguments.has_key('----'): return _arguments['----'] - def as(self, _object, _attributes={}, **_arguments): + def as_(self, _object, _attributes={}, **_arguments): """as: Coercion Required argument: an AE object reference Keyword argument _attributes: AppleEvent attribute dictionary diff --git a/Lib/plat-sunos5/STROPTS.py b/Lib/plat-sunos5/STROPTS.py index e95db93..4970bd7 100644 --- a/Lib/plat-sunos5/STROPTS.py +++ b/Lib/plat-sunos5/STROPTS.py @@ -1550,7 +1550,7 @@ IE_NOMEM = -1 AS_PAGLCK = 0x80 AS_CLAIMGAP = 0x40 AS_UNMAPWAIT = 0x20 -def AS_TYPE_64BIT(as): return \ +def AS_TYPE_64BIT(as_): return \ AS_LREP_LINKEDLIST = 0 AS_LREP_SKIPLIST = 1 diff --git a/Misc/NEWS b/Misc/NEWS index a599dbd..43e6a37 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -30,6 +30,8 @@ Core and builtins required changing the .pyc magic number. This means that .pyc files generated before 2.5c2 will be regenerated. +- with and as are now keywords. + Library ------- diff --git a/Parser/parsetok.c b/Parser/parsetok.c index be53e1c..c951396 100644 --- a/Parser/parsetok.c +++ b/Parser/parsetok.c @@ -89,9 +89,7 @@ PyParser_ParseFileFlags(FILE *fp, const char *filename, grammar *g, int start, return parsetok(tok, g, start, err_ret, flags); } -/* Parse input coming from the given tokenizer structure. - Return error code. */ - +#if 0 static char with_msg[] = "%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 = ""; PySys_WriteStderr(msg, filename, lineno); } +#endif + +/* Parse input coming from the given tokenizer structure. + Return error code. */ static node * parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret, diff --git a/Python/ast.c b/Python/ast.c index 4883cc2..9e0c184 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -2190,10 +2190,6 @@ alias_for_import_name(struct compiling *c, const node *n) case import_as_name: str = NULL; 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)); } 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)); if (!a) return NULL; - if (strcmp(STR(CHILD(n, 1)), "as") != 0) { - ast_error(n, "must use 'as' in import"); - return NULL; - } assert(!a->asname); a->asname = NEW_IDENTIFIER(CHILD(n, 2)); return a; @@ -2848,10 +2840,6 @@ static expr_ty ast_for_with_var(struct compiling *c, const node *n) { 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)); } diff --git a/Python/graminit.c b/Python/graminit.c index 8f20502..33ef64b 100644 --- a/Python/graminit.c +++ b/Python/graminit.c @@ -551,9 +551,8 @@ static state states_26[8] = { static arc arcs_27_0[1] = { {19, 1}, }; -static arc arcs_27_1[3] = { +static arc arcs_27_1[2] = { {78, 2}, - {19, 2}, {0, 1}, }; static arc arcs_27_2[1] = { @@ -564,16 +563,15 @@ static arc arcs_27_3[1] = { }; static state states_27[4] = { {1, arcs_27_0}, - {3, arcs_27_1}, + {2, arcs_27_1}, {1, arcs_27_2}, {1, arcs_27_3}, }; static arc arcs_28_0[1] = { {12, 1}, }; -static arc arcs_28_1[3] = { +static arc arcs_28_1[2] = { {78, 2}, - {19, 2}, {0, 1}, }; static arc arcs_28_2[1] = { @@ -584,7 +582,7 @@ static arc arcs_28_3[1] = { }; static state states_28[4] = { {1, arcs_28_0}, - {3, arcs_28_1}, + {2, arcs_28_1}, {1, arcs_28_2}, {1, arcs_28_3}, }; @@ -912,9 +910,8 @@ static state states_40[6] = { {1, arcs_40_4}, {1, arcs_40_5}, }; -static arc arcs_41_0[2] = { +static arc arcs_41_0[1] = { {78, 1}, - {19, 1}, }; static arc arcs_41_1[1] = { {82, 2}, @@ -923,7 +920,7 @@ static arc arcs_41_2[1] = { {0, 2}, }; static state states_41[3] = { - {2, arcs_41_0}, + {1, arcs_41_0}, {1, arcs_41_1}, {1, arcs_41_2}, }; @@ -1865,7 +1862,7 @@ static dfa dfas[84] = { {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"}, {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, "\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, diff --git a/Python/pythonrun.c b/Python/pythonrun.c index e8f4fa2..634572e 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -725,9 +725,16 @@ PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags *flag /* 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) \ + ((flags) ? ((((flags)->cf_flags & PyCF_DONT_IMPLY_DEDENT) ? \ PyPARSE_DONT_IMPLY_DEDENT : 0) \ | ((flags)->cf_flags & CO_FUTURE_WITH_STATEMENT ? \ PyPARSE_WITH_IS_KEYWORD : 0)) : 0) +#endif int PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags) -- cgit v0.12