Mercurial > cpython-lru_cache-weakref
annotate Mac/Modules/list/listscan.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | 7f230d4f3655 |
| children | 3740ff2ee053 |
| rev | line source |
|---|---|
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 # Scan an Apple header file, generating a Python file of generator calls. |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
3 import addpack |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 addpack.addpack(':tools:bgen:bgen') |
|
99945fda719d
Interface to the Mac List Manager.
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:
2972
diff
changeset
|
6 from bgenlocations import TOOLBOXDIR |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 LONG = "Lists" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 SHORT = "list" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 OBJECT = "ListRef" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 def main(): |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 input = LONG + ".h" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 output = SHORT + "gen.py" |
|
3518
7f230d4f3655
bgen-generators now drop the python definition file straight in the
Jack Jansen <jack.jansen@cwi.nl>
parents:
2972
diff
changeset
|
15 defsoutput = TOOLBOXDIR + LONG + ".py" |
|
2972
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 scanner = MyScanner(input, output, defsoutput) |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 scanner.scan() |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 scanner.close() |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 print "=== Done scanning and generating, now importing the generated code... ===" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 exec "import " + SHORT + "support" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 print "=== Done. It's up to you to compile it now! ===" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 class MyScanner(Scanner): |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
24 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 def destination(self, type, name, arglist): |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
26 classname = "Function" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
27 listname = "functions" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 if arglist: |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
29 t, n, m = arglist[-1] |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
30 # This is non-functional today |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 if t == OBJECT and m == "InMode": |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 classname = "Method" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 listname = "methods" |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 return classname, listname |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 def makeblacklistnames(self): |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 return [ |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 "LDispose", # Done by removing the object |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 "LSearch", # We don't want to handle procs just yet |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 "LGetCellDataLocation", # What does this do?? |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 ] |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
43 def makeblacklisttypes(self): |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 return [ |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
45 ] |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 def makerepairinstructions(self): |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 return [ |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 ([('ListBounds_ptr', '*', 'InMode')], |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
50 [('Rect_ptr', '*', 'InMode')]), |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 ([("Cell", "theCell", "OutMode")], |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 [("Cell", "theCell", "InOutMode")]), |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 ([("void_ptr", "*", "InMode"), ("short", "*", "InMode")], |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 [("InBufferShortsize", "*", "*")]), |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
57 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 ([("void", "*", "OutMode"), ("short", "*", "OutMode")], |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 [("VarOutBufferShortsize", "*", "InOutMode")]), |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 # ([("void", "wStorage", "OutMode")], |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 # [("NullStorage", "*", "InMode")]), |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
63 # |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
64 # # GetKeys |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
65 # ([('KeyMap', 'theKeys', 'InMode')], |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 # [('*', '*', 'OutMode')]), |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 # |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 # # GetTicker |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 # ([('unsigned long', '*', '*')], |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 # [('unsigned_long', '*', '*')]), |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 ] |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 if __name__ == "__main__": |
|
99945fda719d
Interface to the Mac List Manager.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
74 main() |
