File: ahsupport.py

package info (click to toggle)
python2.4 2.4.4-3%2Betch3
  • links: PTS
  • area: main
  • in suites: etch
  • size: 44,684 kB
  • ctags: 86,948
  • sloc: ansic: 305,981; python: 271,903; sh: 5,540; makefile: 4,186; perl: 3,736; lisp: 3,678; xml: 894; objc: 756; cpp: 7; sed: 2
file content (45 lines) | stat: -rw-r--r-- 1,522 bytes parent folder | download | duplicates (20)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# This script generates a Python interface for an Apple Macintosh Manager.
# It uses the "bgen" package to generate C code.
# The function specifications are generated by scanning the mamager's header file,
# using the "scantools" package (customized for this particular manager).

import string

# Declarations that change for each manager
MACHEADERFILE = 'AppleHelp.h'           # The Apple header file
MODNAME = '_AH'                         # The name of the module

# The following is *usually* unchanged but may still require tuning
MODPREFIX = 'Ah'                        # The prefix for module-wide routines
INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
OUTPUTFILE = MODNAME + "module.c"       # The file generated by this program

from macsupport import *

# Create the type objects
AHTOCType = Type("AHTOCType", "h")

includestuff = includestuff + """
#include <Carbon/Carbon.h>

"""

# From here on it's basically all boiler plate...

# Create the generator groups and link them
module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)

# Create the generator classes used to populate the lists
Function = OSErrFunctionGenerator

# Create and populate the lists
functions = []
execfile(INPUTFILE)

# add the populated lists to the generator groups
# (in a different wordl the scan program would generate this)
for f in functions: module.add(f)

# generate output (open the output file as late as possible)
SetOutputFileName(OUTPUTFILE)
module.generate()