summaryrefslogtreecommitdiff
path: root/tools/libdol2asm/data/identifier.py
blob: 53ac296ddbf46382d6c1fd8c04a7dedb01531042 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

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})"