mirror of
https://github.com/python/cpython.git
synced 2024-11-25 10:54:51 +08:00
54f22ed30b
who writes: Here is batch 2, as a big collection of CVS context diffs. Along with moving comments into docstrings, i've added a couple of missing docstrings and attempted to make sure more module docstrings begin with a one-line summary. I did not add docstrings to the methods in profile.py for fear of upsetting any careful optimizations there, though i did move class documentation into class docstrings. The convention i'm using is to leave credits/version/copyright type of stuff in # comments, and move the rest of the descriptive stuff about module usage into module docstrings. Hope this is okay.
95 lines
2.0 KiB
Python
Executable File
95 lines
2.0 KiB
Python
Executable File
#! /usr/bin/env python
|
|
|
|
"""Keywords (from "graminit.c")
|
|
|
|
This file is automatically generated; please don't muck it up!
|
|
|
|
To update the symbols in this file, 'cd' to the top directory of
|
|
the python source tree after building the interpreter and run:
|
|
|
|
python Lib/keyword.py
|
|
"""
|
|
|
|
kwlist = [
|
|
#--start keywords--
|
|
'and',
|
|
'assert',
|
|
'break',
|
|
'class',
|
|
'continue',
|
|
'def',
|
|
'del',
|
|
'elif',
|
|
'else',
|
|
'except',
|
|
'exec',
|
|
'finally',
|
|
'for',
|
|
'from',
|
|
'global',
|
|
'if',
|
|
'import',
|
|
'in',
|
|
'is',
|
|
'lambda',
|
|
'not',
|
|
'or',
|
|
'pass',
|
|
'print',
|
|
'raise',
|
|
'return',
|
|
'try',
|
|
'while',
|
|
#--end keywords--
|
|
]
|
|
|
|
kwdict = {}
|
|
for keyword in kwlist:
|
|
kwdict[keyword] = 1
|
|
|
|
iskeyword = kwdict.has_key
|
|
|
|
def main():
|
|
import sys, re, string
|
|
|
|
args = sys.argv[1:]
|
|
iptfile = args and args[0] or "Python/graminit.c"
|
|
if len(args) > 1: optfile = args[1]
|
|
else: optfile = "Lib/keyword.py"
|
|
|
|
# scan the source file for keywords
|
|
fp = open(iptfile)
|
|
strprog = re.compile('"([^"]+)"')
|
|
lines = []
|
|
while 1:
|
|
line = fp.readline()
|
|
if not line: break
|
|
if string.find(line, '{1, "') > -1:
|
|
match = strprog.search(line)
|
|
if match:
|
|
lines.append(" '" + match.group(1) + "',\n")
|
|
fp.close()
|
|
lines.sort()
|
|
|
|
# load the output skeleton from the target
|
|
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(1)
|
|
|
|
# write the output file
|
|
fp = open(optfile, 'w')
|
|
fp.write(string.join(format, ''))
|
|
fp.close()
|
|
|
|
if __name__ == "__main__":
|
|
main()
|