Mercurial > cpython-lru_cache-weakref
changeset 7456:bd05ab4731f7 legacy-trunk
Patches from Jack for new Apple headers
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Mon, 23 Feb 1998 15:30:44 +0000 |
| parents | 483286e219e1 |
| children | 1a9b09b3caf8 |
| files | Tools/bgen/bgen/bgenlocations.py Tools/bgen/bgen/macsupport.py Tools/bgen/bgen/scantools.py |
| diffstat | 3 files changed, 36 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/Tools/bgen/bgen/bgenlocations.py Mon Feb 23 14:42:00 1998 +0000 +++ b/Tools/bgen/bgen/bgenlocations.py Mon Feb 23 15:30:44 1998 +0000 @@ -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"
--- a/Tools/bgen/bgen/macsupport.py Mon Feb 23 14:42:00 1998 +0000 +++ b/Tools/bgen/bgen/macsupport.py Mon Feb 23 15:30:44 1998 +0000 @@ -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 @@ Output("if (%s != noErr) return PyMac_Error(%s);", name, name) self.used = 1 OSErr = OSErrType("OSErr", 'h') +OSStatus = OSErrType("OSStatus", 'l') # Various buffer types
--- a/Tools/bgen/bgen/scantools.py Mon Feb 23 14:42:00 1998 +0000 +++ b/Tools/bgen/bgen/scantools.py Mon Feb 23 15:30:44 1998 +0000 @@ -93,6 +93,9 @@ 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 @@ 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 @@ 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 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 @@ 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"
