# pygccxml.parser.config module

Defines C++ parser configuration classes.

`create_compiler_path`(xml_generator, compiler_path)

  Try to guess a path for the compiler.

  If you want ot use a specific compiler, please provide the compiler path manually, as the guess may not be what you are expecting. Providing the path can be done by passing it as an argument (compiler_path) to the xml_generator_configuration_t() or by defining it in your pygccxml configuration file.

`load_xml_generator_configuration`(configuration, **defaults)

  Loads CastXML or GCC-XML configuration.

  Parameters:

  - configuration (string|configparser.ConfigParser) – can be a string (file path to a configuration file) or instance of `configparser.ConfigParser`.
  - defaults – can be used to override single configuration values.

  Returns: | a configuration object
  Return type: | `xml_generator_configuration_t`

  The file passed needs to be in a format that can be parsed by `configparser.ConfigParser`.

  An example configuration file skeleton can be found here.

class `parser_configuration_t`(working_directory='.', include_paths=None, define_symbols=None, undefine_symbols=None, cflags='', compiler=None, xml_generator=None, keep_xml=False, compiler_path=None, flags=None, castxml_epic_version=None)

  Bases: `object`

  C++ parser configuration holder

  This class serves as a base class for the parameters that can be used to customize the call to a C++ parser.

  This class also allows users to work with relative files paths. In this case files are searched in the following order:

  > 1. current directory
  > 2. working directory
  > 3. additional include paths specified by the user

  `append_cflags`(val)
  `castxml_epic_version`

    File format version used by castxml.

  `cflags`

    additional flags to pass to compiler

  `clone`()
  `compiler`

    get compiler name to simulate

  `compiler_path`

    Get the path for the compiler.

  `define_symbols`

    list of “define” directives

  `flags`

    Optional flags for pygccxml.

  `include_paths`

    list of include paths to look for header files

  `keep_xml`

    Are xml files kept after errors.

  `raise_on_wrong_settings`()

    Validates the configuration settings and raises RuntimeError on error

  `undefine_symbols`

    list of “undefine” directives

  `working_directory`
  `xml_generator`

    get xml_generator (gccxml or castxml)

class `xml_generator_configuration_t`(gccxml_path='', xml_generator_path='', working_directory='.', include_paths=None, define_symbols=None, undefine_symbols=None, start_with_declarations=None, ignore_gccxml_output=False, cflags='', compiler=None, xml_generator=None, keep_xml=False, compiler_path=None, flags=None, castxml_epic_version=None)

  Bases: `pygccxml.parser.config.parser_configuration_t`

  Configuration object to collect parameters for invoking gccxml or castxml.

  This class serves as a container for the parameters that can be used to customize the call to gccxml or castxml.

  `append_cflags`(val)
  `castxml_epic_version`

    File format version used by castxml.

  `cflags`

    additional flags to pass to compiler

  `clone`()
  `compiler`

    get compiler name to simulate

  `compiler_path`

    Get the path for the compiler.

  `define_symbols`

    list of “define” directives

  `flags`

    Optional flags for pygccxml.

  `ignore_gccxml_output`

    set this property to True, if you want pygccxml to ignore any error warning that comes from gccxml

  `include_paths`

    list of include paths to look for header files

  `keep_xml`

    Are xml files kept after errors.

  `raise_on_wrong_settings`()

    Validates the configuration settings and raises RuntimeError on error

  `start_with_declarations`

    list of declarations gccxml should start with, when it dumps declaration tree

  `undefine_symbols`

    list of “undefine” directives

  `working_directory`
  `xml_generator`

    get xml_generator (gccxml or castxml)

  `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

  `xml_generator_path`

    XML generator binary location