From ee0b602dc4ee35c8233247edeff818caac7062bc Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 22 Sep 2012 22:12:56 +0200 Subject: [PATCH] subckt.c, cleanup, use `for' instead of `while' --- src/frontend/subckt.c | 69 +++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 42 deletions(-) diff --git a/src/frontend/subckt.c b/src/frontend/subckt.c index 30b5c7b50..63d7390c8 100644 --- a/src/frontend/subckt.c +++ b/src/frontend/subckt.c @@ -185,38 +185,27 @@ inp_subcktexpand(struct line *deck) { #ifdef TRACE fprintf(stderr, "Numparams is processing this deck:\n"); - c = deck; - while (c) { + for (c = deck; c; c = c->li_next) fprintf(stderr, "%3d:%s\n", c->li_linenum, c->li_line); - c = c->li_next; - } -#endif /* TRACE */ +#endif ok = nupa_signal(NUPADECKCOPY, NULL); /* get the subckt/model names from the deck */ - c = deck; - while (c) { /* first Numparam pass */ + for (c = deck; c; c = c->li_next) { /* first Numparam pass */ if (ciprefix(".subckt", c->li_line)) nupa_scan(c->li_line, c->li_linenum, TRUE); if (ciprefix(".model", c->li_line)) nupa_scan(c->li_line, c->li_linenum, FALSE); - c = c->li_next; } - c = deck; - while (c) { /* first Numparam pass */ + for (c = deck; c; c = c->li_next) /* first Numparam pass */ c->li_line = nupa_copy(c->li_line, c->li_linenum); - c = c->li_next; - } /* now copy instances */ #ifdef TRACE fprintf(stderr, "Numparams transformed deck:\n"); - c = deck; - while (c) { + for (c = deck; c; c = c->li_next) fprintf(stderr, "%3d:%s\n", c->li_linenum, c->li_line); - c = c->li_next; - } -#endif /* TRACE */ +#endif } @@ -237,12 +226,13 @@ inp_subcktexpand(struct line *deck) { for (w = modnames; w; w = w->wl_next) printf("%s\n", w->wl_word); } -#endif /* TRACE */ +#endif /* Added by H.Tanaka to find global nodes */ for (i = 0; i < 128; i++) strcpy(node[i], ""); /* Clear global node holder */ - for (c = deck; c; c = c->li_next) { + + for (c = deck; c; c = c->li_next) if (ciprefix(".global", c->li_line)) { s = c->li_line; txfree(gettok(&s)); @@ -264,10 +254,9 @@ inp_subcktexpand(struct line *deck) { for (i = 0; ili_line[0] = '*'; /* comment it out */ - }/* if (ciprefix.. */ - } /* for (c = deck.. */ + } /* Let's do a few cleanup things... Get rid of ( ) around node lists... */ for (c = deck; c; c = c->li_next) { /* iterate on lines in deck */ @@ -322,11 +311,12 @@ inp_subcktexpand(struct line *deck) { } /* any other line */ } /* for (c = deck . . . */ - /* doit does the actual splicing in of the .subckt . . . */ #ifdef TRACE /* SDB debug statement */ printf("In inp_subcktexpand, about to call doit.\n"); -#endif /* TRACE */ +#endif + + /* doit does the actual splicing in of the .subckt . . . */ ll = doit(deck, modnames); wl_free(modnames); @@ -337,22 +327,20 @@ inp_subcktexpand(struct line *deck) { for (c = ll; c; c = c->li_next) dynMaxckt++; } + /* Now check to see if there are still subckt instances undefined... */ - if (ll) { - for (c = ll; c; c = c->li_next) { - if (ciprefix(invoke, c->li_line)) { - fprintf(cp_err, "Error: unknown subckt: %s\n", c->li_line); - if (use_numparams) - ok = ok && nupa_signal(NUPAEVALDONE, NULL); - return NULL; - } + for (c = ll; c; c = c->li_next) + if (ciprefix(invoke, c->li_line)) { + fprintf(cp_err, "Error: unknown subckt: %s\n", c->li_line); + if (use_numparams) + ok = ok && nupa_signal(NUPAEVALDONE, NULL); + return NULL; } - } + if (use_numparams) { /* the NUMPARAM final line translation pass */ ok = ok && nupa_signal(NUPASUBDONE, NULL); - c = ll; - while (c) { + for (c = ll; c; c = c->li_next) /* 'param' .meas statements can have dependencies on measurement values */ /* need to skip evaluating here and evaluate after other .meas statements */ if (ciprefix(".meas", c->li_line)) { @@ -361,21 +349,18 @@ inp_subcktexpand(struct line *deck) { } else { nupa_eval(c->li_line, c->li_linenum, c->li_linenum_orig); } - c = c->li_next; - } + #ifdef TRACE fprintf(stderr, "Numparams converted deck:\n"); - c = ll; - while (c) { + for (c = ll; c; c = c->li_next) fprintf(stderr, "%3d:%s\n", c->li_linenum, c->li_line); - c = c->li_next; - } -#endif /* TRACE */ +#endif /*nupa_list_params(stdout);*/ nupa_copy_inst_dico(); ok = ok && nupa_signal(NUPAEVALDONE, NULL); } + return (ll); /* return the spliced deck. */ }