[ctypes-commit] ctypes/sandbox/tools/codegen h2xml.py,1.8,1.9 cparser.py,1.8,1.9
Brought to you by:
theller
From: Thomas H. <th...@us...> - 2005-01-24 09:16:49
|
Update of /cvsroot/ctypes/ctypes/sandbox/tools/codegen In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23891 Modified Files: h2xml.py cparser.py Log Message: Allow more than one include file to be processed. Index: cparser.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/sandbox/tools/codegen/cparser.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** cparser.py 21 Jan 2005 13:07:26 -0000 1.8 --- cparser.py 24 Jan 2005 09:16:38 -0000 1.9 *************** *** 84,88 **** os.remove(fname) ! def get_defines(self, include_file): """'Compile' an include file with gccxml, and return a dictionary of preprocessor definitions. Empty and compiler --- 84,88 ---- os.remove(fname) ! def get_defines(self, include_files): """'Compile' an include file with gccxml, and return a dictionary of preprocessor definitions. Empty and compiler *************** *** 93,97 **** for line in lines] # all definitions ! lines = self.compile_and_dump(['#include "%s"' % include_file]) defined = [line.split(None, 1) for line in lines] --- 93,98 ---- for line in lines] # all definitions ! code = ['#include "%s"' % fname for fname in include_files] ! lines = self.compile_and_dump(code) defined = [line.split(None, 1) for line in lines] *************** *** 143,149 **** ################################################################ ! def find_types(self, include_file, defines): source = [] ! source.append('#include "%s"' % include_file) source.append("#define DECLARE(sym) template <typename T> T symbol_##sym(T) {}") source.append("#define DEFINE(sym) symbol_##sym(sym)") --- 144,151 ---- ################################################################ ! def find_types(self, include_files, defines): source = [] ! for fname in include_files: ! source.append('#include "%s"' % fname) source.append("#define DECLARE(sym) template <typename T> T symbol_##sym(T) {}") source.append("#define DEFINE(sym) symbol_##sym(sym)") *************** *** 182,188 **** return types ! def create_final_xml(self, include_file, types): source = [] ! source.append('#include "%s"' % include_file) for name, value in types.iteritems(): source.append("const %s cpp_sym_%s = %s;" % (types[name], name, name)) --- 184,191 ---- return types ! def create_final_xml(self, include_files, types): source = [] ! for fname in include_files: ! source.append('#include "%s"' % fname) for name, value in types.iteritems(): source.append("const %s cpp_sym_%s = %s;" % (types[name], name, name)) *************** *** 215,219 **** ################################################################ ! def parse(self, include_file, options): """Main method. --- 218,222 ---- ################################################################ ! def parse(self, include_files, options): """Main method. *************** *** 226,230 **** if options.verbose: print >> sys.stderr, "finding definitions ..." ! defines = self.get_defines(include_file) if options.verbose: print >> sys.stderr, "%d found" % len(defines) --- 229,233 ---- if options.verbose: print >> sys.stderr, "finding definitions ..." ! defines = self.get_defines(include_files) if options.verbose: print >> sys.stderr, "%d found" % len(defines) *************** *** 238,242 **** print >> sys.stderr, "finding definitions types ..." # invoke C++ template magic ! types = self.find_types(include_file, defines) if options.verbose: print >> sys.stderr, "found %d types ..." % len(types) --- 241,245 ---- print >> sys.stderr, "finding definitions types ..." # invoke C++ template magic ! types = self.find_types(include_files, defines) if options.verbose: print >> sys.stderr, "found %d types ..." % len(types) *************** *** 244,248 **** if options.verbose: print >> sys.stderr, "creating xml output file ..." ! self.create_final_xml(include_file, types) # Include additional preprecessor definitions into the XML file. --- 247,251 ---- if options.verbose: print >> sys.stderr, "creating xml output file ..." ! self.create_final_xml(include_files, types) # Include additional preprecessor definitions into the XML file. Index: h2xml.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/sandbox/tools/codegen/h2xml.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** h2xml.py 21 Jan 2005 13:09:15 -0000 1.8 --- h2xml.py 24 Jan 2005 09:16:38 -0000 1.9 *************** *** 29,33 **** parser.values.gccxml_options.extend((opt, value)) ! parser = OptionParser() ## parser.add_option("-h", action="help") parser.add_option("-q", "--quiet", --- 29,33 ---- parser.values.gccxml_options.extend((opt, value)) ! parser = OptionParser("usage: %prog includefile ... [options]") ## parser.add_option("-h", action="help") parser.add_option("-q", "--quiet", *************** *** 76,80 **** try: parser = cparser.IncludeParser() ! parser.parse(files[0], options) except cparser.CompilerError, detail: import traceback --- 76,80 ---- try: parser = cparser.IncludeParser() ! parser.parse(files, options) except cparser.CompilerError, detail: import traceback |