blob: cf00dcc1d293b3ea7631d26cecbf1ec6a67d8f41 [file] [log] [blame]
Guido van Rossum17448e21995-01-30 11:53:55 +00001# Scan <Menus.h>, generating menugen.py.
Jack Jansenb81cf9d1995-06-06 13:08:40 +00002import addpack
3addpack.addpack(':Tools:bgen:bgen')
Guido van Rossum17448e21995-01-30 11:53:55 +00004
5from scantools import Scanner
Jack Jansen46d9e791996-04-12 16:29:23 +00006from bgenlocations import TOOLBOXDIR
Guido van Rossum17448e21995-01-30 11:53:55 +00007
8def main():
9 input = "Menus.h"
10 output = "menugen.py"
Jack Jansen46d9e791996-04-12 16:29:23 +000011 defsoutput = TOOLBOXDIR + "Menus.py"
Guido van Rossum17448e21995-01-30 11:53:55 +000012 scanner = MyScanner(input, output, defsoutput)
13 scanner.scan()
14 scanner.close()
15 print "=== Done scanning and generating, now doing 'import menusupport' ==="
16 import menusupport
17 print "=== Done. It's up to you to compile Menumodule.c ==="
18
19class MyScanner(Scanner):
20
21 def destination(self, type, name, arglist):
22 classname = "Function"
23 listname = "functions"
24 if arglist:
25 t, n, m = arglist[0]
Jack Jansenb81cf9d1995-06-06 13:08:40 +000026 if t in ("MenuHandle", "MenuRef") and m == "InMode":
Guido van Rossum17448e21995-01-30 11:53:55 +000027 classname = "Method"
28 listname = "methods"
29 return classname, listname
30
31 def makeblacklistnames(self):
32 return [
33 ]
34
35 def makeblacklisttypes(self):
36 return [
37 'MCTableHandle',
38 'MCEntryPtr',
39 'MCTablePtr',
40 ]
41
42 def makerepairinstructions(self):
43 return [
44 ([("Str255", "itemString", "InMode")],
45 [("*", "*", "OutMode")]),
46
47 ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
48 [("InBuffer", "*", "*")]),
49
50 ([("void", "*", "OutMode"), ("long", "*", "InMode"),
51 ("long", "*", "OutMode")],
52 [("VarVarOutBuffer", "*", "InOutMode")]),
53 ]
54
55if __name__ == "__main__":
56 main()