[pygccxml-commit] SF.net SVN: pygccxml: [1030] pyplusplus_dev/ide
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-05-02 19:22:32
|
Revision: 1030 http://svn.sourceforge.net/pygccxml/?rev=1030&view=rev Author: roman_yakovenko Date: 2007-05-02 12:22:25 -0700 (Wed, 02 May 2007) Log Message: ----------- adding generate xml, code functionality Modified Paths: -------------- pyplusplus_dev/ide/controllers/controller_main.py pyplusplus_dev/ide/model/code_generator.py Added Paths: ----------- pyplusplus_dev/ide/_dev_run_ide_.py Added: pyplusplus_dev/ide/_dev_run_ide_.py =================================================================== --- pyplusplus_dev/ide/_dev_run_ide_.py (rev 0) +++ pyplusplus_dev/ide/_dev_run_ide_.py 2007-05-02 19:22:25 UTC (rev 1030) @@ -0,0 +1,11 @@ +import sys + +sys.path.append( '..' ) +sys.path.append( '../../pygccxml_dev' ) + +import pygccxml +import pyplusplus + +import ide + +ide.main() \ No newline at end of file Modified: pyplusplus_dev/ide/controllers/controller_main.py =================================================================== --- pyplusplus_dev/ide/controllers/controller_main.py 2007-05-02 14:58:58 UTC (rev 1029) +++ pyplusplus_dev/ide/controllers/controller_main.py 2007-05-02 19:22:25 UTC (rev 1030) @@ -311,7 +311,6 @@ self.CountCodeGenSec(reset=True) params = self._get_gccxml_params(False) - gen_xml_obj = AsyncExecHandler(code_generator.gen_xml, params) self._start_async_exec(gen_xml_obj) @@ -626,14 +625,15 @@ 'gccXmlSettings.includePathList')) macro_list = eval(self._prj_settings.get_param( 'gccXmlSettings.macroList')) - + header_file = self._prj_settings.get_param('gccXmlSettings.headerPath') if verbose: self._append_out_text(" "+ gcc_xml) self._append_out_text(" "+ str(inc_path_list)) self._append_out_text(" "+ str(macro_list)) + self._append_out_text(" "+ header_file) - return (gcc_xml, inc_path_list, macro_list) + return (gcc_xml, inc_path_list, macro_list, header_file) def _setup_ide_settings(self): Modified: pyplusplus_dev/ide/model/code_generator.py =================================================================== --- pyplusplus_dev/ide/model/code_generator.py 2007-05-02 14:58:58 UTC (rev 1029) +++ pyplusplus_dev/ide/model/code_generator.py 2007-05-02 19:22:25 UTC (rev 1030) @@ -10,7 +10,10 @@ are used. ''' +import os import time +from pygccxml import parser +from pyplusplus import module_builder def gen_xml(params, q_result, q_error): ''' @@ -20,17 +23,26 @@ @param q_error: python queue to put error in @return None (isn't evaluated) ''' - - gcc_xml = params[0] - inc_path_list = params[1] - macro_list = params[2] + try: + config = parser.config_t( gccxml_path=params[0] + , include_paths=params[1] + , define_symbols=params[2]) - time.sleep(1) - q_result.put("This is dummy data of gen_xml\n") - q_error.put("This is dummy error gen_xml") - time.sleep(4) - q_result.put("This is dummy data of gen_xml") - q_error.put("This is dummy error of gen_xml") + header_file = params[3] + config.include_paths.append( os.path.split( header_file )[0] ) + config.working_directory = os.path.split( header_file )[0] + reader = parser.source_reader_t( config=config ) + xml_file = reader.create_xml_file( header_file ) + + xml_file_obj = file( xml_file ) + q_result.put( xml_file_obj.read() ) + xml_file_obj.close() + os.remove( xml_file ) + #self._statistics.set_parse_time( parsed_time ) + #self._statistics.set_code_generation_time( 0 ) + except Exception, error: + q_result.put(str( error )) + q_error.put(str( error )) def gen_cpp(params, q_result, q_error): ''' @@ -40,8 +52,30 @@ @param q_error: python queue to put error in @return None (isn't evaluated) ''' - pass + try: + header_file = params[3] + + include_paths = params[1] + include_paths.append( os.path.split( header_file )[0] ) + + mb = module_builder.module_builder_t( + [ header_file ] + , gccxml_path=params[0] + , working_directory=os.path.split( header_file )[0] + , include_paths=include_paths + , define_symbols=params[2] ) + mb.build_code_creator( "pyplusplus" ) + mb.code_creator.user_defined_directories.extend( include_paths ) + code = mb.code_creator.create() + code = code.replace( '\n\r', '\n' ) + code = code.replace( '\r\n', '\n' ) + + q_result.put( code ) + except Exception, error: + q_result.put(str( error )) + q_error.put(str( error )) + def gen_pypp(params, q_result, q_error): ''' Generate Python (Py++) code This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |