blob: 0c3dec2acafaebd0dbbfdd2ca9252c8b9a3636c3 [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
Guido van Rossumeb8c9721997-03-20 19:45:51 +000013kwlist = [
14#--start keywords--
15 'and',
Guido van Rossumed57d761997-07-23 18:10:52 +000016 'assert',
Guido van Rossumeb8c9721997-03-20 19:45:51 +000017 'break',
18 'class',
19 'continue',
20 'def',
21 'del',
22 'elif',
23 'else',
24 'except',
25 'exec',
26 'finally',
27 'for',
28 'from',
29 'global',
30 'if',
31 'import',
32 'in',
33 'is',
34 'lambda',
35 'not',
36 'or',
37 'pass',
38 'print',
39 'raise',
40 'return',
41 'try',
42 'while',
43#--end keywords--
44 ]
Guido van Rossum90d556f1997-03-20 19:44:30 +000045
Guido van Rossumeb8c9721997-03-20 19:45:51 +000046kwdict = {}
47for keyword in kwlist:
48 kwdict[keyword] = 1
Guido van Rossum90d556f1997-03-20 19:44:30 +000049
Guido van Rossumeb8c9721997-03-20 19:45:51 +000050iskeyword = kwdict.has_key
51
52def main():
Guido van Rossum9694fca1997-10-22 21:00:49 +000053 import sys, re, string
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
Guido van Rossum45e2fbc1998-03-26 21:13:24 +000067 if string.find(line, '{1, "') > -1:
68 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')
Guido van Rossumeb8c9721997-03-20 19:45:51 +000090 fp.write(string.join(format, ''))
91 fp.close()
92
Guido van Rossum9694fca1997-10-22 21:00:49 +000093if __name__ == "__main__":
94 main()