Format/Parse/Print type information. More...
Modules | |
Type formatting flags | |
Type parsing flags | |
Type printing flags | |
Typedefs | |
typedef int idaapi | h2ti_type_cb(const char *name, const tinfo_t &tif, const char *cmt, const uint64 *value, void *cb_data) |
This callback will be called for each type/variable declaration. More... | |
typedef int | printer_t(const char *format,...) |
Specify a printing callback when parsing types. More... | |
Functions | |
idaman int ida_export | h2ti (til_t *ti, lexer_t *lx, const char *input, int flags=HTI_HIGH, h2ti_type_cb *type_cb=nullptr, h2ti_type_cb *var_cb=nullptr, printer_t *print_cb=nullptr, void *_cb_data=nullptr, abs_t _isabs=ABS_UNK) |
Convert declarations to type_t*. More... | |
THREAD_SAFE int | convert_pt_flags_to_hti (int pt_flags) |
Convert Type parsing flags to Type formatting flags. More... | |
idaman bool ida_export | parse_decl (tinfo_t *out_tif, qstring *out_name, til_t *til, const char *decl, int pt_flags) |
Parse ONE declaration. More... | |
idaman int ida_export | parse_decls (til_t *til, const char *input, printer_t *printer, int hti_flags) |
Parse many declarations and store them in a til. More... | |
idaman bool ida_export | print_type (qstring *out, ea_t ea, int prtype_flags) |
Get type declaration for the specified address. More... | |
Detailed Description
Format/Parse/Print type information.
Typedef Documentation
◆ h2ti_type_cb
typedef int idaapi h2ti_type_cb(const char *name, const tinfo_t &tif, const char *cmt, const uint64 *value, void *cb_data) |
This callback will be called for each type/variable declaration.
- Parameters
-
name var/func/type name tif type info cmt main comment value symbol value cb_data data passed to callback
- Return values
-
T_CBBRKDEF the type declaration won't be saved in the til
◆ printer_t
typedef int printer_t(const char *format,...) |
Specify a printing callback when parsing types.
See h2ti() and parse_decls().
Function Documentation
◆ h2ti()
idaman int ida_export h2ti | ( | til_t * | ti, |
lexer_t * | lx, | ||
const char * | input, | ||
int | flags = HTI_HIGH , |
||
h2ti_type_cb * | type_cb = nullptr , |
||
h2ti_type_cb * | var_cb = nullptr , |
||
printer_t * | print_cb = nullptr , |
||
void * | _cb_data = nullptr , |
||
abs_t | _isabs = ABS_UNK |
||
) |
Convert declarations to type_t*.
This is a low level function - use parse_decls() or parse_decl()
- Parameters
-
ti type info library lx input lexer. may be nullptr. always destroyed by h2ti() input file name or C declaration flags combination of Type formatting flags type_cb callback - for each type var_cb callback - for each var print_cb may pass msg() here _cb_data data passed to callbacks _isabs the expected abstracness of the type declaration(s)
- Returns
- number of errors (they are displayed using print_cb). zero means ok
◆ convert_pt_flags_to_hti()
|
inline |
Convert Type parsing flags to Type formatting flags.
Type parsing flags lesser than 0x10 don't have stable meaning and will be ignored (more on these flags can be seen in idc.idc)
◆ parse_decl()
idaman bool ida_export parse_decl | ( | tinfo_t * | out_tif, |
qstring * | out_name, | ||
til_t * | til, | ||
const char * | decl, | ||
int | pt_flags | ||
) |
Parse ONE declaration.
If the input string contains more than one declaration, the first complete type declaration (PT_TYP) or the last variable declaration (PT_VAR) will be used.
- Note
- name & tif may be empty after the call!
- Parameters
-
[out] out_tif type info [out] out_name declared name til type library to use. may be nullptr decl C declaration to parse pt_flags combination of Type parsing flags bits
- Return values
-
true ok false declaration is bad, the error message is displayed if !PT_SIL
◆ parse_decls()
idaman int ida_export parse_decls | ( | til_t * | til, |
const char * | input, | ||
printer_t * | printer, | ||
int | hti_flags | ||
) |
Parse many declarations and store them in a til.
If there are any errors, they will be printed using 'printer'. This function uses default include path and predefined macros from the database settings. It always uses the HTI_DCL bit.
- Parameters
-
til type library to store the result input input string or file name (see hti_flags) printer function to output error messages (use msg or nullptr or your own callback) hti_flags combination of Type formatting flags
- Returns
- number of errors, 0 means ok.
◆ print_type()
idaman bool ida_export print_type | ( | qstring * | out, |
ea_t | ea, | ||
int | prtype_flags | ||
) |
Get type declaration for the specified address.
- Parameters
-
out output buffer ea address prtype_flags combination of Type printing flags
- Returns
- success
Generated by 1.9.3