annotate Mac/Modules/cm/cmscan.py @ 4566:6403c94de50d legacy-trunk

Added safeguard against failure in __del__.
author Guido van Rossum <guido@python.org>
date Wed, 27 Nov 1996 19:39:58 +0000
parents 7f230d4f3655
children bd708fe1934b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3282
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 # Scan an Apple header file, generating a Python file of generator calls.
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
2
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3 import addpack
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
4 addpack.addpack(':tools:bgen:bgen')
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5 from scantools import Scanner
3518
7f230d4f3655 bgen-generators now drop the python definition file straight in the
Jack Jansen <jack.jansen@cwi.nl>
parents: 3282
diff changeset
6 from bgenlocations import TOOLBOXDIR
3282
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
7
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
8 LONG = "Components"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
9 SHORT = "Cm"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
10
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
11 def main():
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
12 input = "Components.h"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
13 output = SHORT + "gen.py"
3518
7f230d4f3655 bgen-generators now drop the python definition file straight in the
Jack Jansen <jack.jansen@cwi.nl>
parents: 3282
diff changeset
14 defsoutput = TOOLBOXDIR + LONG + ".py"
3282
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
15 scanner = MyScanner(input, output, defsoutput)
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
16 scanner.scan()
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
17 scanner.close()
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
18 print "=== Done scanning and generating, now importing the generated code... ==="
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
19 exec "import " + SHORT + "support"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
20 print "=== Done. It's up to you to compile it now! ==="
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
21
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
22 class MyScanner(Scanner):
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
23
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
24 def destination(self, type, name, arglist):
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25 classname = "Function"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
26 listname = "functions"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
27 if arglist:
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
28 t, n, m = arglist[0]
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29 #
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30 # FindNextComponent is a special case, since it call also be called
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
31 # with None as the argument. Hence, we make it a function
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
32 #
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
33 if t == "Component" and m == "InMode" and name != "FindNextComponent":
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
34 classname = "Method"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
35 listname = "c_methods"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
36 elif t == "ComponentInstance" and m == "InMode":
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
37 classname = "Method"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
38 listname = "ci_methods"
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
39 return classname, listname
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
40
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
41 def makeblacklistnames(self):
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
42 return [
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
43 # "GetComponentInfo" # XXXX I dont know how the Handle args are expected...
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
44 ]
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
45
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
46 def makeblacklisttypes(self):
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
47 return [
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
48 "ResourceSpec",
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
49 "ComponentResource",
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
50 "ComponentPlatformInfo",
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
51 "ComponentResourceExtension",
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
52 "ComponentPlatformInfoArray",
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
53 "ExtComponentResource",
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
54 "ComponentParameters",
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
55
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
56 "ComponentRoutineUPP",
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
57 ]
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
58
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
59 def makerepairinstructions(self):
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
60 return [
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
61 ([('ComponentDescription', 'looking', 'OutMode')],
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
62 [('ComponentDescription', '*', 'InMode')]),
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
63 ]
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
64
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
65 if __name__ == "__main__":
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
66 main()