root/trunk/src/impcnvgen.c

Revision 621, 15.2 kB (checked in by walter, 2 years ago)

more 64, mostly inline assembler

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