Subversion Repositories Vertical

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 11
Line 54... Line 54...
54
 * Mike put it here
54
 * Mike put it here
55
 *
55
 *
56
 *
56
 *
57
 * Revision 1.21  2000/10/04  10:37:14  10:37:14  mjames (Mike James)
57
 * Revision 1.21  2000/10/04  10:37:14  10:37:14  mjames (Mike James)
58
 * Modified for Vertical2 : support COMPONENTS and SIGNALS
58
 * Modified for Vertical2 : support COMPONENTS and SIGNALS
59
 *
59
 *
60
 * Revision 1.21  2000/10/04  10:37:14  10:37:14  mjames (Mike James)
60
 * Revision 1.21  2000/10/04  10:37:14  10:37:14  mjames (Mike James)
61
 * Part of Release PSAVAT01
61
 * Part of Release PSAVAT01
62
 *
62
 *
63
 * Revision 1.20  2000/10/02  11:04:21  11:04:21  mjames (Mike James)
63
 * Revision 1.20  2000/10/02  11:04:21  11:04:21  mjames (Mike James)
64
 * new_vhdl
64
 * new_vhdl
65
 *
65
 *
66
 * Revision 1.19  2000/09/27  14:42:29  14:42:29  mjames (Mike James)
66
 * Revision 1.19  2000/09/27  14:42:29  14:42:29  mjames (Mike James)
67
 * Part of Release Sep_27_ST_2000
67
 * Part of Release Sep_27_ST_2000
68
 *
68
 *
69
 * Revision 1.18  2000/09/21  10:15:58  10:15:58  mjames (Mike James)
69
 * Revision 1.18  2000/09/21  10:15:58  10:15:58  mjames (Mike James)
70
 * Part of Release Sep21Alpha
70
 * Part of Release Sep21Alpha
71
 *
71
 *
72
 * Revision 1.17  2000/08/25  09:57:23  09:57:23  mjames (Mike James)
72
 * Revision 1.17  2000/08/25  09:57:23  09:57:23  mjames (Mike James)
73
 * Part of Release Aug25_alpha
73
 * Part of Release Aug25_alpha
74
 *
74
 *
75
 * Revision 1.16  2000/08/16  08:57:39  08:57:39  mjames (Mike James)
75
 * Revision 1.16  2000/08/16  08:57:39  08:57:39  mjames (Mike James)
76
 * Part of Release CD01_Aug2000
76
 * Part of Release CD01_Aug2000
77
 *
77
 *
78
 * Revision 1.15  2000/08/14  14:45:18  14:45:18  mjames (Mike James)
78
 * Revision 1.15  2000/08/14  14:45:18  14:45:18  mjames (Mike James)
79
 * Part of Release Aug_14_2000
79
 * Part of Release Aug_14_2000
80
 *
80
 *
81
 * Revision 1.14  2000/08/11  08:30:39  08:30:39  mjames (Mike James)
81
 * Revision 1.14  2000/08/11  08:30:39  08:30:39  mjames (Mike James)
82
 * Part of Release Aug_11_2000
82
 * Part of Release Aug_11_2000
83
 *
83
 *
84
 * Revision 1.13  2000/08/09  10:31:56  10:31:56  mjames (Mike James)
84
 * Revision 1.13  2000/08/09  10:31:56  10:31:56  mjames (Mike James)
85
 * Part of Release Aug__9_2000
85
 * Part of Release Aug__9_2000
86
 *
86
 *
87
 * Revision 1.12  2000/05/31  11:43:09  11:43:09  mjames (Mike James)
87
 * Revision 1.12  2000/05/31  11:43:09  11:43:09  mjames (Mike James)
88
 * Part of Release May_31_2000
88
 * Part of Release May_31_2000
89
 *
89
 *
90
 * Revision 1.11  2000/05/08  17:01:45  17:01:45  mjames (Mike James)
90
 * Revision 1.11  2000/05/08  17:01:45  17:01:45  mjames (Mike James)
91
 * Part of Release May__8_2000
91
 * Part of Release May__8_2000
92
 *
92
 *
93
 * Revision 1.10  2000/05/08  16:59:39  16:59:39  mjames (Mike James)
93
 * Revision 1.10  2000/05/08  16:59:39  16:59:39  mjames (Mike James)
94
 * Part of Release May__8_2000
94
 * Part of Release May__8_2000
95
 *
95
 *
96
 * Revision 1.9  2000/05/08  16:57:15  16:57:15  mjames (Mike James)
96
 * Revision 1.9  2000/05/08  16:57:15  16:57:15  mjames (Mike James)
97
 * Part of Release May__8_2000
97
 * Part of Release May__8_2000
98
 *
98
 *
99
 * Revision 1.8  2000/03/08  16:19:32  16:19:32  mjames (Mike James)
99
 * Revision 1.8  2000/03/08  16:19:32  16:19:32  mjames (Mike James)
100
 * New version including PC
100
 * New version including PC
101
 *
101
 *
102
 * Revision 1.5  2000/01/20  15:58:57  15:58:57  mjames (Mike James)
