pygccxml.parser.source_reader module

class source_reader_t(configuration, cache=None, decl_factory=None)

Bases: object

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

This class is the only class that works directly with CastXML.

It has only one responsibility: it calls CastXML with a source file specified by the user and creates declarations tree. The implementation of this class is split to two classes:

  1. scanner_t - this class scans the “XML” file, generated by CastXML

    or CastXML 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 CastXML generated id’s.

  2. linker_t - this class contains logic for replacing CastXML

    generated ids with references to declarations or type class instances.

create_xml_file(source_file, destination=None)

This method will generate a xml file using an external tool.

The method will return the file path of the generated xml file.

Parameters
  • source_file (str) – path to the source file that should be parsed.

  • destination (str) – if given, will be used as target file path for the xml generator.

Return type

path to xml file.

create_xml_file_from_string(content, destination=None)

Creates XML file from text.

Parameters
  • content (str) – C++ source code

  • destination (str) – file name for xml file

Return type

returns file name of xml file

read_cpp_source_file(source_file)

Reads C++ source file and returns declarations tree

Parameters

source_file (str) – path to C++ source file

read_file(source_file)
read_string(content)

Reads a Python string that contains C++ code, and return the declarations tree.

read_xml_file(xml_file)

Read generated XML file.

Parameters

xml_file (str) – path to xml file

Return type

declarations tree

property xml_generator_from_xml_file

Configuration object containing information about the xml generator read from the xml file.

Returns

configuration object

Return type

utils.xml_generators