blob: 3fa801d30b6628090e40162a6aec7f908fa112d8 [file] [log] [blame]
Guido van Rossumeb8c9721997-03-20 19:45:51 +00001#! /usr/bin/env python
Guido van Rossum54f22ed2000-02-04 15:10:34 +00002
3"""Keywords (from "graminit.c")
4
5This file is automatically generated; please don't muck it up!
6
7To update the symbols in this file, 'cd' to the top directory of
8the python source tree after building the interpreter and run:
9
10 python Lib/keyword.py
11"""
Guido van Rossum90d556f1997-03-20 19:44:30 +000012
Raymond Hettingeredc853e2002-10-30 05:17:22 +000013__all__ = ["iskeyword", "kwlist"]
Skip Montanaro17ab1232001-01-24 06:27:27 +000014
Guido van Rossumeb8c9721997-03-20 19:45:51 +000015kwlist = [
16#--start keywords--
17 'and',
Thomas Wouters1f1c16a2006-02-28 22:50:17 +000018 'as',
Guido van Rossumed57d761997-07-23 18:10:52 +000019 'assert',
Guido van Rossumeb8c9721997-03-20 19:45:51 +000020 'break',
21 'class',
22 'continue',
23 'def',
24 'del',
25 'elif',
26 'else',
27 'except',
Guido van Rossumeb8c9721997-03-20 19:45:51 +000028 'finally',
29 'for',
30 'from',
31 'global',
32 'if',
33 'import',
34 'in',
35 'is',
36 'lambda',
Jack Diederich4b7f3172007-02-28 20:21:30 +000037 'nonlocal',
Guido van Rossumeb8c9721997-03-20 19:45:51 +000038 'not',
39 'or',
40 'pass',
Guido van Rossumeb8c9721997-03-20 19:45:51 +000041 'raise',
42 'return',
43 'try',
44 'while',
Thomas Wouters1f1c16a2006-02-28 22:50:17 +000045 'with',
Tim Peters46376682001-06-19 00:26:25 +000046 'yield',
Guido van Rossumeb8c9721997-03-20 19:45:51 +000047#--end keywords--
48 ]
Guido van Rossum90d556f1997-03-20 19:44:30 +000049
Raymond Hettinger70ef8692003-12-02 07:48:15 +000050iskeyword = frozenset(kwlist).__contains__
Guido van Rossumeb8c9721997-03-20 19:45:51 +000051
52def main():
Eric S. Raymondee5e61d2001-02-09 09:10:35 +000053 import sys, re
Guido van Rossumeb8c9721997-03-20 19:45:51 +000054
55 args = sys.argv[1:]
56 iptfile = args and args[0] or "Python/graminit.c"
57 if len(args) > 1: optfile = args[1]
58 else: optfile = "Lib/keyword.py"
59
60 # scan the source file for keywords
Guido van Rossum4d819841997-03-20 20:40:45 +000061 fp = open(iptfile)
Guido van Rossum9694fca1997-10-22 21:00:49 +000062 strprog = re.compile('"([^"]+)"')
Guido van Rossum4d819841997-03-20 20:40:45 +000063 lines = []
Guido van Rossumeb8c9721997-03-20 19:45:51 +000064 while 1:
65 line = fp.readline()
66 if not line: break
Raymond Hettingerbac788a2004-05-04 09:21:43 +000067 if '{1, "' in line:
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000068 match = strprog.search(line)
69 if match:
70 lines.append(" '" + match.group(1) + "',\n")
Guido van Rossumeb8c9721997-03-20 19:45:51 +000071 fp.close()
Guido van Rossum4d819841997-03-20 20:40:45 +000072 lines.sort()
Guido van Rossumeb8c9721997-03-20 19:45:51 +000073
74 # load the output skeleton from the target
Guido van Rossum4d819841997-03-20 20:40:45 +000075 fp = open(optfile)
76 format = fp.readlines()
77 fp.close()
Guido van Rossumeb8c9721997-03-20 19:45:51 +000078
Guido van Rossum4d819841997-03-20 20:40:45 +000079 # insert the lines of keywords
Guido van Rossumeb8c9721997-03-20 19:45:51 +000080 try:
81 start = format.index("#--start keywords--\n") + 1
82 end = format.index("#--end keywords--\n")
Guido van Rossum4d819841997-03-20 20:40:45 +000083 format[start:end] = lines
Guido van Rossumeb8c9721997-03-20 19:45:51 +000084 except ValueError:
85 sys.stderr.write("target does not contain format markers\n")
Guido van Rossum4d819841997-03-20 20:40:45 +000086 sys.exit(1)
Guido van Rossumeb8c9721997-03-20 19:45:51 +000087
88 # write the output file
Guido van Rossum4d819841997-03-20 20:40:45 +000089 fp = open(optfile, 'w')
Eric S. Raymondee5e61d2001-02-09 09:10:35 +000090 fp.write(''.join(format))
Guido van Rossumeb8c9721997-03-20 19:45:51 +000091 fp.close()
92
Guido van Rossum9694fca1997-10-22 21:00:49 +000093if __name__ == "__main__":
94 main()