Files
lief-project-LIEF/api/python/lief/dwarf/editor.pyi
T
2026-01-24 09:39:04 +01:00

159 lines
4.1 KiB
Python

from collections.abc import Sequence
import enum
from typing import Iterator, Optional, Union, overload
class Type:
def pointer_to(self) -> Optional[PointerType]: ...
class PointerType(Type):
pass
class EnumType(Type):
class Value:
pass
def set_size(self, size: int) -> EnumType: ...
def set_underlying_type(self, type: Type) -> EnumType: ...
def add_value(self, name: str, value: int) -> Optional[EnumType.Value]: ...
class BaseType(Type):
class ENCODING(enum.Enum):
NONE = 0
ADDRESS = 1
SIGNED = 2
SIGNED_CHAR = 3
UNSIGNED = 4
UNSIGNED_CHAR = 5
BOOLEAN = 6
FLOAT = 7
class ArrayType(Type):
pass
class FunctionType(Type):
class Parameter:
pass
def set_return_type(self, type: Type) -> FunctionType: ...
def add_parameter(self, type: Type) -> Optional[FunctionType.Parameter]: ...
class TypeDef(Type):
pass
class StructType(Type):
class TYPE(enum.Enum):
CLASS = 0
STRUCT = 1
UNION = 2
class Member:
pass
def set_size(self, size: int) -> StructType: ...
def add_member(self, name: str, type: Type, offset: int = -1) -> Optional[StructType.Member]: ...
def add_bitfield(self, name: str, type: Type, bitsize: int, bitoffset: int = -1) -> Optional[StructType.Member]: ...
class Function:
class range_t:
@overload
def __init__(self) -> None: ...
@overload
def __init__(self, start: int, end: int) -> None: ...
start: int
end: int
class Parameter:
@overload
def assign_register(self, arg: str, /) -> Function.Parameter: ...
@overload
def assign_register(self, arg: int, /) -> Function.Parameter: ...
class LexicalBlock:
@overload
def add_block(self, start: int, end: int) -> Optional[Function.LexicalBlock]: ...
@overload
def add_block(self, range: Sequence[Function.range_t]) -> Optional[Function.LexicalBlock]: ...
def add_description(self, description: str) -> Function.LexicalBlock: ...
def add_name(self, name: str) -> Function.LexicalBlock: ...
class Label:
pass
def set_address(self, addr: int) -> Function: ...
def set_low_high(self, low: int, high: int) -> Function: ...
def set_ranges(self, ranges: Sequence[Function.range_t]) -> Function: ...
def set_external(self) -> Function: ...
def set_return_type(self, type: Type) -> Function: ...
def add_parameter(self, name: str, type: Type) -> Optional[Function.Parameter]: ...
def create_stack_variable(self, name: str) -> Optional[Variable]: ...
def add_lexical_block(self, start: int, end: int) -> Optional[Function.LexicalBlock]: ...
def add_label(self, addr: int, label: str) -> Optional[Function.Label]: ...
def add_description(self, description: str) -> Function: ...
class Variable:
def set_addr(self, addr: int) -> Variable: ...
def set_stack_offset(self, offset: int) -> Variable: ...
def set_external(self) -> Variable: ...
def set_type(self, type: Type) -> Variable: ...
def add_description(self, description: str) -> Variable: ...
class CompilationUnit:
def set_producer(self, arg: str, /) -> CompilationUnit: ...
def create_function(self, name: str) -> Optional[Function]: ...
def create_variable(self, name: str) -> Optional[Variable]: ...
def create_generic_type(self, name: str) -> Optional[Type]: ...
def create_enum(self, name: str) -> Optional[EnumType]: ...
def create_typedef(self, name: str, ty: Type) -> Optional[TypeDef]: ...
def create_structure(self, name: str, kind: StructType.TYPE = StructType.TYPE.STRUCT) -> Optional[StructType]: ...
def create_base_type(self, name: str, size: int, encoding: BaseType.ENCODING = BaseType.ENCODING.NONE) -> Optional[BaseType]: ...
def create_function_type(self, name: str) -> Optional[FunctionType]: ...
def create_pointer_type(self, ty: Type) -> Optional[PointerType]: ...
def create_void_type(self) -> Optional[Type]: ...
def create_array(self, name: str, ty: Type, count: int) -> Optional[ArrayType]: ...