| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  | #! /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-- | 
					
						
							|  |  |  |         'and', | 
					
						
							| 
									
										
										
										
											1997-07-23 18:10:52 +00:00
										 |  |  |         'assert', | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  |         '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 | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  |     fp = open(iptfile) | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  |     strprog = regex.compile('"\([^"]+\)"') | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  |     lines = [] | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  |     while 1: | 
					
						
							|  |  |  |         line = fp.readline() | 
					
						
							|  |  |  |         if not line: break | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  |         if string.find(line, '{1, "') > -1 and strprog.search(line) > -1: | 
					
						
							|  |  |  |             lines.append("        '" + strprog.group(1) + "',\n") | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  |     fp.close() | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  |     lines.sort() | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # load the output skeleton from the target | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  |     fp = open(optfile) | 
					
						
							|  |  |  |     format = fp.readlines() | 
					
						
							|  |  |  |     fp.close() | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  |     # insert the lines of keywords | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  |     try: | 
					
						
							|  |  |  |         start = format.index("#--start keywords--\n") + 1 | 
					
						
							|  |  |  |         end = format.index("#--end keywords--\n") | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  |         format[start:end] = lines | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  |     except ValueError: | 
					
						
							|  |  |  |         sys.stderr.write("target does not contain format markers\n") | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  |         sys.exit(1) | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # write the output file | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  |     fp = open(optfile, 'w') | 
					
						
							| 
									
										
										
										
											1997-03-20 19:45:51 +00:00
										 |  |  |     fp.write(string.join(format, '')) | 
					
						
							|  |  |  |     fp.close() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-03-20 20:40:45 +00:00
										 |  |  | if __name__ == "__main__": main() |