with and as are now keywords. There are some generated files I can't recreate.

This commit is contained in:
Neal Norwitz 2006-09-06 06:28:06 +00:00
parent 98775dfebc
commit ca460d9722
11 changed files with 35 additions and 35 deletions

View file

@ -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

View file

@ -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 */

View file

@ -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 *);

View file

@ -233,7 +233,7 @@ class TalkTo:
"""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 @@ class TalkTo:
_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 @@ class TalkTo:
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

View file

@ -300,7 +300,7 @@ class AppleScript_Suite_Events:
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

View file

@ -1550,7 +1550,7 @@ IE_NOMEM = -1
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

View file

@ -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
------- -------

View file

@ -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,

View file

@ -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));
} }

View file

@ -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,

View file

@ -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)