69char *
build_name(
const char *sgn,
char *tok,
long lr_type) {
70 char sign[2] = {
'\0'};
74 static char *ptr = (
char*) NULL;
76 if (0 == strcmp(sgn,
"-")) {
77 (void) strcpy(sign,
"-");
79 (void) strcpy(sign,
"");
88 (void) strcpy(prefix,
"inode_");
90 (void) strcpy(prefix,
"dnode_");
92 (void) strcpy(prefix,
"xnode_");
95 ptr = strchr(buf1,
':');
96 if ((
char*) NULL != ptr) {
98 (void) strcpy(buf2, buf1);
99 (void) strcat(buf2,
"__");
100 (void) strcat(buf2, ptr+1);
101 (void) strcpy(buf1, buf2);
106 (void) fprintf(
STDERR,
" string overflow, node name <%s%s> is too long, use shorter identifiers\n", prefix, buf1);
112 (void) fprintf(
STDERR,
" digital node, only injection on analog nodes is allowed\n");
115 (void) snprintf(tok, (
size_t) (
LINLENGTH-1L),
"%s(%s%s + inject_%s)", sign, prefix, buf1, buf1);
119 (void) fprintf(
STDERR,
" string overflow, node name <%s%s> is too long, use shorter identifiers\n", prefix, buf1);
123 (void) snprintf(tok, (
size_t) (
LINLENGTH-1L),
"%s%s%s", sign, prefix, buf1);
133 if (0 != strncmp(tok,
"const__", (
size_t) 7)) {
135 (void) strcpy(prefix,
"ivar_");
137 (void) strcpy(prefix,
"dvar_");
139 (void) strcpy(prefix,
"svar_");
141 (void) strcpy(prefix,
"xvar_");
145 (void) strcpy(prefix,
"i") ;
147 (void) strcpy(prefix,
"d");
149 (void) strcpy(prefix,
"s");
151 (void) strcpy(prefix,
"x");
156 (void) fprintf(
STDERR,
" string overflow, var name <%s%s> is too long, use shorter identifiers\n", prefix,
Var_List[n].name1);
160 (void) snprintf(tok, (
size_t) (
LINLENGTH-1L),
"%s%s%s", sign, prefix,
Var_List[n].name1);
170 (void) strcpy(prefix,
"i_array_");
172 (void) strcpy(prefix,
"d_array_");
174 (void) strcpy(prefix,
"x_array_");
178 (void) fprintf(
STDERR,
" string overflow, array name <%s%s> is too long, use shorter identifiers\n", prefix,
Array_List[n].name);
188 (void) fprintf(
STDERR,
"\nNAPA Error:\n");
189 (void) fprintf(
STDERR,
" sign is not expected in front of a pointer array\n");
192 (void) strcpy(prefix,
"record_");
195 (void) fprintf(
STDERR,
" string overflow, record name <%s%s> is too long, use shorter identifiers\n", prefix,
Record_List[n].name);
207 (void) strcpy(buf1, tok);
210 (void) fprintf(
STDERR,
" string overflow, identifier name <%s> is too long, use shorter identifiers\n", buf1);
214 (void) snprintf(tok, (
size_t) (
LINLENGTH-1L),
"%s%s", sign, buf1);
215 if (0 == strcmp(tok,
"stdin" )) {
216 (void) strcpy(tok,
"\"stdin\"");
218 if (0 == strcmp(tok,
"stdout")) {
219 (void) strcpy(tok,
"\"stdout\"");
221 if (0 == strcmp(tok,
"stderr")) {
222 (void) strcpy(tok,
"\"stderr\"");
230void build_pathname(
const char *brc,
char *tok,
const char *path,
const unsigned long *mlin,
const unsigned long *mfil) {
232 char *s = (
char*) NULL;
233 char *t = (
char*) NULL;
234 if (0 == strcmp(brc,
"<>")) {
235 (void) snprintf(buf, (
size_t) (
LINLENGTH-1L),
"%s/%s", path, tok);
239 if ((
'.' != *s) && (
'.' == *(s+1)) && (
'/' == *(s+2))) {
250 }
else if (0 != strcmp(brc,
"\"\"")) {
253 (void) fprintf(
STDERR,
" %c%s%c is not a correct pathname\n", brc[0], tok, brc[1]);
255 (void) fprintf(
STDERR,
" the pathname <%s> is not correct\n", tok);
266 char *sl = (
char*) NULL;
267 char *sb = (
char*) NULL;
268 char *se = (
char*) NULL;
269 char *sw = (
char*) NULL;
276 while (
'\0' != *sl) {
277 (void) strcpy(tk,
"");
278 while ((
'"' != *sl) && (
'\0' != *sl)) {
287 while ((
'"' != *sl) && (
'\0' != *sl)) {
299 for (sw = sb; sw <= se; sw++) {
310 (void) snprintf(fn, (
size_t) (
LINLENGTH-1L),
"%s%s", pn, tk);
314 for (sw = lin; sw < sb; sw++) {
318 for (sw = fn; sw < (&(fn[
LENGTH(fn)])); sw++) {
324 for (sw = se; sw < (&(lin[
LENGTH(lin)])); sw++) {
329 (void) strcpy(lin, bf);
341 char *s = (
char*) NULL;
342 char *t = (
char*) NULL;
346 if ((
char*) NULL == strstr(fn,
"/")) {
347 (void) strcpy(pn,
"");
351 (void) strcpy(buf1, fn);
352 (void) strcpy(buf2,
"");
353 s = buf1 + ((int) strlen(buf1)) - 1;
354 while ((
'/' != *s) && (s >= buf1)) {
361 if (
'/' == buf1[0]) {
363 (void) strcpy(pn, s);
366 }
else if ((
'~' == buf1[0]) && (
'/' == buf1[1])) {
371 (void) fprintf(
STDERR,
"\nNAPA Error:\n");
372 (void) fprintf(
STDERR,
" string buffer overflow while tracking pathname\n");
373 (void) fprintf(
STDERR,
" current limit is %ld characters (LINLENGTH)\n",
LINLENGTH);
377 (void) strcpy(pn, s);
380 }
else if ((
'.' == buf1[0]) && (
'/' == buf1[1])) {
382 (void) snprintf(buf2, (
size_t) (
LINLENGTH-1L),
"%s%s", pn, t);
385 (void) fprintf(
STDERR,
"\nNAPA Error:\n");
386 (void) fprintf(
STDERR,
" string buffer overflow while tracking pathname\n");
387 (void) fprintf(
STDERR,
" current limit is %ld characters (LINLENGTH)\n",
LINLENGTH);
391 (void) strcpy(pn, s);
396 (void) strcpy(pn, s);
406 char *s = (
char*) NULL;
411 s += ((int) strlen(tok)) - 1;
420 }
else if (
')' == *s) {
424 if ((0L == n) && (
'\0' != *s)) {
429 (void) strcpy(buf, s);
430 s = buf + ((int) strlen(buf)) - 1;
433 (void) strcpy(tok, s);
441void process_cell_line(
char *buf,
long d,
const unsigned long *mlin,
const unsigned long *mfil) {
442 char *si = (
char*) NULL;
443 char *so = (
char*) NULL;
444 char *sw = (
char*) NULL;
445 char *sb = (
char*) NULL;
446 char *str1 = (
char*) NULL;
447 char *str2 = (
char*) NULL;
462 interface_flag =
false;
463 nodeset_flag =
false;
464 if ((0L >= d) ||
ISEMPTY(buf)) {
470 (void) fprintf(
STDERR,
" cell line too long to be expanded, refrain to use long identifiers, esp. long instantiation names!\n");
473 if (((
char*) NULL == strstr(buf,
" node")) && ((
char*) NULL == strstr(buf,
"node["))) {
478 (void) strcpy(li, buf);
482 while (isspace((
int) *si) && (
'\0' != *si)) {
486 while (
'\0' != *si) {
492 while (isalnum((
int) *si) || (
'$' == *si) || (
'_' == *si) || (
'.' == *si) || (
'@' == *si)) {
502 if (!isspace((
int) *str1) && (
'[' != *str1)) {
503 nodeset_flag =
false;
508 (void) strcpy(tok2, str1);
512 nodeset_flag =
false;
518 nodeset_flag =
false;
522 interface_flag =
false;
523 (void) strcpy(tok3, tok1);
535 if (2 != sscanf(tok2,
"[%li..%li]", &b1, &e1)) {
537 (void) fprintf(
STDERR,
" nodeset iterator is not well-formed <%s> in <%s>\n", tok2, tok1);
548 (void) snprintf(tok2, (
size_t) (
LINLENGTH-1L),
"%s%ld", tok3, i);
551 interface_flag =
true;
555 if (interface_flag) {
556 for (i = b2+1L; i <= e2; i++) {
557 (void) snprintf(tok2, (
size_t) (
LINLENGTH-1L),
"%s%ld", tok3, i);
558 interface_flag =
false;
561 interface_flag =
true;
565 if (!interface_flag) {
567 (void) fprintf(
STDERR,
" first node of the nodeset is part of interface,\n");
568 (void) fprintf(
STDERR,
" but the nodeset is not composed of interface nodes\n");
573 for (i = b2+1L; i <= e2; i++) {
574 (void) snprintf(tok2, (
size_t) (
LINLENGTH-1L),
"%s%ld", tok3, i);
578 (void) fprintf(
STDERR,
" first node of the nodeset is an internal node,\n");
579 (void) fprintf(
STDERR,
" but the nodeset is not composed of internal nodes\n");
585 (void) snprintf(tok1, (
size_t) (
STRLENGTH-1L),
"%s[%ld..%ld]", tok3, b1, e1);
586 if (!interface_flag) {
588 while (
'\0' != *sw) {
599 while (
'\0' != *sw) {
608 while (
'\0' != *sw) {
618 interface_flag =
false;
622 (void) strcpy(tok4, tok1);
623 str2 = strchr(tok4,
'.');
624 if ((
char*) NULL != str2) {
625 (void) strcpy(tok5, str2);
628 (void) strcpy(tok5,
"");
631 interface_flag =
true;
633 (void) strcat(wi, tok5);
636 while (
'\0' != *sw) {
648 while ((sb >= li) && (
' ' == *sb)) {
655 while (
'\0' != *sw) {
666 if (!interface_flag) {
668 while (
'\0' != *sw) {
679 while (
'\0' != *sw) {
690 while ((
'$' != *si) && (
'\0' != *si) && !isspace((
int) *si)) {
696 while (isspace((
int) *si) && (
'\0' != *si)) {
706 (void) fprintf(
STDERR,
" line too long, overflow occured during expansion of cell line\n");
719 char *s = (
char*) NULL;
720 char *b = (
char*) NULL;
721 char *t = (
char*) NULL;
722 char *v = (
char*) NULL;
727 (void) strcpy(buf, str);
738 while (isalnum((
int) *b) || (
'_' == *b) || (
':' == *b) || (
'@' == *b)) {
749 if (1 == sscanf(
Var_List[m].value,
"%lf", &d)) {
752 (void) strcpy(val,
Var_List[m].value);
755 (void) strcpy(val,
Var_List[m].value);
758 (void) strcpy(val,
Var_List[m].value);
764 }
else if (0 == strcmp(tok,
"random_seed")) {
767 (void) strcpy(val, tok);
769 (void) strcpy(val,
"???");
776 (void) strcpy(val,
"?");
802 char *s = (
char*) NULL;
803 char *t = (
char*) NULL;
804 char *u = (
char*) NULL;
805 char *n = (
char*) NULL;
806 char *b = (
char*) NULL;
807 char *e = (
char*) NULL;
808 char *f = (
char*) NULL;
811 (void) strcpy(buf, str);
819 while ((
'\0' != *t) && (t < u)) {
821 if ((
'.' == *t) && (
'.' == *(t+1))) {
826 while ((!isspace((
int) *t)) && (t != buf)) {
830 while ((
'.' != *t) && (
'\0' != *t)) {
840 while ((
'.' != *t) && (
'\0' != *t)) {
846 while ((isdigit((
int) *t)) && (t != buf)) {
859 }
while ((
'.' != *t) && (
'\0' != *t));
862 if (1 > sscanf(tok2,
"%li", &begin)) {
865 (void) fprintf(
STDERR,
" error during expansion of start index of identifier <%s>\n", tok1);
874 }
while ((!isspace((
int) *t)) && (
'\0' != *t));
877 if (1 > sscanf(tok3,
"%li", &end)) {
880 (void) fprintf(
STDERR,
" error during expansion of stop index of identifier <%s>\n", tok1);
884 while ((!isspace((
int) *s)) && (s != str)) {
890 for (i = begin; i <= end; i++) {
891 (void) snprintf(tok4, (
size_t) (
LINLENGTH-1L),
" %s%ld", tok1, i);
900 for (i = begin; i >= end; i--) {
901 (void) snprintf(tok4, (
size_t) (
LINLENGTH-1L),
" %s%ld", tok1, i);
920 }
while ((
'"' != *t) && (
'\0' != *t));
932 }
while ((
'>' != *t) && (
'\0' != *t));
944 }
while ((
']' != *t) && (
'\0' != *t));
960 (void) fprintf(
STDERR,
" overflow during line expansion, please limit the iteration span\n");
969char *
expand_nodeset(
char *str,
long n,
long w,
const unsigned long *mlin,
const unsigned long *mfil) {
974 char *s1 = (
char*) NULL;
975 char *s2 = (
char*) NULL;
976 char *s3 = (
char*) NULL;
979 (void) strcpy(tok1, str);
982 while (
'\0' != *s1) {
983 while ((
'[' != *s1) && (
'\0' != *s1)) {
989 (void) strcpy(iter,
"");
991 while ((
']' != *s1) && (
'\0' != *s1)) {
1005 flag = sscanf(iter,
"%li %li", &i1, &i2);
1008 (void) fprintf(
STDERR,
" invalid iterator [%s] in nodeset\n", iter);
1011 if (((i2-i1) != (w-1L)) && ((i1-i2) != (w-1L))) {
1013 (void) fprintf(
STDERR,
" iterator [%ld..%ld] does not match nodeset declaration [%ld]\n", i1, i2, w);
1021 (void) snprintf(ch, (
size_t) (
STRLENGTH-1L),
"%ld", i);
1022 for (j = 0L; 6L > j; j++) {
1023 if (
'\0' == ch[j]) {
1031 (void) strcpy(str, tok2);
1040 char sgn[2] = {
'\0'};
1041 char brc[3] = {
'\0'};
1042 static char *b = (
char*) NULL;
1051 (void) strcpy(fun_id, tok1);
1052 (void) strcpy(fun_parm, tok2);
1054 (void) strcpy(fun_id,
"");
1055 (void) strcpy(fun_parm,
"");
1064 char brc[3] = {
'\0'};
1065 char *b = (
char*) NULL;
1068 b = strchr(tok1,
'\'');
1069 if ((
char*) NULL != b) {
1072 }
while ((
char*) NULL != b);
1076 (void) strcpy(out, tok1);
1077 (void) strcpy(scl, tok2);
1079 (void) strcpy(out, tok1);
1080 (void) strcpy(scl,
"");
1087 char *s = (
char*) NULL;
1088 char *t = (
char*) NULL;
1097 t += ((int) len) - 3;
1099 if ((
'_' == *s) || (
'_' == *(s+1))) {
1112 char *s = (
char*) NULL;
1113 char *b = (
char*) NULL;
1114 char *w = (
char*) NULL;
1118 while (isspace((
int) *s)) {
1124 if ((
'(' != c1) && (
'<' != c1) && (
'[' != c1) && (
'{' != c1) && (
'"' != c1) && (
'\'' != c1)) {
1125 (void) strcpy(brc,
"");
1126 (void) strcpy(tok,
"");
1133 }
else if (
'<' == c1) {
1135 }
else if (
'[' == c1) {
1137 }
else if (
'{' == c1) {
1139 }
else if (
'"' == c1) {
1141 }
else if (
'\'' == c1) {
1148 while ((
'\0' != *s) && (0 < cnt)) {
1151 }
else if (*s == c1) {
1162 for (i = 0L; i <
LENGTH(wrd); i++) {
1163 if (
'\t' == wrd[i]) {
1174 (void) strcpy(brc,
"");
1175 (void) strcpy(tok,
"");
1181 while (isspace((
int) *s)) {
1191 if (0 == strcmp(buf,
"+")) {
1192 (void) strcpy(sgn,
"+");
1194 }
else if (0 == strcmp(buf,
"-")) {
1195 (void) strcpy(sgn,
"-");
1198 (void) strcpy(sgn,
"");
1199 (void) strcpy(tok, buf);
1211 char *t = (
char*) NULL;
1214 while (isspace((
int) *str)) {
1223 while ((
'"' != *str) && (
'\0' != *str)) {
1233 }
else if ((
'>' == *str) && (
'=' == *(str+1))) {
1238 }
else if ((
'<' == *str) && (
'=' == *(str+1))) {
1243 }
else if ((
'=' == *str) && (
'=' == *(str+1))) {
1248 }
else if ((
'!' == *str) && (
'=' == *(str+1))) {
1253 }
else if ((
'>' == *str) && (
'>' == *(str+1))) {
1258 }
else if ((
'<' == *str) && (
'<' == *(str+1))) {
1263 }
else if ((
'&' == *str) && (
'&' == *(str+1))) {
1268 }
else if ((
'|' == *str) && (
'|' == *(str+1))) {
1273 }
else if ((
'?' == *str) || (
':' == *str) || (
'%' == *str)) {
1277 }
else if ((
'0' == *str) && ((
'x' == *(str+1)) || (
'X' == *(str+1)))) {
1286 while (isdigit((
int) *str)
1287 || (
'a' == *str) || (
'b' == *str) || (
'c' == *str) || (
'd' == *str) || (
'e' == *str) || (
'f' == *str)
1288 || (
'A' == *str) || (
'B' == *str) || (
'C' == *str) || (
'D' == *str) || (
'E' == *str) || (
'F' == *str)) {
1289 *t = (char) toupper((
int) *str);
1293 }
else if (isdigit((
int) *str)) {
1294 while (isdigit((
int) *str) || (
'.' == *str) || (
'e' == *str) || (
'E' == *str) || (
'L' == *str) || (
'F' == *str)) {
1295 if ((
'e' == *str) || (
'E' == *str)) {
1298 if (isdigit((
int) a) || (((
'+' == a) || (
'-' == a)) && isdigit((
int) b))) {
1309 while (isalnum((
int) *str) || (
'_' == *str) || (
':' == *str) || (
'$' == *str) || (
'°' == *str)
1310 || (
'\'' == *str) || (
'#' == *str) || (
'.' == *str) || (
'@' == *str) || (
'&' == *str)) {
1314 if ((t == tok) && (
'\0' != *str)) {
1318 while (isspace((
int) *str)) {
1329 char *s = (
char*) NULL;
1330 (void) strcpy(tok1, tok);
1332 if (
'$' == tok1[
LENGTH(tok1) - 1L]) {
1333 tok1[
LENGTH(tok1) - 1L] =
'\0';
1335 if (isdigit((
int) *s) || ((
'_' == *s) && (0 != strncmp(tok1,
"_void", (
size_t) 5)))) {
1338 while (
'\0' != *s) {
1339 if ((!isalnum((
int) *s)) && (
'_' != *s) && (
':' != *s) && (
'@' != *s) && (
'\'' != *s)) {
1350 char *s = (
char*) NULL;
1351 (void) strcpy(tok1, tok);
1353 if (
'$' == tok1[
LENGTH(tok1) - 1L]) {
1354 tok1[
LENGTH(tok1) - 1L] =
'\0';
1356 if (isdigit((
int) *s) || ((
'_' == *s) && (0 != strncmp(tok1,
"_void", (
size_t) 5)))) {
1359 while (
'\0' != *s) {
1360 if ((!isalnum((
int) *s)) && (
'_' != *s) && (
':' != *s) && (
'.' != *s) && (
'@' != *s) && (
'\'' != *s)) {
1371 char *s = (
char*) NULL;
1374 return ((
'"' == s[0]) && (
'"' == s[
LENGTH(s)-1L]) ?
true :
false);
1379 char *s = (
char*) NULL;
1381 if (((
char*) NULL == str) || (
'\0' == *str) || isspace((
int) *str)) {
1384 d = strtod(str, &s);
1388 if ((
double) ((
long long) d) != d) {
1398 char *s = (
char*) NULL;
1399 char *t = (
char*) NULL;
1403 while (!(((
'/' == *t) && (
'/' == *(t+1)) && (!flag)) || (
'\0' == *t))) {
1412 while (
'\0' != *t) {
1413 if (isspace((
int) *t)) {
1421 while ((isspace((
int) *t)) && (isspace((
int) *(t+1)))) {
1431 while ((
'\0' != *t) && (
'\n' != *t)) {
1439 while ((
'\0' == *s) || (
'\n' == *s)) {
1443 while (isspace((
int) *s)) {
1453 while (
'\0' != *lin) {
1457 while (
' ' != *lin) {
1469 static char *s1 = (
char*) NULL;
1470 static char *s2 = (
char*) NULL;
1473 while ((
'\0' != *s1) && (
'\0' != *(s1+1))) {
1474 if ((isspace((
int) *s1)) && (isspace((
int) *(s1+1)))) {
1488 char *s1 = (
char*) NULL;
1489 char *s2 = (
char*) NULL;
1492 while (
'\0' != *s1) {
1497 if ((
'\\' == *s1) && (
'n' == *(s1+1))) {
1511 char *sb = (
char*) NULL;
1512 char *se = (
char*) NULL;
1527 char *sb = (
char*) NULL;
1528 char *se = (
char*) NULL;
1533 (void) strcpy(pnam, 1 + se);
1538 (void) strcpy(pnam, se);
1547 char *very_start = pnam;
1552 isrooted = (
'/' == pnam[0]);
1556 for (cur = t = start = very_start;;) {
1568 if ((!t[1]) || (
'/' == t[1])) {
1571 }
else if ((
'.' == t[1]) && ((!t[2]) || (
'/' == t[2]))) {
1572 if ((!isrooted) && (cur == start)) {
1573 if (cur != very_start) {
1579 }
else if (cur != start) {
1580 while ((--cur > start) && (
'/' != *cur));
1586 if (cur != very_start) {
1589 while ((*t) && (
'/' != *t)) {
1599 char *s = (
char*) NULL;
1600 char *t = (
char*) NULL;
1620 char *s = (
char*) NULL;
1621 char *t = (
char*) NULL;
1628 while (
'\0' != *s) {
1635 (void) strcpy(str, t);
1647 char *t1 = (
char*) NULL;
1648 char *t2 = (
char*) NULL;
1656 for (c = 0; c < l; c++) {
1657 *(t1 + c) = *(str + c);
1660 for (n = 0L; n < l; n++) {
1661 if ((
'"' != *t1) && (flag)) {
1666 flag = (flag) ?
false :
true;
1693 if ((
':' == *(t1-1)) && (
':' == *(t1-2))) {
1704 for (c = 0; c < l; c++) {
1705 *(str + c) = *(t2 + c);
1716 if (
'$' == tok[len]) {
1726 static char result[64] = {
'\0'};
1727 const char prefixes[] = {
'y',
'z',
'a',
'f',
'p',
'n',
'u',
'm',
' ',
'k',
'M',
'G',
'T',
'P',
'E',
'Z',
'Y'};
1745 if (100.0*(1.0-
_SMALL_) <= value) {
1747 }
else if ( 10.0*(1.0-
_SMALL_) <= value) {
1752 (void) snprintf(result, (
size_t) 63,
"%c%.*f %c%s", sgn, (
int) places, value, prefixes[p], unit);
1754 if (100.0*(1.0-
_SMALL_) <= value) {
1755 (void) snprintf(result, (
size_t) 63,
"%c%3.0f %c%s", sgn, value, prefixes[p], unit);
1756 }
else if ( 10.0*(1.0-
_SMALL_) <= value) {
1757 (void) snprintf(result, (
size_t) 63,
"%c%2.1f %c%s", sgn, value, prefixes[p], unit);
1759 (void) snprintf(result, (
size_t) 63,
"%c%1.2f %c%s", sgn, value, prefixes[p], unit);
1767 static int count = 0;
1768 static char name[32];
1769 (void) snprintf(name, (
size_t) 31,
"%s_%d",
NAPA_Job_ID, count);
1776 char *t = (
char*) NULL;
1778 while (
'\0' != *t) {
1779 if (isalpha((
int) *t)) {
1780 *t = (char) tolower((
int) *t);
1789 char *t = (
char*) NULL;
1791 while (
'\0' != *t) {
1803 static char result[256] = {
'\0'};
1804 char *s = (
char*) NULL;
1808 for (i = 0; i < j; i++) {
1820 d = (int) (tolower((
unsigned char)*a) - tolower((
unsigned char)*b));
1821 if ((0 != d) || (!(*a))) {
1831#if (IS_WIN64 == PLATFORM)
1832 d = (int) (tolower((
unsigned char)*a) - tolower((
unsigned char)*b));
1834 d = (int) (*a - *b);
1836 if ((0 != d) || (!(*a))) {
1844 if ((FILE*) NULL != fp) {
1845 if (EOF == fflush(fp)) {
1847 (void) fprintf(
STDERR,
" Flushing data from buffers I/O was not successful\n");
void print_error_location(const char *type, const unsigned long *mlin, const unsigned long *mfil)
long constant_type(char *identifier)
long get_type(char *identifier)
long array_id(const char *identifier)
long directive_id(const char *identifier)
long node_id(const char *identifier)
long var_id(const char *identifier)
long record_id(const char *identifier)
EXTERN char Inst_Plist[31L][127L][16383L]
EXTERN RANDOMSEED_TYPE Seed_List
EXTERN VAR_TYPE Var_List[2047L]
EXTERN RECORD_TYPE Record_List[127L]
EXTERN ARRAY_TYPE Array_List[63L]
EXTERN char Cell_Name_Prefix[31L][2047L]
EXTERN NODE_TYPE Node_List[4095L]
EXTERN char NAPA_Job_ID[19]
EXTERN SAMPLING_TYPE Sampling_List
EXTERN DIRECTIVE_TYPE Directive_List[255L]
EXTERN char Cur_Lib_Name[31L][2047L]
EXTERN long Cell_Num_Parms[31L]
EXTERN char Cell_Plist[31L][127L][16383L]
#define DIGITAL_DATA_TYPE
void print_error_banner_and_exit(void)
char * expand_nodeset(char *str, long n, long w, const unsigned long *mlin, const unsigned long *mfil)
int cistrcmp(const char *a, const char *b)
void extract_directory(char *pn, char *fn, long depth)
void build_pathname(const char *brc, char *tok, const char *path, const unsigned long *mlin, const unsigned long *mfil)
void replace_parentheses(char *str)
int is_an_extended_identifier(const char *tok)
char * extract_line(char *str1, char *str2)
char * upper_to_lower(char *s)
void strip_extension(char *fnam)
char * replace_char(char *s, char b, char a)
char * extract_prefix(char *nam)
char * get_token(char *str, char *tok, long keep_quotes)
void clean_line(char *str)
char * build_name(const char *sgn, char *tok, long lr_type)
int fnstrcmp(char const *a, char const *b)
void process_cell_line(char *buf, long d, const unsigned long *mlin, const unsigned long *mfil)
void clean_parentheses(char *tok)
void restore_line(char *lin)
void resolve_pathnames(char *lin, long depth)
void expand_iterative_identifiers(char *str, unsigned long *mlin, const unsigned long *mfil)
int is_a_string(char *str)
char * compact_line(char *str1, char *str2)
char * get_output_and_scaling(char *str, char *sgn, char *out, char *scl)
int is_an_integer_number(const char *str)
int is_an_identifier(const char *tok)
char * multiple(char c, long n)
char * get_function_identifier(char *str, char *fun_id, char *fun_parm)
void strip_quotes(char *str)
void replace_dollar(char *tok)
char * get_token_between_braces(char *str, char *brc, char *tok)
void expand_indirections(char *str)
void simplify_pathname(char *pnam)
void drop_pathname(char *pnam)
char * format_suffixed_number(double value, long places, const char *unit)
char * get_sign_and_token(char *str, char *sgn, char *tok)
void drop_filename(char *pnam)