Mercurial > projects > ldc
annotate dmd/impcnvgen.c @ 1180:f5729209a1d4
Remove some redundancy from the DValue hierarchy: all subclasses had a 'type'
field and identical implementations of virtual function getType().
Move these to DValue itself, and make getType() non-virtual.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Tue, 31 Mar 2009 01:18:35 +0200 |
parents | a26b0c5d5942 |
children |
rev | line source |
---|---|
1 | 1 |
2 // Copyright (c) 1999-2006 by Digital Mars | |
3 // All Rights Reserved | |
4 // written by Walter Bright | |
5 // http://www.digitalmars.com | |
6 // License for redistribution is by either the Artistic License | |
7 // in artistic.txt, or the GNU General Public License in gnu.txt. | |
8 // See the included readme.txt for details. | |
9 | |
10 #include <stdio.h> | |
11 #include <stdlib.h> | |
12 | |
13 #include "mtype.h" | |
14 | |
15 enum TY impcnvResult[TMAX][TMAX]; | |
16 enum TY impcnvType1[TMAX][TMAX]; | |
17 enum TY impcnvType2[TMAX][TMAX]; | |
18 int impcnvWarn[TMAX][TMAX]; | |
19 | |
20 int integral_promotion(int t) | |
21 { | |
22 switch (t) | |
23 { | |
24 case Tchar: | |
25 case Twchar: | |
26 case Tbit: | |
27 case Tbool: | |
28 case Tint8: | |
29 case Tuns8: | |
30 case Tint16: | |
31 case Tuns16: return Tint32; | |
32 case Tdchar: return Tuns32; | |
33 default: return t; | |
34 } | |
35 } | |
36 | |
37 void init() | |
38 { int i, j; | |
39 | |
40 // Set conversion tables | |
41 for (i = 0; i < TMAX; i++) | |
42 for (j = 0; j < TMAX; j++) | |
43 { impcnvResult[i][j] = Terror; | |
44 impcnvType1[i][j] = Terror; | |
45 impcnvType2[i][j] = Terror; | |
46 impcnvWarn[i][j] = 0; | |
47 } | |
48 | |
49 #define X(t1,t2, nt1,nt2, rt) \ | |
50 impcnvResult[t1][t2] = rt; \ | |
51 impcnvType1[t1][t2] = nt1; \ | |
52 impcnvType2[t1][t2] = nt2; | |
53 | |
54 /* ======================= */ | |
55 | |
56 X(Tbit,Tbit, Tint32,Tint32, Tint32) | |
57 X(Tbit,Tint8, Tint32,Tint32, Tint32) | |
58 X(Tbit,Tuns8, Tint32,Tint32, Tint32) | |
59 X(Tbit,Tint16, Tint32,Tint32, Tint32) | |
60 X(Tbit,Tuns16, Tint32,Tint32, Tint32) | |
61 X(Tbit,Tint32, Tint32,Tint32, Tint32) | |
62 X(Tbit,Tuns32, Tuns32,Tuns32, Tuns32) | |
63 X(Tbit,Tint64, Tint64,Tint64, Tint64) | |
64 X(Tbit,Tuns64, Tuns64,Tuns64, Tuns64) | |
65 | |
66 X(Tbit,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
67 X(Tbit,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
68 X(Tbit,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
69 X(Tbit,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
70 X(Tbit,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
71 X(Tbit,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
72 X(Tbit,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
73 X(Tbit,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
74 X(Tbit,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
75 | |
76 /* ======================= */ | |
77 | |
78 X(Tbool,Tbool, Tbool,Tbool, Tbool) | |
79 X(Tbool,Tint8, Tint32,Tint32, Tint32) | |
80 X(Tbool,Tuns8, Tint32,Tint32, Tint32) | |
81 X(Tbool,Tint16, Tint32,Tint32, Tint32) | |
82 X(Tbool,Tuns16, Tint32,Tint32, Tint32) | |
83 X(Tbool,Tint32, Tint32,Tint32, Tint32) | |
84 X(Tbool,Tuns32, Tuns32,Tuns32, Tuns32) | |
85 X(Tbool,Tint64, Tint64,Tint64, Tint64) | |
86 X(Tbool,Tuns64, Tuns64,Tuns64, Tuns64) | |
87 | |
88 X(Tbool,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
89 X(Tbool,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
90 X(Tbool,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
91 X(Tbool,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
92 X(Tbool,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
93 X(Tbool,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
94 X(Tbool,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
95 X(Tbool,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
96 X(Tbool,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
97 | |
98 /* ======================= */ | |
99 | |
100 X(Tint8,Tint8, Tint32,Tint32, Tint32) | |
101 X(Tint8,Tuns8, Tint32,Tint32, Tint32) | |
102 X(Tint8,Tint16, Tint32,Tint32, Tint32) | |
103 X(Tint8,Tuns16, Tint32,Tint32, Tint32) | |
104 X(Tint8,Tint32, Tint32,Tint32, Tint32) | |
105 X(Tint8,Tuns32, Tuns32,Tuns32, Tuns32) | |
106 X(Tint8,Tint64, Tint64,Tint64, Tint64) | |
107 X(Tint8,Tuns64, Tuns64,Tuns64, Tuns64) | |
108 | |
109 X(Tint8,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
110 X(Tint8,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
111 X(Tint8,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
112 X(Tint8,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
113 X(Tint8,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
114 X(Tint8,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
115 X(Tint8,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
116 X(Tint8,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
117 X(Tint8,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
118 | |
119 /* ======================= */ | |
120 | |
121 X(Tuns8,Tuns8, Tint32,Tint32, Tint32) | |
122 X(Tuns8,Tint16, Tint32,Tint32, Tint32) | |
123 X(Tuns8,Tuns16, Tint32,Tint32, Tint32) | |
124 X(Tuns8,Tint32, Tint32,Tint32, Tint32) | |
125 X(Tuns8,Tuns32, Tuns32,Tuns32, Tuns32) | |
126 X(Tuns8,Tint64, Tint64,Tint64, Tint64) | |
127 X(Tuns8,Tuns64, Tuns64,Tuns64, Tuns64) | |
128 | |
129 X(Tuns8,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
130 X(Tuns8,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
131 X(Tuns8,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
132 X(Tuns8,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
133 X(Tuns8,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
134 X(Tuns8,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
135 X(Tuns8,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
136 X(Tuns8,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
137 X(Tuns8,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
138 | |
139 /* ======================= */ | |
140 | |
141 X(Tint16,Tint16, Tint32,Tint32, Tint32) | |
142 X(Tint16,Tuns16, Tint32,Tint32, Tint32) | |
143 X(Tint16,Tint32, Tint32,Tint32, Tint32) | |
144 X(Tint16,Tuns32, Tuns32,Tuns32, Tuns32) | |
145 X(Tint16,Tint64, Tint64,Tint64, Tint64) | |
146 X(Tint16,Tuns64, Tuns64,Tuns64, Tuns64) | |
147 | |
148 X(Tint16,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
149 X(Tint16,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
150 X(Tint16,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
151 X(Tint16,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
152 X(Tint16,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
153 X(Tint16,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
154 X(Tint16,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
155 X(Tint16,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
156 X(Tint16,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
157 | |
158 /* ======================= */ | |
159 | |
160 X(Tuns16,Tuns16, Tint32,Tint32, Tint32) | |
161 X(Tuns16,Tint32, Tint32,Tint32, Tint32) | |
162 X(Tuns16,Tuns32, Tuns32,Tuns32, Tuns32) | |
163 X(Tuns16,Tint64, Tint64,Tint64, Tint64) | |
164 X(Tuns16,Tuns64, Tuns64,Tuns64, Tuns64) | |
165 | |
166 X(Tuns16,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
167 X(Tuns16,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
168 X(Tuns16,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
169 X(Tuns16,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
170 X(Tuns16,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
171 X(Tuns16,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
172 X(Tuns16,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
173 X(Tuns16,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
174 X(Tuns16,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
175 | |
176 /* ======================= */ | |
177 | |
178 X(Tint32,Tint32, Tint32,Tint32, Tint32) | |
179 X(Tint32,Tuns32, Tuns32,Tuns32, Tuns32) | |
180 X(Tint32,Tint64, Tint64,Tint64, Tint64) | |
181 X(Tint32,Tuns64, Tuns64,Tuns64, Tuns64) | |
182 | |
183 X(Tint32,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
184 X(Tint32,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
185 X(Tint32,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
186 X(Tint32,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
187 X(Tint32,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
188 X(Tint32,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
189 X(Tint32,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
190 X(Tint32,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
191 X(Tint32,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
192 | |
193 /* ======================= */ | |
194 | |
195 X(Tuns32,Tuns32, Tuns32,Tuns32, Tuns32) | |
196 X(Tuns32,Tint64, Tint64,Tint64, Tint64) | |
197 X(Tuns32,Tuns64, Tuns64,Tuns64, Tuns64) | |
198 | |
199 X(Tuns32,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
200 X(Tuns32,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
201 X(Tuns32,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
202 X(Tuns32,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
203 X(Tuns32,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
204 X(Tuns32,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
205 X(Tuns32,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
206 X(Tuns32,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
207 X(Tuns32,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
208 | |
209 /* ======================= */ | |
210 | |
211 X(Tint64,Tint64, Tint64,Tint64, Tint64) | |
212 X(Tint64,Tuns64, Tuns64,Tuns64, Tuns64) | |
213 | |
214 X(Tint64,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
215 X(Tint64,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
216 X(Tint64,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
217 X(Tint64,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
218 X(Tint64,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
219 X(Tint64,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
220 X(Tint64,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
221 X(Tint64,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
222 X(Tint64,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
223 | |
224 /* ======================= */ | |
225 | |
226 X(Tuns64,Tuns64, Tuns64,Tuns64, Tuns64) | |
227 | |
228 X(Tuns64,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
229 X(Tuns64,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
230 X(Tuns64,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
231 X(Tuns64,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
232 X(Tuns64,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
233 X(Tuns64,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
234 X(Tuns64,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
235 X(Tuns64,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
236 X(Tuns64,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
237 | |
238 /* ======================= */ | |
239 | |
240 X(Tfloat32,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
241 X(Tfloat32,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
242 X(Tfloat32,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
243 | |
244 X(Tfloat32,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
245 X(Tfloat32,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
246 X(Tfloat32,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
247 | |
248 X(Tfloat32,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
249 X(Tfloat32,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
250 X(Tfloat32,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
251 | |
252 /* ======================= */ | |
253 | |
254 X(Tfloat64,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
255 X(Tfloat64,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
256 | |
257 X(Tfloat64,Timaginary32, Tfloat64,Timaginary64, Tfloat64) | |
258 X(Tfloat64,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
259 X(Tfloat64,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
260 | |
261 X(Tfloat64,Tcomplex32, Tfloat64,Tcomplex64, Tcomplex64) | |
262 X(Tfloat64,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
263 X(Tfloat64,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
264 | |
265 /* ======================= */ | |
266 | |
267 X(Tfloat80,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
268 | |
269 X(Tfloat80,Timaginary32, Tfloat80,Timaginary80, Tfloat80) | |
270 X(Tfloat80,Timaginary64, Tfloat80,Timaginary80, Tfloat80) | |
271 X(Tfloat80,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
272 | |
273 X(Tfloat80,Tcomplex32, Tfloat80,Tcomplex80, Tcomplex80) | |
274 X(Tfloat80,Tcomplex64, Tfloat80,Tcomplex80, Tcomplex80) | |
275 X(Tfloat80,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
276 | |
277 /* ======================= */ | |
278 | |
279 X(Timaginary32,Timaginary32, Timaginary32,Timaginary32, Timaginary32) | |
280 X(Timaginary32,Timaginary64, Timaginary64,Timaginary64, Timaginary64) | |
281 X(Timaginary32,Timaginary80, Timaginary80,Timaginary80, Timaginary80) | |
282 | |
283 X(Timaginary32,Tcomplex32, Timaginary32,Tcomplex32, Tcomplex32) | |
284 X(Timaginary32,Tcomplex64, Timaginary64,Tcomplex64, Tcomplex64) | |
285 X(Timaginary32,Tcomplex80, Timaginary80,Tcomplex80, Tcomplex80) | |
286 | |
287 /* ======================= */ | |
288 | |
289 X(Timaginary64,Timaginary64, Timaginary64,Timaginary64, Timaginary64) | |
290 X(Timaginary64,Timaginary80, Timaginary80,Timaginary80, Timaginary80) | |
291 | |
292 X(Timaginary64,Tcomplex32, Timaginary64,Tcomplex64, Tcomplex64) | |
293 X(Timaginary64,Tcomplex64, Timaginary64,Tcomplex64, Tcomplex64) | |
294 X(Timaginary64,Tcomplex80, Timaginary80,Tcomplex80, Tcomplex80) | |
295 | |
296 /* ======================= */ | |
297 | |
298 X(Timaginary80,Timaginary80, Timaginary80,Timaginary80, Timaginary80) | |
299 | |
300 X(Timaginary80,Tcomplex32, Timaginary80,Tcomplex80, Tcomplex80) | |
301 X(Timaginary80,Tcomplex64, Timaginary80,Tcomplex80, Tcomplex80) | |
302 X(Timaginary80,Tcomplex80, Timaginary80,Tcomplex80, Tcomplex80) | |
303 | |
304 /* ======================= */ | |
305 | |
306 X(Tcomplex32,Tcomplex32, Tcomplex32,Tcomplex32, Tcomplex32) | |
307 X(Tcomplex32,Tcomplex64, Tcomplex64,Tcomplex64, Tcomplex64) | |
308 X(Tcomplex32,Tcomplex80, Tcomplex80,Tcomplex80, Tcomplex80) | |
309 | |
310 /* ======================= */ | |
311 | |
312 X(Tcomplex64,Tcomplex64, Tcomplex64,Tcomplex64, Tcomplex64) | |
313 X(Tcomplex64,Tcomplex80, Tcomplex80,Tcomplex80, Tcomplex80) | |
314 | |
315 /* ======================= */ | |
316 | |
317 X(Tcomplex80,Tcomplex80, Tcomplex80,Tcomplex80, Tcomplex80) | |
318 | |
319 #undef X | |
320 | |
321 #define Y(t1,t2) impcnvWarn[t1][t2] = 1; | |
322 Y(Tint8, Tbit) | |
323 Y(Tuns8, Tbit) | |
324 Y(Tint16, Tbit) | |
325 Y(Tuns16, Tbit) | |
326 Y(Tint32, Tbit) | |
327 Y(Tuns32, Tbit) | |
328 Y(Tint64, Tbit) | |
329 Y(Tuns64, Tbit) | |
330 | |
331 Y(Tuns8, Tint8) | |
332 Y(Tint16, Tint8) | |
333 Y(Tuns16, Tint8) | |
334 Y(Tint32, Tint8) | |
335 Y(Tuns32, Tint8) | |
336 Y(Tint64, Tint8) | |
337 Y(Tuns64, Tint8) | |
338 | |
339 Y(Tint8, Tuns8) | |
340 Y(Tint16, Tuns8) | |
341 Y(Tuns16, Tuns8) | |
342 Y(Tint32, Tuns8) | |
343 Y(Tuns32, Tuns8) | |
344 Y(Tint64, Tuns8) | |
345 Y(Tuns64, Tuns8) | |
346 | |
717
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
347 Y(Tint8, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
348 Y(Tint16, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
349 Y(Tuns16, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
350 Y(Tint32, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
351 Y(Tuns32, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
352 Y(Tint64, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
353 Y(Tuns64, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
354 |
1 | 355 Y(Tuns16, Tint16) |
356 Y(Tint32, Tint16) | |
357 Y(Tuns32, Tint16) | |
358 Y(Tint64, Tint16) | |
359 Y(Tuns64, Tint16) | |
360 | |
361 Y(Tint16, Tuns16) | |
362 Y(Tint32, Tuns16) | |
363 Y(Tuns32, Tuns16) | |
364 Y(Tint64, Tuns16) | |
365 Y(Tuns64, Tuns16) | |
366 | |
717
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
367 Y(Tint16, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
368 Y(Tint32, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
369 Y(Tuns32, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
370 Y(Tint64, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
371 Y(Tuns64, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
372 |
1 | 373 // Y(Tuns32, Tint32) |
374 Y(Tint64, Tint32) | |
375 Y(Tuns64, Tint32) | |
376 | |
377 // Y(Tint32, Tuns32) | |
378 Y(Tint64, Tuns32) | |
379 Y(Tuns64, Tuns32) | |
380 | |
717
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
381 Y(Tint64, Tdchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
382 Y(Tuns64, Tdchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
383 |
1 | 384 Y(Tint64, Tuns64) |
385 Y(Tuns64, Tint64) | |
386 | |
387 for (i = 0; i < TMAX; i++) | |
388 for (j = 0; j < TMAX; j++) | |
389 { | |
390 if (impcnvResult[i][j] == Terror) | |
391 { | |
392 impcnvResult[i][j] = impcnvResult[j][i]; | |
393 impcnvType1[i][j] = impcnvType2[j][i]; | |
394 impcnvType2[i][j] = impcnvType1[j][i]; | |
395 } | |
396 } | |
397 } | |
398 | |
399 int main() | |
400 { FILE *fp; | |
401 int i; | |
402 int j; | |
403 | |
404 init(); | |
405 | |
406 fp = fopen("impcnvtab.c","w"); | |
407 | |
408 fprintf(fp,"// This file is generated by impcnvgen.c\n"); | |
409 fprintf(fp,"#include \"mtype.h\"\n"); | |
410 | |
411 fprintf(fp,"unsigned char Type::impcnvResult[TMAX][TMAX] =\n{\n"); | |
412 for (i = 0; i < TMAX; i++) | |
413 { | |
414 for (j = 0; j < TMAX; j++) | |
415 { | |
416 fprintf(fp, "%d,",impcnvResult[i][j]); | |
417 } | |
418 fprintf(fp, "\n"); | |
419 } | |
420 fprintf(fp,"};\n"); | |
421 | |
422 fprintf(fp,"unsigned char Type::impcnvType1[TMAX][TMAX] =\n{\n"); | |
423 for (i = 0; i < TMAX; i++) | |
424 { | |
425 for (j = 0; j < TMAX; j++) | |
426 { | |
427 fprintf(fp, "%d,",impcnvType1[i][j]); | |
428 } | |
429 fprintf(fp, "\n"); | |
430 } | |
431 fprintf(fp,"};\n"); | |
432 | |
433 fprintf(fp,"unsigned char Type::impcnvType2[TMAX][TMAX] =\n{\n"); | |
434 for (i = 0; i < TMAX; i++) | |
435 { | |
436 for (j = 0; j < TMAX; j++) | |
437 { | |
438 fprintf(fp, "%d,",impcnvType2[i][j]); | |
439 } | |
440 fprintf(fp, "\n"); | |
441 } | |
442 fprintf(fp,"};\n"); | |
443 | |
444 fprintf(fp,"unsigned char Type::impcnvWarn[TMAX][TMAX] =\n{\n"); | |
445 for (i = 0; i < TMAX; i++) | |
446 { | |
447 for (j = 0; j < TMAX; j++) | |
448 { | |
449 fprintf(fp, "%d,",impcnvWarn[i][j]); | |
450 } | |
451 fprintf(fp, "\n"); | |
452 } | |
453 fprintf(fp,"};\n"); | |
454 | |
455 fclose(fp); | |
456 return EXIT_SUCCESS; | |
457 } |