Staging
v0.5.0
https://github.com/python/cpython
Raw File
Tip revision: 71606f8dd950604620efb37b86e81ee03f9d232b authored by cvs2svn on 15 May 1997, 12:24:53 UTC
This commit was manufactured by cvs2svn to create tag 'r15a2'.
Tip revision: 71606f8
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:
#
#    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()
back to top