mirror of https://github.com/zeldaret/tp.git
26 lines
624 B
Python
26 lines
624 B
Python
|
|
from dataclasses import dataclass, field
|
|
|
|
@dataclass
|
|
class Identifier:
|
|
prefix: str
|
|
addr: int
|
|
name: str
|
|
override_name: str = field(default=None, repr=False)
|
|
is_name_safe: bool = field(default=False, repr=False)
|
|
|
|
@property
|
|
def label(self):
|
|
if self.override_name:
|
|
return self.override_name
|
|
if self.name and self.is_name_safe:
|
|
return self.name
|
|
return "%s_%08X" % (self.prefix, self.addr)
|
|
|
|
@property
|
|
def reference(self):
|
|
return self.label
|
|
|
|
def __repr__(self):
|
|
return f"Identifier({self.prefix}_{self.addr:08X},{self.name})"
|