Package pygccxml :: Package parser :: Module source_reader :: Class source_reader_t

ClassType source_reader_t

source code


This class reads C++ source code and returns declarations tree.

This class is the only class that have an intime knowledge about GCC-XML.
It has only one responsibility: it calls GCC-XML with a source file specified
by user and creates declarations tree. The implementation of this class is split
to 2 classes:

1. L{scanner_t} - this class scans the "XML" file, generated by GCC-XML and
   creates `pygccxml`_ declarations and types classes. After the xml file has
   been processed declarations and type class instances keeps references to
   each other using GCC-XML generated id's.

2. L{linker_t} - this class contains logic for replacing GCC-XML generated
   ids with references to declarations or type class instances.

Instance Methods
 
__init__(self, config, cache=None, decl_factory=None) source code
 
create_xml_file(self, header, destination=None)
This function will return the file name of the file, created by GCC-XML for "header" file.
source code
 
create_xml_file_from_string(self, content, destination=None)
Creates XML file from text.
source code
 
read_file(self, source_file) source code
 
read_gccxml_file(self, source_file)
Reads C++ source file and returns declarations tree
source code
 
read_xml_file(self, gccxml_created_file)
Reads GCC-XML generated XML file.
source code
 
read_string(self, content)
Reads Python string, that contains valid C++ code, and returns declarations tree.
source code
 
read_synopsis_file(self, source_file) source code
Method Details

__init__(self, config, cache=None, decl_factory=None)
(Constructor)

source code 
Parameters:
  • config (config_t) - instance of config_t class, that contains GCC-XML configuration
  • cache - reference to cache object, that will be updated after file has been parsed.
  • cache - instance of class, that derives from {cache_base_t}
  • decl_factory - declarations factory, if not given default declarations factory decl_factory_t will be used

create_xml_file(self, header, destination=None)

source code 

This function will return the file name of the file, created by GCC-XML for "header" file. If destination_file_path is not None, then this file path will be used and returned.

Parameters:
  • header (str) - path to source file, that should be parsed
  • destination (str) - if given, will be used as target file/path for GCC-XML generated file.
Returns:
path to GCC-XML generated file

create_xml_file_from_string(self, content, destination=None)

source code 

Creates XML file from text.

Parameters:
  • content (str) - C++ source code
  • destination (str) - file name for GCC-XML generated file
Returns:
returns file name of GCC-XML generated file

read_gccxml_file(self, source_file)

source code 

Reads C++ source file and returns declarations tree

Parameters:
  • source_file (str) - path to C++ source file

read_xml_file(self, gccxml_created_file)

source code 

Reads GCC-XML generated XML file.

Parameters:
  • gccxml_created_file (str) - path to GCC-XML generated file
Returns:
declarations tree