Module index

# Module `ida_srclang`

Third-party compiler support.

## Global variables

`var SRCLANG_C`

  C.

`var SRCLANG_CPP`

  C++.

`var SRCLANG_GO`

  Golang (not supported yet)

`var SRCLANG_OBJC`

  Objective-C.

`var SRCLANG_SWIFT`

  Swift (not supported yet)

## Functions

`def parse_decls_for_srclang(lang: srclang_t, til: til_t, input: char const *, is_path: bool)`

  parse_decls_for_srclang(lang, til, input, is_path) -> int Parse type declarations in the specified language

  @param lang: (C++: srclang_t) the source language(s) expected in the input @param til: (C++: til_t ) type library to store the types @param input: (C++: const char ) input source. can be a file path or decl string @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the input is an in-memory source snippet @retval -1: no parser was found that supports the given source language(s) @retval else: the number of errors encountered in the input source

`def parse_decls_with_parser(parser_name: char const *, til: til_t, input: char const *, is_path: bool)`

  parse_decls_with_parser(parser_name, til, input, is_path) -> int Parse type declarations using the parser with the specified name

  @param parser_name: (C++: const char ) name of the target parser @param til: (C++: til_t ) type library to store the types @param input: (C++: const char *) input source. can be a file path or decl string @param is_path: (C++: bool) true if input parameter is a path to a source file, false if the input is an in-memory source snippet @retval -1: no parser was found with the given name @retval else: the number of errors encountered in the input source

`def select_parser_by_name(name: char const *)`

  select_parser_by_name(name) -> bool Set the parser with the given name as the current parser. Pass nullptr or an empty string to select the default parser.

  @param name: (C++: const char *) char const * @return: false if no parser was found with the given name

`def select_parser_by_srclang(lang: srclang_t)`

  select_parser_by_srclang(lang) -> bool Set the parser that supports the given language(s) as the current parser. The selected parser must support all languages specified by the given srclang_t.

  @param lang: (C++: srclang_t) @return: false if no such parser was found

`def set_parser_argv(parser_name: char const *, argv: char const *)`

  set_parser_argv(parser_name, argv) -> int Set the command-line args to use for invocations of the parser with the given name

  @param parser_name: (C++: const char ) name of the target parser @param argv: (C++: const char ) argument list @retval -1: no parser was found with the given name @retval -2: the operation is not supported by the given parser @retval 0: success