8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
+
+
+
|
# Copyright (c) P.J.Gawthrop, 1996.
###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.2 1996/08/04 20:05:25 peter
## Included port components - eg SS:[1]
##
## Revision 1.1 1996/08/04 20:01:58 peter
## Initial revision
##
###############################################################
##############################################################
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
-
+
-
-
|
# It is terminated by /001 - so delete this termination
str = substr(str,1,length(str)-4);
# A component string contain only alphanumeric _ and :
isa_plain_component = match(str, component_regexp)==0;
# A port is an integer within []
isa_port = match(str, port_regexp)>0;
isa_port = exact_match(str, port_regexp)>0;
# A port component is SS followed by : followed by a port string
isa_port_component = 0;
if (match(str, delimiter)) {
split(str,a,delimiter);
isa_port_component = (exact_match(a[1], "SS"))&&
(match(a[2], port_regexp)>0)
}
# A component is a plain or a port component
isa_component = isa_plain_component||isa_port_component;
print str, isa_component;
# Coordinates in fields 12 & 13
x_coord = $12;
y_coord = $13;
if (isa_component) {
i_text++;
|