Browse Source

save within subcircuit

enable V(a,b) as v(a) v(b)
pre-master-46
Holger Vogt 4 years ago
parent
commit
bde0639bc4
  1. 24
      src/frontend/subckt.c

24
src/frontend/subckt.c

@ -1179,6 +1179,8 @@ translate(struct card *deck, char *formal, char *actual, char *scname, const cha
if (ciprefix(".save", s)) {
while ((paren_ptr = strchr(s, '(')) != NULL) {
bool curr = FALSE;
char* comma_ptr = NULL;
if (ciprefix(" i(", paren_ptr - 2))
curr = TRUE;
@ -1189,13 +1191,27 @@ translate(struct card *deck, char *formal, char *actual, char *scname, const cha
goto quit;
}
comma_ptr = strchr(s, ',');
bxx_put_substring(&buffer, s, name);
if (curr)
/* i(Vxx) */
if (curr) {
translate_inst_name(&buffer, scname, name, paren_ptr);
else
s = paren_ptr;
}
/* V(a,b) */
else if (comma_ptr && comma_ptr < paren_ptr) {
translate_node_name(&buffer, scname, name, comma_ptr);
bxx_putc(&buffer, ',');
name = comma_ptr + 1;
translate_node_name(&buffer, scname, name, paren_ptr);
s = paren_ptr;
s = paren_ptr;
}
/* V(a) */
else {
translate_node_name(&buffer, scname, name, paren_ptr);
s = paren_ptr;
}
}
bxx_put_cstring(&buffer, s); /* rest of line */
break;

Loading…
Cancel
Save