1 /*------------------------------------------------------------\
2 |                                                             |
3 | This file is part of the Alliance CAD System Copyright      |
4 | (C) Laboratoire LIP6 - D�partement ASIM Universite P&M Curie|
5 |                                                             |
6 | Home page      : http://www-asim.lip6.fr/alliance/          |
7 | E-mail         : mailto:alliance-users@asim.lip6.fr       |
8 |                                                             |
9 | This progam is  free software; you can redistribute it      |
10 | and/or modify it under the  terms of the GNU General Public |
11 | License as  published by the Free Software Foundation;      |
12 | either version 2 of the License, or (at your option) any    |
13 | later version.                                              |
14 |                                                             |
15 | Alliance VLSI  CAD System  is distributed  in the hope that |
16 | it  will be useful, but WITHOUT  ANY WARRANTY;              |
17 | without even the  implied warranty of MERCHANTABILITY or    |
18 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General       |
19 | Public License for more details.                            |
20 |                                                             |
21 | You should have received a copy  of the GNU General Public  |
22 | License along with the GNU C Library; see the file COPYING. |
23 | If not, write to the Free Software Foundation, Inc.,        |
24 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.                     |
25 |                                                             |
26 \------------------------------------------------------------*/
27 
28 /*------------------------------------------------------------\
29 |                                                             |
30 | Tool    :                     GSB                           |
31 |                                                             |
32 | File    :                  Gsbparse.h                       |
33 |                                                             |
34 | Authors :                Jacomme Ludovic                    |
35 |                                                             |
36 | Date    :                   28.03.95                        |
37 |                                                             |
38 \------------------------------------------------------------*/
39 
40 /*------------------------------------------------------------\
41 |                                                             |
42 |                           Constants                         |
43 |                                                             |
44 \------------------------------------------------------------*/
45 
46 # ifndef GSB_PARSE
47 # define GSB_PARSE
48 
49 # define GSB_MAX_BUFFER        255
50 # define GSB_MAX_KEYWORD       149
51 
52 # define GSB_SEPARATORS_STRING " \t\n"
53 # define GSB_COMMENT_CHAR      '#'
54 
55 /*------------------------------------------------------------\
56 |                                                             |
57 |                        Keyword Constants                    |
58 |                                                             |
59 \------------------------------------------------------------*/
60 
61 # define DEFINE_KEYWORD               "DEFINE"
62 # define TABLE_KEYWORD                "TABLE"
63 # define END_TABLE_KEYWORD            "END"
64 # define END_RECORD_KEYWORD           NULL
65 
66 # define PEEK_BOUND_KEYWORD           "GRAAL_PEEK_BOUND"
67 # define LOWER_GRID_STEP_KEYWORD      "GRAAL_LOWER_GRID_STEP"
68 # define LOWER_FIGURE_STEP_KEYWORD    "GRAAL_LOWER_FIGURE_STEP"
69 # define LOWER_INSTANCE_STEP_KEYWORD  "GRAAL_LOWER_INSTANCE_STEP"
70 # define LOWER_CONNECTOR_STEP_KEYWORD "GRAAL_LOWER_CONNECTOR_STEP"
71 # define LOWER_SEGMENT_STEP_KEYWORD   "GRAAL_LOWER_SEGMENT_STEP"
72 # define LOWER_REFERENCE_STEP_KEYWORD "GRAAL_LOWER_REFERENCE_STEP"
73 
74 
75 # define SEGMENT_NAME_KEYWORD         "GRAAL_SEGMENT_NAME"
76 # define TRANSISTOR_NAME_KEYWORD      "GRAAL_TRANSISTOR_NAME"
77 # define CONNECTOR_NAME_KEYWORD       "GRAAL_CONNECTOR_NAME"
78 # define SEGMENT_VALUE_KEYWORD        "GRAAL_SEGMENT_VALUE"
79 # define VIA_NAME_KEYWORD             "GRAAL_VIA_NAME"
80 # define BIGVIA_NAME_KEYWORD          "GRAAL_BIGVIA_NAME"
81 # define BIGVIA_VALUE_KEYWORD         "GRAAL_BIGVIA_VALUE"
82 # define REFERENCE_NAME_KEYWORD       "GRAAL_REFERENCE_NAME"
83 # define SYMMETRY_NAME_KEYWORD        "GRAAL_SYMMETRY_NAME"
84 # define ORIENT_NAME_KEYWORD          "GRAAL_ORIENT_NAME"
85 # define RDS_LAYER_NAME_KEYWORD       "GRAAL_RDS_LAYER_NAME"
86 # define CURSOR_COLOR_NAME_KEYWORD    "GRAAL_CURSOR_COLOR_NAME"
87 # define CURSOR_SIZE_KEYWORD          "GRAAL_CURSOR_SIZE"
88 
89 # define GSB_SEGMENT_NAME_MASK           0x00001
90 # define GSB_SEGMENT_VALUE_MASK          0x00002
91 # define GSB_TRANSISTOR_NAME_MASK        0x00004
92 # define GSB_CONNECTOR_NAME_MASK         0x00008
93 # define GSB_VIA_NAME_MASK               0x00010
94 # define GSB_REFERENCE_NAME_MASK         0x00020
95 # define GSB_SYMMETRY_NAME_MASK          0x00040
96 # define GSB_ORIENT_NAME_MASK            0x00080
97 # define GSB_RDS_LAYER_NAME_MASK         0x00100
98 # define GSB_PEEK_BOUND_MASK             0x00200
99 # define GSB_LOWER_GRID_STEP_MASK        0x00400
100 # define GSB_LOWER_FIGURE_STEP_MASK      0x00800
101 # define GSB_LOWER_INSTANCE_STEP_MASK    0x01000
102 # define GSB_LOWER_REFERENCE_STEP_MASK   0x02000
103 # define GSB_LOWER_SEGMENT_STEP_MASK     0x04000
104 # define GSB_LOWER_CONNECTOR_STEP_MASK   0x08000
105 # define GSB_CURSOR_COLOR_NAME_MASK      0x10000
106 # define GSB_CURSOR_SIZE_MASK            0x20000
107 # define GSB_BIGVIA_NAME_MASK            0x40000
108 # define GSB_BIGVIA_VALUE_MASK           0x80000
109 
110 # define GSB_ALL_DEFINED_MASK            0xFFFFF
111 
112 /*------------------------------------------------------------\
113 |                                                             |
114 |                            Types                            |
115 |                                                             |
116 \------------------------------------------------------------*/
117 
118   typedef struct keyword
119   {
120     char *NAME;
121     char  VALUE;
122 
123   } keyword;
124 
125 /*------------------------------------------------------------\
126 |                                                             |
127 |                          Variables                          |
128 |                                                             |
129 \------------------------------------------------------------*/
130 /*------------------------------------------------------------\
131 |                                                             |
132 |                          Functions                          |
133 |                                                             |
134 \------------------------------------------------------------*/
135 
136 # endif
137