diff --git a/src/frontend/numparam/numparam.h b/src/frontend/numparam/numparam.h index 05a367ea3..b368b8ada 100644 --- a/src/frontend/numparam/numparam.h +++ b/src/frontend/numparam/numparam.h @@ -9,9 +9,6 @@ /***** numparam internals ********/ -typedef enum {Intro = '&'} _nIntro; /* Introduces preprocessor tokens */ - - /* ----------------------------------------------------------------- * I believe the entry_t should be a union of type but I need more info. * ----------------------------------------------------------------- */ diff --git a/src/frontend/numparam/spicenum.c b/src/frontend/numparam/spicenum.c index 8bdbe6da6..41bee787e 100644 --- a/src/frontend/numparam/spicenum.c +++ b/src/frontend/numparam/spicenum.c @@ -198,63 +198,6 @@ findsubname(dico_t *dico, SPICE_DSTRINGPTR dstr_p) } -static void -modernizeex(SPICE_DSTRINGPTR dstr_p) -/* old style expressions &(..) and &id --> new style with braces. */ -{ - int i, state, ls; - char c, d; - char *s; /* current string */ - SPICE_DSTRING t; /* temporary dyna string */ - - i = 0; - state = 0; - ls = spice_dstring_length(dstr_p); - s = spice_dstring_value(dstr_p); - - /* check if string might need modernizing */ - if (!memchr(s, Intro, (size_t) ls)) - return; - - spice_dstring_init(&t); - - while (i < ls) { - c = s[i]; - d = s[i + 1]; - if ((!state) && (c == Intro) && (i > 0)) { - if (d == '(') { - state = 1; - i++; - c = '{'; - } else if (alfa(d)) { - cadd(&t, '{'); - i++; - while (alfanum(s[i])) { - cadd(&t, s[i]); - i++; - } - c = '}'; - i--; - } - } else if (state) { - if (c == '(') - state++; - else if (c == ')') - state--; - - if (!state) /* replace--) by terminator */ - c = '}'; - } - - cadd(&t, c); - i++; - } - - scopyd(dstr_p, &t); - spice_dstring_free(&t); -} - - static char transform(dico_t *dico, SPICE_DSTRINGPTR dstr_p, bool incontrol) /* line s is categorized and crippled down to basic Spice @@ -284,7 +227,6 @@ transform(dico_t *dico, SPICE_DSTRINGPTR dstr_p, bool incontrol) char *s; /* dstring value of dstr_p */ char category; stripsomespace(dstr_p, incontrol); - modernizeex(dstr_p); /* required for stripbraces count */ s = spice_dstring_value(dstr_p); @@ -317,10 +259,6 @@ transform(dico_t *dico, SPICE_DSTRINGPTR dstr_p, bool incontrol) if (stripbraces(dstr_p) > 0) category = 'B'; /* priority category ! */ } - } else if (s[0] == Intro) { - /* private style preprocessor line */ - s[0] = '*'; - category = 'P'; } else if (toupper_c(s[0]) == 'X') { /* strip actual parameters */ findsubname(dico, dstr_p); diff --git a/src/frontend/numparam/xpressn.c b/src/frontend/numparam/xpressn.c index 6a0d244d2..f6c968407 100644 --- a/src/frontend/numparam/xpressn.c +++ b/src/frontend/numparam/xpressn.c @@ -1081,44 +1081,6 @@ double_to_string(SPICE_DSTRINGPTR qstr_p, double value) } -/* expand parameter in string `t' to result `q' */ -static bool -evaluate_variable(dico_t *dico, SPICE_DSTRINGPTR qstr_p, const char * const t, const char * const t_end) -{ - entry_t *entry; - - spice_dstring_reinit(qstr_p); - - char *tx = copy_substring(t, t_end); - strtoupper(tx); - entry = entrynb(dico, tx); - tfree(tx); - - if (!entry) - return message(dico, - "\"%.*s\" not evaluated. Lookup failure.\n", (int) (t_end - t), t); - - if (entry->tp == NUPA_REAL) { - double_to_string(qstr_p, entry->vl); - } - else if (entry->tp == NUPA_STRING) { - /* suppose source text "..." at */ - int j = entry->ivl + 1; - - for (;;) { - char c = entry->sbbase[j++]; - - if ((c == '\"') || (c < ' ')) - return 0; - - cadd(qstr_p, c); - } - } - - return 0; -} - - /* transform exression in string `t' to result q */ static bool evaluate_expr(dico_t *dico, SPICE_DSTRINGPTR qstr_p, const char *t, const char * const t_end) @@ -1231,69 +1193,6 @@ nupa_substitute(dico_t *dico, const char *s, char *r) s = kptr + 1; r = insertnumber(dico, r, &qstr); - } else if (c == Intro) { - /* skip "&&" which may occur in B source */ - - if ((s < s_end - 1) && (*s == Intro)) { - s++; - continue; - } - - while ((s < s_end - 1) && (*s <= ' ')) - s++; - - if (*s == '(') { - /* sub-formula */ - const char *kptr = s + 1; - int level = 1; - - for (; *kptr; kptr++) { - - char d = *kptr; - - if (d == '(') - level++; - else if (d == ')') - level--; - - if ((d == ')') && (level <= 0)) - break; - } - - if (*kptr == '\0') { - err = message(dico, "Closing \")\" not found.\n"); - goto Lend; - } - - err = evaluate_expr(dico, &qstr, s + 1, kptr); - if (err) { - message(dico, "Cannot compute &(expression)\n"); - goto Lend; - } - - s = kptr + 1; - - } else { - /* simple identifier may also be string? */ - - /* fixme, kptr might point behind the terminating '\0' here - * causing serious troubles in evaluate_variable() - * and/or when updating s - */ - const char *kptr = s + 1; - for (; kptr < s_end; kptr++) - if (*kptr <= ' ') - break; - - err = evaluate_variable(dico, &qstr, s, kptr); - if (err) { - message(dico, "Cannot compute &identifier\n"); - goto Lend; - } - s = kptr; - } - - r = insertnumber(dico, r, &qstr); } } @@ -1425,9 +1324,6 @@ nupa_assignment(dico_t *dico, const char * const s, char mode) while ((p < s_end) && (*p <= ' ')) p++; - if (*p == Intro) - p++; - if (*p == '.') /* skip any dot keyword */ while (*p > ' ') p++; @@ -1624,31 +1520,6 @@ nupa_subcktcall(dico_t *dico, char *s, char * const x, char * const inst_name) char *kp = jp; spice_dstring_reinit(&ustr); - if (*kp == Intro) { - - /* handle historical syntax... */ - if (alfa(kp[1])) { - kp++; - } else if (kp[1] == '(') { - /* transform to braces... */ - kp++; - *kp = '{'; - char *gp = kp; - int nest = 1; - - while ((nest > 0) && *gp) { - gp++; - if (*gp == '(') - nest++; - else if (*gp == ')') - nest--; - } - - if (*gp && (nest == 0)) - *gp = '}'; - } - } - if (alfanum(*kp) || *kp == '.') { /* number, identifier */ jp = skip_non_ws(kp);