# 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