102
 * Revision 1.5  2000/01/20  15:58:57  15:58:57  mjames (Mike James)
103
 * Part of Release R22
103
 * Part of Release R22
104
 *
104
 *
105
 * Revision 1.4  99/12/22  11:15:37  11:15:37  mjames (Mike James)
105
 * Revision 1.4  99/12/22  11:15:37  11:15:37  mjames (Mike James)
106
 * Part of Release Dec_22_1999
106
 * Part of Release Dec_22_1999
107
 *
107
 *
108
 * Revision 1.3  98/02/11  11:27:21  11:27:21  mjames (Mike James)
108
 * Revision 1.3  98/02/11  11:27:21  11:27:21  mjames (Mike James)
109
 * Checked in for version 6.2a
109
 * Checked in for version 6.2a
110
 *
110
 *
111
 * Revision 1.2  97/04/23  08:44:46  08:44:46  mjames (Mike James)
111
 * Revision 1.2  97/04/23  08:44:46  08:44:46  mjames (Mike James)
112
 * CHecked in for release rel23041997
112
 * CHecked in for release rel23041997
113
 *
113
 *
114
 * Revision 1.1  96/12/23  10:24:34  10:24:34  mjames (Mike James)
114
 * Revision 1.1  96/12/23  10:24:34  10:24:34  mjames (Mike James)
115
 * Initial revision
115
 * Initial revision
116
 *  */
116
 *  */
117
 
-
 
118
#pragma once
-
 
119
 
-
 
120
#include <regex.h> 
-
 
121
/* pin identifying letters that are permitted in IC pin identifiers */
117
/* pin identifying letters that are permitted in IC pin identifiers */
122
#define PIN_MAP_LEGAL_CHARS "ABCDEFGHJKLMNPQRSTUVWXYZ"
118
#define PIN_MAP_LEGAL_CHARS "ABCDEFGHJKLMNPQRSTUVWXYZ"
123
/* the number of characters in the legal character set */
119
/* the number of characters in the legal character set */
124
#define PIN_MAP_LEGAL_CHAR_COUNT 24
120
#define PIN_MAP_LEGAL_CHAR_COUNT 24 
125
 
121
 
126
/* pin identifying letters that are not permitted in IC pin identifiers */
122
/* pin identifying letters that are not permitted in IC pin identifiers */
127
#define PIN_MAP_ILLEGAL_CHARS "IO";
123
#define PIN_MAP_ILLEGAL_CHARS   "IO";
128
/* the number of characters in the illegal character set */
124
/* the number of characters in the illegal character set */
129
#define PIN_MAP_ILLEGAL_CHAR_COUNT 2
125
#define PIN_MAP_ILLEGAL_CHAR_COUNT 2 
130
 
126
 
131
/* maximum alphabetic characters before we decide pin identifier should not be
127
/* maximum alphabetic characters before we decide pin identifier should not be
132
   assigned a column number in sort_nodes */
128
   assigned a column number in sort_nodes */
133
#define MAX_ID_ALPHA_SORT 5
129
#define MAX_ID_ALPHA_SORT 5
134
 
130
 
135
/* this function also determines the 'row' and 'columns' of each chip sorted,
131
/* this function also determines the 'row' and 'columns' of each chip sorted,
136
   as well as the minimum and maximum row and column numbers */
132
   as well as the minimum and maximum row and column numbers */
137
 
133
 
138
/* this now made conditional on mode being EXTRACT_XY */
134
/* this now made conditional on mode being EXTRACT_XY */
139
typedef enum
135
typedef enum { NO_EXTRACT_XY,EXTRACT_XY} extract_xy_t;
140
{
136
 
141
        NO_EXTRACT_XY,
-
 
142
        EXTRACT_XY
-
 
143
} extract_xy_t;
-
 
144
 
137
 
145
extern void sort_nodes (socket_t *chip, extract_xy_t mode);
138
extern void sort_nodes(socket_t * chip,extract_xy_t mode) ;
146
extern socket_t *sort_sockets (socket_t **s);
139
extern  socket_t * sort_sockets(socket_t ** s);
147
/* regular expression compiler according to Vertical rules */
140
/* regular expression compiler according to Vertical rules */
148
 
141
 
149
#define MAX_REGEXP_SUBEXPR 10
142
#define MAX_REGEXP_SUBEXPR 10
150
 
143
 
-
 
144
 
151
typedef struct vrt
145
typedef struct vrt
152
{
146
  {
153
        regex_t preg[1];
147
  regex_t     preg[1];
154
        regmatch_t regpatt[MAX_REGEXP_SUBEXPR];
148
  regmatch_t  regpatt[MAX_REGEXP_SUBEXPR];
155
        char *buff;
149
  char*       buff;
156
} vert_regex_t;
150
  } vert_regex_t;
-
 
151
 
-
 
152
extern int vert_regcomp(vert_regex_t ** preg,char * expr);
157
 
153
 
158
extern int vert_regcomp (vert_regex_t **preg, char *expr);
-
 
159
 
154
 
160
extern int vert_regfree (vert_regex_t **preg);
155
extern int vert_regfree(vert_regex_t ** preg);