mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
	
		
			2 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
 | 
						|
"""
 | 
						|
 | 
						|
__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 = []
 | 
						|
    while 1:
 | 
						|
        line = fp.readline()
 | 
						|
        if not line: break
 | 
						|
        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()
 |