1 #ifndef __P
2 # if defined(__STDC__) ||  defined(__GNUC__)
3 #  define __P(x) x
4 # else
5 #  define __P(x) ()
6 # endif
7 #endif
8 /*------------------------------------------------------------\
9 |                                                             |
10 | Tool    :                     RDS                           |
11 |                                                             |
12 | File    :                   rprparse.h                      |
13 |                                                             |
14 | Authors :               Jacomme  Ludovic                    |
15 |                         Picault Stephane     *4p*           |
16 |                                                             |
17 | Date    :                   27.06.95                        |
18 |                             15.07.98         *4p*           |
19 |                                                             |
20 \------------------------------------------------------------*/
21 
22 # ifndef RPR_PARSE_H
23 # define RPR_PARSE_H
24 
25 /*------------------------------------------------------------\
26 |                                                             |
27 |                           Constants                         |
28 |                                                             |
29 \------------------------------------------------------------*/
30 
31 # define RPR_MAX_RDS_UNIT      100000L
32 # define RPR_EPSILON           ((double)0.001)
33 # define RPR_MAX_BUFFER        512
34 # define RPR_MAX_KEYWORD       151
35 
36 # define MBK_MAX_WIRESETTING	21
37 # define RPR_SEPARATORS_STRING " \t\n"
38 # define RPR_COMMENT_CHAR      '#'
39 
40 /*------------------------------------------------------------\
41 |                                                             |
42 |                        Keyword Constants                    |
43 |                                                             |
44 \------------------------------------------------------------*/
45 
46 # define DEFINE_KEYWORD              "DEFINE"
47 # define TABLE_KEYWORD               "TABLE"
48 # define END_TABLE_KEYWORD           "END"
49 # define END_RECORD_KEYWORD           NULL
50 # define LAMBDA_KEYWORD              "LAMBDA"
51 # define PHYSICAL_GRID_KEYWORD       "PHYSICAL_GRID"
52 # define SEGMENT_KEYWORD             "MBK_TO_RDS_SEGMENT"
53 # define VIA_KEYWORD                 "MBK_TO_RDS_VIA"
54 # define BIGVIA_HOLE_KEYWORD         "MBK_TO_RDS_BIGVIA_HOLE"
55 # define BIGVIA_METAL_KEYWORD        "MBK_TO_RDS_BIGVIA_METAL"
56 # define TURNVIA_KEYWORD             "MBK_TO_RDS_TURNVIA"
57 # define CONNECTOR_KEYWORD           "MBK_TO_RDS_CONNECTOR"
58 # define REFERENCE_KEYWORD           "MBK_TO_RDS_REFERENCE"
59 # define WIRESETTING_KEYWORD                "MBK_WIRESETTING"
60 # define CIF_LAYER_KEYWORD           "CIF_LAYER"
61 # define GDS_LAYER_KEYWORD           "GDS_LAYER"
62 # define S2R_POST_TREAT_KEYWORD      "S2R_POST_TREAT"
63 # define S2R_OVERSIZE_KEYWORD        "S2R_OVERSIZE_DENOTCH"
64 # define S2R_RING_WIDTH_KEYWORD      "S2R_BLOC_RING_WIDTH"
65 # define S2R_LAYER_WIDTH_KEYWORD     "S2R_MINIMUM_LAYER_WIDTH"
66 # define LYNX_GRAPH_KEYWORD          "LYNX_GRAPH"
67 # define LYNX_CAPA_KEYWORD           "LYNX_CAPA"
68 # define LYNX_RESISTOR_KEYWORD       "LYNX_RESISTOR"
69 # define LYNX_TRANSISTOR_KEYWORD     "LYNX_TRANSISTOR"
70 # define LYNX_DIFFUSION_KEYWORD      "LYNX_DIFFUSION"
71 # define LYNX_BULK_IMPLICIT_KEYWORD  "LYNX_BULK_IMPLICIT"     /*4p*/
72 
73 # define DRC_RULES_KEYWORD           "DRC_RULES"
74 
75 
76 /*------------------------------------------------------------\
77 |                                                             |
78 |                            Mask                             |
79 |                                                             |
80 \------------------------------------------------------------*/
81 
82 # define RPR_LAMBDA_MASK              0x000001
83 # define RPR_PHYSICAL_GRID_MASK       0x000002
84 # define RPR_SEGMENT_MASK             0x000004
85 # define RPR_VIA_MASK                 0x000008
86 # define RPR_CONNECTOR_MASK           0x000010
87 # define RPR_REFERENCE_MASK           0x000020
88 # define RPR_CIF_LAYER_MASK           0x000040
89 # define RPR_GDS_LAYER_MASK           0x000080
90 # define RPR_S2R_POST_TREAT_MASK      0x000100
91 # define RPR_S2R_OVERSIZE_MASK        0x000200
92 # define RPR_S2R_RING_WIDTH_MASK      0x000400
93 # define RPR_S2R_LAYER_WIDTH_MASK     0x000800
94 # define RPR_LYNX_GRAPH_MASK          0x001000
95 # define RPR_LYNX_CAPA_MASK           0x002000
96 # define RPR_LYNX_TRANSISTOR_MASK     0x004000
97 # define RPR_LYNX_RESISTOR_MASK       0x008000
98 # define RPR_LYNX_DIFFUSION_MASK      0x010000
99 # define RPR_LYNX_BULK_IMPLICIT_MASK  0x020000
100 # define RPR_BIGVIA_HOLE_MASK         0x040000
101 # define RPR_BIGVIA_METAL_MASK        0x080000
102 # define RPR_TURNVIA_MASK             0x100000
103 # define RPR_WIRESETTING_MASK         0x200000
104 
105 # define RPR_ALL_DEFINED_MASK         0x3FFFFF
106 # define RPR_ALL_REQUIRED_MASK        0x1FFFFF
107 
108 
109 /*------------------------------------------------------------\
110 |                                                             |
111 |                           Macros                            |
112 |                                                             |
113 \------------------------------------------------------------*/
114 
115 # define RprEqual(a,b)                                       \
116                                                              \
117      ((((a)-RPR_EPSILON) <= (b)) && (((b)) <= (a)+RPR_EPSILON))
118 
119 /*------------------------------------------------------------\
120 |                                                             |
121 |                            Types                            |
122 |                                                             |
123 \------------------------------------------------------------*/
124 
125   typedef struct keyword
126   {
127     char *NAME;
128     char  VALUE;
129 
130   } keyword;
131 
132 /*------------------------------------------------------------\
133 |                                                             |
134 |                          Variables                          |
135 |                                                             |
136 \------------------------------------------------------------*/
137 /*------------------------------------------------------------\
138 |                                                             |
139 |                          Functions                          |
140 |                                                             |
141 \------------------------------------------------------------*/
142 
143 
144 # endif
145