Oops -- Lib/Test should be Lib/test, of course!
[python/dscho.git] / Mac / Modules / evt / evtscan.py
blob676c839f58e88dd9b93aa041c0669346469b0c74
1 # Scan an Apple header file, generating a Python file of generator calls.
3 import addpack
4 addpack.addpack(':tools:bgen:bgen')
5 from scantools import Scanner
6 from bgenlocations import TOOLBOXDIR
8 LONG = "Events"
9 SHORT = "evt"
10 OBJECT = "NOTUSED"
12 def main():
13 input = LONG + ".h"
14 output = SHORT + "gen.py"
15 defsoutput = TOOLBOXDIR + LONG + ".py"
16 scanner = MyScanner(input, output, defsoutput)
17 scanner.scan()
18 scanner.close()
19 print "=== Done scanning and generating, now importing the generated code... ==="
20 exec "import " + SHORT + "support"
21 print "=== Done. It's up to you to compile it now! ==="
23 class MyScanner(Scanner):
25 def destination(self, type, name, arglist):
26 classname = "Function"
27 listname = "functions"
28 if arglist:
29 t, n, m = arglist[0]
30 # This is non-functional today
31 if t == OBJECT and m == "InMode":
32 classname = "Method"
33 listname = "methods"
34 return classname, listname
36 def makeblacklistnames(self):
37 return [
38 "KeyTranslate",
39 "GetEventMask", # I cannot seem to find this routine...
42 def makeblacklisttypes(self):
43 return [
44 "EvQElPtr", "QHdrPtr"
47 def makerepairinstructions(self):
48 return [
49 ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
50 [("InBuffer", "*", "*")]),
52 ([("void", "*", "OutMode"), ("long", "*", "InMode"),
53 ("long", "*", "OutMode")],
54 [("VarVarOutBuffer", "*", "InOutMode")]),
56 ([("void", "wStorage", "OutMode")],
57 [("NullStorage", "*", "InMode")]),
59 # GetKeys
60 ([('KeyMap', 'theKeys', 'InMode')],
61 [('*', '*', 'OutMode')]),
63 # GetTicker
64 ([('unsigned long', '*', '*')],
65 [('unsigned_long', '*', '*')]),
68 if __name__ == "__main__":
69 main()