9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# Copyright (c) P.J.Gawthrop, 1996.
###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.23 1998/02/01 18:37:41 peterg
## Don't print irritating warnings about ports listed in lbl files.
##
# Revision 1.22 1997/08/09 14:42:39 peterg
# Added underscore to port regexp
#
## Revision 1.21 1997/08/04 12:49:17 peterg
|
>
>
>
|
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# Copyright (c) P.J.Gawthrop, 1996.
###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.24 1998/04/03 14:02:50 peterg
## Added 0 and 1 to list of possible ports
##
## Revision 1.23 1998/02/01 18:37:41 peterg
## Don't print irritating warnings about ports listed in lbl files.
##
# Revision 1.22 1997/08/09 14:42:39 peterg
# Added underscore to port regexp
#
## Revision 1.21 1997/08/04 12:49:17 peterg
|
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
# A port component is SS,0 or 1 followed by : followed by a port string
isa_port_component = 0;
if (match(str, delimiter)) {
split(str,a,delimiter);
isa_port_component = (match(a[1], port_component_regexp))&&
(match(a[2], port_regexp)>0)
}
# It must also be specified at depth 0
isa_port_component = isa_port_component && (depth==0);
# A component is a plain or a port component
isa_component = isa_plain_component||isa_port_component;
# Coordinates in fields 12 & 13
x_coord = $12;
y_coord = $13;
# Do the ports
if (isa_port) {
i_port++;
port_name = str;
ports[i_port] = sprintf("%s %s %s", x_coord, y_coord, port_name);
}
# Do the port components
if (isa_port_component) {
i_port_component++;
# Port number is the bit between the []
port_label = substr(a[2],2,length(a[2])-2);
x_port[i_port_component] = x_coord;
y_port[i_port_component] = y_coord;
info_port[i_port_component] = fig_info();
port_labels[i_port_component] = port_label;
}
# Do the plain components
if (isa_plain_component) {
i_text++;
# Get repetitions (if any)
|
>
>
|
>
|
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
# A port component is SS,0 or 1 followed by : followed by a port string
isa_port_component = 0;
if (match(str, delimiter)) {
split(str,a,delimiter);
isa_port_component = (match(a[1], port_component_regexp))&&
(match(a[2], port_regexp)>0)
}
# It must also be specified at depth 0
isa_port_component = isa_port_component && (depth==0);
# A component is a plain or a port component
isa_component = isa_plain_component||isa_port_component;
# Coordinates in fields 12 & 13
x_coord = $12;
y_coord = $13;
# Do the ports
if (isa_port) {
i_port++;
port_name = str;
ports[i_port] = sprintf("%s %s %s", x_coord, y_coord, port_name);
}
# Do the port components
if (isa_port_component) {
i_port_component++;
type = a[1];
# Port name is the bit between the []
port_label = substr(a[2],2,length(a[2])-2);
x_port[i_port_component] = x_coord;
y_port[i_port_component] = y_coord;
info_port[i_port_component] = fig_info();
port_labels[i_port_component] = port_label;
comp_type[port_label] = type;
}
# Do the plain components
if (isa_plain_component) {
i_text++;
# Get repetitions (if any)
|
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
|
printf("rcomponents = [") >> b_file;
j = 0;
# Do the port components, in order of appearance, first
for (i = 1; i <= i_port_component; i++) {
port_type = "SS";
name = sprintf("[%s]", port_labels[i]);
cr = "MTT_port";
arg = i;
if (length(x_port[i])==0)
printf(warning_p);
else {
j++;
|
>
|
|
|
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
|
printf("rcomponents = [") >> b_file;
j = 0;
# Do the port components, in order of appearance, first
for (i = 1; i <= i_port_component; i++) {
name = sprintf("[%s]", port_labels[i]);
port_type = comp_type[port_labels[i]];
print i, port_labels[i], name, port_type
cr = "MTT_port";
arg = i;
if (length(x_port[i])==0)
printf(warning_p);
else {
j++;
|