summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-03-20 20:40:45 (GMT)
committerGuido van Rossum <guido@python.org>1997-03-20 20:40:45 (GMT)
commit4d819840119684809aff2266d4704bc77c750e57 (patch)
tree9fc07a1a299b82f0e2e045d36915923aca900c8d /Lib
parent3d99e35884ad1d8bfd8773e1c352d937928a3db4 (diff)
downloadcpython-4d819840119684809aff2266d4704bc77c750e57.zip
cpython-4d819840119684809aff2266d4704bc77c750e57.tar.gz
cpython-4d819840119684809aff2266d4704bc77c750e57.tar.bz2
Ping's new version -- more efficient at finding the keywords.
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/keyword.py50
1 files changed, 13 insertions, 37 deletions
diff --git a/Lib/keyword.py b/Lib/keyword.py
index 340b5c8..3c62519 100755
--- a/Lib/keyword.py
+++ b/Lib/keyword.py
@@ -60,58 +60,34 @@ def main():
else: optfile = "Lib/keyword.py"
# scan the source file for keywords
- try:
- fp = open(iptfile)
- except IOError, err:
- sys.stderr.write("I/O error reading from %s: %s\n" % (optfile, err))
- sys.exit(1)
-
+ fp = open(iptfile)
strprog = regex.compile('"\([^"]+\)"')
- labelprog = regex.compile('static[ \t]+label.*=[ \t]+{')
- keywordlist = []
+ lines = []
while 1:
line = fp.readline()
if not line: break
- if labelprog.search(line) > -1: break
- while line:
- line = fp.readline()
- if string.find(line, ';') > -1: break
- if strprog.search(line) > -1: keywordlist.append(strprog.group(1))
+ if string.find(line, '{1, "') > -1 and strprog.search(line) > -1:
+ lines.append(" '" + strprog.group(1) + "',\n")
fp.close()
-
- keywordlist.sort()
- keywordlist.remove("EMPTY")
+ lines.sort()
# load the output skeleton from the target
- try:
- fp = open(optfile)
- format = fp.readlines()
- fp.close()
- except IOError, err:
- sys.stderr.write("I/O error reading from %s: %s\n" % (optfile, err))
- sys.exit(2)
+ fp = open(optfile)
+ format = fp.readlines()
+ fp.close()
+ # insert the lines of keywords
try:
start = format.index("#--start keywords--\n") + 1
end = format.index("#--end keywords--\n")
+ format[start:end] = lines
except ValueError:
sys.stderr.write("target does not contain format markers\n")
- sys.exit(3)
-
- # insert the lines of keywords
- lines = []
- for keyword in keywordlist:
- lines.append(" '" + keyword + "',\n")
- format[start:end] = lines
+ sys.exit(1)
# write the output file
- try:
- fp = open(optfile, 'w')
- except IOError, err:
- sys.stderr.write("I/O error writing to %s: %s\n" % (optfile, err))
- sys.exit(4)
+ fp = open(optfile, 'w')
fp.write(string.join(format, ''))
fp.close()
-if __name__ == "__main__":
- main()
+if __name__ == "__main__": main()