# Path: cle/backends/elf/variable_type.py
# class VariableType:
#     """
#     DW_TAG_base_type for DWARF
#     """
#     def __init__(self, name: str, byte_size:int):
#         self.name = name
#         self.byte_size = byte_size
# 
#     @staticmethod
#     def read_from_die(die: DIE):
#         return VariableType(
#             name = die.attributes["DW_AT_name"].value.decode(),
#             byte_size = die.attributes["DW_AT_byte_size"].value
#         )


from typing import Optional
from .variable_type import VariableType


class Variable:
    """
    Variable for DWARF
    from a DW_TAG_variable or DW_TAG_formal_parameter
    """

# Path: cle/backends/elf/variable_type.py
# class VariableType:
#     """
#     DW_TAG_base_type for DWARF
#     """
#     def __init__(self, name: str, byte_size:int):
#         self.name = name
#         self.byte_size = byte_size
# 
#     @staticmethod
#     def read_from_die(die: DIE):
#         return VariableType(
#             name = die.attributes["DW_AT_name"].value.decode(),
#             byte_size = die.attributes["DW_AT_byte_size"].value
#         )


# Path: cle/backends/elf/variable.py
from typing import Optional
from .variable_type import VariableType



class Variable:
    """
    Variable for DWARF
    from a DW_TAG_variable or DW_TAG_formal_parameter
    """

    def __init__(self, name: Optional[str], type_: Optional[VariableType], decl_file: Optional[str], decl_line: Optional[int],