| #! /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: | 
 | # | 
 | #    PYTHONPATH=./Lib ./python Lib/keyword.py | 
 | # | 
 | #  (this path allows the import of string.py and regexmodule.so | 
 | #  for a site with no installation in place) | 
 |  | 
 | kwlist = [ | 
 | #--start keywords-- | 
 |         '__assert__', | 
 |         'and', | 
 |         '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, regex, 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 = regex.compile('"\([^"]+\)"') | 
 |     lines = [] | 
 |     while 1: | 
 |         line = fp.readline() | 
 |         if not line: break | 
 |         if string.find(line, '{1, "') > -1 and strprog.search(line) > -1: | 
 |             lines.append("        '" + strprog.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() |