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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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);
}
/* 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 = "<string>";
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,

View File

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

View File

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

View File

@ -723,11 +723,18 @@ 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)