From 94fb82e461290e8bc1fbef351f272abf3d39026f Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sun, 5 Apr 1992 14:24:50 +0000 Subject: Only * can be used for varargs argument lists --- Python/compile.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Python/compile.c b/Python/compile.c index c8ce0aa..dd4fe15 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -1,5 +1,5 @@ /*********************************************************** -Copyright 1991 by Stichting Mathematisch Centrum, Amsterdam, The +Copyright 1991, 1992 by Stichting Mathematisch Centrum, Amsterdam, The Netherlands. All Rights Reserved @@ -1566,7 +1566,11 @@ com_try_stmt(c, n) int finally_anchor = 0; int except_anchor = 0; REQ(n, try_stmt); - /* 'try' ':' suite (except_clause ':' suite)* ['finally' ':' suite] */ + /* 'try' ':' suite (except_clause ':' suite)* + | 'try' ':' 'finally' ':' suite */ + + /* XXX This can be simplified because except and finally can + no longer be mixed in a single try statement */ if (NCH(n) > 3 && TYPE(CHILD(n, NCH(n)-3)) != except_clause) { /* Have a 'finally' clause */ @@ -1958,12 +1962,12 @@ com_arglist(c, n) int i, nargs, op; REQ(n, varargslist); /* varargslist: - (fpdef ',')* ('+'|'*') NAME | fpdef (',' fpdef)* [','] */ + (fpdef ',')* '*' NAME | fpdef (',' fpdef)* [','] */ op = UNPACK_ARG; nargs = (NCH(n) + 1) / 2; for (i = 0; i < NCH(n); i += 2) { int t = TYPE(CHILD(n, i)); - if (t == PLUS || t == STAR) { + if (t == STAR) { op = UNPACK_VARARG; nargs = i/2; break; -- cgit v0.12