annotate test/suite2_x86win32std/mkcase.py @ 0:3e629dc19168

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:24:28 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 #!/usr/bin/python
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 #//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 # Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>,
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 # Tassilo Philipp <tphilipp@potion-studios.com>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 # Permission to use, copy, modify, and distribute this software for any
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 # purpose with or without fee is hereby granted, provided that the above
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 # copyright notice and this permission notice appear in all copies.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 #//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 import sys
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 f = file("design.cfg")
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 sigmap = {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26 'B':'DCbool'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27 , 'c':'DCchar'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 , 's':'DCshort'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 , 'i':'DCint'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 , 'l':'DClonglong'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 , 'f':'DCfloat'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 , 'd':'DCdouble'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 , 'p':'DCpointer'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 apimap = {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 '_':''
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 , 's':'__declspec(stdcall)'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 , 'f':'__declspec(fastcall)'
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42 id = 0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 maxargs = 0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 sys.stdout.write("/* auto generated by mkcase.py (on stdout) */\n");
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 for line in f:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46 line = line.rstrip().lstrip()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 if len(line) == 0 or line[0] == '#': continue
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 types = [];
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 # args = len(line)-1
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 args = len(line)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 maxargs = max(maxargs, args)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 # api = apimap[ line[0] ]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 out = [ "VF",str(args),"(", str(id), "," ];
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 for i in xrange(0,len(line)):
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 types += [ sigmap[ line[i] ] ]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 out += [ ",".join( types ), ",s_", line, ")\n" ]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 out = "".join(out)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 sys.stdout.write(out)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 id += 1
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 sys.stderr.write("/* auto generated by mkcase (on stderr) */\n");
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 sys.stderr.write("".join( ["#define NCASES ",str(id),"\n"] ) )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 sys.stderr.write("".join( ["#define MAXARGS ",str(maxargs),"\n"] ) )
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66