blob: d331d911ba1eac9e2270437a19264dd9968a1c5f [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
Skip Montanaro17ab1232001-01-24 06:27:27 +000013__all__ = ["iskeyword"]
14
Guido van Rossumeb8c9721997-03-20 19:45:51 +000015kwlist = [
16#--start keywords--
17 'and',
Guido van Rossumed57d761997-07-23 18:10:52 +000018 'assert',
Guido van Rossumeb8c9721997-03-20 19:45:51 +000019 'break',
20 'class',
21 'continue',
22 'def',
23 'del',
24 'elif',
25 'else',
26 'except',
27 'exec',
28 'finally',
29 'for',
30 'from',
31 'global',
32 'if',
33 'import',
34 'in',
35 'is',
36 'lambda',
37 'not',
38 'or',
39 'pass',
40 'print',
41 'raise',
42 'return',
43 'try',
44 'while',
45#--end keywords--
46 ]
Guido van Rossum90d556f1997-03-20 19:44:30 +000047
Guido van Rossumeb8c9721997-03-20 19:45:51 +000048kwdict = {}
49for keyword in kwlist:
50 kwdict[keyword] = 1
Guido van Rossum90d556f1997-03-20 19:44:30 +000051
Guido van Rossumeb8c9721997-03-20 19:45:51 +000052iskeyword = kwdict.has_key
53
54def main():
Eric S. Raymondee5e61d2001-02-09 09:10:35 +000055 import sys, re
Guido van Rossumeb8c9721997-03-20 19:45:51 +000056
57 args = sys.argv[1:]
58 iptfile = args and args[0] or "Python/graminit.c"
59 if len(args) > 1: optfile = args[1]
60 else: optfile = "Lib/keyword.py"
61
62 # scan the source file for keywords
Guido van Rossum4d819841997-03-20 20:40:45 +000063 fp = open(iptfile)
Guido van Rossum9694fca1997-10-22 21:00:49 +000064 strprog = re.compile('"([^"]+)"')
Guido van Rossum4d819841997-03-20 20:40:45 +000065 lines = []
Guido van Rossumeb8c9721997-03-20 19:45:51 +000066 while 1:
67 line = fp.readline()
68 if not line: break
Eric S. Raymondee5e61d2001-02-09 09:10:35 +000069 if line.find('{1, "') > -1:
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000070 match = strprog.search(line)
71 if match:
72 lines.append(" '" + match.group(1) + "',\n")
Guido van Rossumeb8c9721997-03-20 19:45:51 +000073 fp.close()
Guido van Rossum4d819841997-03-20 20:40:45 +000074 lines.sort()
Guido van Rossumeb8c9721997-03-20 19:45:51 +000075
76 # load the output skeleton from the target
Guido van Rossum4d819841997-03-20 20:40:45 +000077 fp = open(optfile)
78 format = fp.readlines()
79 fp.close()
Guido van Rossumeb8c9721997-03-20 19:45:51 +000080
Guido van Rossum4d819841997-03-20 20:40:45 +000081 # insert the lines of keywords
Guido van Rossumeb8c9721997-03-20 19:45:51 +000082 try:
83 start = format.index("#--start keywords--\n") + 1
84 end = format.index("#--end keywords--\n")
Guido van Rossum4d819841997-03-20 20:40:45 +000085 format[start:end] = lines
Guido van Rossumeb8c9721997-03-20 19:45:51 +000086 except ValueError:
87 sys.stderr.write("target does not contain format markers\n")
Guido van Rossum4d819841997-03-20 20:40:45 +000088 sys.exit(1)
Guido van Rossumeb8c9721997-03-20 19:45:51 +000089
90 # write the output file
Guido van Rossum4d819841997-03-20 20:40:45 +000091 fp = open(optfile, 'w')
Eric S. Raymondee5e61d2001-02-09 09:10:35 +000092 fp.write(''.join(format))
Guido van Rossumeb8c9721997-03-20 19:45:51 +000093 fp.close()
94
Guido van Rossum9694fca1997-10-22 21:00:49 +000095if __name__ == "__main__":
96 main()