diff options
author | Guido van Rossum <guido@python.org> | 2007-05-11 16:50:42 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2007-05-11 16:50:42 (GMT) |
commit | 0368b726a1859e3c063df5a93f19ccb4254be22a (patch) | |
tree | 4e65a593d48f9103facb47b741f8ed97d755286f /Python/ast.c | |
parent | bdde01168fc91d02a2d3bc8399255944fdfdd69f (diff) | |
download | cpython-0368b726a1859e3c063df5a93f19ccb4254be22a.zip cpython-0368b726a1859e3c063df5a93f19ccb4254be22a.tar.gz cpython-0368b726a1859e3c063df5a93f19ccb4254be22a.tar.bz2 |
Merged revisions 55225-55227,55229-55269 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55238 | guido.van.rossum | 2007-05-10 16:46:05 -0700 (Thu, 10 May 2007) | 9 lines
Merged revisions 55227 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55227 | guido.van.rossum | 2007-05-10 10:20:15 -0700 (Thu, 10 May 2007) | 2 lines
Fix a bug in test_c_api() that caused a negative refcount.
........
................
r55246 | neal.norwitz | 2007-05-11 00:01:52 -0700 (Fri, 11 May 2007) | 1 line
Remove commands.getstatus() it is obsolete.
................
r55248 | neal.norwitz | 2007-05-11 00:29:05 -0700 (Fri, 11 May 2007) | 2 lines
Remove bsddb185 support.
................
r55249 | neal.norwitz | 2007-05-11 00:29:50 -0700 (Fri, 11 May 2007) | 1 line
Remove bsddb185 module too
................
r55250 | neal.norwitz | 2007-05-11 00:32:13 -0700 (Fri, 11 May 2007) | 1 line
bsddb185: Gotta remove from the file checked in, not Setup
................
r55251 | neal.norwitz | 2007-05-11 00:53:26 -0700 (Fri, 11 May 2007) | 1 line
Remove obsolete IRIX modules (as much as I could find, there is probably more)
................
r55252 | neal.norwitz | 2007-05-11 00:55:35 -0700 (Fri, 11 May 2007) | 1 line
Remove SGI turd.
................
r55254 | georg.brandl | 2007-05-11 03:11:01 -0700 (Fri, 11 May 2007) | 2 lines
Add a case for set comprehensions to the "cannot assign to" switch.
................
r55255 | georg.brandl | 2007-05-11 03:11:25 -0700 (Fri, 11 May 2007) | 2 lines
Fix wrong imports.
................
r55261 | georg.brandl | 2007-05-11 07:37:48 -0700 (Fri, 11 May 2007) | 2 lines
Remove removed tex files.
................
r55262 | georg.brandl | 2007-05-11 08:28:41 -0700 (Fri, 11 May 2007) | 2 lines
Commit PEP 3132 implementation.
................
r55264 | georg.brandl | 2007-05-11 08:50:19 -0700 (Fri, 11 May 2007) | 2 lines
Check in the inevitable AST version number and format Py_ssize_t with %zd.
................
r55265 | neal.norwitz | 2007-05-11 09:12:22 -0700 (Fri, 11 May 2007) | 1 line
Remove mention of os.popen* and popen2.* since these will be removed.
................
r55266 | neal.norwitz | 2007-05-11 09:19:57 -0700 (Fri, 11 May 2007) | 1 line
Get doc to build again (almost, the doc is fine)
................
r55267 | neal.norwitz | 2007-05-11 09:21:02 -0700 (Fri, 11 May 2007) | 1 line
Really get doc to build (remove use of string module)
................
r55269 | neal.norwitz | 2007-05-11 09:29:43 -0700 (Fri, 11 May 2007) | 1 line
Add some notes to cleanup later
................
Diffstat (limited to 'Python/ast.c')
-rw-r--r-- | Python/ast.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Python/ast.c b/Python/ast.c index a0c1812..6f62b6c 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -355,6 +355,11 @@ set_context(expr_ty e, expr_context_ty ctx, const node *n) case Subscript_kind: e->v.Subscript.ctx = ctx; break; + case Starred_kind: + e->v.Starred.ctx = ctx; + if (!set_context(e->v.Starred.value, ctx, n)) + return 0; + break; case Name_kind: if (ctx == Store && !strcmp(PyString_AS_STRING(e->v.Name.id), "None")) { @@ -392,6 +397,9 @@ set_context(expr_ty e, expr_context_ty ctx, const node *n) case ListComp_kind: expr_name = "list comprehension"; break; + case SetComp_kind: + expr_name = "set comprehension"; + break; case Dict_kind: case Set_kind: case Num_kind: @@ -1661,6 +1669,21 @@ ast_for_power(struct compiling *c, const node *n) return e; } +static expr_ty +ast_for_starred(struct compiling *c, const node *n) +{ + expr_ty tmp; + REQ(n, star_expr); + + tmp = ast_for_expr(c, CHILD(n, 1)); + if (!tmp) + return NULL; + + /* The Load context is changed later. */ + return Starred(tmp, Load, LINENO(n), n->n_col_offset, c->c_arena); +} + + /* Do not name a variable 'expr'! Will cause a compile error. */ @@ -1772,6 +1795,11 @@ ast_for_expr(struct compiling *c, const node *n) } break; + case star_expr: + if (TYPE(CHILD(n, 0)) == STAR) { + return ast_for_starred(c, n); + } + /* Fallthrough */ /* The next five cases all handle BinOps. The main body of code is the same in each case, but the switch turned inside out to reuse the code for each type of operator. |