typeparser module¶
Class |
Description |
---|---|
- class BasicTypeParserResult[source]
Bases:
object
BasicTypeParserResult(types: Dict[ForwardRef(‘types.QualifiedName’), ForwardRef(‘types.Type’)], variables: Dict[ForwardRef(‘types.QualifiedName’), ForwardRef(‘types.Type’)], functions: Dict[ForwardRef(‘types.QualifiedName’), ForwardRef(‘types.Type’)])
- __init__(types: Dict[QualifiedName, Type], variables: Dict[QualifiedName, Type], functions: Dict[QualifiedName, Type]) None
- Parameters:
types (Dict[QualifiedName, Type]) –
variables (Dict[QualifiedName, Type]) –
functions (Dict[QualifiedName, Type]) –
- Return type:
None
- functions: Dict[QualifiedName, Type]
- types: Dict[QualifiedName, Type]
- variables: Dict[QualifiedName, Type]
- class CoreTypeParser[source]
Bases:
TypeParser
- get_option_text(option: TypeParserOption, value: str) str | None [source]
Get the string representation of an option for passing to parse_type_*
- Parameters:
option (TypeParserOption) – Option type
value (str) – Option value
- Returns:
A string representing the option if the parser supports it, otherwise None
- Return type:
str | None
- parse_type_string(source: str, platform: Platform, existing_types: types.TypeContainerType | None = None) Tuple[Tuple[types.QualifiedNameType, Type] | None, List[TypeParserError]] [source]
Parse a single type and name from a string containing their definition.
- Parameters:
- Returns:
A tuple of (result, errors) where result is a tuple of (type, name) or None of there was a fatal error.
- Return type:
Tuple[Tuple[types.QualifiedNameType, Type] | None, List[TypeParserError]]
- parse_types_from_source(source: str, file_name: str, platform: Platform, existing_types: types.TypeContainerType | None = None, options: List[str] | None = None, include_dirs: List[str] | None = None, auto_type_source: str = '') Tuple[TypeParserResult | None, List[TypeParserError]] [source]
Parse an entire block of source into types, variables, and functions
- Parameters:
source (str) – Source code to parse
file_name (str) – Name of the file containing the source (optional: exists on disk)
platform (Platform) – Platform to assume the types are relevant to
existing_types (types.TypeContainerType | None) – Optional container of all existing types to use for parsing context
options (List[str] | None) – Optional string arguments to pass as options, e.g. command line arguments
include_dirs (List[str] | None) – Optional list of directories to include in the header search path
auto_type_source (str) – Optional source of types if used for automatically generated types
- Returns:
A tuple of (result, errors) where the result is None if there was a fatal error
- Return type:
Tuple[TypeParserResult | None, List[TypeParserError]]
- preprocess_source(source: str, file_name: str, platform: Platform, existing_types: types.TypeContainerType | None = None, options: List[str] | None = None, include_dirs: List[str] | None = None) Tuple[str | None, List[TypeParserError]] [source]
Preprocess a block of source, returning the source that would be parsed
- Parameters:
source (str) – Source code to process
file_name (str) – Name of the file containing the source (does not need to exist on disk)
platform (Platform) – Platform to assume the source is relevant to
existing_types (types.TypeContainerType | None) – Optional collection of all existing types to use for parsing context
options (List[str] | None) – Optional string arguments to pass as options, e.g. command line arguments
include_dirs (List[str] | None) – Optional list of directories to include in the header search path
- Returns:
A tuple of (preproccessed source, errors), where the preproccessed source is None if there was a fatal error.
- Return type:
Tuple[str | None, List[TypeParserError]]
- class ParsedType[source]
Bases:
object
ParsedType(name: ‘types.QualifiedNameType’, type: ‘types.Type’, is_user: bool)
- is_user: bool
- name: types.QualifiedNameType
- type: Type
- class QualifiedNameTypeAndId[source]
Bases:
object
QualifiedNameTypeAndId(name: ‘types.QualifiedNameType’, id: str, type: ‘types.Type’)
- id: str
- name: types.QualifiedNameType
- type: Type
- class TypeParser[source]
Bases:
object
- __init__(handle=None)[source]
- get_option_text(option: TypeParserOption, value: str) str | None [source]
Get the string representation of an option for passing to parse_type_*
- Parameters:
option (TypeParserOption) – Option type
value (str) – Option value
- Returns:
A string representing the option if the parser supports it, otherwise None
- Return type:
str | None
- parse_type_string(source: str, platform: Platform, existing_types: types.TypeContainerType | None = None) Tuple[Tuple[types.QualifiedNameType, Type] | None, List[TypeParserError]] [source]
Parse a single type and name from a string containing their definition.
- Parameters:
- Returns:
A tuple of (result, errors) where result is a tuple of (type, name) or None of there was a fatal error.
- Return type:
Tuple[Tuple[types.QualifiedNameType, Type] | None, List[TypeParserError]]
- parse_types_from_source(source: str, file_name: str, platform: Platform, existing_types: types.TypeContainerType | None = None, options: List[str] | None = None, include_dirs: List[str] | None = None, auto_type_source: str = '') Tuple[TypeParserResult | None, List[TypeParserError]] [source]
Parse an entire block of source into types, variables, and functions
- Parameters:
source (str) – Source code to parse
file_name (str) – Name of the file containing the source (optional: exists on disk)
platform (Platform) – Platform to assume the types are relevant to
existing_types (types.TypeContainerType | None) – Optional container of all existing types to use for parsing context
options (List[str] | None) – Optional string arguments to pass as options, e.g. command line arguments
include_dirs (List[str] | None) – Optional list of directories to include in the header search path
auto_type_source (str) – Optional source of types if used for automatically generated types
- Returns:
A tuple of (result, errors) where the result is None if there was a fatal error
- Return type:
Tuple[TypeParserResult | None, List[TypeParserError]]
- preprocess_source(source: str, file_name: str, platform: Platform, existing_types: types.TypeContainerType | None = None, options: List[str] | None = None, include_dirs: List[str] | None = None) Tuple[str | None, List[TypeParserError]] [source]
Preprocess a block of source, returning the source that would be parsed
- Parameters:
source (str) – Source code to process
file_name (str) – Name of the file containing the source (does not need to exist on disk)
platform (Platform) – Platform to assume the source is relevant to
existing_types (types.TypeContainerType | None) – Optional collection of all existing types to use for parsing context
options (List[str] | None) – Optional string arguments to pass as options, e.g. command line arguments
include_dirs (List[str] | None) – Optional list of directories to include in the header search path
- Returns:
A tuple of (preproccessed source, errors), where the preproccessed source is None if there was a fatal error.
- Return type:
Tuple[str | None, List[TypeParserError]]
- register()[source]
Register a custom parser with the API
- name = None
- class TypeParserError[source]
Bases:
object
TypeParserError(severity: binaryninja.enums.TypeParserErrorSeverity, message: str, file_name: str, line: int, column: int)
- __init__(severity: TypeParserErrorSeverity, message: str, file_name: str, line: int, column: int) None
- Parameters:
severity (TypeParserErrorSeverity) –
message (str) –
file_name (str) –
line (int) –
column (int) –
- Return type:
None
- column: int
- file_name: str
- line: int
- message: str
- severity: TypeParserErrorSeverity
- class TypeParserResult[source]
Bases:
object
TypeParserResult(types: List[binaryninja.typeparser.ParsedType], variables: List[binaryninja.typeparser.ParsedType], functions: List[binaryninja.typeparser.ParsedType])
- __init__(types: List[ParsedType], variables: List[ParsedType], functions: List[ParsedType]) None
- Parameters:
types (List[ParsedType]) –
variables (List[ParsedType]) –
functions (List[ParsedType]) –
- Return type:
None
- functions: List[ParsedType]
- types: List[ParsedType]
- variables: List[ParsedType]
- to_bytes(field)[source]
BasicTypeParserResult¶
- class BasicTypeParserResult[source]¶
Bases:
object
BasicTypeParserResult(types: Dict[ForwardRef(‘types.QualifiedName’), ForwardRef(‘types.Type’)], variables: Dict[ForwardRef(‘types.QualifiedName’), ForwardRef(‘types.Type’)], functions: Dict[ForwardRef(‘types.QualifiedName’), ForwardRef(‘types.Type’)])
- __init__(types: Dict[QualifiedName, Type], variables: Dict[QualifiedName, Type], functions: Dict[QualifiedName, Type]) None ¶
- Parameters:
types (Dict[QualifiedName, Type]) –
variables (Dict[QualifiedName, Type]) –
functions (Dict[QualifiedName, Type]) –
- Return type:
None
- functions: Dict[QualifiedName, Type]¶
- types: Dict[QualifiedName, Type]¶
- variables: Dict[QualifiedName, Type]¶
CoreTypeParser¶
- class CoreTypeParser[source]¶
Bases:
TypeParser
- get_option_text(option: TypeParserOption, value: str) str | None [source]¶
Get the string representation of an option for passing to parse_type_*
- Parameters:
option (TypeParserOption) – Option type
value (str) – Option value
- Returns:
A string representing the option if the parser supports it, otherwise None
- Return type:
str | None
- parse_type_string(source: str, platform: Platform, existing_types: types.TypeContainerType | None = None) Tuple[Tuple[types.QualifiedNameType, Type] | None, List[TypeParserError]] [source]¶
Parse a single type and name from a string containing their definition.
- Parameters:
- Returns:
A tuple of (result, errors) where result is a tuple of (type, name) or None of there was a fatal error.
- Return type:
Tuple[Tuple[types.QualifiedNameType, Type] | None, List[TypeParserError]]
- parse_types_from_source(source: str, file_name: str, platform: Platform, existing_types: types.TypeContainerType | None = None, options: List[str] | None = None, include_dirs: List[str] | None = None, auto_type_source: str = '') Tuple[TypeParserResult | None, List[TypeParserError]] [source]¶
Parse an entire block of source into types, variables, and functions
- Parameters:
source (str) – Source code to parse
file_name (str) – Name of the file containing the source (optional: exists on disk)
platform (Platform) – Platform to assume the types are relevant to
existing_types (types.TypeContainerType | None) – Optional container of all existing types to use for parsing context
options (List[str] | None) – Optional string arguments to pass as options, e.g. command line arguments
include_dirs (List[str] | None) – Optional list of directories to include in the header search path
auto_type_source (str) – Optional source of types if used for automatically generated types
- Returns:
A tuple of (result, errors) where the result is None if there was a fatal error
- Return type:
Tuple[TypeParserResult | None, List[TypeParserError]]
- preprocess_source(source: str, file_name: str, platform: Platform, existing_types: types.TypeContainerType | None = None, options: List[str] | None = None, include_dirs: List[str] | None = None) Tuple[str | None, List[TypeParserError]] [source]¶
Preprocess a block of source, returning the source that would be parsed
- Parameters:
source (str) – Source code to process
file_name (str) – Name of the file containing the source (does not need to exist on disk)
platform (Platform) – Platform to assume the source is relevant to
existing_types (types.TypeContainerType | None) – Optional collection of all existing types to use for parsing context
options (List[str] | None) – Optional string arguments to pass as options, e.g. command line arguments
include_dirs (List[str] | None) – Optional list of directories to include in the header search path
- Returns:
A tuple of (preproccessed source, errors), where the preproccessed source is None if there was a fatal error.
- Return type:
Tuple[str | None, List[TypeParserError]]
ParsedType¶
QualifiedNameTypeAndId¶
TypeParser¶
- class TypeParser[source]¶
Bases:
object
- get_option_text(option: TypeParserOption, value: str) str | None [source]¶
Get the string representation of an option for passing to parse_type_*
- Parameters:
option (TypeParserOption) – Option type
value (str) – Option value
- Returns:
A string representing the option if the parser supports it, otherwise None
- Return type:
str | None
- parse_type_string(source: str, platform: Platform, existing_types: types.TypeContainerType | None = None) Tuple[Tuple[types.QualifiedNameType, Type] | None, List[TypeParserError]] [source]¶
Parse a single type and name from a string containing their definition.
- Parameters:
- Returns:
A tuple of (result, errors) where result is a tuple of (type, name) or None of there was a fatal error.
- Return type:
Tuple[Tuple[types.QualifiedNameType, Type] | None, List[TypeParserError]]
- parse_types_from_source(source: str, file_name: str, platform: Platform, existing_types: types.TypeContainerType | None = None, options: List[str] | None = None, include_dirs: List[str] | None = None, auto_type_source: str = '') Tuple[TypeParserResult | None, List[TypeParserError]] [source]¶
Parse an entire block of source into types, variables, and functions
- Parameters:
source (str) – Source code to parse
file_name (str) – Name of the file containing the source (optional: exists on disk)
platform (Platform) – Platform to assume the types are relevant to
existing_types (types.TypeContainerType | None) – Optional container of all existing types to use for parsing context
options (List[str] | None) – Optional string arguments to pass as options, e.g. command line arguments
include_dirs (List[str] | None) – Optional list of directories to include in the header search path
auto_type_source (str) – Optional source of types if used for automatically generated types
- Returns:
A tuple of (result, errors) where the result is None if there was a fatal error
- Return type:
Tuple[TypeParserResult | None, List[TypeParserError]]
- preprocess_source(source: str, file_name: str, platform: Platform, existing_types: types.TypeContainerType | None = None, options: List[str] | None = None, include_dirs: List[str] | None = None) Tuple[str | None, List[TypeParserError]] [source]¶
Preprocess a block of source, returning the source that would be parsed
- Parameters:
source (str) – Source code to process
file_name (str) – Name of the file containing the source (does not need to exist on disk)
platform (Platform) – Platform to assume the source is relevant to
existing_types (types.TypeContainerType | None) – Optional collection of all existing types to use for parsing context
options (List[str] | None) – Optional string arguments to pass as options, e.g. command line arguments
include_dirs (List[str] | None) – Optional list of directories to include in the header search path
- Returns:
A tuple of (preproccessed source, errors), where the preproccessed source is None if there was a fatal error.
- Return type:
Tuple[str | None, List[TypeParserError]]
- name = None¶
TypeParserError¶
- class TypeParserError[source]¶
Bases:
object
TypeParserError(severity: binaryninja.enums.TypeParserErrorSeverity, message: str, file_name: str, line: int, column: int)
- __init__(severity: TypeParserErrorSeverity, message: str, file_name: str, line: int, column: int) None ¶
- Parameters:
severity (TypeParserErrorSeverity) –
message (str) –
file_name (str) –
line (int) –
column (int) –
- Return type:
None
- severity: TypeParserErrorSeverity¶
TypeParserResult¶
- class TypeParserResult[source]¶
Bases:
object
TypeParserResult(types: List[binaryninja.typeparser.ParsedType], variables: List[binaryninja.typeparser.ParsedType], functions: List[binaryninja.typeparser.ParsedType])
- __init__(types: List[ParsedType], variables: List[ParsedType], functions: List[ParsedType]) None ¶
- Parameters:
types (List[ParsedType]) –
variables (List[ParsedType]) –
functions (List[ParsedType]) –
- Return type:
None
- functions: List[ParsedType]¶
- types: List[ParsedType]¶
- variables: List[ParsedType]¶