Mercurial > cpython-lru_cache-weakref
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 |
| rev | line source |
|---|---|
| 3282 | 1 # Scan an Apple header file, generating a Python file of generator calls. |
| 2 | |
| 3 import addpack | |
| 4 addpack.addpack(':tools:bgen:bgen') | |
| 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 | 7 |
| 8 LONG = "Components" | |
| 9 SHORT = "Cm" | |
| 10 | |
| 11 def main(): | |
| 12 input = "Components.h" | |
| 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 | 15 scanner = MyScanner(input, output, defsoutput) |
| 16 scanner.scan() | |
| 17 scanner.close() | |
| 18 print "=== Done scanning and generating, now importing the generated code... ===" | |
| 19 exec "import " + SHORT + "support" | |
| 20 print "=== Done. It's up to you to compile it now! ===" | |
| 21 | |
| 22 class MyScanner(Scanner): | |
| 23 | |
| 24 def destination(self, type, name, arglist): | |
| 25 classname = "Function" | |
| 26 listname = "functions" | |
| 27 if arglist: | |
| 28 t, n, m = arglist[0] | |
| 29 # | |
| 30 # FindNextComponent is a special case, since it call also be called | |
| 31 # with None as the argument. Hence, we make it a function | |
| 32 # | |
| 33 if t == "Component" and m == "InMode" and name != "FindNextComponent": | |
| 34 classname = "Method" | |
| 35 listname = "c_methods" | |
| 36 elif t == "ComponentInstance" and m == "InMode": | |
| 37 classname = "Method" | |
| 38 listname = "ci_methods" | |
| 39 return classname, listname | |
| 40 | |
| 41 def makeblacklistnames(self): | |
| 42 return [ | |
| 43 # "GetComponentInfo" # XXXX I dont know how the Handle args are expected... | |
| 44 ] | |
| 45 | |
| 46 def makeblacklisttypes(self): | |
| 47 return [ | |
| 48 "ResourceSpec", | |
| 49 "ComponentResource", | |
| 50 "ComponentPlatformInfo", | |
| 51 "ComponentResourceExtension", | |
| 52 "ComponentPlatformInfoArray", | |
| 53 "ExtComponentResource", | |
| 54 "ComponentParameters", | |
| 55 | |
| 56 "ComponentRoutineUPP", | |
| 57 ] | |
| 58 | |
| 59 def makerepairinstructions(self): | |
| 60 return [ | |
| 61 ([('ComponentDescription', 'looking', 'OutMode')], | |
| 62 [('ComponentDescription', '*', 'InMode')]), | |
| 63 ] | |
| 64 | |
| 65 if __name__ == "__main__": | |
| 66 main() |
