enable XSPICE %vnam in subcircuits.

The token following after %vnam has to be
tranlated as an instance during subcircuit expansion.
This commit is contained in:
Holger Vogt 2020-09-26 23:33:33 +02:00
parent 14ef4e74ec
commit 4bcacb310d
1 changed files with 13 additions and 2 deletions

View File

@ -992,6 +992,7 @@ translate(struct card *deck, char *formal, char *actual, char *scname, const cha
}
for (c = deck; c; c = c->nextcard) {
bool got_vnam = FALSE;
char *s = c->line;
char dev_type = tolower_c(s[0]);
@ -1074,13 +1075,23 @@ translate(struct card *deck, char *formal, char *actual, char *scname, const cha
if (name)
tfree(name);
name = next_name;
/* vname requires instance translation of token following */
if (eq(name, "vnam"))
got_vnam = TRUE;
next_name = MIFgettok(&s);
bxx_put_cstring(&buffer, name);
break;
default:
/* must be a node name at this point, so translate it */
translate_node_name(&buffer, scname, name, NULL);
if (got_vnam) {
/* after %vnam an instance name is following */
translate_inst_name(&buffer, scname, name, NULL);
got_vnam = FALSE;
}
else {
/* must be a node name at this point, so translate it */
translate_node_name(&buffer, scname, name, NULL);
}
break;
}