mirror of https://github.com/python/cpython.git
Patches from Jack for new Apple headers
This commit is contained in:
parent
a705da7aa0
commit
557f446618
|
@ -3,11 +3,11 @@
|
|||
#
|
||||
|
||||
# Where to find the Universal Header include files:
|
||||
MWERKSDIR="Moes:Metrowerks:Metrowerks CodeWarrior:"
|
||||
MWERKSDIR="flap:Metrowerks:Metrowerks CodeWarrior:"
|
||||
INCLUDEDIR=MWERKSDIR + "MacOS Support:Headers:Universal Headers:"
|
||||
|
||||
# Where to put the python definitions file:
|
||||
TOOLBOXDIR="Moes:Development:Jack:Python:Mac:Lib:toolbox:"
|
||||
TOOLBOXDIR="flap:Jack:Python:Mac:Lib:lib-toolbox:"
|
||||
|
||||
# Creator for C files:
|
||||
CREATOR="CWIE"
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
ScriptCode = Type("ScriptCode", "h")
|
||||
Size = Type("Size", "l")
|
||||
Style = Type("Style", "b")
|
||||
StyleParameter = Type("Style", "h")
|
||||
CharParameter = Type("CharParameter", "h")
|
||||
TextEncoding = Type("TextEncoding", "l")
|
||||
|
||||
UInt8 = Type("UInt8", "b")
|
||||
SInt8 = Type("SInt8", "b")
|
||||
|
@ -75,6 +78,7 @@ def errorCheck(self, name):
|
|||
Output("if (%s != noErr) return PyMac_Error(%s);", name, name)
|
||||
self.used = 1
|
||||
OSErr = OSErrType("OSErr", 'h')
|
||||
OSStatus = OSErrType("OSStatus", 'l')
|
||||
|
||||
|
||||
# Various buffer types
|
||||
|
|
|
@ -93,6 +93,9 @@ def report(self, format, *args):
|
|||
if not self.silent:
|
||||
print format%args
|
||||
|
||||
def writeinitialdefs(self):
|
||||
pass
|
||||
|
||||
def initblacklists(self):
|
||||
self.blacklistnames = self.makeblacklistnames()
|
||||
self.blacklisttypes = ["unknown", "-"] + self.makeblacklisttypes()
|
||||
|
@ -219,14 +222,21 @@ def initpaths(self):
|
|||
self.includepath = [':', INCLUDEDIR]
|
||||
|
||||
def initpatterns(self):
|
||||
self.head_pat = "^extern pascal[ \t]+" # XXX Mac specific!
|
||||
# self.head_pat = "^extern pascal[ \t]+" # XXX Mac specific!
|
||||
self.head_pat = "^EXTERN_API[^_]"
|
||||
self.tail_pat = "[;={}]"
|
||||
self.type_pat = "pascal[ \t\n]+\(<type>[a-zA-Z0-9_ \t]*[a-zA-Z0-9_]\)[ \t\n]+"
|
||||
# self.type_pat = "pascal[ \t\n]+\(<type>[a-zA-Z0-9_ \t]*[a-zA-Z0-9_]\)[ \t\n]+"
|
||||
self.type_pat = "EXTERN_API" + \
|
||||
"[ \t\n]*([ \t\n]*" + \
|
||||
"\(<type>[a-zA-Z0-9_ \t]*[a-zA-Z0-9_]\)" + \
|
||||
"[ \t\n]*)[ \t\n]*"
|
||||
self.name_pat = "\(<name>[a-zA-Z0-9_]+\)[ \t\n]*"
|
||||
self.args_pat = "(\(<args>\([^(;=)]+\|([^(;=)]*)\)*\))"
|
||||
self.whole_pat = self.type_pat + self.name_pat + self.args_pat
|
||||
# self.sym_pat = "^[ \t]*\(<name>[a-zA-Z0-9_]+\)[ \t]*=" + \
|
||||
# "[ \t]*\(<defn>[-0-9'\"][^\t\n,;}]*\),?"
|
||||
self.sym_pat = "^[ \t]*\(<name>[a-zA-Z0-9_]+\)[ \t]*=" + \
|
||||
"[ \t]*\(<defn>[-0-9'\"][^\t\n,;}]*\),?"
|
||||
"[ \t]*\(<defn>[-0-9_a-zA-Z'\"][^\t\n,;}]*\),?"
|
||||
self.asplit_pat = "^\(<type>.*[^a-zA-Z0-9_]\)\(<name>[a-zA-Z0-9_]+\)$"
|
||||
|
||||
def compilepatterns(self):
|
||||
|
@ -356,6 +366,7 @@ def scan(self):
|
|||
else:
|
||||
self.report("defsfile = %s", `self.defsfile.name`)
|
||||
self.defsfile.write("# Generated from %s\n\n" % `inputname`)
|
||||
self.writeinitialdefs()
|
||||
self.alreadydone = []
|
||||
try:
|
||||
while 1:
|
||||
|
@ -373,7 +384,8 @@ def scan(self):
|
|||
|
||||
def dosymdef(self):
|
||||
name, defn = self.sym.group('name', 'defn')
|
||||
self.defsfile.write("%s = %s\n" % (name, defn))
|
||||
if not name in self.blacklistnames:
|
||||
self.defsfile.write("%s = %s\n" % (name, defn))
|
||||
|
||||
def dofuncspec(self):
|
||||
raw = self.line
|
||||
|
@ -519,6 +531,20 @@ def unmanageable(self, type, name, arglist):
|
|||
return 1
|
||||
return 0
|
||||
|
||||
class Scanner_PreUH3(Scanner):
|
||||
"""Scanner for Universal Headers before release 3"""
|
||||
def initpatterns(self):
|
||||
self.head_pat = "^extern pascal[ \t]+" # XXX Mac specific!
|
||||
self.tail_pat = "[;={}]"
|
||||
self.type_pat = "pascal[ \t\n]+\(<type>[a-zA-Z0-9_ \t]*[a-zA-Z0-9_]\)[ \t\n]+"
|
||||
self.name_pat = "\(<name>[a-zA-Z0-9_]+\)[ \t\n]*"
|
||||
self.args_pat = "(\(<args>\([^(;=)]+\|([^(;=)]*)\)*\))"
|
||||
self.whole_pat = self.type_pat + self.name_pat + self.args_pat
|
||||
self.sym_pat = "^[ \t]*\(<name>[a-zA-Z0-9_]+\)[ \t]*=" + \
|
||||
"[ \t]*\(<defn>[-0-9'\"][^\t\n,;}]*\),?"
|
||||
self.asplit_pat = "^\(<type>.*[^a-zA-Z0-9_]\)\(<name>[a-zA-Z0-9_]+\)$"
|
||||
|
||||
|
||||
def test():
|
||||
input = "D:Development:THINK C:Mac #includes:Apple #includes:AppleEvents.h"
|
||||
output = "@aespecs.py"
|
||||
|
|
Loading…
Reference in New Issue