ANSI-C-ify the placement of local var declarations.

This commit is contained in:
Armin Rigo 2005-10-21 12:57:31 +00:00
parent b2308bb9be
commit 3144130217
3 changed files with 14 additions and 9 deletions

View File

@ -512,14 +512,14 @@ static asdl_seq *
seq_for_testlist(struct compiling *c, const node *n) seq_for_testlist(struct compiling *c, const node *n)
{ {
/* testlist: test (',' test)* [','] */ /* testlist: test (',' test)* [','] */
asdl_seq *seq;
expr_ty expression;
int i;
assert(TYPE(n) == testlist assert(TYPE(n) == testlist
|| TYPE(n) == listmaker || TYPE(n) == listmaker
|| TYPE(n) == testlist_gexp || TYPE(n) == testlist_gexp
|| TYPE(n) == testlist_safe || TYPE(n) == testlist_safe
); );
asdl_seq *seq;
expr_ty expression;
int i;
seq = asdl_seq_new((NCH(n) + 1) / 2); seq = asdl_seq_new((NCH(n) + 1) / 2);
if (!seq) if (!seq)
@ -641,12 +641,13 @@ ast_for_arguments(struct compiling *c, const node *n)
compiler_complex_args(CHILD(ch, 1))); compiler_complex_args(CHILD(ch, 1)));
} }
else if (TYPE(CHILD(ch, 0)) == NAME) { else if (TYPE(CHILD(ch, 0)) == NAME) {
expr_ty name;
if (!strcmp(STR(CHILD(ch, 0)), "None")) { if (!strcmp(STR(CHILD(ch, 0)), "None")) {
ast_error(CHILD(ch, 0), "assignment to None"); ast_error(CHILD(ch, 0), "assignment to None");
goto error; goto error;
} }
expr_ty name = Name(NEW_IDENTIFIER(CHILD(ch, 0)), name = Name(NEW_IDENTIFIER(CHILD(ch, 0)),
Param, LINENO(ch)); Param, LINENO(ch));
if (!name) if (!name)
goto error; goto error;
asdl_seq_APPEND(args, name); asdl_seq_APPEND(args, name);
@ -1897,12 +1898,13 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
if (!targets) if (!targets)
return NULL; return NULL;
for (i = 0; i < NCH(n) - 2; i += 2) { for (i = 0; i < NCH(n) - 2; i += 2) {
expr_ty e;
node *ch = CHILD(n, i); node *ch = CHILD(n, i);
if (TYPE(ch) == yield_expr) { if (TYPE(ch) == yield_expr) {
ast_error(ch, "assignment to yield expression not possible"); ast_error(ch, "assignment to yield expression not possible");
goto error; goto error;
} }
expr_ty e = ast_for_testlist(c, ch, 0); e = ast_for_testlist(c, ch, 0);
/* set context to assign */ /* set context to assign */
if (!e) if (!e)

View File

@ -2329,8 +2329,9 @@ compiler_import_as(struct compiler *c, identifier name, identifier asname)
src = dot + 1; src = dot + 1;
while (dot) { while (dot) {
/* NB src is only defined when dot != NULL */ /* NB src is only defined when dot != NULL */
PyObject *attr;
dot = strchr(src, '.'); dot = strchr(src, '.');
PyObject *attr = PyString_FromStringAndSize(src, attr = PyString_FromStringAndSize(src,
dot ? dot - src : strlen(src)); dot ? dot - src : strlen(src));
ADDOP_O(c, LOAD_ATTR, attr, names); ADDOP_O(c, LOAD_ATTR, attr, names);
src = dot + 1; src = dot + 1;

View File

@ -444,12 +444,13 @@ analyze_cells(PyObject *scope, PyObject *free)
static int static int
check_unoptimized(const PySTEntryObject* ste) { check_unoptimized(const PySTEntryObject* ste) {
char buf[300]; char buf[300];
const char* trailer;
if (ste->ste_type == ModuleBlock || !ste->ste_unoptimized if (ste->ste_type == ModuleBlock || !ste->ste_unoptimized
|| !(ste->ste_free || ste->ste_child_free)) || !(ste->ste_free || ste->ste_child_free))
return 1; return 1;
const char* trailer = (ste->ste_child_free ? trailer = (ste->ste_child_free ?
"contains a nested function with free variables" : "contains a nested function with free variables" :
"is a nested function"); "is a nested function");
@ -621,8 +622,9 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free,
/* Recursively call analyze_block() on each child block */ /* Recursively call analyze_block() on each child block */
for (i = 0; i < PyList_GET_SIZE(ste->ste_children); ++i) { for (i = 0; i < PyList_GET_SIZE(ste->ste_children); ++i) {
PyObject *c = PyList_GET_ITEM(ste->ste_children, i); PyObject *c = PyList_GET_ITEM(ste->ste_children, i);
PySTEntryObject* entry;
assert(c && PySTEntry_Check(c)); assert(c && PySTEntry_Check(c));
PySTEntryObject* entry = (PySTEntryObject*)c; entry = (PySTEntryObject*)c;
if (!analyze_block(entry, newbound, newfree, newglobal)) if (!analyze_block(entry, newbound, newfree, newglobal))
goto error; goto error;
if (entry->ste_free || entry->ste_child_free) if (entry->ste_free || entry->ste_child_free)