blob: 5ad1f18ea776f56ed342677e82510c11cbad7764 [file] [log] [blame]
Jack Jansen8a452d61996-04-10 14:41:08 +00001# Scan an Apple header file, generating a Python file of generator calls.
2
Jack Jansen0c4d9471998-04-17 14:07:56 +00003import sys
4import os
Jack Jansenaaebdd62002-08-05 15:39:30 +00005from bgenlocations import TOOLBOXDIR, BGENDIR
Jack Jansen0c4d9471998-04-17 14:07:56 +00006sys.path.append(BGENDIR)
Jack Jansen8a452d61996-04-10 14:41:08 +00007from scantools import Scanner
8
9LONG = "TextEdit"
10SHORT = "te"
11OBJECT = "TEHandle"
12
13def main():
14 input = LONG + ".h"
15 output = SHORT + "gen.py"
Jack Jansen46d9e791996-04-12 16:29:23 +000016 defsoutput = TOOLBOXDIR + LONG + ".py"
Jack Jansen8a452d61996-04-10 14:41:08 +000017 scanner = MyScanner(input, output, defsoutput)
18 scanner.scan()
19 scanner.close()
20 print "=== Done scanning and generating, now importing the generated code... ==="
21 exec "import " + SHORT + "support"
22 print "=== Done. It's up to you to compile it now! ==="
23
24class MyScanner(Scanner):
25
26 def destination(self, type, name, arglist):
27 classname = "Function"
28 listname = "functions"
29 if arglist:
30 t, n, m = arglist[-1]
31 # This is non-functional today
32 if t == OBJECT and m == "InMode":
33 classname = "Method"
34 listname = "methods"
35 return classname, listname
36
37 def makeblacklistnames(self):
38 return [
39 "TEDispose",
40 "TEInit",
Jack Jansena05ac601999-12-12 21:41:51 +000041## "TEGetHiliteRgn",
Jack Jansen8a452d61996-04-10 14:41:08 +000042 ]
43
Jack Jansen723ad8a2000-12-12 22:10:21 +000044 def makegreylist(self):
45 return [
46 ('#if TARGET_API_MAC_CARBON', [
47 'TEGetScrapHandle',
48 'TESetScrapHandle',
49 ])]
50
Jack Jansen8a452d61996-04-10 14:41:08 +000051 def makeblacklisttypes(self):
52 return [
53 "TEClickLoopUPP",
54 "UniversalProcPtr",
Jack Jansen723ad8a2000-12-12 22:10:21 +000055 "WordBreakUPP",
56 "TEDoTextUPP",
57 "TERecalcUPP",
58 "TEFindWordUPP",
Jack Jansen8a452d61996-04-10 14:41:08 +000059 ]
60
61 def makerepairinstructions(self):
62 return [
63 ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
64 [("InBuffer", "*", "*")]),
65
66 # TEContinuousStyle
67 ([("short", "mode", "OutMode"), ("TextStyle", "aStyle", "OutMode")],
68 [("short", "mode", "InOutMode"), ("TextStyle", "aStyle", "InOutMode")])
69 ]
70
71if __name__ == "__main__":
72 main()