# pygccxml.parser.source_reader module

`bind_aliases`(decls)

  This function binds between class and it’s typedefs.

  Deprecated since 1.9.0, will be removed in 2.0.0

  Parameters: | decls – list of all declarations
  Return type: | None

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 GCC-XML or CastXML.

  It has only one responsibility: it calls GCC-XML 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 GCC-XML
       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 GCC-XML or CastXML generated id’s.
  2. linker_t - this class contains logic for replacing GCC-XML or 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 external tool can be either gccxml or castxml. 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 GCC-XML or CastXML.

    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 GCC-XML generated file

    Return type: | returns file name of GCC-XML generated file

  `join_declarations`(namespace)
  `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

  `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