Staging
v0.8.1
v0.8.1
https://github.com/python/cpython
Revision 369cbd744ed06b3e01fe7a2e6a86ea4d85250231 authored by Ezio Melotti on 13 February 2012, 18:36:55 UTC, committed by Ezio Melotti on 13 February 2012, 18:36:55 UTC
1 parent ef18737
Tip revision: 369cbd744ed06b3e01fe7a2e6a86ea4d85250231 authored by Ezio Melotti on 13 February 2012, 18:36:55 UTC
Fix an index, add more tests, avoid raising errors for unknown declarations, and clean up comments.
Fix an index, add more tests, avoid raising errors for unknown declarations, and clean up comments.
Tip revision: 369cbd7
keyword.py
#! /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
"""
__all__ = ["iskeyword", "kwlist"]
kwlist = [
#--start keywords--
'and',
'as',
'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',
'with',
'yield',
#--end keywords--
]
iskeyword = frozenset(kwlist).__contains__
def main():
import sys, re
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 = []
for line in fp:
if '{1, "' in line:
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(''.join(format))
fp.close()
if __name__ == "__main__":
main()
Computing file changes ...